src: Removing ndnboost

Change-Id: I8f5dfa75be8e4e8ad9a815843ff01ed2a9919888
diff --git a/include/ndnboost/algorithm/string/compare.hpp b/include/ndnboost/algorithm/string/compare.hpp
deleted file mode 100644
index 4bebc21..0000000
--- a/include/ndnboost/algorithm/string/compare.hpp
+++ /dev/null
@@ -1,199 +0,0 @@
-//  Boost string_algo library compare.hpp header file  -------------------------//
-
-//  Copyright Pavol Droba 2002-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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_COMPARE_HPP
-#define NDNBOOST_STRING_COMPARE_HPP
-
-#include <ndnboost/algorithm/string/config.hpp>
-#include <locale>
-
-/*! \file
-    Defines element comparison predicates. Many algorithms in this library can
-    take an additional argument with a predicate used to compare elements.
-    This makes it possible, for instance, to have case insensitive versions
-    of the algorithms.
-*/
-
-namespace ndnboost {
-    namespace algorithm {
-
-        //  is_equal functor  -----------------------------------------------//
-
-        //! is_equal functor
-        /*!
-            Standard STL equal_to only handle comparison between arguments
-            of the same type. This is a less restrictive version which wraps operator ==.
-        */
-        struct is_equal
-        {
-            //! Function operator
-            /*!
-                Compare two operands for equality
-            */
-            template< typename T1, typename T2 >
-                bool operator()( const T1& Arg1, const T2& Arg2 ) const
-            {
-                return Arg1==Arg2;
-            }
-        };
-
-        //! case insensitive version of is_equal
-        /*!
-            Case insensitive comparison predicate. Comparison is done using
-            specified locales.
-        */
-        struct is_iequal
-        {
-            //! Constructor
-            /*!
-                \param Loc locales used for comparison
-            */
-            is_iequal( const std::locale& Loc=std::locale() ) :
-                m_Loc( Loc ) {}
-
-            //! Function operator
-            /*!
-                Compare two operands. Case is ignored.
-            */
-            template< typename T1, typename T2 >
-                bool operator()( const T1& Arg1, const T2& Arg2 ) const
-            {
-                #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
-                    return std::toupper(Arg1)==std::toupper(Arg2);
-                #else
-                    return std::toupper<T1>(Arg1,m_Loc)==std::toupper<T2>(Arg2,m_Loc);
-                #endif
-            }
-
-        private:
-            std::locale m_Loc;
-        };
-
-        //  is_less functor  -----------------------------------------------//
-
-        //! is_less functor
-        /*!
-            Convenient version of standard std::less. Operation is templated, therefore it is 
-            not required to specify the exact types upon the construction
-         */
-        struct is_less
-        {
-            //! Functor operation
-            /*!
-                Compare two operands using > operator
-             */
-            template< typename T1, typename T2 >
-                bool operator()( const T1& Arg1, const T2& Arg2 ) const
-            {
-                return Arg1<Arg2;
-            }
-        };
-
-
-        //! case insensitive version of is_less
-        /*!
-            Case insensitive comparison predicate. Comparison is done using
-            specified locales.
-        */
-        struct is_iless
-        {
-            //! Constructor
-            /*!
-                \param Loc locales used for comparison
-            */
-            is_iless( const std::locale& Loc=std::locale() ) :
-                m_Loc( Loc ) {}
-
-            //! Function operator
-            /*!
-                Compare two operands. Case is ignored.
-            */
-            template< typename T1, typename T2 >
-                bool operator()( const T1& Arg1, const T2& Arg2 ) const
-            {
-                #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
-                    return std::toupper(Arg1)<std::toupper(Arg2);
-                #else
-                    return std::toupper<T1>(Arg1,m_Loc)<std::toupper<T2>(Arg2,m_Loc);
-                #endif
-            }
-
-        private:
-            std::locale m_Loc;
-        };
-
-        //  is_not_greater functor  -----------------------------------------------//
-
-        //! is_not_greater functor
-        /*!
-            Convenient version of standard std::not_greater_to. Operation is templated, therefore it is 
-            not required to specify the exact types upon the construction
-         */
-        struct is_not_greater
-        {
-            //! Functor operation
-            /*!
-                Compare two operands using > operator
-             */
-            template< typename T1, typename T2 >
-                bool operator()( const T1& Arg1, const T2& Arg2 ) const
-            {
-                return Arg1<=Arg2;
-            }
-        };
-
-
-        //! case insensitive version of is_not_greater
-        /*!
-            Case insensitive comparison predicate. Comparison is done using
-            specified locales.
-        */
-        struct is_not_igreater
-        {
-            //! Constructor
-            /*!
-                \param Loc locales used for comparison
-            */
-            is_not_igreater( const std::locale& Loc=std::locale() ) :
-                m_Loc( Loc ) {}
-
-            //! Function operator
-            /*!
-                Compare two operands. Case is ignored.
-            */
-            template< typename T1, typename T2 >
-                bool operator()( const T1& Arg1, const T2& Arg2 ) const
-            {
-                #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
-                    return std::toupper(Arg1)<=std::toupper(Arg2);
-                #else
-                    return std::toupper<T1>(Arg1,m_Loc)<=std::toupper<T2>(Arg2,m_Loc);
-                #endif
-            }
-
-        private:
-            std::locale m_Loc;
-        };
-
-
-    } // namespace algorithm
-
-    // pull names to the boost namespace
-    using algorithm::is_equal;
-    using algorithm::is_iequal;
-    using algorithm::is_less;
-    using algorithm::is_iless;
-    using algorithm::is_not_greater;
-    using algorithm::is_not_igreater;
-
-} // namespace ndnboost
-
-
-#endif  // NDNBOOST_STRING_COMPARE_HPP
diff --git a/include/ndnboost/algorithm/string/concept.hpp b/include/ndnboost/algorithm/string/concept.hpp
deleted file mode 100644
index 86698d3..0000000
--- a/include/ndnboost/algorithm/string/concept.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-//  Boost string_algo library concept.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_CONCEPT_HPP
-#define NDNBOOST_STRING_CONCEPT_HPP
-
-#include <ndnboost/concept_check.hpp>
-#include <ndnboost/range/iterator_range.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-
-/*! \file 
-    Defines concepts used in string_algo library
-*/
-
-namespace ndnboost {
-    namespace algorithm {
-
-        //! Finder concept
-        /*!
-            Defines the Finder concept. Finder is a functor which selects
-            an arbitrary part of a string. Search is performed on
-            the range specified by starting and ending iterators.
-
-            Result of the find operation must be convertible to iterator_range.
-        */
-        template<typename FinderT, typename IteratorT>
-        struct FinderConcept
-        {
-        private:
-            typedef iterator_range<IteratorT> range;
-        public:
-            void constraints()
-            {
-                // Operation
-                r=(*pF)(i,i);
-            }
-        private:
-            range r;
-            IteratorT i;
-            FinderT* pF;    
-        }; // Finder_concept
-
-        
-        //! Formatter concept
-        /*!
-            Defines the Formatter concept. Formatter is a functor, which
-            takes a result from a finder operation and transforms it
-            in a specific way.
-
-            Result must be a container supported by container_traits, 
-            or a reference to it.
-        */
-        template<typename FormatterT, typename FinderT, typename IteratorT>
-        struct FormatterConcept
-        {
-        public:
-            void constraints()
-            {
-                // Operation
-                ::ndnboost::begin((*pFo)( (*pF)(i,i) ));
-                ::ndnboost::end((*pFo)( (*pF)(i,i) ));
-            }
-        private:
-            IteratorT i;
-            FinderT* pF;
-            FormatterT *pFo;
-        }; // FormatterConcept;
-
-    } // namespace algorithm
-} // namespace ndnboost
-
-
-
-
-#endif  // NDNBOOST_STRING_CONCEPT_HPP
diff --git a/include/ndnboost/algorithm/string/config.hpp b/include/ndnboost/algorithm/string/config.hpp
deleted file mode 100644
index 0659c1f..0000000
--- a/include/ndnboost/algorithm/string/config.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Boost string_algo library config.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_CONFIG_HPP
-#define NDNBOOST_STRING_CONFIG_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#ifdef NDNBOOST_STRING_DEDUCED_TYPENAME
-#   error "macro already defined!"
-#endif
-
-#define NDNBOOST_STRING_TYPENAME NDNBOOST_DEDUCED_TYPENAME
-
-// Metrowerks workaround
-#if NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003) // 8.x
-#pragma parse_func_templ off
-#endif
-
-#endif  // NDNBOOST_STRING_CONFIG_HPP
diff --git a/include/ndnboost/algorithm/string/constants.hpp b/include/ndnboost/algorithm/string/constants.hpp
deleted file mode 100644
index 21fe158..0000000
--- a/include/ndnboost/algorithm/string/constants.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//  Boost string_algo library constants.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_CONSTANTS_HPP
-#define NDNBOOST_STRING_CONSTANTS_HPP
-
-namespace ndnboost {
-    namespace algorithm {
-
-    //! Token compression mode 
-    /*!
-        Specifies token compression mode for the token_finder.
-    */
-    enum token_compress_mode_type
-    {
-        token_compress_on,    //!< Compress adjacent tokens
-        token_compress_off  //!< Do not compress adjacent tokens
-    };
-    
-    } // namespace algorithm
-
-    // pull the names to the boost namespace
-    using algorithm::token_compress_on;
-    using algorithm::token_compress_off;
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index e59e40d..0000000
--- a/include/ndnboost/algorithm/string/detail/find_format.hpp
+++ /dev/null
@@ -1,204 +0,0 @@
-//  Boost string_algo library find_format.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-// 
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#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>
-#include <ndnboost/range/const_iterator.hpp>
-#include <ndnboost/range/iterator.hpp>
-#include <ndnboost/algorithm/string/detail/find_format_store.hpp>
-#include <ndnboost/algorithm/string/detail/replace_storage.hpp>
-
-namespace ndnboost {
-    namespace algorithm {
-        namespace detail {
-
-// find_format_copy (iterator variant) implementation -------------------------------//
-
-           template< 
-                typename OutputIteratorT,
-                typename InputT,
-                typename FormatterT,
-                typename FindResultT,
-                typename FormatResultT >
-            inline OutputIteratorT find_format_copy_impl2(
-                OutputIteratorT Output,
-                const InputT& Input,
-                FormatterT Formatter,
-                const FindResultT& FindResult,
-                const FormatResultT& FormatResult )
-            {       
-                typedef find_format_store<
-                    NDNBOOST_STRING_TYPENAME 
-                        range_const_iterator<InputT>::type, 
-                        FormatterT,
-                        FormatResultT > store_type;
-
-                // Create store for the find result
-                store_type M( FindResult, FormatResult, Formatter );
-
-                if ( !M )
-                {
-                    // Match not found - return original sequence
-                    Output = std::copy( ::ndnboost::begin(Input), ::ndnboost::end(Input), Output );
-                    return Output;
-                }
-
-                // Copy the beginning of the sequence
-                Output = std::copy( ::ndnboost::begin(Input), ::ndnboost::begin(M), Output );
-                // Format find result
-                // Copy formatted result
-                Output = std::copy( ::ndnboost::begin(M.format_result()), ::ndnboost::end(M.format_result()), Output );
-                // Copy the rest of the sequence
-                Output = std::copy( M.end(), ::ndnboost::end(Input), Output );
-
-                return Output;
-            }
-
-            template< 
-                typename OutputIteratorT,
-                typename InputT,
-                typename FormatterT,
-                typename FindResultT >
-            inline OutputIteratorT find_format_copy_impl(
-                OutputIteratorT Output,
-                const InputT& Input,
-                FormatterT Formatter,
-                const FindResultT& FindResult )
-            {   
-                if( ::ndnboost::algorithm::detail::check_find_result(Input, FindResult) ) {
-                    return ::ndnboost::algorithm::detail::find_format_copy_impl2( 
-                        Output,
-                        Input,
-                        Formatter,
-                        FindResult,
-                        Formatter(FindResult) );
-                } else {
-                    return std::copy( ::ndnboost::begin(Input), ::ndnboost::end(Input), Output );
-                }
-            }
-
- 
-// find_format_copy implementation --------------------------------------------------//
-
-           template< 
-                typename InputT, 
-                typename FormatterT,
-                typename FindResultT,
-                typename FormatResultT >
-            inline InputT find_format_copy_impl2(
-                const InputT& Input,
-                FormatterT Formatter,
-                const FindResultT& FindResult,
-                const FormatResultT& FormatResult)
-            {
-                typedef find_format_store<
-                    NDNBOOST_STRING_TYPENAME 
-                        range_const_iterator<InputT>::type, 
-                        FormatterT,
-                        FormatResultT > store_type;
-
-                // Create store for the find result
-                store_type M( FindResult, FormatResult, Formatter );
-
-                if ( !M )
-                {
-                    // Match not found - return original sequence
-                    return InputT( Input );
-                }
-
-                InputT Output;
-                // Copy the beginning of the sequence
-                ndnboost::algorithm::detail::insert( Output, ::ndnboost::end(Output), ::ndnboost::begin(Input), M.begin() );
-                // Copy formatted result
-                ndnboost::algorithm::detail::insert( Output, ::ndnboost::end(Output), M.format_result() );
-                // Copy the rest of the sequence
-                ndnboost::algorithm::detail::insert( Output, ::ndnboost::end(Output), M.end(), ::ndnboost::end(Input) );
-
-                return Output;
-            }
-
-            template< 
-                typename InputT, 
-                typename FormatterT,
-                typename FindResultT >
-            inline InputT find_format_copy_impl(
-                const InputT& Input,
-                FormatterT Formatter,
-                const FindResultT& FindResult)
-            {
-                if( ::ndnboost::algorithm::detail::check_find_result(Input, FindResult) ) {
-                    return ::ndnboost::algorithm::detail::find_format_copy_impl2(
-                        Input,
-                        Formatter,
-                        FindResult,
-                        Formatter(FindResult) );
-                } else {
-                    return Input;
-                }
-            }
-
- // replace implementation ----------------------------------------------------//
-        
-            template<
-                typename InputT,
-                typename FormatterT,
-                typename FindResultT,
-                typename FormatResultT >
-            inline void find_format_impl2( 
-                InputT& Input,
-                FormatterT Formatter,
-                const FindResultT& FindResult,
-                const FormatResultT& FormatResult)
-            {
-                typedef find_format_store<
-                    NDNBOOST_STRING_TYPENAME 
-                        range_iterator<InputT>::type, 
-                        FormatterT,
-                        FormatResultT > store_type;
-
-                // Create store for the find result
-                store_type M( FindResult, FormatResult, Formatter );
-
-                if ( !M )
-                {
-                    // Search not found - return original sequence
-                    return;
-                }
-
-                // Replace match
-                ::ndnboost::algorithm::detail::replace( Input, M.begin(), M.end(), M.format_result() );
-            }
-
-            template<
-                typename InputT,
-                typename FormatterT,
-                typename FindResultT >
-            inline void find_format_impl( 
-                InputT& Input,
-                FormatterT Formatter,
-                const FindResultT& FindResult)
-            {
-                if( ::ndnboost::algorithm::detail::check_find_result(Input, FindResult) ) {
-                    ::ndnboost::algorithm::detail::find_format_impl2(
-                        Input,
-                        Formatter,
-                        FindResult,
-                        Formatter(FindResult) );
-                }
-            }
-
-        } // namespace detail
-    } // namespace algorithm
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 22d0768..0000000
--- a/include/ndnboost/algorithm/string/detail/find_format_all.hpp
+++ /dev/null
@@ -1,273 +0,0 @@
-//  Boost string_algo library find_format_all.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#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>
-#include <ndnboost/range/const_iterator.hpp>
-#include <ndnboost/range/value_type.hpp>
-#include <ndnboost/algorithm/string/detail/find_format_store.hpp>
-#include <ndnboost/algorithm/string/detail/replace_storage.hpp>
-
-namespace ndnboost {
-    namespace algorithm {
-        namespace detail {
-
-// find_format_all_copy (iterator variant) implementation ---------------------------//
-
-           template< 
-                typename OutputIteratorT,
-                typename InputT,
-                typename FinderT,
-                typename FormatterT,
-                typename FindResultT,
-                typename FormatResultT >
-            inline OutputIteratorT find_format_all_copy_impl2(
-                OutputIteratorT Output,
-                const InputT& Input,
-                FinderT Finder,
-                FormatterT Formatter,
-                const FindResultT& FindResult,
-                const FormatResultT& FormatResult )
-            {       
-                typedef NDNBOOST_STRING_TYPENAME 
-                    range_const_iterator<InputT>::type input_iterator_type; 
-
-                typedef find_format_store<
-                        input_iterator_type, 
-                        FormatterT,
-                        FormatResultT > store_type;
-
-                // Create store for the find result
-                store_type M( FindResult, FormatResult, Formatter );
-
-                // Initialize last match
-                input_iterator_type LastMatch=::ndnboost::begin(Input);
-
-                // Iterate through all matches
-                while( M )
-                {
-                    // Copy the beginning of the sequence
-                    Output = std::copy( LastMatch, M.begin(), Output );
-                    // Copy formatted result
-                    Output = std::copy( ::ndnboost::begin(M.format_result()), ::ndnboost::end(M.format_result()), Output );
-
-                    // Proceed to the next match
-                    LastMatch=M.end();
-                    M=Finder( LastMatch, ::ndnboost::end(Input) );
-                }
-
-                // Copy the rest of the sequence
-                Output = std::copy( LastMatch, ::ndnboost::end(Input), Output );
-
-                return Output;
-            }
-
-            template< 
-                typename OutputIteratorT,
-                typename InputT,
-                typename FinderT,
-                typename FormatterT,
-                typename FindResultT >
-            inline OutputIteratorT find_format_all_copy_impl(
-                OutputIteratorT Output,
-                const InputT& Input,
-                FinderT Finder,
-                FormatterT Formatter,
-                const FindResultT& FindResult )
-            {   
-                if( ::ndnboost::algorithm::detail::check_find_result(Input, FindResult) ) {
-                    return ::ndnboost::algorithm::detail::find_format_all_copy_impl2( 
-                        Output,
-                        Input,
-                        Finder,
-                        Formatter,
-                        FindResult,
-                        Formatter(FindResult) );
-                } else {
-                    return std::copy( ::ndnboost::begin(Input), ::ndnboost::end(Input), Output );
-                }
-            }
-
- // find_format_all_copy implementation ----------------------------------------------//
-
-           template< 
-                typename InputT, 
-                typename FinderT,
-                typename FormatterT,
-                typename FindResultT,
-                typename FormatResultT >
-            inline InputT find_format_all_copy_impl2(
-                const InputT& Input,
-                FinderT Finder,
-                FormatterT Formatter,
-                const FindResultT& FindResult,
-                const FormatResultT& FormatResult)
-            {
-                typedef NDNBOOST_STRING_TYPENAME 
-                    range_const_iterator<InputT>::type input_iterator_type; 
-
-                typedef find_format_store<
-                        input_iterator_type, 
-                        FormatterT,
-                        FormatResultT > store_type;
-
-                // Create store for the find result
-                store_type M( FindResult, FormatResult, Formatter );
-
-                // Initialize last match
-                input_iterator_type LastMatch=::ndnboost::begin(Input);
-
-                // Output temporary
-                InputT Output;
-
-                // Iterate through all matches
-                while( M )
-                {
-                    // Copy the beginning of the sequence
-                    ndnboost::algorithm::detail::insert( Output, ::ndnboost::end(Output), LastMatch, M.begin() );
-                    // Copy formatted result
-                    ndnboost::algorithm::detail::insert( Output, ::ndnboost::end(Output), M.format_result() );
-
-                    // Proceed to the next match
-                    LastMatch=M.end();
-                    M=Finder( LastMatch, ::ndnboost::end(Input) );
-                }
-
-                // Copy the rest of the sequence
-                ::ndnboost::algorithm::detail::insert( Output, ::ndnboost::end(Output), LastMatch, ::ndnboost::end(Input) );
-
-                return Output;
-            }
-
-            template< 
-                typename InputT, 
-                typename FinderT,
-                typename FormatterT,
-                typename FindResultT >
-            inline InputT find_format_all_copy_impl(
-                const InputT& Input,
-                FinderT Finder,
-                FormatterT Formatter,
-                const FindResultT& FindResult)
-            {
-                if( ::ndnboost::algorithm::detail::check_find_result(Input, FindResult) ) {
-                    return ::ndnboost::algorithm::detail::find_format_all_copy_impl2(
-                        Input,
-                        Finder,
-                        Formatter,
-                        FindResult,
-                        Formatter(FindResult) );
-                } else {
-                    return Input;
-                }
-            }
-
- // find_format_all implementation ------------------------------------------------//
-        
-            template<
-                typename InputT,
-                typename FinderT,
-                typename FormatterT,
-                typename FindResultT,
-                typename FormatResultT >
-            inline void find_format_all_impl2( 
-                InputT& Input,
-                FinderT Finder,
-                FormatterT Formatter,
-                FindResultT FindResult,
-                FormatResultT FormatResult)
-            {
-                typedef NDNBOOST_STRING_TYPENAME 
-                    range_iterator<InputT>::type input_iterator_type; 
-                typedef find_format_store<
-                        input_iterator_type, 
-                        FormatterT,
-                        FormatResultT > store_type;
-
-                // Create store for the find result
-                store_type M( FindResult, FormatResult, Formatter );
-          
-                // Instantiate replacement storage
-                std::deque<
-                    NDNBOOST_STRING_TYPENAME range_value<InputT>::type> Storage;
-
-                // Initialize replacement iterators
-                input_iterator_type InsertIt=::ndnboost::begin(Input);
-                input_iterator_type SearchIt=::ndnboost::begin(Input);
-                
-                while( M )
-                {
-                    // process the segment
-                    InsertIt=process_segment( 
-                        Storage,
-                        Input,
-                        InsertIt,
-                        SearchIt,
-                        M.begin() );
-                    
-                    // Adjust search iterator
-                    SearchIt=M.end();
-
-                    // Copy formatted replace to the storage
-                    ::ndnboost::algorithm::detail::copy_to_storage( Storage, M.format_result() );
-
-                    // Find range for a next match
-                    M=Finder( SearchIt, ::ndnboost::end(Input) );
-                }
-
-                // process the last segment
-                InsertIt=::ndnboost::algorithm::detail::process_segment( 
-                    Storage,
-                    Input,
-                    InsertIt,
-                    SearchIt,
-                    ::ndnboost::end(Input) );
-                
-                if ( Storage.empty() )
-                {
-                    // Truncate input
-                    ::ndnboost::algorithm::detail::erase( Input, InsertIt, ::ndnboost::end(Input) );
-                }
-                else
-                {
-                    // Copy remaining data to the end of input
-                    ::ndnboost::algorithm::detail::insert( Input, ::ndnboost::end(Input), Storage.begin(), Storage.end() );
-                }
-            }
-
-            template<
-                typename InputT,
-                typename FinderT,
-                typename FormatterT,
-                typename FindResultT >
-            inline void find_format_all_impl( 
-                InputT& Input,
-                FinderT Finder,
-                FormatterT Formatter,
-                FindResultT FindResult)
-            {
-                if( ::ndnboost::algorithm::detail::check_find_result(Input, FindResult) ) {
-                    ::ndnboost::algorithm::detail::find_format_all_impl2(
-                        Input,
-                        Finder,
-                        Formatter,
-                        FindResult,
-                        Formatter(FindResult) );
-                }
-            }
-
-        } // namespace detail
-    } // namespace algorithm
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 89c137f..0000000
--- a/include/ndnboost/algorithm/string/detail/find_format_store.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//  Boost string_algo library find_format_store.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#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>
-
-namespace ndnboost {
-    namespace algorithm {
-        namespace detail {
-
-//  temporary format and find result storage --------------------------------//
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
-#pragma warning(push)
-#pragma warning(disable:4512) //assignment operator could not be generated
-#endif
-            template< 
-                typename ForwardIteratorT,
-                typename FormatterT,
-                typename FormatResultT >
-            class find_format_store : 
-                public iterator_range<ForwardIteratorT>
-            {
-            public:
-                // typedefs
-                typedef iterator_range<ForwardIteratorT> base_type;
-                typedef FormatterT  formatter_type;
-                typedef FormatResultT format_result_type;
-                
-            public:
-                // Construction
-                find_format_store( 
-                        const base_type& FindResult,
-                        const format_result_type& FormatResult,
-                        const formatter_type& Formatter ) :
-                    base_type(FindResult),
-                    m_FormatResult(FormatResult),
-                    m_Formatter(Formatter) {}
-
-                // Assignment
-                template< typename FindResultT >
-                find_format_store& operator=( FindResultT FindResult )
-                {
-                    iterator_range<ForwardIteratorT>::operator=(FindResult);
-                    if( !this->empty() ) {
-                        m_FormatResult=m_Formatter(FindResult);
-                    }
-                    
-                    return *this;
-                }
-
-                // Retrieve format result
-                const format_result_type& format_result()
-                {   
-                    return m_FormatResult;
-                }
-
-            private:
-                format_result_type m_FormatResult;
-                const formatter_type& m_Formatter;
-            };
-
-            template<typename InputT, typename FindResultT>
-            bool check_find_result(InputT&, FindResultT& FindResult)
-            {
-                typedef NDNBOOST_STRING_TYPENAME 
-                    range_const_iterator<InputT>::type input_iterator_type; 
-                iterator_range<input_iterator_type> ResultRange(FindResult);
-                return !ResultRange.empty();
-            }
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
-#pragma warning(pop)
-#endif
-        } // namespace detail
-    } // namespace algorithm
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 6446e92..0000000
--- a/include/ndnboost/algorithm/string/detail/finder.hpp
+++ /dev/null
@@ -1,646 +0,0 @@
-//  Boost string_algo library finder.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_FINDER_DETAIL_HPP
-#define NDNBOOST_STRING_FINDER_DETAIL_HPP
-
-#include <ndnboost/algorithm/string/config.hpp>
-#include <ndnboost/algorithm/string/constants.hpp>
-#include <ndnboost/detail/iterator.hpp>
-
-#include <ndnboost/range/iterator_range.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/empty.hpp>
-#include <ndnboost/range/as_literal.hpp>
-
-namespace ndnboost {
-    namespace algorithm {
-        namespace detail {
-
-
-//  find first functor -----------------------------------------------//
-
-            // find a subsequence in the sequence ( functor )
-            /*
-                Returns a pair <begin,end> marking the subsequence in the sequence.
-                If the find fails, functor returns <End,End>
-            */
-            template<typename SearchIteratorT,typename PredicateT>
-            struct first_finderF
-            {
-                typedef SearchIteratorT search_iterator_type;
-
-                // Construction
-                template< typename SearchT >
-                first_finderF( const SearchT& Search, PredicateT Comp ) :
-                    m_Search(::ndnboost::begin(Search), ::ndnboost::end(Search)), m_Comp(Comp) {}
-                first_finderF(
-                        search_iterator_type SearchBegin,
-                        search_iterator_type SearchEnd,
-                        PredicateT Comp ) :
-                    m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {}
-
-                // Operation
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                operator()(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End ) const
-                {
-                    typedef iterator_range<ForwardIteratorT> result_type;
-                    typedef ForwardIteratorT input_iterator_type;
-
-                    // Outer loop
-                    for(input_iterator_type OuterIt=Begin;
-                        OuterIt!=End;
-                        ++OuterIt)
-                    {
-                        // Sanity check
-                        if( ndnboost::empty(m_Search) )
-                            return result_type( End, End );
-
-                        input_iterator_type InnerIt=OuterIt;
-                        search_iterator_type SubstrIt=m_Search.begin();
-                        for(;
-                            InnerIt!=End && SubstrIt!=m_Search.end();
-                            ++InnerIt,++SubstrIt)
-                        {
-                            if( !( m_Comp(*InnerIt,*SubstrIt) ) )
-                                break;
-                        }
-
-                        // Substring matching succeeded
-                        if ( SubstrIt==m_Search.end() )
-                            return result_type( OuterIt, InnerIt );
-                    }
-
-                    return result_type( End, End );
-                }
-
-            private:
-                iterator_range<search_iterator_type> m_Search;
-                PredicateT m_Comp;
-            };
-
-//  find last functor -----------------------------------------------//
-
-            // find the last match a subsequence in the sequence ( functor )
-            /*
-                Returns a pair <begin,end> marking the subsequence in the sequence.
-                If the find fails, returns <End,End>
-            */
-            template<typename SearchIteratorT, typename PredicateT>
-            struct last_finderF
-            {
-                typedef SearchIteratorT search_iterator_type;
-                typedef first_finderF<
-                    search_iterator_type,
-                    PredicateT> first_finder_type;
-
-                // Construction
-                template< typename SearchT >
-                last_finderF( const SearchT& Search, PredicateT Comp ) :
-                    m_Search(::ndnboost::begin(Search), ::ndnboost::end(Search)), m_Comp(Comp) {}
-                last_finderF(
-                        search_iterator_type SearchBegin,
-                        search_iterator_type SearchEnd,
-                        PredicateT Comp ) :
-                    m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {}
-
-                // Operation
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                operator()(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End ) const
-                {
-                    typedef iterator_range<ForwardIteratorT> result_type;
-
-                    if( ndnboost::empty(m_Search) )
-                        return result_type( End, End );
-
-                    typedef NDNBOOST_STRING_TYPENAME ndnboost::detail::
-                        iterator_traits<ForwardIteratorT>::iterator_category category;
-
-                    return findit( Begin, End, category() );
-                }
-
-            private:
-                // forward iterator
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                findit(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End,
-                    std::forward_iterator_tag ) const
-                {
-                    typedef ForwardIteratorT input_iterator_type;
-                    typedef iterator_range<ForwardIteratorT> result_type;
-
-                    first_finder_type first_finder(
-                        m_Search.begin(), m_Search.end(), m_Comp );
-
-                    result_type M=first_finder( Begin, End );
-                    result_type Last=M;
-
-                    while( M )
-                    {
-                        Last=M;
-                        M=first_finder( ::ndnboost::end(M), End );
-                    }
-
-                    return Last;
-                }
-
-                // bidirectional iterator
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                findit(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End,
-                    std::bidirectional_iterator_tag ) const
-                {
-                    typedef iterator_range<ForwardIteratorT> result_type;
-                    typedef ForwardIteratorT input_iterator_type;
-
-                    // Outer loop
-                    for(input_iterator_type OuterIt=End;
-                        OuterIt!=Begin; )
-                    {
-                        input_iterator_type OuterIt2=--OuterIt;
-
-                        input_iterator_type InnerIt=OuterIt2;
-                        search_iterator_type SubstrIt=m_Search.begin();
-                        for(;
-                            InnerIt!=End && SubstrIt!=m_Search.end();
-                            ++InnerIt,++SubstrIt)
-                        {
-                            if( !( m_Comp(*InnerIt,*SubstrIt) ) )
-                                break;
-                        }
-
-                        // Substring matching succeeded
-                        if( SubstrIt==m_Search.end() )
-                            return result_type( OuterIt2, InnerIt );
-                    }
-
-                    return result_type( End, End );
-                }
-
-            private:
-                iterator_range<search_iterator_type> m_Search;
-                PredicateT m_Comp;
-            };
-
-//  find n-th functor -----------------------------------------------//
-
-            // find the n-th match of a subsequence in the sequence ( functor )
-            /*
-                Returns a pair <begin,end> marking the subsequence in the sequence.
-                If the find fails, returns <End,End>
-            */
-            template<typename SearchIteratorT, typename PredicateT>
-            struct nth_finderF
-            {
-                typedef SearchIteratorT search_iterator_type;
-                typedef first_finderF<
-                    search_iterator_type,
-                    PredicateT> first_finder_type;
-                typedef last_finderF<
-                    search_iterator_type,
-                    PredicateT> last_finder_type;
-
-                // Construction
-                template< typename SearchT >
-                nth_finderF(
-                        const SearchT& Search,
-                        int Nth,
-                        PredicateT Comp) :
-                    m_Search(::ndnboost::begin(Search), ::ndnboost::end(Search)),
-                    m_Nth(Nth),
-                    m_Comp(Comp) {}
-                nth_finderF(
-                        search_iterator_type SearchBegin,
-                        search_iterator_type SearchEnd,
-                        int Nth,
-                        PredicateT Comp) :
-                    m_Search(SearchBegin, SearchEnd),
-                    m_Nth(Nth),
-                    m_Comp(Comp) {}
-
-                // Operation
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                operator()(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End ) const
-                {
-                    if(m_Nth>=0)
-                    {
-                        return find_forward(Begin, End, m_Nth);
-                    }
-                    else
-                    {
-                        return find_backward(Begin, End, -m_Nth);
-                    }
-
-                }
-
-            private:
-                // Implementation helpers
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                find_forward(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End,
-                    unsigned int N) const
-                {
-                    typedef ForwardIteratorT input_iterator_type;
-                    typedef iterator_range<ForwardIteratorT> result_type;
-
-                    // Sanity check
-                    if( ndnboost::empty(m_Search) )
-                        return result_type( End, End );
-
-                    // Instantiate find functor
-                    first_finder_type first_finder(
-                        m_Search.begin(), m_Search.end(), m_Comp );
-
-                    result_type M( Begin, Begin );
-
-                    for( unsigned int n=0; n<=N; ++n )
-                    {
-                        // find next match
-                        M=first_finder( ::ndnboost::end(M), End );
-
-                        if ( !M )
-                        {
-                            // Subsequence not found, return
-                            return M;
-                        }
-                    }
-
-                    return M;
-                }
-
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                find_backward(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End,
-                    unsigned int N) const
-                {
-                    typedef ForwardIteratorT input_iterator_type;
-                    typedef iterator_range<ForwardIteratorT> result_type;
-
-                    // Sanity check
-                    if( ndnboost::empty(m_Search) )
-                        return result_type( End, End );
-
-                    // Instantiate find functor
-                    last_finder_type last_finder(
-                        m_Search.begin(), m_Search.end(), m_Comp );
-
-                    result_type M( End, End );
-
-                    for( unsigned int n=1; n<=N; ++n )
-                    {
-                        // find next match
-                        M=last_finder( Begin, ::ndnboost::begin(M) );
-
-                        if ( !M )
-                        {
-                            // Subsequence not found, return
-                            return M;
-                        }
-                    }
-
-                    return M;
-                }
-
-
-            private:
-                iterator_range<search_iterator_type> m_Search;
-                int m_Nth;
-                PredicateT m_Comp;
-            };
-
-//  find head/tail implementation helpers ---------------------------//
-
-            template<typename ForwardIteratorT>
-                iterator_range<ForwardIteratorT>
-            find_head_impl(
-                ForwardIteratorT Begin,
-                ForwardIteratorT End,
-                unsigned int N,
-                std::forward_iterator_tag )
-            {
-                typedef ForwardIteratorT input_iterator_type;
-                typedef iterator_range<ForwardIteratorT> result_type;
-
-                input_iterator_type It=Begin;
-                for(
-                    unsigned int Index=0;
-                    Index<N && It!=End; ++Index,++It ) {};
-
-                return result_type( Begin, It );
-            }
-
-            template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-            find_head_impl(
-                ForwardIteratorT Begin,
-                ForwardIteratorT End,
-                unsigned int N,
-                std::random_access_iterator_tag )
-            {
-                typedef ForwardIteratorT input_iterator_type;
-                typedef iterator_range<ForwardIteratorT> result_type;
-
-                if ( (End<=Begin) || ( static_cast<unsigned int>(End-Begin) < N ) )
-                    return result_type( Begin, End );
-
-                return result_type(Begin,Begin+N);
-            }
-
-            // Find head implementation
-            template<typename ForwardIteratorT>
-                iterator_range<ForwardIteratorT>
-            find_head_impl(
-                ForwardIteratorT Begin,
-                ForwardIteratorT End,
-                unsigned int N )
-            {
-                typedef NDNBOOST_STRING_TYPENAME ndnboost::detail::
-                    iterator_traits<ForwardIteratorT>::iterator_category category;
-
-                return ::ndnboost::algorithm::detail::find_head_impl( Begin, End, N, category() );
-            }
-
-            template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-            find_tail_impl(
-                ForwardIteratorT Begin,
-                ForwardIteratorT End,
-                unsigned int N,
-                std::forward_iterator_tag )
-            {
-                typedef ForwardIteratorT input_iterator_type;
-                typedef iterator_range<ForwardIteratorT> result_type;
-
-                unsigned int Index=0;
-                input_iterator_type It=Begin;
-                input_iterator_type It2=Begin;
-
-                // Advance It2 by N increments
-                for( Index=0; Index<N && It2!=End; ++Index,++It2 ) {};
-
-                // Advance It, It2 to the end
-                for(; It2!=End; ++It,++It2 ) {};
-
-                return result_type( It, It2 );
-            }
-
-            template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-            find_tail_impl(
-                ForwardIteratorT Begin,
-                ForwardIteratorT End,
-                unsigned int N,
-                std::bidirectional_iterator_tag )
-            {
-                typedef ForwardIteratorT input_iterator_type;
-                typedef iterator_range<ForwardIteratorT> result_type;
-
-                input_iterator_type It=End;
-                for(
-                    unsigned int Index=0;
-                    Index<N && It!=Begin; ++Index,--It ) {};
-
-                return result_type( It, End );
-            }
-
-            template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-            find_tail_impl(
-                ForwardIteratorT Begin,
-                ForwardIteratorT End,
-                unsigned int N,
-                std::random_access_iterator_tag )
-            {
-                typedef ForwardIteratorT input_iterator_type;
-                typedef iterator_range<ForwardIteratorT> result_type;
-
-                if ( (End<=Begin) || ( static_cast<unsigned int>(End-Begin) < N ) )
-                    return result_type( Begin, End );
-
-                return result_type( End-N, End );
-            }
-
-                        // Operation
-            template< typename ForwardIteratorT >
-            iterator_range<ForwardIteratorT>
-            find_tail_impl(
-                ForwardIteratorT Begin,
-                ForwardIteratorT End,
-                unsigned int N )
-            {
-                typedef NDNBOOST_STRING_TYPENAME ndnboost::detail::
-                    iterator_traits<ForwardIteratorT>::iterator_category category;
-
-                return ::ndnboost::algorithm::detail::find_tail_impl( Begin, End, N, category() );
-            }
-
-
-
-//  find head functor -----------------------------------------------//
-
-
-            // find a head in the sequence ( functor )
-            /*
-                This functor find a head of the specified range. For
-                a specified N, the head is a subsequence of N starting
-                elements of the range.
-            */
-            struct head_finderF
-            {
-                // Construction
-                head_finderF( int N ) : m_N(N) {}
-
-                // Operation
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                operator()(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End ) const
-                {
-                    if(m_N>=0)
-                    {
-                        return ::ndnboost::algorithm::detail::find_head_impl( Begin, End, m_N );
-                    }
-                    else
-                    {
-                        iterator_range<ForwardIteratorT> Res=
-                            ::ndnboost::algorithm::detail::find_tail_impl( Begin, End, -m_N );
-
-                        return ::ndnboost::make_iterator_range(Begin, Res.begin());
-                    }
-                }
-
-            private:
-                int m_N;
-            };
-
-//  find tail functor -----------------------------------------------//
-
-
-            // find a tail in the sequence ( functor )
-            /*
-                This functor find a tail of the specified range. For
-                a specified N, the head is a subsequence of N starting
-                elements of the range.
-            */
-            struct tail_finderF
-            {
-                // Construction
-                tail_finderF( int N ) : m_N(N) {}
-
-                // Operation
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                operator()(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End ) const
-                {
-                    if(m_N>=0)
-                    {
-                        return ::ndnboost::algorithm::detail::find_tail_impl( Begin, End, m_N );
-                    }
-                    else
-                    {
-                        iterator_range<ForwardIteratorT> Res=
-                            ::ndnboost::algorithm::detail::find_head_impl( Begin, End, -m_N );
-
-                        return ::ndnboost::make_iterator_range(Res.end(), End);
-                    }
-                }
-
-            private:
-                int m_N;
-            };
-
-//  find token functor -----------------------------------------------//
-
-            // find a token in a sequence ( functor )
-            /*
-                This find functor finds a token specified be a predicate
-                in a sequence. It is equivalent of std::find algorithm,
-                with an exception that it return range instead of a single
-                iterator.
-
-                If bCompress is set to true, adjacent matching tokens are
-                concatenated into one match.
-            */
-            template< typename PredicateT >
-            struct token_finderF
-            {
-                // Construction
-                token_finderF(
-                    PredicateT Pred,
-                    token_compress_mode_type eCompress=token_compress_off ) :
-                        m_Pred(Pred), m_eCompress(eCompress) {}
-
-                // Operation
-                template< typename ForwardIteratorT >
-                iterator_range<ForwardIteratorT>
-                operator()(
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End ) const
-                {
-                    typedef iterator_range<ForwardIteratorT> result_type;
-
-                    ForwardIteratorT It=std::find_if( Begin, End, m_Pred );
-
-                    if( It==End )
-                    {
-                        return result_type( End, End );
-                    }
-                    else
-                    {
-                        ForwardIteratorT It2=It;
-
-                        if( m_eCompress==token_compress_on )
-                        {
-                            // Find first non-matching character
-                            while( It2!=End && m_Pred(*It2) ) ++It2;
-                        }
-                        else
-                        {
-                            // Advance by one position
-                            ++It2;
-                        }
-
-                        return result_type( It, It2 );
-                    }
-                }
-
-            private:
-                PredicateT m_Pred;
-                token_compress_mode_type m_eCompress;
-            };
-
-//  find range functor -----------------------------------------------//
-
-            // find a range in the sequence ( functor )
-            /*
-                This functor actually does not perform any find operation.
-                It always returns given iterator range as a result.
-            */
-            template<typename ForwardIterator1T>
-            struct range_finderF
-            {
-                typedef ForwardIterator1T input_iterator_type;
-                typedef iterator_range<input_iterator_type> result_type;
-
-                // Construction
-                range_finderF(
-                    input_iterator_type Begin,
-                    input_iterator_type End ) : m_Range(Begin, End) {}
-
-                range_finderF(const iterator_range<input_iterator_type>& Range) :
-                    m_Range(Range) {}
-
-                // Operation
-                template< typename ForwardIterator2T >
-                iterator_range<ForwardIterator2T>
-                operator()(
-                    ForwardIterator2T,
-                    ForwardIterator2T ) const
-                {
-#if NDNBOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) 
-                    return iterator_range<const ForwardIterator2T>(this->m_Range);
-#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-                    return iterator_range<ForwardIterator2T>(m_Range.begin(), m_Range.end());
-#else
-                    return m_Range;
-#endif
-                }
-
-            private:
-                iterator_range<input_iterator_type> m_Range;
-            };
-
-
-        } // namespace detail
-    } // namespace algorithm
-} // namespace ndnboost
-
-#endif  // NDNBOOST_STRING_FINDER_DETAIL_HPP
diff --git a/include/ndnboost/algorithm/string/detail/formatter.hpp b/include/ndnboost/algorithm/string/detail/formatter.hpp
deleted file mode 100644
index 14e5dee..0000000
--- a/include/ndnboost/algorithm/string/detail/formatter.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//  Boost string_algo library formatter.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_FORMATTER_DETAIL_HPP
-#define NDNBOOST_STRING_FORMATTER_DETAIL_HPP
-
-
-#include <ndnboost/range/iterator_range.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/const_iterator.hpp>
-
-#include <ndnboost/algorithm/string/detail/util.hpp>
-
-//  generic replace functors -----------------------------------------------//
-
-namespace ndnboost {
-    namespace algorithm {
-        namespace detail {
-
-//  const format functor ----------------------------------------------------//
-
-            // constant format functor
-            template<typename RangeT>
-            struct const_formatF
-            {
-            private:
-                typedef NDNBOOST_STRING_TYPENAME
-                    range_const_iterator<RangeT>::type format_iterator;
-                typedef iterator_range<format_iterator> result_type;
-            
-            public:
-                // Construction
-                const_formatF(const RangeT& Format) :
-                    m_Format(::ndnboost::begin(Format), ::ndnboost::end(Format)) {}
-
-                // Operation
-#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
-                template<typename Range2T>
-                result_type& operator()(const Range2T&)
-                {
-                    return m_Format;
-                }
-#endif
-
-                template<typename Range2T>
-                const result_type& operator()(const Range2T&) const
-                {
-                    return m_Format;
-                }
-
-            private:
-                result_type m_Format;
-            };
-
-//  identity format functor ----------------------------------------------------//
-
-            // identity format functor
-            template<typename RangeT>
-            struct identity_formatF
-            {
-                // Operation
-                template< typename Range2T >
-                const RangeT& operator()(const Range2T& Replace) const
-                {
-                    return RangeT(::ndnboost::begin(Replace), ::ndnboost::end(Replace));
-                }
-            };
-
-//  empty format functor ( used by erase ) ------------------------------------//
-        
-            // empty format functor
-            template< typename CharT >
-            struct empty_formatF
-            {
-                template< typename ReplaceT >
-                empty_container<CharT> operator()(const ReplaceT&) const
-                {
-                    return empty_container<CharT>();
-                }
-            };
-
-//  dissect format functor ----------------------------------------------------//
-
-            // dissect format functor
-            template<typename FinderT>
-            struct dissect_formatF
-            {
-            public:
-                // Construction
-                dissect_formatF(FinderT Finder) :
-                  m_Finder(Finder) {}
-
-                  // Operation
-                  template<typename RangeT>
-                  inline iterator_range< 
-                      NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
-                  operator()(const RangeT& Replace) const
-                  {
-                      return m_Finder(::ndnboost::begin(Replace), ::ndnboost::end(Replace));
-                  }
-
-            private:
-                FinderT m_Finder;
-            };
-
-
-        } // namespace detail
-    } // namespace algorithm
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 274d858..0000000
--- a/include/ndnboost/algorithm/string/detail/replace_storage.hpp
+++ /dev/null
@@ -1,159 +0,0 @@
-//  Boost string_algo library replace_storage.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
-#define NDNBOOST_STRING_REPLACE_STORAGE_DETAIL_HPP
-
-#include <ndnboost/algorithm/string/config.hpp>
-#include <algorithm>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/algorithm/string/sequence_traits.hpp>
-#include <ndnboost/algorithm/string/detail/sequence.hpp>
-
-namespace ndnboost {
-    namespace algorithm {
-        namespace detail {
-
-//  storage handling routines -----------------------------------------------//
-            
-            template< typename StorageT, typename OutputIteratorT >
-            inline OutputIteratorT move_from_storage(
-                StorageT& Storage,
-                OutputIteratorT DestBegin,
-                OutputIteratorT DestEnd )
-            {
-                OutputIteratorT OutputIt=DestBegin;
-                
-                while( !Storage.empty() && OutputIt!=DestEnd )
-                {
-                    *OutputIt=Storage.front();
-                    Storage.pop_front();
-                    ++OutputIt;
-                }
-
-                return OutputIt;
-            }
-
-            template< typename StorageT, typename WhatT >
-            inline void copy_to_storage(
-                StorageT& Storage,
-                const WhatT& What )
-            {
-                Storage.insert( Storage.end(), ::ndnboost::begin(What), ::ndnboost::end(What) );
-            }
-
-
-//  process segment routine -----------------------------------------------//
-
-            template< bool HasStableIterators >
-            struct process_segment_helper
-            {
-                // Optimized version of process_segment for generic sequence
-                template< 
-                    typename StorageT,
-                    typename InputT,
-                    typename ForwardIteratorT >
-                ForwardIteratorT operator()(
-                    StorageT& Storage,
-                    InputT& /*Input*/,
-                    ForwardIteratorT InsertIt,
-                    ForwardIteratorT SegmentBegin,
-                    ForwardIteratorT SegmentEnd )
-                {
-                    // Copy data from the storage until the beginning of the segment
-                    ForwardIteratorT It=::ndnboost::algorithm::detail::move_from_storage( Storage, InsertIt, SegmentBegin );
-
-                    // 3 cases are possible :
-                    //   a) Storage is empty, It==SegmentBegin
-                    //   b) Storage is empty, It!=SegmentBegin
-                    //   c) Storage is not empty
-
-                    if( Storage.empty() )
-                    {
-                        if( It==SegmentBegin )
-                        {
-                            // Case a) everything is grand, just return end of segment
-                            return SegmentEnd;
-                        }
-                        else
-                        {
-                            // Case b) move the segment backwards
-                            return std::copy( SegmentBegin, SegmentEnd, It );
-                        }
-                    }
-                    else
-                    {
-                        // Case c) -> shift the segment to the left and keep the overlap in the storage
-                        while( It!=SegmentEnd )
-                        {
-                            // Store value into storage
-                            Storage.push_back( *It );
-                            // Get the top from the storage and put it here
-                            *It=Storage.front();
-                            Storage.pop_front();
-
-                            // Advance
-                            ++It;
-                        }
-
-                        return It;
-                    }
-                }
-            };
-
-            template<>
-            struct process_segment_helper< true >
-            {
-                // Optimized version of process_segment for list-like sequence
-                template< 
-                    typename StorageT,
-                    typename InputT,
-                    typename ForwardIteratorT >
-                ForwardIteratorT operator()(
-                    StorageT& Storage,
-                    InputT& Input,
-                    ForwardIteratorT InsertIt,
-                    ForwardIteratorT SegmentBegin,
-                    ForwardIteratorT SegmentEnd )
-
-                {
-                    // Call replace to do the job
-                    ::ndnboost::algorithm::detail::replace( Input, InsertIt, SegmentBegin, Storage );
-                    // Empty the storage
-                    Storage.clear();
-                    // Iterators were not changed, simply return the end of segment
-                    return SegmentEnd;
-                }
-            };
-
-            // Process one segment in the replace_all algorithm
-            template< 
-                typename StorageT,
-                typename InputT,
-                typename ForwardIteratorT >
-            inline ForwardIteratorT process_segment(
-                StorageT& Storage,
-                InputT& Input,
-                ForwardIteratorT InsertIt,
-                ForwardIteratorT SegmentBegin,
-                ForwardIteratorT SegmentEnd )
-            {
-                return 
-                    process_segment_helper< 
-                        has_stable_iterators<InputT>::value>()(
-                                Storage, Input, InsertIt, SegmentBegin, SegmentEnd );
-            }
-            
-
-        } // namespace detail
-    } // namespace algorithm
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index be67f29..0000000
--- a/include/ndnboost/algorithm/string/detail/sequence.hpp
+++ /dev/null
@@ -1,200 +0,0 @@
-//  Boost string_algo library sequence.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_DETAIL_SEQUENCE_HPP
-#define NDNBOOST_STRING_DETAIL_SEQUENCE_HPP
-
-#include <ndnboost/algorithm/string/config.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/logical.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-
-#include <ndnboost/algorithm/string/sequence_traits.hpp>
-
-namespace ndnboost {
-    namespace algorithm {
-        namespace detail {
-
-//  insert helpers  -------------------------------------------------//
-        
-            template< typename InputT, typename ForwardIteratorT >
-            inline void insert(
-                InputT& Input,
-                NDNBOOST_STRING_TYPENAME InputT::iterator At,
-                ForwardIteratorT Begin,
-                ForwardIteratorT End )
-            {
-                Input.insert( At, Begin, End );
-            }
-
-            template< typename InputT, typename InsertT >
-            inline void insert(
-                InputT& Input,
-                NDNBOOST_STRING_TYPENAME InputT::iterator At,
-                const InsertT& Insert )
-            {
-                ::ndnboost::algorithm::detail::insert( Input, At, ::ndnboost::begin(Insert), ::ndnboost::end(Insert) );
-            }
-           
-//  erase helper  ---------------------------------------------------//
-
-            // Erase a range in the sequence
-            /*
-                Returns the iterator pointing just after the erase subrange
-            */
-            template< typename InputT >
-            inline typename InputT::iterator erase(
-                InputT& Input,
-                NDNBOOST_STRING_TYPENAME InputT::iterator From,
-                NDNBOOST_STRING_TYPENAME InputT::iterator To )
-            {
-                return Input.erase( From, To );
-            }
-
-//  replace helper implementation  ----------------------------------//
-
-            // Optimized version of replace for generic sequence containers
-            // Assumption: insert and erase are expensive
-            template< bool HasConstTimeOperations >
-            struct replace_const_time_helper
-            {
-                template< typename InputT, typename ForwardIteratorT >
-                void operator()(
-                    InputT& Input,
-                    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;
-                    NDNBOOST_STRING_TYPENAME InputT::iterator InputIt=From;
-                    for(; InsertIt!=End && InputIt!=To; InsertIt++, InputIt++ )
-                    {
-                        *InputIt=*InsertIt;
-                    }
-
-                    if ( InsertIt!=End )
-                    {
-                        // Replace sequence is longer, insert it
-                        Input.insert( InputIt, InsertIt, End );
-                    }
-                    else
-                    {
-                        if ( InputIt!=To )
-                        {
-                            // Replace sequence is shorter, erase the rest
-                            Input.erase( InputIt, To );
-                        }
-                    }
-                }
-            };
-
-            template<>
-            struct replace_const_time_helper< true >
-            {
-                // Const-time erase and insert methods -> use them
-                template< typename InputT, typename ForwardIteratorT >
-                void operator()(
-                    InputT& Input,
-                    NDNBOOST_STRING_TYPENAME InputT::iterator From,
-                    NDNBOOST_STRING_TYPENAME InputT::iterator To,
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End ) 
-                {
-                    NDNBOOST_STRING_TYPENAME InputT::iterator At=Input.erase( From, To );
-                    if ( Begin!=End )
-                    {
-                        if(!Input.empty())
-                        {
-                            Input.insert( At, Begin, End );
-                        }
-                        else
-                        {
-                            Input.insert( Input.begin(), Begin, End );
-                        }
-                    }
-                }
-            };
-
-            // No native replace method
-            template< bool HasNative >
-            struct replace_native_helper
-            {
-                template< typename InputT, typename ForwardIteratorT >
-                void operator()(
-                    InputT& Input,
-                    NDNBOOST_STRING_TYPENAME InputT::iterator From,
-                    NDNBOOST_STRING_TYPENAME InputT::iterator To,
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End ) 
-                {
-                    replace_const_time_helper< 
-                        ndnboost::mpl::and_<
-                            has_const_time_insert<InputT>,
-                            has_const_time_erase<InputT> >::value >()(
-                        Input, From, To, Begin, End );
-                }
-            };
-
-            // Container has native replace method
-            template<>
-            struct replace_native_helper< true >
-            {
-                template< typename InputT, typename ForwardIteratorT >
-                void operator()(
-                    InputT& Input,
-                    NDNBOOST_STRING_TYPENAME InputT::iterator From,
-                    NDNBOOST_STRING_TYPENAME InputT::iterator To,
-                    ForwardIteratorT Begin,
-                    ForwardIteratorT End )
-                {
-                    Input.replace( From, To, Begin, End );
-                }
-            };
-
-//  replace helper  -------------------------------------------------//
-        
-            template< typename InputT, typename ForwardIteratorT >
-            inline void replace(
-                InputT& Input,
-                NDNBOOST_STRING_TYPENAME InputT::iterator From,
-                NDNBOOST_STRING_TYPENAME InputT::iterator To,
-                ForwardIteratorT Begin,
-                ForwardIteratorT End )
-            {
-                replace_native_helper< has_native_replace<InputT>::value >()(
-                    Input, From, To, Begin, End );
-            }
-
-            template< typename InputT, typename InsertT >
-            inline void replace(
-                InputT& Input,
-                NDNBOOST_STRING_TYPENAME InputT::iterator From,
-                NDNBOOST_STRING_TYPENAME InputT::iterator To,
-                const InsertT& Insert )
-            {
-                if(From!=To)
-                {
-                    ::ndnboost::algorithm::detail::replace( Input, From, To, ::ndnboost::begin(Insert), ::ndnboost::end(Insert) );
-                }
-                else
-                {
-                    ::ndnboost::algorithm::detail::insert( Input, From, ::ndnboost::begin(Insert), ::ndnboost::end(Insert) );
-                }
-            }
-
-        } // namespace detail
-    } // namespace algorithm
-} // namespace ndnboost
-
-
-#endif  // NDNBOOST_STRING_DETAIL_SEQUENCE_HPP
diff --git a/include/ndnboost/algorithm/string/detail/util.hpp b/include/ndnboost/algorithm/string/detail/util.hpp
deleted file mode 100644
index c83893d..0000000
--- a/include/ndnboost/algorithm/string/detail/util.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//  Boost string_algo library util.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_UTIL_DETAIL_HPP
-#define NDNBOOST_STRING_UTIL_DETAIL_HPP
-
-#include <ndnboost/algorithm/string/config.hpp>
-#include <functional>
-#include <ndnboost/range/iterator_range.hpp>
-
-namespace ndnboost {
-    namespace algorithm {
-        namespace detail {
-
-//  empty container  -----------------------------------------------//
-
-            //  empty_container 
-            /*
-                This class represents always empty container,
-                containing elements of type CharT.
-
-                It is supposed to be used in a const version only
-            */
-            template< typename CharT >
-            struct empty_container 
-            {
-                typedef empty_container<CharT> type;        
-                typedef CharT value_type;
-                typedef std::size_t size_type;
-                typedef std::ptrdiff_t difference_type;
-                typedef const value_type& reference;
-                typedef const value_type& const_reference;
-                typedef const value_type* iterator;
-                typedef const value_type* const_iterator;
-
-                
-                // Operations
-                const_iterator begin() const
-                {
-                    return reinterpret_cast<const_iterator>(0);
-                }
-
-                const_iterator end() const
-                {
-                    return reinterpret_cast<const_iterator>(0);
-                }
-
-                bool empty() const
-                {
-                    return false;
-                }
-
-                size_type size() const
-                {
-                    return 0;
-                }
-            };
-    
-//  bounded copy algorithm  -----------------------------------------------//
-
-            // Bounded version of the std::copy algorithm
-            template<typename InputIteratorT, typename OutputIteratorT>
-            inline OutputIteratorT bounded_copy(
-                InputIteratorT First, 
-                InputIteratorT Last, 
-                OutputIteratorT DestFirst,
-                OutputIteratorT DestLast )
-            {
-                InputIteratorT InputIt=First;
-                OutputIteratorT OutputIt=DestFirst;
-                for(; InputIt!=Last && OutputIt!=DestLast; InputIt++, OutputIt++ )
-                {
-                    *OutputIt=*InputIt;
-                }
-
-                return OutputIt;
-            }
-
-//  iterator range utilities -----------------------------------------//
-
-            // copy range functor
-            template< 
-                typename SeqT, 
-                typename IteratorT=NDNBOOST_STRING_TYPENAME SeqT::const_iterator >
-            struct copy_iterator_rangeF : 
-                public std::unary_function< iterator_range<IteratorT>, SeqT >
-            {
-                SeqT operator()( const iterator_range<IteratorT>& Range ) const
-                {
-                    return copy_range<SeqT>(Range);
-                }
-            };
-
-        } // namespace detail
-    } // namespace algorithm
-} // namespace ndnboost
-
-
-#endif  // NDNBOOST_STRING_UTIL_DETAIL_HPP
diff --git a/include/ndnboost/algorithm/string/find_format.hpp b/include/ndnboost/algorithm/string/find_format.hpp
deleted file mode 100644
index 7b7dd3e..0000000
--- a/include/ndnboost/algorithm/string/find_format.hpp
+++ /dev/null
@@ -1,287 +0,0 @@
-//  Boost string_algo library find_format.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_FIND_FORMAT_HPP
-#define NDNBOOST_STRING_FIND_FORMAT_HPP
-
-#include <deque>
-#include <ndnboost/detail/iterator.hpp>
-#include <ndnboost/range/iterator_range.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/const_iterator.hpp>
-#include <ndnboost/range/as_literal.hpp>
-
-#include <ndnboost/algorithm/string/concept.hpp>
-#include <ndnboost/algorithm/string/detail/find_format.hpp>
-#include <ndnboost/algorithm/string/detail/find_format_all.hpp>
-
-/*! \file
-    Defines generic replace algorithms. Each algorithm replaces
-    part(s) of the input. The part to be replaced is looked up using a Finder object.
-    Result of finding is then used by a Formatter object to generate the replacement.
-*/
-
-namespace ndnboost {
-    namespace algorithm {
-
-// generic replace  -----------------------------------------------------------------//
-
-        //! Generic replace algorithm
-        /*!
-            Use the Finder to search for a substring. Use the Formatter to format
-            this substring and replace it in the input.
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-    
-            \param Output An output iterator to which the result will be copied
-            \param Input An input sequence
-            \param Finder A Finder object used to search for a match to be replaced
-            \param Formatter A Formatter object used to format a match
-            \return An output iterator pointing just after the last inserted character or
-                a modified copy of the input
-
-            \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template< 
-            typename OutputIteratorT,
-            typename RangeT,
-            typename FinderT,
-            typename FormatterT>
-        inline OutputIteratorT find_format_copy(
-            OutputIteratorT Output,
-            const RangeT& Input,
-            FinderT Finder,
-            FormatterT Formatter )
-        {
-            // Concept check
-            NDNBOOST_CONCEPT_ASSERT((
-                FinderConcept<
-                    FinderT,
-                    NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
-                ));
-            NDNBOOST_CONCEPT_ASSERT((
-                FormatterConcept<
-                    FormatterT,
-                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
-                ));
-
-            iterator_range<NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(::ndnboost::as_literal(Input));
-
-            return detail::find_format_copy_impl(
-                Output,
-                lit_input,
-                Formatter,
-                Finder( ::ndnboost::begin(lit_input), ::ndnboost::end(lit_input) ) );
-        }
-
-        //! Generic replace algorithm
-        /*!
-            \overload
-        */
-        template< 
-            typename SequenceT, 
-            typename FinderT,
-            typename FormatterT>
-        inline SequenceT find_format_copy(
-            const SequenceT& Input,
-            FinderT Finder,
-            FormatterT Formatter )
-        {
-            // Concept check
-            NDNBOOST_CONCEPT_ASSERT((
-                FinderConcept<
-                    FinderT,
-                    NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
-                ));
-            NDNBOOST_CONCEPT_ASSERT((
-                FormatterConcept<
-                    FormatterT,
-                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
-                ));
-
-            return detail::find_format_copy_impl(
-                Input,
-                Formatter,
-                Finder(::ndnboost::begin(Input), ::ndnboost::end(Input)));
-        }
-
-        //! Generic replace algorithm
-        /*!
-            Use the Finder to search for a substring. Use the Formatter to format
-            this substring and replace it in the input. The input is modified in-place.
-
-            \param Input An input sequence
-            \param Finder A Finder object used to search for a match to be replaced
-            \param Formatter A Formatter object used to format a match
-        */
-        template<
-            typename SequenceT,
-            typename FinderT,
-            typename FormatterT>
-        inline void find_format( 
-            SequenceT& Input,
-            FinderT Finder,
-            FormatterT Formatter)
-        {
-            // Concept check
-            NDNBOOST_CONCEPT_ASSERT((
-                FinderConcept<
-                    FinderT,
-                    NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
-                ));
-            NDNBOOST_CONCEPT_ASSERT(( 
-                FormatterConcept<
-                    FormatterT,
-                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
-                ));
-
-            detail::find_format_impl(
-                Input,
-                Formatter,
-                Finder(::ndnboost::begin(Input), ::ndnboost::end(Input)));
-        }
-
-
-//  find_format_all generic ----------------------------------------------------------------//
-
-        //! Generic replace all algorithm
-        /*!
-            Use the Finder to search for a substring. Use the Formatter to format
-            this substring and replace it in the input. Repeat this for all matching
-            substrings.
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-
-            \param Output An output iterator to which the result will be copied
-            \param Input An input sequence
-            \param Finder A Finder object used to search for a match to be replaced
-            \param Formatter A Formatter object used to format a match
-            \return An output iterator pointing just after the last inserted character or
-                a modified copy of the input
-
-             \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template< 
-            typename OutputIteratorT,
-            typename RangeT,
-            typename FinderT,
-            typename FormatterT>
-        inline OutputIteratorT find_format_all_copy(
-            OutputIteratorT Output,
-            const RangeT& Input,
-            FinderT Finder,
-            FormatterT Formatter)
-        {
-            // Concept check
-            NDNBOOST_CONCEPT_ASSERT(( 
-                FinderConcept<
-                    FinderT,
-                    NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
-                ));
-            NDNBOOST_CONCEPT_ASSERT(( 
-                FormatterConcept<
-                    FormatterT,
-                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type>
-                ));
-
-            iterator_range<NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> lit_input(::ndnboost::as_literal(Input));
-
-            return detail::find_format_all_copy_impl(
-                Output,
-                lit_input,
-                Finder,
-                Formatter,
-                Finder(::ndnboost::begin(lit_input), ::ndnboost::end(lit_input)));
-        }
-
-        //! Generic replace all algorithm
-        /*!
-            \overload
-        */
-        template< 
-            typename SequenceT, 
-            typename FinderT,
-            typename FormatterT >
-        inline SequenceT find_format_all_copy(
-            const SequenceT& Input,
-            FinderT Finder,
-            FormatterT Formatter )
-        {
-            // Concept check
-            NDNBOOST_CONCEPT_ASSERT((
-                FinderConcept<
-                    FinderT,
-                    NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
-                ));
-            NDNBOOST_CONCEPT_ASSERT((
-                FormatterConcept<
-                    FormatterT,
-                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
-                ));
-
-            return detail::find_format_all_copy_impl(
-                Input,
-                Finder,
-                Formatter,
-                Finder( ::ndnboost::begin(Input), ::ndnboost::end(Input) ) );
-        }
-
-        //! Generic replace all algorithm
-        /*!
-            Use the Finder to search for a substring. Use the Formatter to format
-            this substring and replace it in the input. Repeat this for all matching
-            substrings.The input is modified in-place.
-
-            \param Input An input sequence
-            \param Finder A Finder object used to search for a match to be replaced
-            \param Formatter A Formatter object used to format a match
-        */
-        template<
-            typename SequenceT,
-            typename FinderT,
-            typename FormatterT >
-        inline void find_format_all( 
-            SequenceT& Input,
-            FinderT Finder,
-            FormatterT Formatter )
-        {
-            // Concept check
-            NDNBOOST_CONCEPT_ASSERT((
-                FinderConcept<
-                    FinderT,
-                    NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
-                ));
-            NDNBOOST_CONCEPT_ASSERT((
-                FormatterConcept<
-                    FormatterT,
-                    FinderT,NDNBOOST_STRING_TYPENAME range_const_iterator<SequenceT>::type>
-                ));
-
-            detail::find_format_all_impl(
-                Input,
-                Finder,
-                Formatter,
-                Finder(::ndnboost::begin(Input), ::ndnboost::end(Input)));
-
-        }
-
-    } // namespace algorithm
-
-    // pull the names to the boost namespace
-    using algorithm::find_format_copy;
-    using algorithm::find_format;
-    using algorithm::find_format_all_copy;
-    using algorithm::find_format_all;
-
-} // namespace ndnboost
-
-
-#endif  // NDNBOOST_STRING_FIND_FORMAT_HPP
diff --git a/include/ndnboost/algorithm/string/finder.hpp b/include/ndnboost/algorithm/string/finder.hpp
deleted file mode 100644
index 4bc64d2..0000000
--- a/include/ndnboost/algorithm/string/finder.hpp
+++ /dev/null
@@ -1,270 +0,0 @@
-//  Boost string_algo library finder.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_FINDER_HPP
-#define NDNBOOST_STRING_FINDER_HPP
-
-#include <ndnboost/algorithm/string/config.hpp>
-
-#include <ndnboost/range/iterator_range.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/iterator.hpp>
-#include <ndnboost/range/const_iterator.hpp>
-
-#include <ndnboost/algorithm/string/constants.hpp>
-#include <ndnboost/algorithm/string/detail/finder.hpp>
-#include <ndnboost/algorithm/string/compare.hpp>
-
-/*! \file
-    Defines Finder generators. Finder object is a functor which is able to 
-    find a substring matching a specific criteria in the input.
-    Finders are used as a pluggable components for replace, find 
-    and split facilities. This header contains generator functions 
-    for finders provided in this library.
-*/
-
-namespace ndnboost {
-    namespace algorithm {
-
-//  Finder generators ------------------------------------------//
-        
-        //! "First" finder 
-        /*!
-            Construct the \c first_finder. The finder searches for the first
-            occurrence of the string in a given input.
-            The result is given as an \c iterator_range delimiting the match.
-
-            \param Search A substring to be searched for.
-            \param Comp An element comparison predicate
-            \return An instance of the \c first_finder object
-        */
-        template<typename RangeT>
-        inline detail::first_finderF<
-            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
-            is_equal>
-        first_finder( const RangeT& Search )
-        {
-            return 
-                detail::first_finderF<
-                    NDNBOOST_STRING_TYPENAME 
-                        range_const_iterator<RangeT>::type,
-                        is_equal>( ::ndnboost::as_literal(Search), is_equal() ) ;
-        }
-
-        //! "First" finder
-        /*!
-            \overload
-        */
-        template<typename RangeT,typename PredicateT>
-        inline detail::first_finderF<
-            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
-            PredicateT>
-        first_finder( 
-            const RangeT& Search, PredicateT Comp )
-        {
-            return 
-                detail::first_finderF<
-                    NDNBOOST_STRING_TYPENAME 
-                        range_const_iterator<RangeT>::type,
-                    PredicateT>( ::ndnboost::as_literal(Search), Comp );
-        }
-
-        //! "Last" finder
-        /*!
-            Construct the \c last_finder. The finder searches for the last
-            occurrence of the string in a given input.
-            The result is given as an \c iterator_range delimiting the match.
-
-            \param Search A substring to be searched for.
-            \param Comp An element comparison predicate
-            \return An instance of the \c last_finder object
-        */
-        template<typename RangeT>
-        inline detail::last_finderF<
-            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
-            is_equal>
-        last_finder( const RangeT& Search )
-        {
-            return 
-                detail::last_finderF<
-                    NDNBOOST_STRING_TYPENAME 
-                        range_const_iterator<RangeT>::type,
-                    is_equal>( ::ndnboost::as_literal(Search), is_equal() );
-        }
-        //! "Last" finder
-        /*!
-            \overload
-        */
-        template<typename RangeT, typename PredicateT>
-        inline detail::last_finderF<
-            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
-            PredicateT>
-        last_finder( const RangeT& Search, PredicateT Comp )
-        {
-            return 
-                detail::last_finderF<
-                    NDNBOOST_STRING_TYPENAME 
-                        range_const_iterator<RangeT>::type,
-                    PredicateT>( ::ndnboost::as_literal(Search), Comp ) ;
-        }
-
-        //! "Nth" finder
-        /*!
-            Construct the \c nth_finder. The finder searches for the n-th (zero-indexed)
-            occurrence of the string in a given input.
-            The result is given as an \c iterator_range delimiting the match.
-
-            \param Search A substring to be searched for.
-            \param Nth An index of the match to be find
-            \param Comp An element comparison predicate
-            \return An instance of the \c nth_finder object
-        */
-        template<typename RangeT>
-        inline detail::nth_finderF<
-            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
-            is_equal>
-        nth_finder( 
-            const RangeT& Search, 
-            int Nth)
-        {
-            return 
-                detail::nth_finderF<
-                    NDNBOOST_STRING_TYPENAME 
-                        range_const_iterator<RangeT>::type,
-                    is_equal>( ::ndnboost::as_literal(Search), Nth, is_equal() ) ;
-        }
-        //! "Nth" finder
-        /*!
-            \overload
-        */
-        template<typename RangeT, typename PredicateT>
-        inline detail::nth_finderF<
-            NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type,
-            PredicateT>
-        nth_finder( 
-            const RangeT& Search, 
-            int Nth, 
-            PredicateT Comp )
-        {
-            return 
-                detail::nth_finderF<
-                    NDNBOOST_STRING_TYPENAME 
-                        range_const_iterator<RangeT>::type,
-                    PredicateT>( ::ndnboost::as_literal(Search), Nth, Comp );
-        }
-
-        //! "Head" finder
-        /*!
-            Construct the \c head_finder. The finder returns a head of a given
-            input. The head is a prefix of a string up to n elements in
-            size. If an input has less then n elements, whole input is 
-            considered a head.
-            The result is given as an \c iterator_range delimiting the match.
-
-            \param N The size of the head
-            \return An instance of the \c head_finder object
-        */
-        inline detail::head_finderF
-        head_finder( int N )
-        {
-            return detail::head_finderF(N);
-        }
-        
-        //! "Tail" finder
-        /*!
-            Construct the \c tail_finder. The finder returns a tail of a given
-            input. The tail is a suffix of a string up to n elements in
-            size. If an input has less then n elements, whole input is 
-            considered a head.
-            The result is given as an \c iterator_range delimiting the match.
-
-            \param N The size of the head
-            \return An instance of the \c tail_finder object
-        */
-        inline detail::tail_finderF
-        tail_finder( int N )
-        {
-            return detail::tail_finderF(N);
-        }
-
-        //! "Token" finder
-        /*!
-            Construct the \c token_finder. The finder searches for a token 
-            specified by a predicate. It is similar to std::find_if 
-            algorithm, with an exception that it return a range of
-            instead of a single iterator.
-
-            If "compress token mode" is enabled, adjacent matching tokens are 
-            concatenated into one match. Thus the finder can be used to 
-            search for continuous segments of characters satisfying the 
-            given predicate.
-
-            The result is given as an \c iterator_range delimiting the match.
-
-            \param Pred An element selection predicate
-            \param eCompress Compress flag
-            \return An instance of the \c token_finder object
-        */
-        template< typename PredicateT >
-        inline detail::token_finderF<PredicateT>
-        token_finder( 
-            PredicateT Pred, 
-            token_compress_mode_type eCompress=token_compress_off )
-        {
-            return detail::token_finderF<PredicateT>( Pred, eCompress );
-        }
-
-        //! "Range" finder
-        /*!
-            Construct the \c range_finder. The finder does not perform 
-            any operation. It simply returns the given range for 
-            any input. 
-
-            \param Begin Beginning of the range
-            \param End End of the range
-            \param Range The range.
-            \return An instance of the \c range_finger object
-        */
-        template< typename ForwardIteratorT >
-        inline detail::range_finderF<ForwardIteratorT>
-        range_finder(
-            ForwardIteratorT Begin,
-            ForwardIteratorT End )
-        {
-            return detail::range_finderF<ForwardIteratorT>( Begin, End );
-        }
-
-        //! "Range" finder
-        /*!       
-            \overload
-        */
-        template< typename ForwardIteratorT >
-        inline detail::range_finderF<ForwardIteratorT>
-        range_finder( iterator_range<ForwardIteratorT> Range )
-        {
-            return detail::range_finderF<ForwardIteratorT>( Range );
-        }
-
-    } // namespace algorithm
-
-    // pull the names to the boost namespace
-    using algorithm::first_finder;
-    using algorithm::last_finder;
-    using algorithm::nth_finder;
-    using algorithm::head_finder;
-    using algorithm::tail_finder;
-    using algorithm::token_finder;
-    using algorithm::range_finder;
-
-} // namespace ndnboost
-
-
-#endif  // NDNBOOST_STRING_FINDER_HPP
diff --git a/include/ndnboost/algorithm/string/formatter.hpp b/include/ndnboost/algorithm/string/formatter.hpp
deleted file mode 100644
index 746d268..0000000
--- a/include/ndnboost/algorithm/string/formatter.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//  Boost string_algo library formatter.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_FORMATTER_HPP
-#define NDNBOOST_STRING_FORMATTER_HPP
-
-#include <ndnboost/detail/iterator.hpp>
-#include <ndnboost/range/value_type.hpp>
-#include <ndnboost/range/iterator_range.hpp>
-#include <ndnboost/range/as_literal.hpp>
-
-#include <ndnboost/algorithm/string/detail/formatter.hpp>
-
-/*! \file
-    Defines Formatter generators. Formatter is a functor which formats
-    a string according to given parameters. A Formatter works
-    in conjunction with a Finder. A Finder can provide additional information
-    for a specific Formatter. An example of such a cooperation is regex_finder
-    and regex_formatter.
-
-    Formatters are used as pluggable components for replace facilities. 
-    This header contains generator functions for the Formatters provided in this library.
-*/
-
-namespace ndnboost {
-    namespace algorithm {
-
-// generic formatters  ---------------------------------------------------------------//
-
-        //! Constant formatter
-        /*!
-            Constructs a \c const_formatter. Const formatter always returns
-            the same value, regardless of the parameter.
-
-            \param Format A predefined value used as a result for formatting
-            \return An instance of the \c const_formatter object.
-        */
-        template<typename RangeT>
-        inline detail::const_formatF<
-            iterator_range<
-                NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >
-        const_formatter(const RangeT& Format)
-        {
-            return detail::const_formatF<
-                iterator_range<
-                    NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >(::ndnboost::as_literal(Format));
-        }
-
-        //! Identity formatter
-        /*!
-            Constructs an \c identity_formatter. Identity formatter always returns
-            the parameter.
-
-            \return An instance of the \c identity_formatter object.
-        */
-        template<typename RangeT>
-        inline detail::identity_formatF<
-            iterator_range<
-                NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >
-        identity_formatter()
-        {
-            return detail::identity_formatF<
-                iterator_range<
-                    NDNBOOST_STRING_TYPENAME range_const_iterator<RangeT>::type> >();
-        }
-
-        //! Empty formatter
-        /*!
-            Constructs an \c empty_formatter. Empty formatter always returns an empty
-            sequence. 
-
-            \param Input container used to select a correct value_type for the
-                         resulting empty_container<>.
-            \return An instance of the \c empty_formatter object.
-        */
-        template<typename RangeT>
-        inline detail::empty_formatF< 
-            NDNBOOST_STRING_TYPENAME range_value<RangeT>::type>
-        empty_formatter(const RangeT&)
-        {
-            return detail::empty_formatF<
-                NDNBOOST_STRING_TYPENAME range_value<RangeT>::type>();
-        }
-
-        //! Empty formatter
-        /*!
-            Constructs a \c dissect_formatter. Dissect formatter uses a specified finder
-            to extract a portion of the formatted sequence. The first finder's match is returned 
-            as a result
-
-            \param Finder a finder used to select a portion of the formatted sequence
-            \return An instance of the \c dissect_formatter object.
-        */
-        template<typename FinderT>
-        inline detail::dissect_formatF< FinderT >
-        dissect_formatter(const FinderT& Finder)
-        {
-            return detail::dissect_formatF<FinderT>(Finder);
-        }
-
-
-    } // namespace algorithm
-
-    // pull the names to the boost namespace
-    using algorithm::const_formatter;
-    using algorithm::identity_formatter;
-    using algorithm::empty_formatter;
-    using algorithm::dissect_formatter;
-
-} // namespace ndnboost
-
-
-#endif  // NDNBOOST_FORMATTER_HPP
diff --git a/include/ndnboost/algorithm/string/replace.hpp b/include/ndnboost/algorithm/string/replace.hpp
deleted file mode 100644
index 0d15e64..0000000
--- a/include/ndnboost/algorithm/string/replace.hpp
+++ /dev/null
@@ -1,928 +0,0 @@
-//  Boost string_algo library replace.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_REPLACE_HPP
-#define NDNBOOST_STRING_REPLACE_HPP
-
-#include <ndnboost/algorithm/string/config.hpp>
-
-#include <ndnboost/range/iterator_range.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/iterator.hpp>
-#include <ndnboost/range/const_iterator.hpp>
-
-#include <ndnboost/algorithm/string/find_format.hpp>
-#include <ndnboost/algorithm/string/finder.hpp>
-#include <ndnboost/algorithm/string/formatter.hpp>
-#include <ndnboost/algorithm/string/compare.hpp>
-
-/*! \file
-    Defines various replace algorithms. Each algorithm replaces
-    part(s) of the input according to set of searching and replace criteria.
-*/
-
-namespace ndnboost {
-    namespace algorithm {
-
-//  replace_range --------------------------------------------------------------------//
-
-        //! Replace range algorithm
-        /*!
-            Replace the given range in the input string.
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-            
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param SearchRange A range in the input to be substituted
-            \param Format A substitute string
-            \return An output iterator pointing just after the last inserted character or
-                a modified copy of the input
-
-              \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T>
-        inline OutputIteratorT replace_range_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            const iterator_range<
-                NDNBOOST_STRING_TYPENAME 
-                    range_const_iterator<Range1T>::type>& SearchRange,
-            const Range2T& Format)
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::range_finder(SearchRange),
-                ::ndnboost::algorithm::const_formatter(Format));
-        }
-
-        //! Replace range algorithm
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename RangeT>
-        inline SequenceT replace_range_copy( 
-            const SequenceT& Input,
-            const iterator_range<
-                NDNBOOST_STRING_TYPENAME 
-                    range_const_iterator<SequenceT>::type>& SearchRange,
-            const RangeT& Format)
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Input,
-                ::ndnboost::algorithm::range_finder(SearchRange),
-                ::ndnboost::algorithm::const_formatter(Format));
-        }
-
-        //! Replace range algorithm
-        /*!
-            Replace the given range in the input string. 
-            The input sequence is modified in-place.
-
-            \param Input An input string
-            \param SearchRange A range in the input to be substituted
-            \param Format A substitute string
-        */
-        template<typename SequenceT, typename RangeT>
-        inline void replace_range( 
-            SequenceT& Input,
-            const iterator_range<
-                NDNBOOST_STRING_TYPENAME 
-                    range_iterator<SequenceT>::type>& SearchRange,
-            const RangeT& Format)
-        {
-            ::ndnboost::algorithm::find_format(
-                Input,
-                ::ndnboost::algorithm::range_finder(SearchRange),
-                ::ndnboost::algorithm::const_formatter(Format));
-        }
-
-//  replace_first --------------------------------------------------------------------//
-
-        //! Replace first algorithm
-        /*!
-            Replace the first match of the search substring in the input 
-            with the format string. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-            
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-            \return An output iterator pointing just after the last inserted character or
-                    a modified copy of the input
-
-              \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T,
-            typename Range3T>
-        inline OutputIteratorT replace_first_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            const Range2T& Search,
-            const Range3T& Format)
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::first_finder(Search),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace first algorithm
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline SequenceT replace_first_copy( 
-            const SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format )
-        {
-            return ::ndnboost::algorithm::find_format_copy( 
-                Input,
-                ::ndnboost::algorithm::first_finder(Search),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace first algorithm
-        /*!
-            replace the first match of the search substring in the input 
-            with the format string. The input sequence is modified in-place.
-
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline void replace_first( 
-            SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format )
-        {
-            ::ndnboost::algorithm::find_format( 
-                Input, 
-                ::ndnboost::algorithm::first_finder(Search),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-//  replace_first ( case insensitive ) ---------------------------------------------//
-
-        //! Replace first algorithm ( case insensitive )
-        /*!
-            Replace the first match of the search substring in the input 
-            with the format string. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-            Searching is case insensitive.
-
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-            \param Loc A locale used for case insensitive comparison
-            \return An output iterator pointing just after the last inserted character or
-                a modified copy of the input
-
-             \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T,
-            typename Range3T>
-        inline OutputIteratorT ireplace_first_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            const Range2T& Search,
-            const Range3T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::first_finder(Search, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace first algorithm ( case insensitive )
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename Range2T, typename Range1T>
-        inline SequenceT ireplace_first_copy( 
-            const SequenceT& Input,
-            const Range2T& Search,
-            const Range1T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            return ::ndnboost::algorithm::find_format_copy( 
-                Input,
-                ::ndnboost::algorithm::first_finder(Search, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace first algorithm ( case insensitive )
-        /*!
-            Replace the first match of the search substring in the input 
-            with the format string. Input sequence is modified in-place.
-            Searching is case insensitive.
-
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-            \param Loc A locale used for case insensitive comparison
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline void ireplace_first( 
-            SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            ::ndnboost::algorithm::find_format( 
-                Input, 
-                ::ndnboost::algorithm::first_finder(Search, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-//  replace_last --------------------------------------------------------------------//
-
-        //! Replace last algorithm
-        /*!
-            Replace the last match of the search string in the input 
-            with the format string. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param Search A substring to be searched for
-            \param Format A substitute string
-            \return An output iterator pointing just after the last inserted character or
-                    a modified copy of the input            
-
-              \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T,
-            typename Range3T>
-        inline OutputIteratorT replace_last_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            const Range2T& Search,
-            const Range3T& Format )
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::last_finder(Search),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace last algorithm
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline SequenceT replace_last_copy( 
-            const SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format )
-        {
-            return ::ndnboost::algorithm::find_format_copy( 
-                Input,
-                ::ndnboost::algorithm::last_finder(Search),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace last algorithm
-        /*!
-            Replace the last match of the search string in the input 
-            with the format string. Input sequence is modified in-place.
-
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline void replace_last( 
-            SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format )
-        {
-            ::ndnboost::algorithm::find_format( 
-                Input, 
-                ::ndnboost::algorithm::last_finder(Search),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-//  replace_last ( case insensitive ) -----------------------------------------------//
-
-        //! Replace last algorithm ( case insensitive )
-        /*!
-            Replace the last match of the search string in the input 
-            with the format string. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-            Searching is case insensitive.
-
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-            \param Loc A locale used for case insensitive comparison
-            \return An output iterator pointing just after the last inserted character or
-                    a modified copy of the input  
-
-            \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T,
-            typename Range3T>
-        inline OutputIteratorT ireplace_last_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            const Range2T& Search,
-            const Range3T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::last_finder(Search, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace last algorithm ( case insensitive )
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline SequenceT ireplace_last_copy( 
-            const SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            return ::ndnboost::algorithm::find_format_copy( 
-                Input,
-                ::ndnboost::algorithm::last_finder(Search, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace last algorithm ( case insensitive )
-        /*!
-            Replace the last match of the search string in the input 
-            with the format string.The input sequence is modified in-place.
-            Searching is case insensitive.
-
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-            \param Loc A locale used for case insensitive comparison
-            \return A reference to the modified input
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline void ireplace_last( 
-            SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            ::ndnboost::algorithm::find_format( 
-                Input, 
-                ::ndnboost::algorithm::last_finder(Search, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-//  replace_nth --------------------------------------------------------------------//
-
-        //! Replace nth algorithm
-        /*!
-            Replace an Nth (zero-indexed) match of the search string in the input 
-            with the format string. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Nth An index of the match to be replaced. The index is 0-based.
-                For negative N, matches are counted from the end of string.
-            \param Format A substitute string
-            \return An output iterator pointing just after the last inserted character or
-                a modified copy of the input
-
-            \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T,
-            typename Range3T>
-        inline OutputIteratorT replace_nth_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            const Range2T& Search,
-            int Nth,
-            const Range3T& Format )
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::nth_finder(Search, Nth),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace nth algorithm
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline SequenceT replace_nth_copy( 
-            const SequenceT& Input,
-            const Range1T& Search,
-            int Nth,
-            const Range2T& Format )
-        {
-            return ::ndnboost::algorithm::find_format_copy( 
-                Input,
-                ::ndnboost::algorithm::nth_finder(Search, Nth),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace nth algorithm
-        /*!
-            Replace an Nth (zero-indexed) match of the search string in the input 
-            with the format string. Input sequence is modified in-place.
-
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Nth An index of the match to be replaced. The index is 0-based.
-                For negative N, matches are counted from the end of string.
-            \param Format A substitute string
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline void replace_nth( 
-            SequenceT& Input,
-            const Range1T& Search,
-            int Nth,
-            const Range2T& Format )
-        {
-            ::ndnboost::algorithm::find_format( 
-                Input, 
-                ::ndnboost::algorithm::nth_finder(Search, Nth),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-//  replace_nth ( case insensitive ) -----------------------------------------------//
-        
-        //! Replace nth algorithm ( case insensitive )
-        /*!
-            Replace an Nth (zero-indexed) match of the search string in the input 
-            with the format string. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-            Searching is case insensitive.
-
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Nth An index of the match to be replaced. The index is 0-based.
-                For negative N, matches are counted from the end of string.
-            \param Format A substitute string
-            \param Loc A locale used for case insensitive comparison
-            \return An output iterator pointing just after the last inserted character or
-                    a modified copy of the input            
-
-            \note The second variant of this function provides the strong exception-safety guarantee
-       */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T,
-            typename Range3T>
-        inline OutputIteratorT ireplace_nth_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            const Range2T& Search,
-            int Nth,
-            const Range3T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::nth_finder(Search, Nth, is_iequal(Loc) ),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace nth algorithm ( case insensitive )
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline SequenceT ireplace_nth_copy( 
-            const SequenceT& Input,
-            const Range1T& Search,
-            int Nth,
-            const Range2T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            return ::ndnboost::algorithm::find_format_copy( 
-                Input,
-                ::ndnboost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace nth algorithm ( case insensitive )
-        /*!
-            Replace an Nth (zero-indexed) match of the search string in the input 
-            with the format string. Input sequence is modified in-place.
-            Searching is case insensitive.
-
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Nth An index of the match to be replaced. The index is 0-based.
-                For negative N, matches are counted from the end of string.
-            \param Format A substitute string
-            \param Loc A locale used for case insensitive comparison
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline void ireplace_nth( 
-            SequenceT& Input,
-            const Range1T& Search,
-            int Nth,
-            const Range2T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            ::ndnboost::algorithm::find_format( 
-                Input, 
-                ::ndnboost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-//  replace_all --------------------------------------------------------------------//
-
-        //! Replace all algorithm
-        /*!
-            Replace all occurrences of the search string in the input 
-            with the format string. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-            \return An output iterator pointing just after the last inserted character or
-                    a modified copy of the input 
-
-             \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T,
-            typename Range3T>
-        inline OutputIteratorT replace_all_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            const Range2T& Search,
-            const Range3T& Format )
-        {
-            return ::ndnboost::algorithm::find_format_all_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::first_finder(Search),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace all algorithm
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline SequenceT replace_all_copy( 
-            const SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format )
-        {
-            return ::ndnboost::algorithm::find_format_all_copy( 
-                Input,
-                ::ndnboost::algorithm::first_finder(Search),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace all algorithm
-        /*!
-            Replace all occurrences of the search string in the input 
-            with the format string. The input sequence is modified in-place.
-
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-            \return A reference to the modified input
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline void replace_all( 
-            SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format )
-        {
-            ::ndnboost::algorithm::find_format_all( 
-                Input, 
-                ::ndnboost::algorithm::first_finder(Search),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-        
-//  replace_all ( case insensitive ) -----------------------------------------------//
-
-        //! Replace all algorithm ( case insensitive )
-        /*!
-            Replace all occurrences of the search string in the input 
-            with the format string. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-            Searching is case insensitive.
-
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-            \param Loc A locale used for case insensitive comparison
-            \return An output iterator pointing just after the last inserted character or
-                    a modified copy of the input 
-
-            \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T,
-            typename Range3T>
-        inline OutputIteratorT ireplace_all_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            const Range2T& Search,
-            const Range3T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            return ::ndnboost::algorithm::find_format_all_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::first_finder(Search, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace all algorithm ( case insensitive )
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline SequenceT ireplace_all_copy( 
-            const SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            return ::ndnboost::algorithm::find_format_all_copy( 
-                Input,
-                ::ndnboost::algorithm::first_finder(Search, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace all algorithm ( case insensitive )
-        /*!
-            Replace all occurrences of the search string in the input 
-            with the format string.The input sequence is modified in-place.
-            Searching is case insensitive.
-
-            \param Input An input string
-            \param Search A substring to be searched for 
-            \param Format A substitute string
-            \param Loc A locale used for case insensitive comparison
-        */
-        template<typename SequenceT, typename Range1T, typename Range2T>
-        inline void ireplace_all( 
-            SequenceT& Input,
-            const Range1T& Search,
-            const Range2T& Format,
-            const std::locale& Loc=std::locale() )
-        {
-            ::ndnboost::algorithm::find_format_all( 
-                Input, 
-                ::ndnboost::algorithm::first_finder(Search, is_iequal(Loc)),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-        
-//  replace_head --------------------------------------------------------------------//
-
-        //! Replace head algorithm
-        /*!
-            Replace the head of the input with the given format string. 
-            The head is a prefix of a string of given size. 
-            If the sequence is shorter then required, whole string if 
-            considered to be the head. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-            
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param N Length of the head.
-                For N>=0, at most N characters are extracted.
-                For N<0, size(Input)-|N| characters are extracted.
-            \param Format A substitute string
-            \return An output iterator pointing just after the last inserted character or
-                a modified copy of the input  
-
-            \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T>
-        inline OutputIteratorT replace_head_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            int N,
-            const Range2T& Format )
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::head_finder(N),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace head algorithm
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename RangeT>
-        inline SequenceT replace_head_copy( 
-            const SequenceT& Input,
-            int N,
-            const RangeT& Format )
-        {
-            return ::ndnboost::algorithm::find_format_copy( 
-                Input,
-                ::ndnboost::algorithm::head_finder(N),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace head algorithm
-        /*!
-            Replace the head of the input with the given format string. 
-            The head is a prefix of a string of given size. 
-            If the sequence is shorter then required, the whole string is 
-            considered to be the head. The input sequence is modified in-place.
-
-            \param Input An input string
-            \param N Length of the head.
-                For N>=0, at most N characters are extracted.
-                For N<0, size(Input)-|N| characters are extracted.
-            \param Format A substitute string
-        */
-        template<typename SequenceT, typename RangeT>
-        inline void replace_head( 
-            SequenceT& Input,
-            int N,
-            const RangeT& Format )
-        {
-            ::ndnboost::algorithm::find_format( 
-                Input, 
-                ::ndnboost::algorithm::head_finder(N),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-//  replace_tail --------------------------------------------------------------------//
-
-        //! Replace tail algorithm
-        /*!
-            Replace the tail of the input with the given format string. 
-            The tail is a suffix of a string of given size. 
-            If the sequence is shorter then required, whole string is 
-            considered to be the tail. 
-            The result is a modified copy of the input. It is returned as a sequence 
-            or copied to the output iterator.
-
-            \param Output An output iterator to which the result will be copied
-            \param Input An input string
-            \param N Length of the tail.
-                For N>=0, at most N characters are extracted.
-                For N<0, size(Input)-|N| characters are extracted.
-            \param Format A substitute string
-            \return An output iterator pointing just after the last inserted character or
-                    a modified copy of the input   
-
-              \note The second variant of this function provides the strong exception-safety guarantee
-        */
-        template<
-            typename OutputIteratorT,
-            typename Range1T, 
-            typename Range2T>
-        inline OutputIteratorT replace_tail_copy(
-            OutputIteratorT Output,
-            const Range1T& Input,
-            int N,
-            const Range2T& Format )
-        {
-            return ::ndnboost::algorithm::find_format_copy(
-                Output,
-                Input,
-                ::ndnboost::algorithm::tail_finder(N),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace tail algorithm
-        /*!
-            \overload
-        */
-        template<typename SequenceT, typename RangeT>
-        inline SequenceT replace_tail_copy( 
-            const SequenceT& Input,
-            int N,
-            const RangeT& Format )
-        {
-            return ::ndnboost::algorithm::find_format_copy( 
-                Input,
-                ::ndnboost::algorithm::tail_finder(N),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-        //! Replace tail algorithm
-        /*!
-            Replace the tail of the input with the given format sequence. 
-            The tail is a suffix of a string of given size. 
-            If the sequence is shorter then required, the whole string is 
-            considered to be the tail. The input sequence is modified in-place.
-
-            \param Input An input string
-            \param N Length of the tail.
-                For N>=0, at most N characters are extracted.
-                For N<0, size(Input)-|N| characters are extracted.
-            \param Format A substitute string
-        */
-        template<typename SequenceT, typename RangeT>
-        inline void replace_tail( 
-            SequenceT& Input,
-            int N,
-            const RangeT& Format )
-        {
-            ::ndnboost::algorithm::find_format( 
-                Input, 
-                ::ndnboost::algorithm::tail_finder(N),
-                ::ndnboost::algorithm::const_formatter(Format) );
-        }
-
-    } // namespace algorithm
-
-    // pull names to the boost namespace
-    using algorithm::replace_range_copy;
-    using algorithm::replace_range;
-    using algorithm::replace_first_copy;
-    using algorithm::replace_first;
-    using algorithm::ireplace_first_copy;
-    using algorithm::ireplace_first;
-    using algorithm::replace_last_copy;
-    using algorithm::replace_last;
-    using algorithm::ireplace_last_copy;
-    using algorithm::ireplace_last;
-    using algorithm::replace_nth_copy;
-    using algorithm::replace_nth;
-    using algorithm::ireplace_nth_copy;
-    using algorithm::ireplace_nth;
-    using algorithm::replace_all_copy;
-    using algorithm::replace_all;
-    using algorithm::ireplace_all_copy;
-    using algorithm::ireplace_all;
-    using algorithm::replace_head_copy;
-    using algorithm::replace_head;
-    using algorithm::replace_tail_copy;
-    using algorithm::replace_tail;
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_REPLACE_HPP
diff --git a/include/ndnboost/algorithm/string/sequence_traits.hpp b/include/ndnboost/algorithm/string/sequence_traits.hpp
deleted file mode 100644
index a337fa3..0000000
--- a/include/ndnboost/algorithm/string/sequence_traits.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-//  Boost string_algo library sequence_traits.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_SEQUENCE_TRAITS_HPP
-#define NDNBOOST_STRING_SEQUENCE_TRAITS_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/algorithm/string/yes_no_type.hpp>
-
-/*! \file
-    Traits defined in this header are used by various algorithms to achieve
-    better performance for specific containers.
-    Traits provide fail-safe defaults. If a container supports some of these
-    features, it is possible to specialize the specific trait for this container.
-    For lacking compilers, it is possible of define an override for a specific tester
-    function.
-
-    Due to a language restriction, it is not currently possible to define specializations for
-    stl containers without including the corresponding header. To decrease the overhead
-    needed by this inclusion, user can selectively include a specialization
-    header for a specific container. They are located in ndnboost/algorithm/string/stl
-    directory. Alternatively she can include ndnboost/algorithm/string/std_collection_traits.hpp
-    header which contains specializations for all stl containers.
-*/
-
-namespace ndnboost {
-    namespace algorithm {
-
-//  sequence traits  -----------------------------------------------//
-
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-        //! Native replace tester
-        /*!
-            Declare an override of this tester function with return
-            type ndnboost::string_algo::yes_type for a sequence with this property.
-
-            \return yes_type if the container has basic_string like native replace
-            method.
-        */
-        no_type has_native_replace_tester(...);
-
-        //! Stable iterators tester
-        /*!
-            Declare an override of this tester function with return
-            type ndnboost::string_algo::yes_type for a sequence with this property.
-
-            \return yes_type if the sequence's insert/replace/erase methods do not invalidate
-            existing iterators.
-        */
-        no_type has_stable_iterators_tester(...);
-
-        //! const time insert tester
-        /*!
-            Declare an override of this tester function with return
-            type ndnboost::string_algo::yes_type for a sequence with this property.
-
-            \return yes_type if the sequence's insert method is working in constant time
-        */
-        no_type has_const_time_insert_tester(...);
-
-        //! const time erase tester
-        /*!
-            Declare an override of this tester function with return
-            type ndnboost::string_algo::yes_type for a sequence with this property.
-
-            \return yes_type if the sequence's erase method is working in constant time
-        */
-        no_type has_const_time_erase_tester(...);
-
-#endif //NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-        //! Native replace trait
-        /*!
-            This trait specifies that the sequence has \c std::string like replace method
-        */
-        template< typename T >
-        class has_native_replace
-        {
-
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        private:
-            static T* t;
-        public:
-            NDNBOOST_STATIC_CONSTANT(bool, value=(
-                sizeof(has_native_replace_tester(t))==sizeof(yes_type) ) );
-#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        public:
-#    if NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
-            enum { value = false };
-#    else
-            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;
-        };
-
-
-        //! Stable iterators trait
-        /*!
-            This trait specifies that the sequence has stable iterators. It means
-            that operations like insert/erase/replace do not invalidate iterators.
-        */
-        template< typename T >
-        class has_stable_iterators
-        {
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        private:
-            static T* t;
-        public:
-            NDNBOOST_STATIC_CONSTANT(bool, value=(
-                sizeof(has_stable_iterators_tester(t))==sizeof(yes_type) ) );
-#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        public:
-#    if NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
-            enum { value = false };
-#    else
-            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;
-        };
-
-
-        //! Const time insert trait
-        /*!
-            This trait specifies that the sequence's insert method has
-            constant time complexity.
-        */
-        template< typename T >
-        class has_const_time_insert
-        {
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        private:
-            static T* t;
-        public:
-            NDNBOOST_STATIC_CONSTANT(bool, value=(
-                sizeof(has_const_time_insert_tester(t))==sizeof(yes_type) ) );
-#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        public:
-#    if NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
-            enum { value = false };
-#    else
-            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;
-        };
-
-
-        //! Const time erase trait
-        /*!
-            This trait specifies that the sequence's erase method has
-            constant time complexity.
-        */
-        template< typename T >
-        class has_const_time_erase
-        {
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        private:
-            static T* t;
-        public:
-            NDNBOOST_STATIC_CONSTANT(bool, value=(
-                sizeof(has_const_time_erase_tester(t))==sizeof(yes_type) ) );
-#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        public:
-#    if NDNBOOST_WORKAROUND( __IBMCPP__, <= 600 )
-            enum { value = false };
-#    else
-            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;
-        };
-
-    } // namespace algorithm
-} // namespace ndnboost
-
-
-#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
deleted file mode 100644
index 97f1d8d..0000000
--- a/include/ndnboost/algorithm/string/yes_no_type.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//  Boost string_algo library yes_no_type.hpp header file  ---------------------------//
-
-//  Copyright Pavol Droba 2002-2003.
-//
-// 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)
-
-//  See http://www.boost.org/ for updates, documentation, and revision history.
-
-#ifndef NDNBOOST_STRING_YES_NO_TYPE_DETAIL_HPP
-#define NDNBOOST_STRING_YES_NO_TYPE_DETAIL_HPP
-
-namespace ndnboost {
-    namespace algorithm {
-
-        // taken from boost mailing-list
-        // when yes_no_type will become officially
-        // a part of boost distribution, this header
-        // will be deprecated
-        template<int I> struct size_descriptor 
-        {
-            typedef char (& type)[I];
-        }; 
-
-        typedef size_descriptor<1>::type yes_type;
-        typedef size_descriptor<2>::type no_type;
-
-    } // namespace algorithm
-} // namespace ndnboost
-
-
-#endif  // NDNBOOST_STRING_YES_NO_TYPE_DETAIL_HPP
diff --git a/include/ndnboost/aligned_storage.hpp b/include/ndnboost/aligned_storage.hpp
deleted file mode 100644
index 676132e..0000000
--- a/include/ndnboost/aligned_storage.hpp
+++ /dev/null
@@ -1,181 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost aligned_storage.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2002-2003
-// Eric Friedman, Itay Maman
-//
-// 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 NDNBOOST_ALIGNED_STORAGE_HPP
-#define NDNBOOST_ALIGNED_STORAGE_HPP
-
-#include <cstddef> // for std::size_t
-
-#include "ndnboost/config.hpp"
-#include "ndnboost/detail/workaround.hpp"
-#include "ndnboost/type_traits/alignment_of.hpp"
-#include "ndnboost/type_traits/type_with_alignment.hpp"
-#include "ndnboost/type_traits/is_pod.hpp"
-
-#include "ndnboost/mpl/eval_if.hpp"
-#include "ndnboost/mpl/identity.hpp"
-
-#include "ndnboost/type_traits/detail/bool_trait_def.hpp"
-
-namespace ndnboost {
-
-namespace detail { namespace aligned_storage {
-
-NDNBOOST_STATIC_CONSTANT(
-      std::size_t
-    , alignment_of_max_align = ::ndnboost::alignment_of<max_align>::value
-    );
-
-//
-// To be TR1 conforming this must be a POD type:
-//
-template <
-      std::size_t size_
-    , std::size_t alignment_
->
-struct aligned_storage_imp
-{
-    union data_t
-    {
-        char buf[size_];
-
-        typename mpl::eval_if_c<
-              alignment_ == std::size_t(-1)
-            , mpl::identity<detail::max_align>
-            , type_with_alignment<alignment_>
-            >::type align_;
-    } data_;
-    void* address() const { return const_cast<aligned_storage_imp*>(this); }
-};
-
-template< std::size_t alignment_ >
-struct aligned_storage_imp<0u,alignment_>
-{
-    /* intentionally empty */
-    void* address() const { return 0; }
-};
-
-}} // namespace detail::aligned_storage
-
-template <
-      std::size_t size_
-    , std::size_t alignment_ = std::size_t(-1)
->
-class aligned_storage : 
-#ifndef __BORLANDC__
-   private 
-#else
-   public
-#endif
-   detail::aligned_storage::aligned_storage_imp<size_, alignment_> 
-{
- 
-public: // constants
-
-    typedef detail::aligned_storage::aligned_storage_imp<size_, alignment_> type;
-
-    NDNBOOST_STATIC_CONSTANT(
-          std::size_t
-        , size = size_
-        );
-    NDNBOOST_STATIC_CONSTANT(
-          std::size_t
-        , alignment = (
-              alignment_ == std::size_t(-1)
-            ? ::ndnboost::detail::aligned_storage::alignment_of_max_align
-            : alignment_
-            )
-        );
-
-#if defined(__GNUC__) &&\
-    (__GNUC__ >  3) ||\
-    (__GNUC__ == 3 && (__GNUC_MINOR__ >  2 ||\
-                      (__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ >=3)))
-
-private: // noncopyable
-
-    aligned_storage(const aligned_storage&);
-    aligned_storage& operator=(const aligned_storage&);
-
-#else // gcc less than 3.2.3
-
-public: // _should_ be noncopyable, but GCC compiler emits error
-
-    aligned_storage(const aligned_storage&);
-    aligned_storage& operator=(const aligned_storage&);
-
-#endif // gcc < 3.2.3 workaround
-
-public: // structors
-
-    aligned_storage()
-    {
-    }
-
-    ~aligned_storage()
-    {
-    }
-
-public: // accessors
-
-    void* address()
-    {
-        return static_cast<type*>(this)->address();
-    }
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-
-    const void* address() const
-    {
-        return static_cast<const type*>(this)->address();
-    }
-
-#else // MSVC6
-
-    const void* address() const;
-
-#endif // MSVC6 workaround
-
-};
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-
-// MSVC6 seems not to like inline functions with const void* returns, so we
-// declare the following here:
-
-template <std::size_t S, std::size_t A>
-const void* aligned_storage<S,A>::address() const
-{
-    return const_cast< aligned_storage<S,A>* >(this)->address();
-}
-
-#endif // MSVC6 workaround
-
-#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_> >
-   NDNBOOST_TT_AUX_BOOL_C_BASE(true)
-{ 
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(true)
-}; 
-#endif
-
-
-} // namespace ndnboost
-
-#include "ndnboost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // NDNBOOST_ALIGNED_STORAGE_HPP
diff --git a/include/ndnboost/any.hpp b/include/ndnboost/any.hpp
deleted file mode 100644
index eeefb64..0000000
--- a/include/ndnboost/any.hpp
+++ /dev/null
@@ -1,312 +0,0 @@
-// See http://www.boost.org/libs/any for Documentation.
-
-#ifndef NDNBOOST_ANY_INCLUDED
-#define NDNBOOST_ANY_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-// what:  variant type ndnboost::any
-// who:   contributed by Kevlin Henney,
-//        with features contributed and bugs found by
-//        Antony Polukhin, Ed Brey, Mark Rodgers, 
-//        Peter Dimov, and James Curran
-// when:  July 2001, Aplril 2013
-
-#include <algorithm>
-#include <typeinfo>
-
-#include "ndnboost/config.hpp"
-#include <ndnboost/type_traits/remove_reference.hpp>
-#include <ndnboost/type_traits/is_reference.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-// See ndnboost/python/type_id.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 NDNBOOST_AUX_ANY_TYPE_ID_NAME
-#include <cstring>
-# endif 
-
-namespace ndnboost
-{
-    class any
-    {
-    public: // structors
-
-        any() NDNBOOST_NOEXCEPT
-          : content(0)
-        {
-        }
-
-        template<typename ValueType>
-        any(const ValueType & value)
-          : content(new holder<ValueType>(value))
-        {
-        }
-
-        any(const any & other)
-          : content(other.content ? other.content->clone() : 0)
-        {
-        }
-
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-        // Move constructor
-        any(any&& other) NDNBOOST_NOEXCEPT
-          : content(other.content)
-        {
-            other.content = 0;
-        }
-
-        // Perfect forwarding of ValueType
-        template<typename ValueType>
-        any(ValueType&& value, typename ndnboost::disable_if<ndnboost::is_same<any&, ValueType> >::type* = 0)
-          : content(new holder< typename remove_reference<ValueType>::type >(static_cast<ValueType&&>(value)))
-        {
-        }
-#endif
-
-        ~any() NDNBOOST_NOEXCEPT
-        {
-            delete content;
-        }
-
-    public: // modifiers
-
-        any & swap(any & rhs) NDNBOOST_NOEXCEPT
-        {
-            std::swap(content, rhs.content);
-            return *this;
-        }
-
-
-#ifdef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-        template<typename ValueType>
-        any & operator=(const ValueType & rhs)
-        {
-            any(rhs).swap(*this);
-            return *this;
-        }
-
-        any & operator=(any rhs)
-        {
-            any(rhs).swap(*this);
-            return *this;
-        }
-
-#else 
-        any & operator=(const any& rhs)
-        {
-            any(rhs).swap(*this);
-            return *this;
-        }
-
-        // move assignement
-        any & operator=(any&& rhs) NDNBOOST_NOEXCEPT
-        {
-            rhs.swap(*this);
-            any().swap(rhs);
-            return *this;
-        }
-
-        // Perfect forwarding of ValueType
-        template <class ValueType>
-        any & operator=(ValueType&& rhs)
-        {
-            any(static_cast<ValueType&&>(rhs)).swap(*this);
-            return *this;
-        }
-#endif
-
-    public: // queries
-
-        bool empty() const NDNBOOST_NOEXCEPT
-        {
-            return !content;
-        }
-
-        const std::type_info & type() const
-        {
-            return content ? content->type() : typeid(void);
-        }
-
-#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
-    private: // types
-#else
-    public: // types (public so any_cast can be non-friend)
-#endif
-
-        class placeholder
-        {
-        public: // structors
-
-            virtual ~placeholder()
-            {
-            }
-
-        public: // queries
-
-            virtual const std::type_info & type() const = 0;
-
-            virtual placeholder * clone() const = 0;
-
-        };
-
-        template<typename ValueType>
-        class holder : public placeholder
-        {
-        public: // structors
-
-            holder(const ValueType & value)
-              : held(value)
-            {
-            }
-
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-            holder(ValueType&& value)
-              : held(static_cast< ValueType&& >(value))
-            {
-            }
-#endif
-        public: // queries
-
-            virtual const std::type_info & type() const
-            {
-                return typeid(ValueType);
-            }
-
-            virtual placeholder * clone() const
-            {
-                return new holder(held);
-            }
-
-        public: // representation
-
-            ValueType held;
-
-        private: // intentionally left unimplemented
-            holder & operator=(const holder &);
-        };
-
-#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
-
-    private: // representation
-
-        template<typename ValueType>
-        friend ValueType * any_cast(any *) NDNBOOST_NOEXCEPT;
-
-        template<typename ValueType>
-        friend ValueType * unsafe_any_cast(any *) NDNBOOST_NOEXCEPT;
-
-#else
-
-    public: // representation (public so any_cast can be non-friend)
-
-#endif
-
-        placeholder * content;
-
-    };
- 
-    inline void swap(any & lhs, any & rhs) NDNBOOST_NOEXCEPT
-    {
-        lhs.swap(rhs);
-    }
-
-    class bad_any_cast : public std::bad_cast
-    {
-    public:
-        virtual const char * what() const throw()
-        {
-            return "ndnboost::bad_any_cast: "
-                   "failed conversion using ndnboost::any_cast";
-        }
-    };
-
-    template<typename ValueType>
-    ValueType * any_cast(any * operand) NDNBOOST_NOEXCEPT
-    {
-        return operand && 
-#ifdef NDNBOOST_AUX_ANY_TYPE_ID_NAME
-            std::strcmp(operand->type().name(), typeid(ValueType).name()) == 0
-#else
-            operand->type() == typeid(ValueType)
-#endif
-            ? &static_cast<any::holder<ValueType> *>(operand->content)->held
-            : 0;
-    }
-
-    template<typename ValueType>
-    inline const ValueType * any_cast(const any * operand) NDNBOOST_NOEXCEPT
-    {
-        return any_cast<ValueType>(const_cast<any *>(operand));
-    }
-
-    template<typename ValueType>
-    ValueType any_cast(any & operand)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
-
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-        // If 'nonref' is still reference type, it means the user has not
-        // specialized 'remove_reference'.
-
-        // 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
-        NDNBOOST_STATIC_ASSERT(!is_reference<nonref>::value);
-#endif
-
-        nonref * result = any_cast<nonref>(&operand);
-        if(!result)
-            ndnboost::throw_exception(bad_any_cast());
-        return *result;
-    }
-
-    template<typename ValueType>
-    inline ValueType any_cast(const any & operand)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
-
-#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.
-        NDNBOOST_STATIC_ASSERT(!is_reference<nonref>::value);
-#endif
-
-        return any_cast<const nonref &>(const_cast<any &>(operand));
-    }
-
-    // Note: The "unsafe" versions of any_cast are not part of the
-    // public interface and may be removed at any time. They are
-    // required where we know what type is stored in the any and can't
-    // use typeid() comparison, e.g., when our types may travel across
-    // different shared libraries.
-    template<typename ValueType>
-    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) NDNBOOST_NOEXCEPT
-    {
-        return unsafe_any_cast<ValueType>(const_cast<any *>(operand));
-    }
-}
-
-// Copyright Kevlin Henney, 2000, 2001, 2002. All rights reserved.
-//
-// 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)
-
-#endif
diff --git a/include/ndnboost/array.hpp b/include/ndnboost/array.hpp
deleted file mode 100644
index e17fcbc..0000000
--- a/include/ndnboost/array.hpp
+++ /dev/null
@@ -1,446 +0,0 @@
-/* The following code declares class array,
- * an STL container (as wrapper) for arrays of constant size.
- *
- * See
- *      http://www.boost.org/libs/array/
- * for documentation.
- *
- * The original author site is at: http://www.josuttis.com/
- *
- * (C) Copyright Nicolai M. Josuttis 2001.
- *
- * 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)
- *
- * 14 Apr 2012 - (mtc) Added support for ndnboost::hash
- * 28 Dec 2010 - (mtc) Added cbegin and cend (and crbegin and crend) for C++Ox compatibility.
- * 10 Mar 2010 - (mtc) fill method added, matching resolution of the standard library working group.
- *      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, 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)
- * 29 Sep 2000 - Initial Revision (Nico Josuttis)
- *
- * Jan 29, 2004
- */
-#ifndef NDNBOOST_ARRAY_HPP
-#define NDNBOOST_ARRAY_HPP
-
-#include <ndnboost/detail/workaround.hpp>
-
-#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 
-# pragma warning(disable:4610) // warning C4610: class 'ndnboost::array<T,N>' can never be instantiated - user defined constructor required 
-#endif
-
-#include <cstddef>
-#include <stdexcept>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/swap.hpp>
-
-// Handles broken standard libraries better than <iterator>
-#include <ndnboost/detail/iterator.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/functional/hash_fwd.hpp>
-#include <algorithm>
-
-// FIXES for broken compilers
-#include <ndnboost/config.hpp>
-
-
-namespace ndnboost {
-
-    template<class T, std::size_t N>
-    class array {
-      public:
-        T elems[N];    // fixed-size array of elements of type T
-
-      public:
-        // type definitions
-        typedef T              value_type;
-        typedef T*             iterator;
-        typedef const T*       const_iterator;
-        typedef T&             reference;
-        typedef const T&       const_reference;
-        typedef std::size_t    size_type;
-        typedef std::ptrdiff_t difference_type;
-
-        // iterator support
-        iterator        begin()       { return elems; }
-        const_iterator  begin() const { return elems; }
-        const_iterator cbegin() const { return elems; }
-        
-        iterator        end()       { return elems+N; }
-        const_iterator  end() const { return elems+N; }
-        const_iterator cend() const { return elems+N; }
-
-        // reverse iterator support
-#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(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;
-        typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
-                                      const_reference, iterator, reference> > const_reverse_iterator;
-#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) 
-        typedef std::reverse_iterator<iterator, std::random_access_iterator_tag, 
-              value_type, reference, iterator, difference_type> reverse_iterator; 
-        typedef std::reverse_iterator<const_iterator, std::random_access_iterator_tag,
-              value_type, const_reference, const_iterator, difference_type> const_reverse_iterator;
-#else
-        // workaround for broken reverse_iterator implementations
-        typedef std::reverse_iterator<iterator,T> reverse_iterator;
-        typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
-#endif
-
-        reverse_iterator rbegin() { return reverse_iterator(end()); }
-        const_reverse_iterator rbegin() const {
-            return const_reverse_iterator(end());
-        }
-        const_reverse_iterator crbegin() const {
-            return const_reverse_iterator(end());
-        }
-
-        reverse_iterator rend() { return reverse_iterator(begin()); }
-        const_reverse_iterator rend() const {
-            return const_reverse_iterator(begin());
-        }
-        const_reverse_iterator crend() const {
-            return const_reverse_iterator(begin());
-        }
-
-        // operator[]
-        reference operator[](size_type i) 
-        { 
-            NDNBOOST_ASSERT_MSG( i < N, "out of range" );
-            return elems[i];
-        }
-        
-        const_reference operator[](size_type i) const 
-        {     
-            NDNBOOST_ASSERT_MSG( i < N, "out of range" );
-            return elems[i]; 
-        }
-
-        // at() with range check
-        reference at(size_type i) { rangecheck(i); return elems[i]; }
-        const_reference at(size_type i) const { rangecheck(i); return elems[i]; }
-    
-        // front() and back()
-        reference front() 
-        { 
-            return elems[0]; 
-        }
-        
-        const_reference front() const 
-        {
-            return elems[0];
-        }
-        
-        reference back() 
-        { 
-            return elems[N-1]; 
-        }
-        
-        const_reference back() const 
-        { 
-            return elems[N-1]; 
-        }
-
-        // size is constant
-        static size_type size() { return N; }
-        static bool empty() { return false; }
-        static size_type max_size() { return N; }
-        enum { static_size = N };
-
-        // swap (note: linear complexity)
-        void swap (array<T,N>& y) {
-            for (size_type i = 0; i < N; ++i)
-                ndnboost::swap(elems[i],y.elems[i]);
-        }
-
-        // direct access to data (read-only)
-        const T* data() const { return elems; }
-        T* data() { return elems; }
-
-        // use array as C array (direct read/write access to data)
-        T* c_array() { return elems; }
-
-        // assignment with type conversion
-        template <typename T2>
-        array<T,N>& operator= (const array<T2,N>& rhs) {
-            std::copy(rhs.begin(),rhs.end(), begin());
-            return *this;
-        }
-
-        // assign one value to all elements
-        void assign (const T& value) { fill ( value ); }    // A synonym for fill
-        void fill   (const T& value)
-        {
-            std::fill_n(begin(),size(),value);
-        }
-
-        // check range (may be private because it is static)
-        static void rangecheck (size_type i) {
-            if (i >= size()) {
-                std::out_of_range e("array<>: index out of range");
-                ndnboost::throw_exception(e);
-            }
-        }
-
-    };
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    template< class T >
-    class array< T, 0 > {
-
-      public:
-        // type definitions
-        typedef T              value_type;
-        typedef T*             iterator;
-        typedef const T*       const_iterator;
-        typedef T&             reference;
-        typedef const T&       const_reference;
-        typedef std::size_t    size_type;
-        typedef std::ptrdiff_t difference_type;
-
-        // iterator support
-        iterator        begin()       { return       iterator( reinterpret_cast<       T * >( this ) ); }
-        const_iterator  begin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); }
-        const_iterator cbegin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); }
-
-        iterator        end()       { return  begin(); }
-        const_iterator  end() const { return  begin(); }
-        const_iterator cend() const { return cbegin(); }
-
-        // reverse iterator support
-#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(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;
-        typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
-                                      const_reference, iterator, reference> > const_reverse_iterator;
-#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) 
-        typedef std::reverse_iterator<iterator, std::random_access_iterator_tag, 
-              value_type, reference, iterator, difference_type> reverse_iterator; 
-        typedef std::reverse_iterator<const_iterator, std::random_access_iterator_tag,
-              value_type, const_reference, const_iterator, difference_type> const_reverse_iterator;
-#else
-        // workaround for broken reverse_iterator implementations
-        typedef std::reverse_iterator<iterator,T> reverse_iterator;
-        typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
-#endif
-
-        reverse_iterator rbegin() { return reverse_iterator(end()); }
-        const_reverse_iterator rbegin() const {
-            return const_reverse_iterator(end());
-        }
-        const_reverse_iterator crbegin() const {
-            return const_reverse_iterator(end());
-        }
-
-        reverse_iterator rend() { return reverse_iterator(begin()); }
-        const_reverse_iterator rend() const {
-            return const_reverse_iterator(begin());
-        }
-        const_reverse_iterator crend() const {
-            return const_reverse_iterator(begin());
-        }
-
-        // operator[]
-        reference operator[](size_type /*i*/)
-        {
-            return failed_rangecheck();
-        }
-
-        const_reference operator[](size_type /*i*/) const
-        {
-            return failed_rangecheck();
-        }
-
-        // at() with range check
-        reference at(size_type /*i*/)               {   return failed_rangecheck(); }
-        const_reference at(size_type /*i*/) const   {   return failed_rangecheck(); }
-
-        // front() and back()
-        reference front()
-        {
-            return failed_rangecheck();
-        }
-
-        const_reference front() const
-        {
-            return failed_rangecheck();
-        }
-
-        reference back()
-        {
-            return failed_rangecheck();
-        }
-
-        const_reference back() const
-        {
-            return failed_rangecheck();
-        }
-
-        // size is constant
-        static size_type size() { return 0; }
-        static bool empty() { return true; }
-        static size_type max_size() { return 0; }
-        enum { static_size = 0 };
-
-        void swap (array<T,0>& /*y*/) {
-        }
-
-        // direct access to data (read-only)
-        const T* data() const { return 0; }
-        T* data() { return 0; }
-
-        // use array as C array (direct read/write access to data)
-        T* c_array() { return 0; }
-
-        // assignment with type conversion
-        template <typename T2>
-        array<T,0>& operator= (const array<T2,0>& ) {
-            return *this;
-        }
-
-        // assign one value to all elements
-        void assign (const T& value) { fill ( value ); }
-        void fill   (const T& ) {}
-        
-        // check range (may be private because it is static)
-        static reference failed_rangecheck () {
-                std::out_of_range e("attempt to access element of an empty array");
-                ndnboost::throw_exception(e);
-#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
-                // actually get here....
-                //
-                static T placeholder;
-                return placeholder;
-#endif
-            }
-    };
-#endif
-
-    // comparisons
-    template<class T, std::size_t N>
-    bool operator== (const array<T,N>& x, const array<T,N>& y) {
-        return std::equal(x.begin(), x.end(), y.begin());
-    }
-    template<class T, std::size_t N>
-    bool operator< (const array<T,N>& x, const array<T,N>& y) {
-        return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end());
-    }
-    template<class T, std::size_t N>
-    bool operator!= (const array<T,N>& x, const array<T,N>& y) {
-        return !(x==y);
-    }
-    template<class T, std::size_t N>
-    bool operator> (const array<T,N>& x, const array<T,N>& y) {
-        return y<x;
-    }
-    template<class T, std::size_t N>
-    bool operator<= (const array<T,N>& x, const array<T,N>& y) {
-        return !(y<x);
-    }
-    template<class T, std::size_t N>
-    bool operator>= (const array<T,N>& x, const array<T,N>& y) {
-        return !(x<y);
-    }
-
-    // global swap()
-    template<class T, std::size_t N>
-    inline void swap (array<T,N>& x, array<T,N>& y) {
-        x.swap(y);
-    }
-
-#if defined(__SUNPRO_CC)
-//  Trac ticket #4757; the Sun Solaris compiler can't handle
-//  syntax like 'T(&get_c_array(ndnboost::array<T,N>& arg))[N]'
-//  
-//  We can't just use this for all compilers, because the 
-//      borland compilers can't handle this form. 
-    namespace detail {
-       template <typename T, std::size_t N> struct c_array
-       {
-           typedef T type[N];
-       };
-    }
-    
-   // Specific for ndnboost::array: simply returns its elems data member.
-   template <typename T, std::size_t N>
-   typename detail::c_array<T,N>::type& get_c_array(ndnboost::array<T,N>& arg)
-   {
-       return arg.elems;
-   }
-
-   // Specific for ndnboost::array: simply returns its elems data member.
-   template <typename T, std::size_t N>
-   typename const detail::c_array<T,N>::type& get_c_array(const ndnboost::array<T,N>& arg)
-   {
-       return arg.elems;
-   }
-#else
-// Specific for ndnboost::array: simply returns its elems data member.
-    template <typename T, std::size_t N>
-    T(&get_c_array(ndnboost::array<T,N>& arg))[N]
-    {
-        return arg.elems;
-    }
-    
-    // Const version.
-    template <typename T, std::size_t N>
-    const T(&get_c_array(const ndnboost::array<T,N>& arg))[N]
-    {
-        return arg.elems;
-    }
-#endif
-    
-#if 0
-    // Overload for std::array, assuming that std::array will have
-    // explicit conversion functions as discussed at the WG21 meeting
-    // in Summit, March 2009.
-    template <typename T, std::size_t N>
-    T(&get_c_array(std::array<T,N>& arg))[N]
-    {
-        return static_cast<T(&)[N]>(arg);
-    }
-    
-    // Const version.
-    template <typename T, std::size_t N>
-    const T(&get_c_array(const std::array<T,N>& arg))[N]
-    {
-        return static_cast<T(&)[N]>(arg);
-    }
-#endif
-
-
-    template<class T, std::size_t N>
-    std::size_t hash_value(const array<T,N>& arr)
-    {
-        return ndnboost::hash_range(arr.begin(), arr.end());
-    }
-
-} /* namespace ndnboost */
-
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)  
-# pragma warning(pop)  
-#endif 
-
-#endif /*NDNBOOST_ARRAY_HPP*/
diff --git a/include/ndnboost/assert.hpp b/include/ndnboost/assert.hpp
deleted file mode 100644
index 7c7a672..0000000
--- a/include/ndnboost/assert.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-//
-//  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
-//  Copyright (c) Beman Dawes 2011
-//
-// 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)
-//
-//  Note: There are no include guards. This is intentional.
-//
-//  See http://www.boost.org/libs/utility/assert.html for documentation.
-//
-
-//
-// Stop inspect complaining about use of 'assert':
-//
-// boostinspect:naassert_macro
-//
-
-//--------------------------------------------------------------------------------------//
-//                                     NDNBOOST_ASSERT                                     //
-//--------------------------------------------------------------------------------------//
-
-#undef NDNBOOST_ASSERT
-
-#if defined(NDNBOOST_DISABLE_ASSERTS)
-
-# define NDNBOOST_ASSERT(expr) ((void)0)
-
-#elif defined(NDNBOOST_ENABLE_ASSERT_HANDLER)
-
-#include <ndnboost/current_function.hpp>
-
-namespace ndnboost
-{
-  void assertion_failed(char const * expr,
-                        char const * function, char const * file, long line); // user defined
-} // namespace ndnboost
-
-#define NDNBOOST_ASSERT(expr) ((expr) \
-  ? ((void)0) \
-  : ::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 NDNBOOST_ASSERT(expr) assert(expr)
-#endif
-
-//--------------------------------------------------------------------------------------//
-//                                   NDNBOOST_ASSERT_MSG                                   //
-//--------------------------------------------------------------------------------------//
-
-# undef NDNBOOST_ASSERT_MSG
-
-#if defined(NDNBOOST_DISABLE_ASSERTS) || defined(NDEBUG)
-
-  #define NDNBOOST_ASSERT_MSG(expr, msg) ((void)0)
-
-#elif defined(NDNBOOST_ENABLE_ASSERT_HANDLER)
-
-  #include <ndnboost/current_function.hpp>
-
-  namespace ndnboost
-  {
-    void assertion_failed_msg(char const * expr, char const * msg,
-                              char const * function, char const * file, long line); // user defined
-  } // namespace ndnboost
-
-  #define NDNBOOST_ASSERT_MSG(expr, msg) ((expr) \
-    ? ((void)0) \
-    : ::ndnboost::assertion_failed_msg(#expr, msg, NDNBOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
-
-#else
-  #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 NDNBOOST_ASSERT_MSG_OSTREAM
-    # define NDNBOOST_ASSERT_MSG_OSTREAM std::cerr
-    #endif
-
-    namespace ndnboost
-    { 
-      namespace assertion 
-      { 
-        namespace detail
-        {
-          inline void assertion_failed_msg(char const * expr, char const * msg, char const * function,
-            char const * file, long line)
-          {
-            NDNBOOST_ASSERT_MSG_OSTREAM
-              << "***** Internal Program Error - assertion (" << expr << ") failed in "
-              << function << ":\n"
-              << file << '(' << line << "): " << msg << std::endl;
-			#ifdef UNDER_CE
-				// The Windows CE CRT library does not have abort() so use exit(-1) instead.
-				std::exit(-1);
-			#else
-				std::abort();
-			#endif
-          }
-        } // detail
-      } // assertion
-    } // detail
-  #endif
-
-  #define NDNBOOST_ASSERT_MSG(expr, msg) ((expr) \
-    ? ((void)0) \
-    : ::ndnboost::assertion::detail::assertion_failed_msg(#expr, msg, \
-          NDNBOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
-#endif
-
-//--------------------------------------------------------------------------------------//
-//                                     NDNBOOST_VERIFY                                     //
-//--------------------------------------------------------------------------------------//
-
-#undef NDNBOOST_VERIFY
-
-#if defined(NDNBOOST_DISABLE_ASSERTS) || ( !defined(NDNBOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
-
-# define NDNBOOST_VERIFY(expr) ((void)(expr))
-
-#else
-
-# define NDNBOOST_VERIFY(expr) NDNBOOST_ASSERT(expr)
-
-#endif
diff --git a/include/ndnboost/bind.hpp b/include/ndnboost/bind.hpp
deleted file mode 100644
index 3653c87..0000000
--- a/include/ndnboost/bind.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef NDNBOOST_BIND_HPP_INCLUDED
-#define NDNBOOST_BIND_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  bind.hpp - binds function objects to arguments
-//
-//  Copyright (c) 2009 Peter Dimov
-//
-//  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
-//
-//  See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-#include <ndnboost/bind/bind.hpp>
-
-#endif // #ifndef NDNBOOST_BIND_HPP_INCLUDED
diff --git a/include/ndnboost/bind/apply.hpp b/include/ndnboost/bind/apply.hpp
deleted file mode 100644
index a1d96bd..0000000
--- a/include/ndnboost/bind/apply.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef NDNBOOST_BIND_APPLY_HPP_INCLUDED
-#define NDNBOOST_BIND_APPLY_HPP_INCLUDED
-
-//
-//  apply.hpp
-//
-//  Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-
-namespace ndnboost
-{
-
-template<class R> struct apply
-{
-    typedef R result_type;
-
-    template<class F> result_type operator()(F & f) const
-    {
-        return f();
-    }
-
-    template<class F, class A1> result_type operator()(F & f, A1 & a1) const
-    {
-        return f(a1);
-    }
-
-    template<class F, class A1, class A2> result_type operator()(F & f, A1 & a1, A2 & a2) const
-    {
-        return f(a1, a2);
-    }
-
-    template<class F, class A1, class A2, class A3> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3) const
-    {
-        return f(a1, a2, a3);
-    }
-
-    template<class F, class A1, class A2, class A3, class A4> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4) const
-    {
-        return f(a1, a2, a3, a4);
-    }
-
-    template<class F, class A1, class A2, class A3, class A4, class A5> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const
-    {
-        return f(a1, a2, a3, a4, a5);
-    }
-
-    template<class F, class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const
-    {
-        return f(a1, a2, a3, a4, a5, a6);
-    }
-
-    template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const
-    {
-        return f(a1, a2, a3, a4, a5, a6, a7);
-    }
-
-    template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const
-    {
-        return f(a1, a2, a3, a4, a5, a6, a7, a8);
-    }
-
-    template<class F, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(F & f, A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const
-    {
-        return f(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-    }
-};
-
-} // namespace ndnboost
-
-#endif // #ifndef NDNBOOST_BIND_APPLY_HPP_INCLUDED
diff --git a/include/ndnboost/bind/arg.hpp b/include/ndnboost/bind/arg.hpp
deleted file mode 100644
index d420e7f..0000000
--- a/include/ndnboost/bind/arg.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef NDNBOOST_BIND_ARG_HPP_INCLUDED
-#define NDNBOOST_BIND_ARG_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  bind/arg.hpp
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/is_placeholder.hpp>
-
-namespace ndnboost
-{
-
-template< int I > struct arg
-{
-    arg()
-    {
-    }
-
-    template< class T > arg( T const & /* t */ )
-    {
-        // static assert I == is_placeholder<T>::value
-        typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ];
-    }
-};
-
-template< int I > bool operator==( arg<I> const &, arg<I> const & )
-{
-    return true;
-}
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< int I > struct is_placeholder< arg<I> >
-{
-    enum _vt { value = I };
-};
-
-template< int I > struct is_placeholder< arg<I> (*) () >
-{
-    enum _vt { value = I };
-};
-
-#endif
-
-} // namespace ndnboost
-
-#endif // #ifndef NDNBOOST_BIND_ARG_HPP_INCLUDED
diff --git a/include/ndnboost/bind/bind.hpp b/include/ndnboost/bind/bind.hpp
deleted file mode 100644
index bf0bb2b..0000000
--- a/include/ndnboost/bind/bind.hpp
+++ /dev/null
@@ -1,1751 +0,0 @@
-#ifndef NDNBOOST_BIND_BIND_HPP_INCLUDED
-#define NDNBOOST_BIND_BIND_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  bind.hpp - binds function objects to arguments
-//
-//  Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.
-//  Copyright (c) 2001 David Abrahams
-//  Copyright (c) 2005 Peter Dimov
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/ref.hpp>
-#include <ndnboost/mem_fn.hpp>
-#include <ndnboost/type.hpp>
-#include <ndnboost/is_placeholder.hpp>
-#include <ndnboost/bind/arg.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/visit_each.hpp>
-
-// Borland-specific bug, visit_each() silently fails to produce code
-
-#if defined(__BORLANDC__)
-#  define NDNBOOST_BIND_VISIT_EACH ndnboost::visit_each
-#else
-#  define NDNBOOST_BIND_VISIT_EACH visit_each
-#endif
-
-#include <ndnboost/bind/storage.hpp>
-
-#ifdef NDNBOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4512) // assignment operator could not be generated
-#endif
-
-namespace ndnboost
-{
-
-template<class T> class weak_ptr;
-
-namespace _bi // implementation details
-{
-
-// result_traits
-
-template<class R, class F> struct result_traits
-{
-    typedef R type;
-};
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-
-struct unspecified {};
-
-template<class F> struct result_traits<unspecified, F>
-{
-    typedef typename F::result_type type;
-};
-
-template<class F> struct result_traits< unspecified, reference_wrapper<F> >
-{
-    typedef typename F::result_type type;
-};
-
-#endif
-
-// ref_compare
-
-template<class T> bool ref_compare( T const & a, T const & b, long )
-{
-    return a == b;
-}
-
-template<int I> bool ref_compare( arg<I> const &, arg<I> const &, int )
-{
-    return true;
-}
-
-template<int I> bool ref_compare( arg<I> (*) (), arg<I> (*) (), int )
-{
-    return true;
-}
-
-template<class T> bool ref_compare( reference_wrapper<T> const & a, reference_wrapper<T> const & b, int )
-{
-    return a.get_pointer() == b.get_pointer();
-}
-
-// bind_t forward declaration for listN
-
-template<class R, class F, class L> class bind_t;
-
-template<class R, class F, class L> bool ref_compare( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )
-{
-    return a.compare( b );
-}
-
-// value
-
-template<class T> class value
-{
-public:
-
-    value(T const & t): t_(t) {}
-
-    T & get() { return t_; }
-    T const & get() const { return t_; }
-
-    bool operator==(value const & rhs) const
-    {
-        return t_ == rhs.t_;
-    }
-
-private:
-
-    T t_;
-};
-
-// ref_compare for weak_ptr
-
-template<class T> bool ref_compare( value< weak_ptr<T> > const & a, value< weak_ptr<T> > const & b, int )
-{
-    return !(a.get() < b.get()) && !(b.get() < a.get());
-}
-
-// type
-
-template<class T> class type {};
-
-// unwrap
-
-template<class F> struct unwrapper
-{
-    static inline F & unwrap( F & f, long )
-    {
-        return f;
-    }
-
-    template<class F2> static inline F2 & unwrap( reference_wrapper<F2> rf, int )
-    {
-        return rf.get();
-    }
-
-    template<class R, class T> static inline _mfi::dm<R, T> unwrap( R T::* pm, int )
-    {
-        return _mfi::dm<R, T>( pm );
-    }
-};
-
-// listN
-
-class list0
-{
-public:
-
-    list0() {}
-
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A &, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)();
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A &, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)();
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A &, int)
-    {
-        unwrapper<F>::unwrap(f, 0)();
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A &, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)();
-    }
-
-    template<class V> void accept(V &) const
-    {
-    }
-
-    bool operator==(list0 const &) const
-    {
-        return true;
-    }
-};
-
-#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)
-#pragma warning(disable:4100)
-#endif
-
-template< class A1 > class list1: private storage1< A1 >
-{
-private:
-
-    typedef storage1< A1 > base_type;
-
-public:
-
-    explicit list1( A1 a1 ): base_type( a1 ) {}
-
-    A1 operator[] (ndnboost::arg<1>) const { return base_type::a1_; }
-
-    A1 operator[] (ndnboost::arg<1> (*) ()) const { return base_type::a1_; }
-
-    template<class T> T & operator[] ( _bi::value<T> & v ) const { return v.get(); }
-
-    template<class T> T const & operator[] ( _bi::value<T> const & v ) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-    {
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_]);
-    }
-
-    template<class V> void accept(V & v) const
-    {
-        base_type::accept(v);
-    }
-
-    bool operator==(list1 const & rhs) const
-    {
-        return ref_compare(base_type::a1_, rhs.a1_, 0);
-    }
-};
-
-struct logical_and;
-struct logical_or;
-
-template< class A1, class A2 > class list2: private storage2< A1, A2 >
-{
-private:
-
-    typedef storage2< A1, A2 > base_type;
-
-public:
-
-    list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {}
-
-    A1 operator[] (ndnboost::arg<1>) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2>) const { return base_type::a2_; }
-
-    A1 operator[] (ndnboost::arg<1> (*) ()) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2> (*) ()) const { return base_type::a2_; }
-
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-    {
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]);
-    }
-
-    template<class A> bool operator()( type<bool>, logical_and & /*f*/, A & a, int )
-    {
-        return a[ base_type::a1_ ] && a[ base_type::a2_ ];
-    }
-
-    template<class A> bool operator()( type<bool>, logical_and const & /*f*/, A & a, int ) const
-    {
-        return a[ base_type::a1_ ] && a[ base_type::a2_ ];
-    }
-
-    template<class A> bool operator()( type<bool>, logical_or & /*f*/, A & a, int )
-    {
-        return a[ base_type::a1_ ] || a[ base_type::a2_ ];
-    }
-
-    template<class A> bool operator()( type<bool>, logical_or const & /*f*/, A & a, int ) const
-    {
-        return a[ base_type::a1_ ] || a[ base_type::a2_ ];
-    }
-
-    template<class V> void accept(V & v) const
-    {
-        base_type::accept(v);
-    }
-
-    bool operator==(list2 const & rhs) const
-    {
-        return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0);
-    }
-};
-
-template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 >
-{
-private:
-
-    typedef storage3< A1, A2, A3 > base_type;
-
-public:
-
-    list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {}
-
-    A1 operator[] (ndnboost::arg<1>) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2>) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3>) const { return base_type::a3_; }
-
-    A1 operator[] (ndnboost::arg<1> (*) ()) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2> (*) ()) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3> (*) ()) const { return base_type::a3_; }
-
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-    {
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]);
-    }
-
-    template<class V> void accept(V & v) const
-    {
-        base_type::accept(v);
-    }
-
-    bool operator==(list3 const & rhs) const
-    {
-        return
-            
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
-            ref_compare( base_type::a3_, rhs.a3_, 0 );
-    }
-};
-
-template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 >
-{
-private:
-
-    typedef storage4< A1, A2, A3, A4 > base_type;
-
-public:
-
-    list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {}
-
-    A1 operator[] (ndnboost::arg<1>) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2>) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3>) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4>) const { return base_type::a4_; }
-
-    A1 operator[] (ndnboost::arg<1> (*) ()) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2> (*) ()) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3> (*) ()) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4> (*) ()) const { return base_type::a4_; }
-
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-    {
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]);
-    }
-
-    template<class V> void accept(V & v) const
-    {
-        base_type::accept(v);
-    }
-
-    bool operator==(list4 const & rhs) const
-    {
-        return
-
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
-            ref_compare( base_type::a4_, rhs.a4_, 0 );
-    }
-};
-
-template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 >
-{
-private:
-
-    typedef storage5< A1, A2, A3, A4, A5 > base_type;
-
-public:
-
-    list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {}
-
-    A1 operator[] (ndnboost::arg<1>) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2>) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3>) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4>) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5>) const { return base_type::a5_; }
-
-    A1 operator[] (ndnboost::arg<1> (*) ()) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2> (*) ()) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3> (*) ()) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4> (*) ()) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5> (*) ()) const { return base_type::a5_; }
-
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-    {
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]);
-    }
-
-    template<class V> void accept(V & v) const
-    {
-        base_type::accept(v);
-    }
-
-    bool operator==(list5 const & rhs) const
-    {
-        return
-
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
-            ref_compare( base_type::a5_, rhs.a5_, 0 );
-    }
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6> class list6: private storage6< A1, A2, A3, A4, A5, A6 >
-{
-private:
-
-    typedef storage6< A1, A2, A3, A4, A5, A6 > base_type;
-
-public:
-
-    list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {}
-
-    A1 operator[] (ndnboost::arg<1>) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2>) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3>) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4>) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5>) const { return base_type::a5_; }
-    A6 operator[] (ndnboost::arg<6>) const { return base_type::a6_; }
-
-    A1 operator[] (ndnboost::arg<1> (*) ()) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2> (*) ()) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3> (*) ()) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4> (*) ()) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5> (*) ()) const { return base_type::a5_; }
-    A6 operator[] (ndnboost::arg<6> (*) ()) const { return base_type::a6_; }
-
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-    {
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]);
-    }
-
-    template<class V> void accept(V & v) const
-    {
-        base_type::accept(v);
-    }
-
-    bool operator==(list6 const & rhs) const
-    {
-        return
-
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
-            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
-            ref_compare( base_type::a6_, rhs.a6_, 0 );
-    }
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 >
-{
-private:
-
-    typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type;
-
-public:
-
-    list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {}
-
-    A1 operator[] (ndnboost::arg<1>) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2>) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3>) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4>) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5>) const { return base_type::a5_; }
-    A6 operator[] (ndnboost::arg<6>) const { return base_type::a6_; }
-    A7 operator[] (ndnboost::arg<7>) const { return base_type::a7_; }
-
-    A1 operator[] (ndnboost::arg<1> (*) ()) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2> (*) ()) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3> (*) ()) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4> (*) ()) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5> (*) ()) const { return base_type::a5_; }
-    A6 operator[] (ndnboost::arg<6> (*) ()) const { return base_type::a6_; }
-    A7 operator[] (ndnboost::arg<7> (*) ()) const { return base_type::a7_; }
-
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-    {
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]);
-    }
-
-    template<class V> void accept(V & v) const
-    {
-        base_type::accept(v);
-    }
-
-    bool operator==(list7 const & rhs) const
-    {
-        return
-
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
-            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
-            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
-            ref_compare( base_type::a7_, rhs.a7_, 0 );
-    }
-};
-
-template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 >
-{
-private:
-
-    typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type;
-
-public:
-
-    list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
-
-    A1 operator[] (ndnboost::arg<1>) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2>) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3>) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4>) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5>) const { return base_type::a5_; }
-    A6 operator[] (ndnboost::arg<6>) const { return base_type::a6_; }
-    A7 operator[] (ndnboost::arg<7>) const { return base_type::a7_; }
-    A8 operator[] (ndnboost::arg<8>) const { return base_type::a8_; }
-
-    A1 operator[] (ndnboost::arg<1> (*) ()) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2> (*) ()) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3> (*) ()) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4> (*) ()) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5> (*) ()) const { return base_type::a5_; }
-    A6 operator[] (ndnboost::arg<6> (*) ()) const { return base_type::a6_; }
-    A7 operator[] (ndnboost::arg<7> (*) ()) const { return base_type::a7_; }
-    A8 operator[] (ndnboost::arg<8> (*) ()) const { return base_type::a8_; }
-
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-    {
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]);
-    }
-
-    template<class V> void accept(V & v) const
-    {
-        base_type::accept(v);
-    }
-
-    bool operator==(list8 const & rhs) const
-    {
-        return
-            
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
-            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
-            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
-            ref_compare( base_type::a7_, rhs.a7_, 0 ) &&
-            ref_compare( base_type::a8_, rhs.a8_, 0 );
-    }
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 >
-{
-private:
-
-    typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type;
-
-public:
-
-    list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {}
-
-    A1 operator[] (ndnboost::arg<1>) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2>) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3>) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4>) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5>) const { return base_type::a5_; }
-    A6 operator[] (ndnboost::arg<6>) const { return base_type::a6_; }
-    A7 operator[] (ndnboost::arg<7>) const { return base_type::a7_; }
-    A8 operator[] (ndnboost::arg<8>) const { return base_type::a8_; }
-    A9 operator[] (ndnboost::arg<9>) const { return base_type::a9_; }
-
-    A1 operator[] (ndnboost::arg<1> (*) ()) const { return base_type::a1_; }
-    A2 operator[] (ndnboost::arg<2> (*) ()) const { return base_type::a2_; }
-    A3 operator[] (ndnboost::arg<3> (*) ()) const { return base_type::a3_; }
-    A4 operator[] (ndnboost::arg<4> (*) ()) const { return base_type::a4_; }
-    A5 operator[] (ndnboost::arg<5> (*) ()) const { return base_type::a5_; }
-    A6 operator[] (ndnboost::arg<6> (*) ()) const { return base_type::a6_; }
-    A7 operator[] (ndnboost::arg<7> (*) ()) const { return base_type::a7_; }
-    A8 operator[] (ndnboost::arg<8> (*) ()) const { return base_type::a8_; }
-    A9 operator[] (ndnboost::arg<9> (*) ()) const { return base_type::a9_; }
-
-    template<class T> T & operator[] (_bi::value<T> & v) const { return v.get(); }
-
-    template<class T> T const & operator[] (_bi::value<T> const & v) const { return v.get(); }
-
-    template<class T> T & operator[] (reference_wrapper<T> const & v) const { return v.get(); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> & b) const { return b.eval(*this); }
-
-    template<class R, class F, class L> typename result_traits<R, F>::type operator[] (bind_t<R, F, L> const & b) const { return b.eval(*this); }
-
-    template<class R, class F, class A> R operator()(type<R>, F & f, A & a, long)
-    {
-        return unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
-    }
-
-    template<class R, class F, class A> R operator()(type<R>, F const & f, A & a, long) const
-    {
-        return unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F & f, A & a, int)
-    {
-        unwrapper<F>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
-    }
-
-    template<class F, class A> void operator()(type<void>, F const & f, A & a, int) const
-    {
-        unwrapper<F const>::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]);
-    }
-
-    template<class V> void accept(V & v) const
-    {
-        base_type::accept(v);
-    }
-
-    bool operator==(list9 const & rhs) const
-    {
-        return
-
-            ref_compare( base_type::a1_, rhs.a1_, 0 ) &&
-            ref_compare( base_type::a2_, rhs.a2_, 0 ) &&
-            ref_compare( base_type::a3_, rhs.a3_, 0 ) &&
-            ref_compare( base_type::a4_, rhs.a4_, 0 ) &&
-            ref_compare( base_type::a5_, rhs.a5_, 0 ) &&
-            ref_compare( base_type::a6_, rhs.a6_, 0 ) &&
-            ref_compare( base_type::a7_, rhs.a7_, 0 ) &&
-            ref_compare( base_type::a8_, rhs.a8_, 0 ) &&
-            ref_compare( base_type::a9_, rhs.a9_, 0 );
-    }
-};
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-// bind_t
-
-#ifndef NDNBOOST_NO_VOID_RETURNS
-
-template<class R, class F, class L> class bind_t
-{
-public:
-
-    typedef bind_t this_type;
-
-    bind_t(F f, L const & l): f_(f), l_(l) {}
-
-#define NDNBOOST_BIND_RETURN return
-#include <ndnboost/bind/bind_template.hpp>
-#undef NDNBOOST_BIND_RETURN
-
-};
-
-#else
-
-template<class R> struct bind_t_generator
-{
-
-template<class F, class L> class implementation
-{
-public:
-
-    typedef implementation this_type;
-
-    implementation(F f, L const & l): f_(f), l_(l) {}
-
-#define NDNBOOST_BIND_RETURN return
-#include <ndnboost/bind/bind_template.hpp>
-#undef NDNBOOST_BIND_RETURN
-
-};
-
-};
-
-template<> struct bind_t_generator<void>
-{
-
-template<class F, class L> class implementation
-{
-private:
-
-    typedef void R;
-
-public:
-
-    typedef implementation this_type;
-
-    implementation(F f, L const & l): f_(f), l_(l) {}
-
-#define NDNBOOST_BIND_RETURN
-#include <ndnboost/bind/bind_template.hpp>
-#undef NDNBOOST_BIND_RETURN
-
-};
-
-};
-
-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>::NDNBOOST_NESTED_TEMPLATE implementation<F, L>(f, l) {}
-
-};
-
-#endif
-
-// function_equal
-
-#ifndef NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-
-// put overloads in _bi, rely on ADL
-
-# 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 )
-{
-    return a.compare(b);
-}
-
-# else
-
-template<class R, class F, class L> bool function_equal_impl( bind_t<R, F, L> const & a, bind_t<R, F, L> const & b, int )
-{
-    return a.compare(b);
-}
-
-# endif // #ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-#else // NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-
-// put overloads in boost
-
-} // namespace _bi
-
-# 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 )
-{
-    return a.compare(b);
-}
-
-# else
-
-template<class R, class F, class L> bool function_equal_impl( _bi::bind_t<R, F, L> const & a, _bi::bind_t<R, F, L> const & b, int )
-{
-    return a.compare(b);
-}
-
-# endif // #ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-namespace _bi
-{
-
-#endif // NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-
-// add_value
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530)
-
-#if defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x582) )
-
-template<class T> struct add_value
-{
-    typedef _bi::value<T> type;
-};
-
-#else
-
-template< class T, int I > struct add_value_2
-{
-    typedef ndnboost::arg<I> type;
-};
-
-template< class T > struct add_value_2< T, 0 >
-{
-    typedef _bi::value< T > type;
-};
-
-template<class T> struct add_value
-{
-    typedef typename add_value_2< T, ndnboost::is_placeholder< T >::value >::type type;
-};
-
-#endif
-
-template<class T> struct add_value< value<T> >
-{
-    typedef _bi::value<T> type;
-};
-
-template<class T> struct add_value< reference_wrapper<T> >
-{
-    typedef reference_wrapper<T> type;
-};
-
-template<int I> struct add_value< arg<I> >
-{
-    typedef ndnboost::arg<I> type;
-};
-
-template<int I> struct add_value< arg<I> (*) () >
-{
-    typedef ndnboost::arg<I> (*type) ();
-};
-
-template<class R, class F, class L> struct add_value< bind_t<R, F, L> >
-{
-    typedef bind_t<R, F, L> type;
-};
-
-#else
-
-template<int I> struct _avt_0;
-
-template<> struct _avt_0<1>
-{
-    template<class T> struct inner
-    {
-        typedef T type;
-    };
-};
-
-template<> struct _avt_0<2>
-{
-    template<class T> struct inner
-    {
-        typedef value<T> type;
-    };
-};
-
-typedef char (&_avt_r1) [1];
-typedef char (&_avt_r2) [2];
-
-template<class T> _avt_r1 _avt_f(value<T>);
-template<class T> _avt_r1 _avt_f(reference_wrapper<T>);
-template<int I> _avt_r1 _avt_f(arg<I>);
-template<int I> _avt_r1 _avt_f(arg<I> (*) ());
-template<class R, class F, class L> _avt_r1 _avt_f(bind_t<R, F, L>);
-
-_avt_r2 _avt_f(...);
-
-template<class T> struct add_value
-{
-    static T t();
-    typedef typename _avt_0<sizeof(_avt_f(t()))>::template inner<T>::type type;
-};
-
-#endif
-
-// list_av_N
-
-template<class A1> struct list_av_1
-{
-    typedef typename add_value<A1>::type B1;
-    typedef list1<B1> type;
-};
-
-template<class A1, class A2> struct list_av_2
-{
-    typedef typename add_value<A1>::type B1;
-    typedef typename add_value<A2>::type B2;
-    typedef list2<B1, B2> type;
-};
-
-template<class A1, class A2, class A3> struct list_av_3
-{
-    typedef typename add_value<A1>::type B1;
-    typedef typename add_value<A2>::type B2;
-    typedef typename add_value<A3>::type B3;
-    typedef list3<B1, B2, B3> type;
-};
-
-template<class A1, class A2, class A3, class A4> struct list_av_4
-{
-    typedef typename add_value<A1>::type B1;
-    typedef typename add_value<A2>::type B2;
-    typedef typename add_value<A3>::type B3;
-    typedef typename add_value<A4>::type B4;
-    typedef list4<B1, B2, B3, B4> type;
-};
-
-template<class A1, class A2, class A3, class A4, class A5> struct list_av_5
-{
-    typedef typename add_value<A1>::type B1;
-    typedef typename add_value<A2>::type B2;
-    typedef typename add_value<A3>::type B3;
-    typedef typename add_value<A4>::type B4;
-    typedef typename add_value<A5>::type B5;
-    typedef list5<B1, B2, B3, B4, B5> type;
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6> struct list_av_6
-{
-    typedef typename add_value<A1>::type B1;
-    typedef typename add_value<A2>::type B2;
-    typedef typename add_value<A3>::type B3;
-    typedef typename add_value<A4>::type B4;
-    typedef typename add_value<A5>::type B5;
-    typedef typename add_value<A6>::type B6;
-    typedef list6<B1, B2, B3, B4, B5, B6> type;
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct list_av_7
-{
-    typedef typename add_value<A1>::type B1;
-    typedef typename add_value<A2>::type B2;
-    typedef typename add_value<A3>::type B3;
-    typedef typename add_value<A4>::type B4;
-    typedef typename add_value<A5>::type B5;
-    typedef typename add_value<A6>::type B6;
-    typedef typename add_value<A7>::type B7;
-    typedef list7<B1, B2, B3, B4, B5, B6, B7> type;
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct list_av_8
-{
-    typedef typename add_value<A1>::type B1;
-    typedef typename add_value<A2>::type B2;
-    typedef typename add_value<A3>::type B3;
-    typedef typename add_value<A4>::type B4;
-    typedef typename add_value<A5>::type B5;
-    typedef typename add_value<A6>::type B6;
-    typedef typename add_value<A7>::type B7;
-    typedef typename add_value<A8>::type B8;
-    typedef list8<B1, B2, B3, B4, B5, B6, B7, B8> type;
-};
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> struct list_av_9
-{
-    typedef typename add_value<A1>::type B1;
-    typedef typename add_value<A2>::type B2;
-    typedef typename add_value<A3>::type B3;
-    typedef typename add_value<A4>::type B4;
-    typedef typename add_value<A5>::type B5;
-    typedef typename add_value<A6>::type B6;
-    typedef typename add_value<A7>::type B7;
-    typedef typename add_value<A8>::type B8;
-    typedef typename add_value<A9>::type B9;
-    typedef list9<B1, B2, B3, B4, B5, B6, B7, B8, B9> type;
-};
-
-// operator!
-
-struct logical_not
-{
-    template<class V> bool operator()(V const & v) const { return !v; }
-};
-
-template<class R, class F, class L>
-    bind_t< bool, logical_not, list1< bind_t<R, F, L> > >
-    operator! (bind_t<R, F, L> const & f)
-{
-    typedef list1< bind_t<R, F, L> > list_type;
-    return bind_t<bool, logical_not, list_type> ( logical_not(), list_type(f) );
-}
-
-// relational operators
-
-#define NDNBOOST_BIND_OPERATOR( op, name ) \
-\
-struct name \
-{ \
-    template<class V, class W> bool operator()(V const & v, W const & w) const { return v op w; } \
-}; \
- \
-template<class R, class F, class L, class A2> \
-    bind_t< bool, name, list2< bind_t<R, F, L>, typename add_value<A2>::type > > \
-    operator op (bind_t<R, F, L> const & f, A2 a2) \
-{ \
-    typedef typename add_value<A2>::type B2; \
-    typedef list2< bind_t<R, F, L>, B2> list_type; \
-    return bind_t<bool, name, list_type> ( name(), list_type(f, a2) ); \
-}
-
-NDNBOOST_BIND_OPERATOR( ==, equal )
-NDNBOOST_BIND_OPERATOR( !=, not_equal )
-
-NDNBOOST_BIND_OPERATOR( <, less )
-NDNBOOST_BIND_OPERATOR( <=, less_equal )
-
-NDNBOOST_BIND_OPERATOR( >, greater )
-NDNBOOST_BIND_OPERATOR( >=, greater_equal )
-
-NDNBOOST_BIND_OPERATOR( &&, logical_and )
-NDNBOOST_BIND_OPERATOR( ||, logical_or )
-
-#undef NDNBOOST_BIND_OPERATOR
-
-#if defined(__GNUC__) && NDNBOOST_WORKAROUND(__GNUC__, < 3)
-
-// resolve ambiguity with rel_ops
-
-#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> > > \
-    operator op (bind_t<R, F, L> const & f, bind_t<R, F, L> const & g) \
-{ \
-    typedef list2< bind_t<R, F, L>, bind_t<R, F, L> > list_type; \
-    return bind_t<bool, name, list_type> ( name(), list_type(f, g) ); \
-}
-
-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( 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;
-    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 )
-{
-    t.accept( v );
-}
-
-#endif
-
-} // namespace _bi
-
-// visit_each, no ADL
-
-#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 )
-{
-    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 )
-{
-    t.accept( v );
-}
-
-#endif
-
-// is_bind_expression
-
-template< class T > struct is_bind_expression
-{
-    enum _vt { value = 0 };
-};
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > >
-{
-    enum _vt { value = 1 };
-};
-
-#endif
-
-// bind
-
-#ifndef NDNBOOST_BIND
-#define NDNBOOST_BIND bind
-#endif
-
-// generic function objects
-
-template<class R, class F>
-    _bi::bind_t<R, F, _bi::list0>
-    NDNBOOST_BIND(F f)
-{
-    typedef _bi::list0 list_type;
-    return _bi::bind_t<R, F, list_type> (f, list_type());
-}
-
-template<class R, class F, class A1>
-    _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
-    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));
-}
-
-template<class R, class F, class A1, class A2>
-    _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-// generic function objects, alternative syntax
-
-template<class R, class F>
-    _bi::bind_t<R, F, _bi::list0>
-    NDNBOOST_BIND(ndnboost::type<R>, F f)
-{
-    typedef _bi::list0 list_type;
-    return _bi::bind_t<R, F, list_type> (f, list_type());
-}
-
-template<class R, class F, class A1>
-    _bi::bind_t<R, F, typename _bi::list_av_1<A1>::type>
-    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));
-}
-
-template<class R, class F, class A1, class A2>
-    _bi::bind_t<R, F, typename _bi::list_av_2<A1, A2>::type>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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(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>
-    NDNBOOST_BIND(F f)
-{
-    typedef _bi::list0 list_type;
-    return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type());
-}
-
-template<class F, class A1>
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1<A1>::type>
-    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));
-}
-
-template<class F, class A1, class A2>
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2<A1, A2>::type>
-    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));
-}
-
-template<class F, class A1, class A2, class A3>
-    _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3<A1, A2, A3>::type>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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));
-}
-
-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>
-    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(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-
-// function pointers
-
-#define NDNBOOST_BIND_CC
-#define NDNBOOST_BIND_ST
-
-#include <ndnboost/bind/bind_cc.hpp>
-
-#undef NDNBOOST_BIND_CC
-#undef NDNBOOST_BIND_ST
-
-#ifdef NDNBOOST_BIND_ENABLE_STDCALL
-
-#define NDNBOOST_BIND_CC __stdcall
-#define NDNBOOST_BIND_ST
-
-#include <ndnboost/bind/bind_cc.hpp>
-
-#undef NDNBOOST_BIND_CC
-#undef NDNBOOST_BIND_ST
-
-#endif
-
-#ifdef NDNBOOST_BIND_ENABLE_FASTCALL
-
-#define NDNBOOST_BIND_CC __fastcall
-#define NDNBOOST_BIND_ST
-
-#include <ndnboost/bind/bind_cc.hpp>
-
-#undef NDNBOOST_BIND_CC
-#undef NDNBOOST_BIND_ST
-
-#endif
-
-#ifdef NDNBOOST_BIND_ENABLE_PASCAL
-
-#define NDNBOOST_BIND_ST pascal
-#define NDNBOOST_BIND_CC
-
-#include <ndnboost/bind/bind_cc.hpp>
-
-#undef NDNBOOST_BIND_ST
-#undef NDNBOOST_BIND_CC
-
-#endif
-
-// member function pointers
-
-#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 NDNBOOST_BIND_MF_NAME
-#undef NDNBOOST_BIND_MF_CC
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_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 NDNBOOST_BIND_MF_NAME
-#undef NDNBOOST_BIND_MF_CC
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_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 NDNBOOST_BIND_MF_NAME
-#undef NDNBOOST_BIND_MF_CC
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_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 NDNBOOST_BIND_MF_NAME
-#undef NDNBOOST_BIND_MF_CC
-
-#endif
-
-// data member pointers
-
-#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 >
-    NDNBOOST_BIND(R T::*f, A1 a1)
-{
-    typedef _mfi::dm<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) );
-}
-
-#else
-
-namespace _bi
-{
-
-template< class Pm, int I > struct add_cref;
-
-template< class M, class T > struct add_cref< M T::*, 0 >
-{
-    typedef M type;
-};
-
-template< class M, class T > struct add_cref< M T::*, 1 >
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4180)
-#endif
-    typedef M const & type;
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-};
-
-template< class R, class T > struct add_cref< R (T::*) (), 1 >
-{
-    typedef void type;
-};
-
-#if !defined(__IBMCPP__) || __IBMCPP_FUNC_CV_TMPL_ARG_DEDUCTION
-
-template< class R, class T > struct add_cref< R (T::*) () const, 1 >
-{
-    typedef void type;
-};
-
-#endif // __IBMCPP__
-
-template<class R> struct isref
-{
-    enum value_type { value = 0 };
-};
-
-template<class R> struct isref< R& >
-{
-    enum value_type { value = 1 };
-};
-
-template<class R> struct isref< R* >
-{
-    enum value_type { value = 1 };
-};
-
-template<class Pm, class A1> struct dm_result
-{
-    typedef typename add_cref< Pm, 1 >::type type;
-};
-
-template<class Pm, class R, class F, class L> struct dm_result< Pm, bind_t<R, F, L> >
-{
-    typedef typename bind_t<R, F, L>::result_type result_type;
-    typedef typename add_cref< Pm, isref< result_type >::value >::type type;
-};
-
-} // namespace _bi
-
-template< class A1, class M, class T >
-
-_bi::bind_t<
-    typename _bi::dm_result< M T::*, A1 >::type,
-    _mfi::dm<M, T>,
-    typename _bi::list_av_1<A1>::type
->
-
-NDNBOOST_BIND( M T::*f, A1 a1 )
-{
-    typedef typename _bi::dm_result< M T::*, A1 >::type result_type;
-    typedef _mfi::dm<M, T> F;
-    typedef typename _bi::list_av_1<A1>::type list_type;
-    return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) );
-}
-
-#endif
-
-} // namespace ndnboost
-
-#ifndef NDNBOOST_BIND_NO_PLACEHOLDERS
-
-# include <ndnboost/bind/placeholders.hpp>
-
-#endif
-
-#ifdef NDNBOOST_MSVC
-# pragma warning(default: 4512) // assignment operator could not be generated
-# pragma warning(pop)
-#endif
-
-#endif // #ifndef NDNBOOST_BIND_BIND_HPP_INCLUDED
diff --git a/include/ndnboost/bind/bind_cc.hpp b/include/ndnboost/bind/bind_cc.hpp
deleted file mode 100644
index cb95e6a..0000000
--- a/include/ndnboost/bind/bind_cc.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-//
-//  bind/bind_cc.hpp - support for different calling conventions
-//
-//  Do not include this header directly.
-//
-//  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-template<class R>
-    _bi::bind_t<R, NDNBOOST_BIND_ST R (NDNBOOST_BIND_CC *) (), _bi::list0>
-    NDNBOOST_BIND(NDNBOOST_BIND_ST R (NDNBOOST_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, 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 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, 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 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));
-}
-
-template<class R,
-    class B1, class B2, class B3,
-    class A1, class A2, class 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 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));
-}
-
-template<class R,
-    class B1, class B2, class B3, class B4,
-    class A1, class A2, class A3, class 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 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));
-}
-
-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, 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 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));
-}
-
-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, 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 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));
-}
-
-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, 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 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));
-}
-
-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, 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 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));
-}
-
-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, 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 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
deleted file mode 100644
index 563deef..0000000
--- a/include/ndnboost/bind/bind_mf2_cc.hpp
+++ /dev/null
@@ -1,228 +0,0 @@
-//
-//  bind/bind_mf2_cc.hpp - member functions, type<> syntax
-//
-//  Do not include this header directly.
-//
-//  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
-//  Copyright (c) 2008 Peter Dimov
-//
-//  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
-//
-//  See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-// 0
-
-template<class Rt2, class R, class T,
-    class 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::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::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::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));
-}
-
-// 1
-
-template<class Rt2, class R, class T,
-    class B1,
-    class A1, class 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::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));
-}
-
-template<class Rt2, class R, class T,
-    class B1,
-    class A1, class 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::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));
-}
-
-// 2
-
-template<class Rt2, class R, class T,
-    class B1, class B2,
-    class A1, class A2, class 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::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));
-}
-
-template<class Rt2, class R, class T,
-    class B1, class B2,
-    class A1, class A2, class 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::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));
-}
-
-// 3
-
-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::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::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));
-}
-
-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::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::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));
-}
-
-// 4
-
-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::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::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));
-}
-
-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::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::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));
-}
-
-// 5
-
-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::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::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));
-}
-
-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::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::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));
-}
-
-// 6
-
-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::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::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));
-}
-
-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::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::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));
-}
-
-// 7
-
-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::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::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));
-}
-
-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::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::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));
-}
-
-// 8
-
-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::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::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));
-}
-
-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::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::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
deleted file mode 100644
index 34108e7..0000000
--- a/include/ndnboost/bind/bind_mf_cc.hpp
+++ /dev/null
@@ -1,227 +0,0 @@
-//
-//  bind/bind_mf_cc.hpp - support for different calling conventions
-//
-//  Do not include this header directly.
-//
-//  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-// 0
-
-template<class R, class T,
-    class 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::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::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::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));
-}
-
-// 1
-
-template<class R, class T,
-    class B1,
-    class A1, class 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::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));
-}
-
-template<class R, class T,
-    class B1,
-    class A1, class 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::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));
-}
-
-// 2
-
-template<class R, class T,
-    class B1, class B2,
-    class A1, class A2, class 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::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));
-}
-
-template<class R, class T,
-    class B1, class B2,
-    class A1, class A2, class 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::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));
-}
-
-// 3
-
-template<class R, class T,
-    class B1, class B2, class B3,
-    class A1, class A2, class A3, class 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::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));
-}
-
-template<class R, class T,
-    class B1, class B2, class B3,
-    class A1, class A2, class A3, class 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::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));
-}
-
-// 4
-
-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::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::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));
-}
-
-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::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::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));
-}
-
-// 5
-
-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::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::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));
-}
-
-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::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::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));
-}
-
-// 6
-
-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::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::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));
-}
-
-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::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::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));
-}
-
-// 7
-
-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::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::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));
-}
-
-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::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::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));
-}
-
-// 8
-
-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::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::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));
-}
-
-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::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::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
deleted file mode 100644
index f3037ec..0000000
--- a/include/ndnboost/bind/bind_template.hpp
+++ /dev/null
@@ -1,345 +0,0 @@
-//
-//  bind/bind_template.hpp
-//
-//  Do not include this header directly.
-//
-//  Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-    typedef typename result_traits<R, F>::type result_type;
-
-    result_type operator()()
-    {
-        list0 a;
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-    result_type operator()() const
-    {
-        list0 a;
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-    template<class A1> result_type operator()(A1 & a1)
-    {
-        list1<A1 &> a(a1);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-    template<class A1> result_type operator()(A1 & a1) const
-    {
-        list1<A1 &> a(a1);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#endif
-
-    template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2)
-    {
-        list2<A1 &, A2 &> a(a1, a2);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#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);
-        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);
-        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);
-        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);
-        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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#endif
-
-    template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3)
-    {
-        list3<A1 &, A2 &, A3 &> a(a1, a2, a3);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#endif
-
-    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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#endif
-
-    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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#endif
-
-    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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#endif
-
-    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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#endif
-
-    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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#endif
-
-    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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#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);
-        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);
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-#endif
-
-    template<class A> result_type eval(A & a)
-    {
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-    template<class A> result_type eval(A & a) const
-    {
-        NDNBOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
-    }
-
-    template<class V> void accept(V & v) const
-    {
-#if !defined( NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ )
-
-        using ndnboost::visit_each;
-
-#endif
-        NDNBOOST_BIND_VISIT_EACH(v, f_, 0);
-        l_.accept(v);
-    }
-
-    bool compare(this_type const & rhs) const
-    {
-        return ref_compare(f_, rhs.f_, 0) && l_ == rhs.l_;
-    }
-
-private:
-
-    F f_;
-    L l_;
diff --git a/include/ndnboost/bind/make_adaptable.hpp b/include/ndnboost/bind/make_adaptable.hpp
deleted file mode 100644
index 619eddd..0000000
--- a/include/ndnboost/bind/make_adaptable.hpp
+++ /dev/null
@@ -1,187 +0,0 @@
-#ifndef NDNBOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
-#define NDNBOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
-
-//
-//  make_adaptable.hpp
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-
-namespace ndnboost
-{
-
-namespace _bi
-{
-
-template<class R, class F> class af0
-{
-public:
-
-    typedef R result_type;
-
-    explicit af0(F f): f_(f)
-    {
-    }
-
-    result_type operator()()
-    {
-        return f_();
-    }
-
-    result_type operator()() const
-    {
-        return f_();
-    }
-
-private:
-
-    F f_;
-};
-
-template<class R, class A1, class F> class af1
-{
-public:
-
-    typedef R result_type;
-    typedef A1 argument_type;
-    typedef A1 arg1_type;
-
-    explicit af1(F f): f_(f)
-    {
-    }
-
-    result_type operator()(A1 a1)
-    {
-        return f_(a1);
-    }
-
-    result_type operator()(A1 a1) const
-    {
-        return f_(a1);
-    }
-
-private:
-
-    F f_;
-};
-
-template<class R, class A1, class A2, class F> class af2
-{
-public:
-
-    typedef R result_type;
-    typedef A1 first_argument_type;
-    typedef A2 second_argument_type;
-    typedef A1 arg1_type;
-    typedef A2 arg2_type;
-
-    explicit af2(F f): f_(f)
-    {
-    }
-
-    result_type operator()(A1 a1, A2 a2)
-    {
-        return f_(a1, a2);
-    }
-
-    result_type operator()(A1 a1, A2 a2) const
-    {
-        return f_(a1, a2);
-    }
-
-private:
-
-    F f_;
-};
-
-template<class R, class A1, class A2, class A3, class F> class af3
-{
-public:
-
-    typedef R result_type;
-    typedef A1 arg1_type;
-    typedef A2 arg2_type;
-    typedef A3 arg3_type;
-
-    explicit af3(F f): f_(f)
-    {
-    }
-
-    result_type operator()(A1 a1, A2 a2, A3 a3)
-    {
-        return f_(a1, a2, a3);
-    }
-
-    result_type operator()(A1 a1, A2 a2, A3 a3) const
-    {
-        return f_(a1, a2, a3);
-    }
-
-private:
-
-    F f_;
-};
-
-template<class R, class A1, class A2, class A3, class A4, class F> class af4
-{
-public:
-
-    typedef R result_type;
-    typedef A1 arg1_type;
-    typedef A2 arg2_type;
-    typedef A3 arg3_type;
-    typedef A4 arg4_type;
-
-    explicit af4(F f): f_(f)
-    {
-    }
-
-    result_type operator()(A1 a1, A2 a2, A3 a3, A4 a4)
-    {
-        return f_(a1, a2, a3, a4);
-    }
-
-    result_type operator()(A1 a1, A2 a2, A3 a3, A4 a4) const
-    {
-        return f_(a1, a2, a3, a4);
-    }
-
-private:
-
-    F f_;
-};
-
-} // namespace _bi
-
-template<class R, class F> _bi::af0<R, F> make_adaptable(F f)
-{
-    return _bi::af0<R, F>(f);
-}
-
-template<class R, class A1, class F> _bi::af1<R, A1, F> make_adaptable(F f)
-{
-    return _bi::af1<R, A1, F>(f);
-}
-
-template<class R, class A1, class A2, class F> _bi::af2<R, A1, A2, F> make_adaptable(F f)
-{
-    return _bi::af2<R, A1, A2, F>(f);
-}
-
-template<class R, class A1, class A2, class A3, class F> _bi::af3<R, A1, A2, A3, F> make_adaptable(F f)
-{
-    return _bi::af3<R, A1, A2, A3, F>(f);
-}
-
-template<class R, class A1, class A2, class A3, class A4, class F> _bi::af4<R, A1, A2, A3, A4, F> make_adaptable(F f)
-{
-    return _bi::af4<R, A1, A2, A3, A4, F>(f);
-}
-
-} // namespace ndnboost
-
-#endif // #ifndef NDNBOOST_BIND_MAKE_ADAPTABLE_HPP_INCLUDED
diff --git a/include/ndnboost/bind/mem_fn.hpp b/include/ndnboost/bind/mem_fn.hpp
deleted file mode 100644
index b2a915e..0000000
--- a/include/ndnboost/bind/mem_fn.hpp
+++ /dev/null
@@ -1,389 +0,0 @@
-#ifndef NDNBOOST_BIND_MEM_FN_HPP_INCLUDED
-#define NDNBOOST_BIND_MEM_FN_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  mem_fn.hpp - a generalization of std::mem_fun[_ref]
-//
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
-//  Copyright (c) 2001 David Abrahams
-//  Copyright (c) 2003-2005 Peter Dimov
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/mem_fn.html for documentation.
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/get_pointer.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost
-{
-
-#if defined(NDNBOOST_NO_VOID_RETURNS)
-
-#define NDNBOOST_MEM_FN_CLASS_F , class F
-#define NDNBOOST_MEM_FN_TYPEDEF(X)
-
-namespace _mfi // mem_fun_impl
-{
-
-template<class V> struct mf
-{
-
-#define NDNBOOST_MEM_FN_RETURN return
-
-#define NDNBOOST_MEM_FN_NAME(X) inner_##X
-#define NDNBOOST_MEM_FN_CC
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
-
-#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_cdecl
-#define NDNBOOST_MEM_FN_CC __cdecl
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
-
-#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_stdcall
-#define NDNBOOST_MEM_FN_CC __stdcall
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
-
-#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_fastcall
-#define NDNBOOST_MEM_FN_CC __fastcall
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#endif
-
-#undef NDNBOOST_MEM_FN_RETURN
-
-}; // struct mf<V>
-
-template<> struct mf<void>
-{
-
-#define NDNBOOST_MEM_FN_RETURN
-
-#define NDNBOOST_MEM_FN_NAME(X) inner_##X
-#define NDNBOOST_MEM_FN_CC
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
-
-#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_cdecl
-#define NDNBOOST_MEM_FN_CC __cdecl
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
-
-#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_stdcall
-#define NDNBOOST_MEM_FN_CC __stdcall
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
-
-#define NDNBOOST_MEM_FN_NAME(X) inner_##X##_fastcall
-#define NDNBOOST_MEM_FN_CC __fastcall
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#endif
-
-#undef NDNBOOST_MEM_FN_RETURN
-
-}; // struct mf<void>
-
-#undef NDNBOOST_MEM_FN_CLASS_F
-#undef NDNBOOST_MEM_FN_TYPEDEF_F
-
-#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 NDNBOOST_MEM_FN_NAME
-#undef NDNBOOST_MEM_FN_NAME2
-#undef NDNBOOST_MEM_FN_CC
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_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 NDNBOOST_MEM_FN_NAME
-#undef NDNBOOST_MEM_FN_NAME2
-#undef NDNBOOST_MEM_FN_CC
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_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 NDNBOOST_MEM_FN_NAME
-#undef NDNBOOST_MEM_FN_NAME2
-#undef NDNBOOST_MEM_FN_CC
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_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 NDNBOOST_MEM_FN_NAME
-#undef NDNBOOST_MEM_FN_NAME2
-#undef NDNBOOST_MEM_FN_CC
-
-#endif
-
-} // namespace _mfi
-
-#else // #ifdef NDNBOOST_NO_VOID_RETURNS
-
-#define NDNBOOST_MEM_FN_CLASS_F
-#define NDNBOOST_MEM_FN_TYPEDEF(X) typedef X;
-
-namespace _mfi
-{
-
-#define NDNBOOST_MEM_FN_RETURN return
-
-#define NDNBOOST_MEM_FN_NAME(X) X
-#define NDNBOOST_MEM_FN_CC
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
-
-#define NDNBOOST_MEM_FN_NAME(X) X##_cdecl
-#define NDNBOOST_MEM_FN_CC __cdecl
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
-
-#define NDNBOOST_MEM_FN_NAME(X) X##_stdcall
-#define NDNBOOST_MEM_FN_CC __stdcall
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
-
-#define NDNBOOST_MEM_FN_NAME(X) X##_fastcall
-#define NDNBOOST_MEM_FN_CC __fastcall
-
-#include <ndnboost/bind/mem_fn_template.hpp>
-
-#undef NDNBOOST_MEM_FN_CC
-#undef NDNBOOST_MEM_FN_NAME
-
-#endif
-
-#undef NDNBOOST_MEM_FN_RETURN
-
-} // namespace _mfi
-
-#undef NDNBOOST_MEM_FN_CLASS_F
-#undef NDNBOOST_MEM_FN_TYPEDEF
-
-#endif // #ifdef NDNBOOST_NO_VOID_RETURNS
-
-#define NDNBOOST_MEM_FN_NAME(X) X
-#define NDNBOOST_MEM_FN_CC
-
-#include <ndnboost/bind/mem_fn_cc.hpp>
-
-#undef NDNBOOST_MEM_FN_NAME
-#undef NDNBOOST_MEM_FN_CC
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_CDECL
-
-#define NDNBOOST_MEM_FN_NAME(X) X##_cdecl
-#define NDNBOOST_MEM_FN_CC __cdecl
-
-#include <ndnboost/bind/mem_fn_cc.hpp>
-
-#undef NDNBOOST_MEM_FN_NAME
-#undef NDNBOOST_MEM_FN_CC
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_STDCALL
-
-#define NDNBOOST_MEM_FN_NAME(X) X##_stdcall
-#define NDNBOOST_MEM_FN_CC __stdcall
-
-#include <ndnboost/bind/mem_fn_cc.hpp>
-
-#undef NDNBOOST_MEM_FN_NAME
-#undef NDNBOOST_MEM_FN_CC
-
-#endif
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_FASTCALL
-
-#define NDNBOOST_MEM_FN_NAME(X) X##_fastcall
-#define NDNBOOST_MEM_FN_CC __fastcall
-
-#include <ndnboost/bind/mem_fn_cc.hpp>
-
-#undef NDNBOOST_MEM_FN_NAME
-#undef NDNBOOST_MEM_FN_CC
-
-#endif
-
-// data member support
-
-namespace _mfi
-{
-
-template<class R, class T> class dm
-{
-public:
-
-    typedef R const & result_type;
-    typedef T const * argument_type;
-
-private:
-    
-    typedef R (T::*F);
-    F f_;
-
-    template<class U> R const & call(U & u, T const *) const
-    {
-        return (u.*f_);
-    }
-
-    template<class U> R const & call(U & u, void const *) const
-    {
-        return (get_pointer(u)->*f_);
-    }
-
-public:
-    
-    explicit dm(F f): f_(f) {}
-
-    R & operator()(T * p) const
-    {
-        return (p->*f_);
-    }
-
-    R const & operator()(T const * p) const
-    {
-        return (p->*f_);
-    }
-
-    template<class U> R const & operator()(U const & u) const
-    {
-        return call(u, &u);
-    }
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) && !NDNBOOST_WORKAROUND(__MWERKS__, < 0x3200)
-
-    R & operator()(T & t) const
-    {
-        return (t.*f_);
-    }
-
-    R const & operator()(T const & t) const
-    {
-        return (t.*f_);
-    }
-
-#endif
-
-    bool operator==(dm const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(dm const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-} // namespace _mfi
-
-template<class R, class T> _mfi::dm<R, T> mem_fn(R T::*f)
-{
-    return _mfi::dm<R, T>(f);
-}
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index a094d3b..0000000
--- a/include/ndnboost/bind/mem_fn_cc.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-//
-//  bind/mem_fn_cc.hpp - support for different calling conventions
-//
-//  Do not include this header directly.
-//
-//  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/mem_fn.html for documentation.
-//
-
-template<class R, class T> _mfi::NDNBOOST_MEM_FN_NAME(mf0)<R, T> mem_fn(R (NDNBOOST_MEM_FN_CC T::*f) ())
-{
-    return _mfi::NDNBOOST_MEM_FN_NAME(mf0)<R, T>(f);
-}
-
-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::NDNBOOST_MEM_FN_NAME(cmf0)<R, T>(f);
-}
-
-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::NDNBOOST_MEM_FN_NAME(mf1)<R, T, A1>(f);
-}
-
-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::NDNBOOST_MEM_FN_NAME(cmf1)<R, T, A1>(f);
-}
-
-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::NDNBOOST_MEM_FN_NAME(mf2)<R, T, A1, A2>(f);
-}
-
-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::NDNBOOST_MEM_FN_NAME(cmf2)<R, T, A1, A2>(f);
-}
-
-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::NDNBOOST_MEM_FN_NAME(mf3)<R, T, A1, A2, A3>(f);
-}
-
-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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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::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
deleted file mode 100644
index 3ea24e7..0000000
--- a/include/ndnboost/bind/mem_fn_template.hpp
+++ /dev/null
@@ -1,1047 +0,0 @@
-//
-//  bind/mem_fn_template.hpp
-//
-//  Do not include this header directly
-//
-//  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/mem_fn.html for documentation.
-//
-
-#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-# define NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
-#endif
-
-// mf0
-
-template<class R, class T NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf0)
-{
-public:
-
-    typedef R result_type;
-    typedef T * argument_type;
-
-private:
-    
-    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) ())
-    F f_;
-
-    template<class U> R call(U & u, T const *) const
-    {
-        NDNBOOST_MEM_FN_RETURN (u.*f_)();
-    }
-
-    template<class U> R call(U & u, void const *) const
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
-    }
-
-public:
-    
-    explicit NDNBOOST_MEM_FN_NAME(mf0)(F f): f_(f) {}
-
-    R operator()(T * p) const
-    {
-        NDNBOOST_MEM_FN_RETURN (p->*f_)();
-    }
-
-    template<class U> R operator()(U & u) const
-    {
-        U const * p = 0;
-        NDNBOOST_MEM_FN_RETURN call(u, p);
-    }
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
-
-    template<class U> R operator()(U const & u) const
-    {
-        U const * p = 0;
-        NDNBOOST_MEM_FN_RETURN call(u, p);
-    }
-
-#endif
-
-    R operator()(T & t) const
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)();
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(mf0) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(mf0) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// cmf0
-
-template<class R, class T NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf0)
-{
-public:
-
-    typedef R result_type;
-    typedef T const * argument_type;
-
-private:
-    
-    NDNBOOST_MEM_FN_TYPEDEF(R (NDNBOOST_MEM_FN_CC T::*F) () const)
-    F f_;
-
-    template<class U> R call(U & u, T const *) const
-    {
-        NDNBOOST_MEM_FN_RETURN (u.*f_)();
-    }
-
-    template<class U> R call(U & u, void const *) const
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)();
-    }
-
-public:
-    
-    explicit NDNBOOST_MEM_FN_NAME(cmf0)(F f): f_(f) {}
-
-    template<class U> R operator()(U const & u) const
-    {
-        U const * p = 0;
-        NDNBOOST_MEM_FN_RETURN call(u, p);
-    }
-
-    R operator()(T const & t) const
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)();
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(cmf0) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf0) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// mf1
-
-template<class R, class T, class A1 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf1)
-{
-public:
-
-    typedef R result_type;
-    typedef T * first_argument_type;
-    typedef A1 second_argument_type;
-
-private:
-    
-    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
-    {
-        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1);
-    }
-
-    template<class U, class B1> R call(U & u, void const *, B1 & b1) const
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
-    }
-
-public:
-    
-    explicit NDNBOOST_MEM_FN_NAME(mf1)(F f): f_(f) {}
-
-    R operator()(T * p, A1 a1) const
-    {
-        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1);
-    }
-
-    template<class U> R operator()(U & u, A1 a1) const
-    {
-        U const * p = 0;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1);
-    }
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
-
-    template<class U> R operator()(U const & u, A1 a1) const
-    {
-        U const * p = 0;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1);
-    }
-
-#endif
-
-    R operator()(T & t, A1 a1) const
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(mf1) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(mf1) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// cmf1
-
-template<class R, class T, class A1 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf1)
-{
-public:
-
-    typedef R result_type;
-    typedef T const * first_argument_type;
-    typedef A1 second_argument_type;
-
-private:
-    
-    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
-    {
-        NDNBOOST_MEM_FN_RETURN (u.*f_)(b1);
-    }
-
-    template<class U, class B1> R call(U & u, void const *, B1 & b1) const
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
-    }
-
-public:
-    
-    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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1);
-    }
-
-    R operator()(T const & t, A1 a1) const
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(cmf1) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf1) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// mf2
-
-template<class R, class T, class A1, class A2 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf2)
-{
-public:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2);
-    }
-
-public:
-    
-    explicit NDNBOOST_MEM_FN_NAME(mf2)(F f): f_(f) {}
-
-    R operator()(T * p, A1 a1, A2 a2) const
-    {
-        NDNBOOST_MEM_FN_RETURN (p->*f_)(a1, a2);
-    }
-
-    template<class U> R operator()(U & u, A1 a1, A2 a2) const
-    {
-        U const * p = 0;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2);
-    }
-
-#ifdef NDNBOOST_MEM_FN_ENABLE_CONST_OVERLOADS
-
-    template<class U> R operator()(U const & u, A1 a1, A2 a2) const
-    {
-        U const * p = 0;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2);
-    }
-
-#endif
-
-    R operator()(T & t, A1 a1, A2 a2) const
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(mf2) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(mf2) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// cmf2
-
-template<class R, class T, class A1, class A2 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf2)
-{
-public:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2);
-    }
-
-public:
-    
-    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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2);
-    }
-
-    R operator()(T const & t, A1 a1, A2 a2) const
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(cmf2) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf2) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// mf3
-
-template<class R, class T, class A1, class A2, class A3 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(mf3)
-{
-public:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3);
-    }
-
-public:
-    
-    explicit NDNBOOST_MEM_FN_NAME(mf3)(F f): f_(f) {}
-
-    R operator()(T * p, A1 a1, A2 a2, A3 a3) const
-    {
-        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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
-    }
-
-#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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
-    }
-
-#endif
-
-    R operator()(T & t, A1 a1, A2 a2, A3 a3) const
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(mf3) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(mf3) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// cmf3
-
-template<class R, class T, class A1, class A2, class A3 NDNBOOST_MEM_FN_CLASS_F> class NDNBOOST_MEM_FN_NAME(cmf3)
-{
-public:
-
-    typedef R result_type;
-
-private:
-
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3);
-    }
-
-public:
-
-    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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3);
-    }
-
-    R operator()(T const & t, A1 a1, A2 a2, A3 a3) const
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(cmf3) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf3) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
-    }
-
-public:
-    
-    explicit NDNBOOST_MEM_FN_NAME(mf4)(F f): f_(f) {}
-
-    R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4) const
-    {
-        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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4);
-    }
-
-#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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(mf4) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(mf4) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4);
-    }
-
-public:
-    
-    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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(cmf4) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf4) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
-    }
-
-public:
-    
-    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
-    {
-        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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5);
-    }
-
-#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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(mf5) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(mf5) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5);
-    }
-
-public:
-    
-    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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(cmf5) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf5) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
-    }
-
-public:
-
-    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
-    {
-        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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6);
-    }
-
-#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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(mf6) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(mf6) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6);
-    }
-
-public:
-    
-    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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(cmf6) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf6) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
-    }
-
-public:
-    
-    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
-    {
-        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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7);
-    }
-
-#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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(mf7) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(mf7) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7);
-    }
-
-public:
-    
-    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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(cmf7) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf7) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
-    }
-
-public:
-    
-    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
-    {
-        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;
-        NDNBOOST_MEM_FN_RETURN call(u, p, a1, a2, a3, a4, a5, a6, a7, a8);
-    }
-
-#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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(mf8) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(mf8) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-// 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:
-
-    typedef R result_type;
-
-private:
-    
-    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
-    {
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8);
-    }
-
-public:
-    
-    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
-    {
-        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;
-        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
-    {
-        NDNBOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8);
-    }
-
-    bool operator==(NDNBOOST_MEM_FN_NAME(cmf8) const & rhs) const
-    {
-        return f_ == rhs.f_;
-    }
-
-    bool operator!=(NDNBOOST_MEM_FN_NAME(cmf8) const & rhs) const
-    {
-        return f_ != rhs.f_;
-    }
-};
-
-#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
deleted file mode 100644
index 0ffa660..0000000
--- a/include/ndnboost/bind/mem_fn_vw.hpp
+++ /dev/null
@@ -1,130 +0,0 @@
-//
-//  bind/mem_fn_vw.hpp - void return helper wrappers
-//
-//  Do not include this header directly
-//
-//  Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/mem_fn.html for documentation.
-//
-
-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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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 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 (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
deleted file mode 100644
index 9b383f5..0000000
--- a/include/ndnboost/bind/placeholders.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef NDNBOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
-#define NDNBOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  bind/placeholders.hpp - _N definitions
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-#include <ndnboost/bind/arg.hpp>
-#include <ndnboost/config.hpp>
-
-namespace
-{
-
-#if defined(__BORLANDC__) || defined(__GNUC__) && (__GNUC__ < 4)
-
-static inline ndnboost::arg<1> _1() { return ndnboost::arg<1>(); }
-static inline ndnboost::arg<2> _2() { return ndnboost::arg<2>(); }
-static inline ndnboost::arg<3> _3() { return ndnboost::arg<3>(); }
-static inline ndnboost::arg<4> _4() { return ndnboost::arg<4>(); }
-static inline ndnboost::arg<5> _5() { return ndnboost::arg<5>(); }
-static inline ndnboost::arg<6> _6() { return ndnboost::arg<6>(); }
-static inline ndnboost::arg<7> _7() { return ndnboost::arg<7>(); }
-static inline ndnboost::arg<8> _8() { return ndnboost::arg<8>(); }
-static inline ndnboost::arg<9> _9() { return ndnboost::arg<9>(); }
-
-#elif defined(NDNBOOST_MSVC) || (defined(__DECCXX_VER) && __DECCXX_VER <= 60590031) || defined(__MWERKS__) || \
-    defined(__GNUC__) && (__GNUC__ == 4 && __GNUC_MINOR__ < 2)  
-
-static ndnboost::arg<1> _1;
-static ndnboost::arg<2> _2;
-static ndnboost::arg<3> _3;
-static ndnboost::arg<4> _4;
-static ndnboost::arg<5> _5;
-static ndnboost::arg<6> _6;
-static ndnboost::arg<7> _7;
-static ndnboost::arg<8> _8;
-static ndnboost::arg<9> _9;
-
-#else
-
-ndnboost::arg<1> _1;
-ndnboost::arg<2> _2;
-ndnboost::arg<3> _3;
-ndnboost::arg<4> _4;
-ndnboost::arg<5> _5;
-ndnboost::arg<6> _6;
-ndnboost::arg<7> _7;
-ndnboost::arg<8> _8;
-ndnboost::arg<9> _9;
-
-#endif
-
-} // unnamed namespace
-
-#endif // #ifndef NDNBOOST_BIND_PLACEHOLDERS_HPP_INCLUDED
diff --git a/include/ndnboost/bind/protect.hpp b/include/ndnboost/bind/protect.hpp
deleted file mode 100644
index edfbb1e..0000000
--- a/include/ndnboost/bind/protect.hpp
+++ /dev/null
@@ -1,304 +0,0 @@
-#ifndef NDNBOOST_BIND_PROTECT_HPP_INCLUDED
-#define NDNBOOST_BIND_PROTECT_HPP_INCLUDED
-
-//
-//  protect.hpp
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//  Copyright (c) 2009 Steven Watanabe
-//
-// 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)
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost
-{
-
-namespace _bi
-{
-
-template<class F> class protected_bind_t
-{
-public:
-
-    typedef typename F::result_type result_type;
-
-    explicit protected_bind_t(F f): f_(f)
-    {
-    }
-
-    result_type operator()()
-    {
-        return f_();
-    }
-
-    result_type operator()() const
-    {
-        return f_();
-    }
-
-    template<class A1> result_type operator()(A1 & a1)
-    {
-        return f_(a1);
-    }
-
-    template<class A1> result_type operator()(A1 & a1) const
-    {
-        return f_(a1);
-    }
-
-
-#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
- && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
-
-    template<class A1> result_type operator()(const A1 & a1)
-    {
-        return f_(a1);
-    }
-
-    template<class A1> result_type operator()(const A1 & a1) const
-    {
-        return f_(a1);
-    }
-
-#endif
-
-    template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2)
-    {
-        return f_(a1, a2);
-    }
-
-    template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2) const
-    {
-        return f_(a1, a2);
-    }
-
-#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)
-    {
-        return f_(a1, a2);
-    }
-
-    template<class A1, class A2> result_type operator()(A1 const & a1, A2 & a2) const
-    {
-        return f_(a1, a2);
-    }
-
-    template<class A1, class A2> result_type operator()(A1 & a1, A2 const & a2)
-    {
-        return f_(a1, a2);
-    }
-
-    template<class A1, class A2> result_type operator()(A1 & a1, A2 const & a2) const
-    {
-        return f_(a1, a2);
-    }
-
-    template<class A1, class A2> result_type operator()(A1 const & a1, A2 const & a2)
-    {
-        return f_(a1, a2);
-    }
-
-    template<class A1, class A2> result_type operator()(A1 const & a1, A2 const & a2) const
-    {
-        return f_(a1, a2);
-    }
-
-#endif
-
-    template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3)
-    {
-        return f_(a1, a2, a3);
-    }
-
-    template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3) const
-    {
-        return f_(a1, a2, a3);
-    }
-    
-#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)
-    {
-        return f_(a1, a2, a3);
-    }
-
-    template<class A1, class A2, class A3> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) const
-    {
-        return f_(a1, a2, a3);
-    }
-    
-#endif
-
-    template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4)
-    {
-        return f_(a1, a2, a3, a4);
-    }
-
-    template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const
-    {
-        return f_(a1, a2, a3, a4);
-    }
-    
-#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)
-    {
-        return f_(a1, a2, a3, a4);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4);
-    }
-
-#endif
-
-    template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5)
-    {
-        return f_(a1, a2, a3, a4, a5);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5);
-    }
-    
-#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)
-    {
-        return f_(a1, a2, a3, a4, a5);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5);
-    }
-
-#endif
-
-    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)
-    {
-        return f_(a1, a2, a3, a4, a5, a6);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5, a6);
-    }
-    
-#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)
-    {
-        return f_(a1, a2, a3, a4, a5, a6);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5, a6);
-    }
-
-#endif
-
-    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)
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7);
-    }
-    
-#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)
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7);
-    }
-
-#endif
-
-    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)
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7, a8);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7, a8);
-    }
-    
-#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)
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7, a8);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7, a8);
-    }
-
-#endif
-
-    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)
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-    }
-    
-#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)
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-    }
-
-    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
-    {
-        return f_(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-    }
-
-#endif
-
-private:
-
-    F f_;
-};
-
-} // namespace _bi
-
-template<class F> _bi::protected_bind_t<F> protect(F f)
-{
-    return _bi::protected_bind_t<F>(f);
-}
-
-} // namespace ndnboost
-
-#endif // #ifndef NDNBOOST_BIND_PROTECT_HPP_INCLUDED
diff --git a/include/ndnboost/bind/storage.hpp b/include/ndnboost/bind/storage.hpp
deleted file mode 100644
index f50928f..0000000
--- a/include/ndnboost/bind/storage.hpp
+++ /dev/null
@@ -1,475 +0,0 @@
-#ifndef NDNBOOST_BIND_STORAGE_HPP_INCLUDED
-#define NDNBOOST_BIND_STORAGE_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  bind/storage.hpp
-//
-//  ndnboost/bind.hpp support header, optimized storage
-//
-//  Copyright (c) 2006 Peter Dimov
-//
-//  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
-//
-//  See http://www.boost.org/libs/bind/bind.html for documentation.
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/bind/arg.hpp>
-
-#ifdef NDNBOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4512) // assignment operator could not be generated
-#endif
-
-namespace ndnboost
-{
-
-namespace _bi
-{
-
-// 1
-
-template<class A1> struct storage1
-{
-    explicit storage1( A1 a1 ): a1_( a1 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        NDNBOOST_BIND_VISIT_EACH(v, a1_, 0);
-    }
-
-    A1 a1_;
-};
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( __BORLANDC__ )
-
-template<int I> struct storage1< ndnboost::arg<I> >
-{
-    explicit storage1( ndnboost::arg<I> ) {}
-
-    template<class V> void accept(V &) const { }
-
-    static ndnboost::arg<I> a1_() { return ndnboost::arg<I>(); }
-};
-
-template<int I> struct storage1< ndnboost::arg<I> (*) () >
-{
-    explicit storage1( ndnboost::arg<I> (*) () ) {}
-
-    template<class V> void accept(V &) const { }
-
-    static ndnboost::arg<I> a1_() { return ndnboost::arg<I>(); }
-};
-
-#endif
-
-// 2
-
-template<class A1, class A2> struct storage2: public storage1<A1>
-{
-    typedef storage1<A1> inherited;
-
-    storage2( A1 a1, A2 a2 ): storage1<A1>( a1 ), a2_( a2 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-        NDNBOOST_BIND_VISIT_EACH(v, a2_, 0);
-    }
-
-    A2 a2_;
-};
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template<class A1, int I> struct storage2< A1, ndnboost::arg<I> >: public storage1<A1>
-{
-    typedef storage1<A1> inherited;
-
-    storage2( A1 a1, ndnboost::arg<I> ): storage1<A1>( a1 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a2_() { return ndnboost::arg<I>(); }
-};
-
-template<class A1, int I> struct storage2< A1, ndnboost::arg<I> (*) () >: public storage1<A1>
-{
-    typedef storage1<A1> inherited;
-
-    storage2( A1 a1, ndnboost::arg<I> (*) () ): storage1<A1>( a1 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a2_() { return ndnboost::arg<I>(); }
-};
-
-#endif
-
-// 3
-
-template<class A1, class A2, class A3> struct storage3: public storage2< A1, A2 >
-{
-    typedef storage2<A1, A2> inherited;
-
-    storage3( A1 a1, A2 a2, A3 a3 ): storage2<A1, A2>( a1, a2 ), a3_( a3 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-        NDNBOOST_BIND_VISIT_EACH(v, a3_, 0);
-    }
-
-    A3 a3_;
-};
-
-#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 >
-{
-    typedef storage2<A1, A2> inherited;
-
-    storage3( A1 a1, A2 a2, ndnboost::arg<I> ): storage2<A1, A2>( a1, a2 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a3_() { return ndnboost::arg<I>(); }
-};
-
-template<class A1, class A2, int I> struct storage3< A1, A2, ndnboost::arg<I> (*) () >: public storage2< A1, A2 >
-{
-    typedef storage2<A1, A2> inherited;
-
-    storage3( A1 a1, A2 a2, ndnboost::arg<I> (*) () ): storage2<A1, A2>( a1, a2 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a3_() { return ndnboost::arg<I>(); }
-};
-
-#endif
-
-// 4
-
-template<class A1, class A2, class A3, class A4> struct storage4: public storage3< A1, A2, A3 >
-{
-    typedef storage3<A1, A2, A3> inherited;
-
-    storage4( A1 a1, A2 a2, A3 a3, A4 a4 ): storage3<A1, A2, A3>( a1, a2, a3 ), a4_( a4 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-        NDNBOOST_BIND_VISIT_EACH(v, a4_, 0);
-    }
-
-    A4 a4_;
-};
-
-#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 >
-{
-    typedef storage3<A1, A2, A3> inherited;
-
-    storage4( A1 a1, A2 a2, A3 a3, ndnboost::arg<I> ): storage3<A1, A2, A3>( a1, a2, a3 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a4_() { return ndnboost::arg<I>(); }
-};
-
-template<class A1, class A2, class A3, int I> struct storage4< A1, A2, A3, ndnboost::arg<I> (*) () >: public storage3< A1, A2, A3 >
-{
-    typedef storage3<A1, A2, A3> inherited;
-
-    storage4( A1 a1, A2 a2, A3 a3, ndnboost::arg<I> (*) () ): storage3<A1, A2, A3>( a1, a2, a3 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a4_() { return ndnboost::arg<I>(); }
-};
-
-#endif
-
-// 5
-
-template<class A1, class A2, class A3, class A4, class A5> struct storage5: public storage4< A1, A2, A3, A4 >
-{
-    typedef storage4<A1, A2, A3, A4> inherited;
-
-    storage5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): storage4<A1, A2, A3, A4>( a1, a2, a3, a4 ), a5_( a5 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-        NDNBOOST_BIND_VISIT_EACH(v, a5_, 0);
-    }
-
-    A5 a5_;
-};
-
-#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 >
-{
-    typedef storage4<A1, A2, A3, A4> inherited;
-
-    storage5( A1 a1, A2 a2, A3 a3, A4 a4, ndnboost::arg<I> ): storage4<A1, A2, A3, A4>( a1, a2, a3, a4 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a5_() { return ndnboost::arg<I>(); }
-};
-
-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 >
-{
-    typedef storage4<A1, A2, A3, A4> inherited;
-
-    storage5( A1 a1, A2 a2, A3 a3, A4 a4, ndnboost::arg<I> (*) () ): storage4<A1, A2, A3, A4>( a1, a2, a3, a4 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a5_() { return ndnboost::arg<I>(); }
-};
-
-#endif
-
-// 6
-
-template<class A1, class A2, class A3, class A4, class A5, class A6> struct storage6: public storage5< A1, A2, A3, A4, A5 >
-{
-    typedef storage5<A1, A2, A3, A4, A5> inherited;
-
-    storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): storage5<A1, A2, A3, A4, A5>( a1, a2, a3, a4, a5 ), a6_( a6 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-        NDNBOOST_BIND_VISIT_EACH(v, a6_, 0);
-    }
-
-    A6 a6_;
-};
-
-#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 >
-{
-    typedef storage5<A1, A2, A3, A4, A5> inherited;
-
-    storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, ndnboost::arg<I> ): storage5<A1, A2, A3, A4, A5>( a1, a2, a3, a4, a5 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a6_() { return ndnboost::arg<I>(); }
-};
-
-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 >
-{
-    typedef storage5<A1, A2, A3, A4, A5> inherited;
-
-    storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, ndnboost::arg<I> (*) () ): storage5<A1, A2, A3, A4, A5>( a1, a2, a3, a4, a5 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a6_() { return ndnboost::arg<I>(); }
-};
-
-#endif
-
-// 7
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct storage7: public storage6< A1, A2, A3, A4, A5, A6 >
-{
-    typedef storage6<A1, A2, A3, A4, A5, A6> inherited;
-
-    storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): storage6<A1, A2, A3, A4, A5, A6>( a1, a2, a3, a4, a5, a6 ), a7_( a7 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-        NDNBOOST_BIND_VISIT_EACH(v, a7_, 0);
-    }
-
-    A7 a7_;
-};
-
-#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 >
-{
-    typedef storage6<A1, A2, A3, A4, A5, A6> inherited;
-
-    storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, ndnboost::arg<I> ): storage6<A1, A2, A3, A4, A5, A6>( a1, a2, a3, a4, a5, a6 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a7_() { return ndnboost::arg<I>(); }
-};
-
-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 >
-{
-    typedef storage6<A1, A2, A3, A4, A5, A6> inherited;
-
-    storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, ndnboost::arg<I> (*) () ): storage6<A1, A2, A3, A4, A5, A6>( a1, a2, a3, a4, a5, a6 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a7_() { return ndnboost::arg<I>(); }
-};
-
-#endif
-
-// 8
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct storage8: public storage7< A1, A2, A3, A4, A5, A6, A7 >
-{
-    typedef storage7<A1, A2, A3, A4, A5, A6, A7> inherited;
-
-    storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): storage7<A1, A2, A3, A4, A5, A6, A7>( a1, a2, a3, a4, a5, a6, a7 ), a8_( a8 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-        NDNBOOST_BIND_VISIT_EACH(v, a8_, 0);
-    }
-
-    A8 a8_;
-};
-
-#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 >
-{
-    typedef storage7<A1, A2, A3, A4, A5, A6, A7> inherited;
-
-    storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, ndnboost::arg<I> ): storage7<A1, A2, A3, A4, A5, A6, A7>( a1, a2, a3, a4, a5, a6, a7 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a8_() { return ndnboost::arg<I>(); }
-};
-
-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 >
-{
-    typedef storage7<A1, A2, A3, A4, A5, A6, A7> inherited;
-
-    storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, ndnboost::arg<I> (*) () ): storage7<A1, A2, A3, A4, A5, A6, A7>( a1, a2, a3, a4, a5, a6, a7 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a8_() { return ndnboost::arg<I>(); }
-};
-
-#endif
-
-// 9
-
-template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> struct storage9: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 >
-{
-    typedef storage8<A1, A2, A3, A4, A5, A6, A7, A8> inherited;
-
-    storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): storage8<A1, A2, A3, A4, A5, A6, A7, A8>( a1, a2, a3, a4, a5, a6, a7, a8 ), a9_( a9 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-        NDNBOOST_BIND_VISIT_EACH(v, a9_, 0);
-    }
-
-    A9 a9_;
-};
-
-#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 >
-{
-    typedef storage8<A1, A2, A3, A4, A5, A6, A7, A8> inherited;
-
-    storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, ndnboost::arg<I> ): storage8<A1, A2, A3, A4, A5, A6, A7, A8>( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a9_() { return ndnboost::arg<I>(); }
-};
-
-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 >
-{
-    typedef storage8<A1, A2, A3, A4, A5, A6, A7, A8> inherited;
-
-    storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, ndnboost::arg<I> (*) () ): storage8<A1, A2, A3, A4, A5, A6, A7, A8>( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
-
-    template<class V> void accept(V & v) const
-    {
-        inherited::accept(v);
-    }
-
-    static ndnboost::arg<I> a9_() { return ndnboost::arg<I>(); }
-};
-
-#endif
-
-} // namespace _bi
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-# pragma warning(default: 4512) // assignment operator could not be generated
-# pragma warning(pop)
-#endif
-
-#endif // #ifndef NDNBOOST_BIND_STORAGE_HPP_INCLUDED
diff --git a/include/ndnboost/blank.hpp b/include/ndnboost/blank.hpp
deleted file mode 100644
index cdd6e47..0000000
--- a/include/ndnboost/blank.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost blank.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// 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 NDNBOOST_BLANK_HPP
-#define NDNBOOST_BLANK_HPP
-
-#include "ndnboost/blank_fwd.hpp"
-
-#if !defined(NDNBOOST_NO_IOSTREAM)
-#include <iosfwd> // for std::basic_ostream forward declare
-#include "ndnboost/detail/templated_streams.hpp"
-#endif // NDNBOOST_NO_IOSTREAM
-
-#include "ndnboost/mpl/bool.hpp"
-#include "ndnboost/type_traits/is_empty.hpp"
-#include "ndnboost/type_traits/is_pod.hpp"
-#include "ndnboost/type_traits/is_stateless.hpp"
-
-namespace ndnboost {
-
-struct blank
-{
-};
-
-// type traits specializations
-//
-
-template <>
-struct is_pod< blank >
-    : mpl::true_
-{
-};
-
-template <>
-struct is_empty< blank >
-    : mpl::true_
-{
-};
-
-template <>
-struct is_stateless< blank >
-    : mpl::true_
-{
-};
-
-// relational operators
-//
-
-inline bool operator==(const blank&, const blank&)
-{
-    return true;
-}
-
-inline bool operator<=(const blank&, const blank&)
-{
-    return true;
-}
-
-inline bool operator>=(const blank&, const blank&)
-{
-    return true;
-}
-
-inline bool operator!=(const blank&, const blank&)
-{
-    return false;
-}
-
-inline bool operator<(const blank&, const blank&)
-{
-    return false;
-}
-
-inline bool operator>(const blank&, const blank&)
-{
-    return false;
-}
-
-// streaming support
-//
-#if !defined(NDNBOOST_NO_IOSTREAM)
-
-NDNBOOST_TEMPLATED_STREAM_TEMPLATE(E,T)
-inline NDNBOOST_TEMPLATED_STREAM(ostream, E,T)& operator<<(
-      NDNBOOST_TEMPLATED_STREAM(ostream, E,T)& out
-    , const blank&
-    )
-{
-    // (output nothing)
-    return out;
-}
-
-#endif // NDNBOOST_NO_IOSTREAM
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_BLANK_HPP
diff --git a/include/ndnboost/blank_fwd.hpp b/include/ndnboost/blank_fwd.hpp
deleted file mode 100644
index 1b66827..0000000
--- a/include/ndnboost/blank_fwd.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost blank_fwd.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// 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 NDNBOOST_BLANK_FWD_HPP
-#define NDNBOOST_BLANK_FWD_HPP
-
-namespace ndnboost {
-
-struct blank;
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_BLANK_FWD_HPP
diff --git a/include/ndnboost/call_traits.hpp b/include/ndnboost/call_traits.hpp
deleted file mode 100644
index 7abbd84..0000000
--- a/include/ndnboost/call_traits.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/utility for most recent version including documentation.
-
-//  See ndnboost/detail/call_traits.hpp and ndnboost/detail/ob_call_traits.hpp
-//  for full copyright notices.
-
-#ifndef NDNBOOST_CALL_TRAITS_HPP
-#define NDNBOOST_CALL_TRAITS_HPP
-
-#ifndef NDNBOOST_CONFIG_HPP
-#include <ndnboost/config.hpp>
-#endif
-
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <ndnboost/detail/ob_call_traits.hpp>
-#else
-#include <ndnboost/detail/call_traits.hpp>
-#endif
-
-#endif // NDNBOOST_CALL_TRAITS_HPP
diff --git a/include/ndnboost/cerrno.hpp b/include/ndnboost/cerrno.hpp
deleted file mode 100644
index edb8363..0000000
--- a/include/ndnboost/cerrno.hpp
+++ /dev/null
@@ -1,331 +0,0 @@
-//  Boost cerrno.hpp header  -------------------------------------------------//
-
-//  Copyright Beman Dawes 2005.
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/system
-
-#ifndef NDNBOOST_CERRNO_HPP
-#define NDNBOOST_CERRNO_HPP
-
-#include <cerrno>
-
-//  supply errno values likely to be missing, particularly on Windows
-
-#ifndef EAFNOSUPPORT
-#define EAFNOSUPPORT 9901
-#endif
-
-#ifndef EADDRINUSE
-#define EADDRINUSE 9902
-#endif
-
-#ifndef EADDRNOTAVAIL
-#define EADDRNOTAVAIL 9903
-#endif
-
-#ifndef EISCONN
-#define EISCONN 9904
-#endif
-
-#ifndef EBADMSG
-#define EBADMSG 9905
-#endif
-
-#ifndef ECONNABORTED
-#define ECONNABORTED 9906
-#endif
-
-#ifndef EALREADY
-#define EALREADY 9907
-#endif
-
-#ifndef ECONNREFUSED
-#define ECONNREFUSED 9908
-#endif
-
-#ifndef ECONNRESET
-#define ECONNRESET 9909
-#endif
-
-#ifndef EDESTADDRREQ
-#define EDESTADDRREQ 9910
-#endif
-
-#ifndef EHOSTUNREACH
-#define EHOSTUNREACH 9911
-#endif
-
-#ifndef EIDRM
-#define EIDRM 9912
-#endif
-
-#ifndef EMSGSIZE
-#define EMSGSIZE 9913
-#endif
-
-#ifndef ENETDOWN
-#define ENETDOWN 9914
-#endif
-
-#ifndef ENETRESET
-#define ENETRESET 9915
-#endif
-
-#ifndef ENETUNREACH
-#define ENETUNREACH 9916
-#endif
-
-#ifndef ENOBUFS
-#define ENOBUFS 9917
-#endif
-
-#ifndef ENOLINK
-#define ENOLINK 9918
-#endif
-
-#ifndef ENODATA
-#define ENODATA 9919
-#endif
-
-#ifndef ENOMSG
-#define ENOMSG 9920
-#endif
-
-#ifndef ENOPROTOOPT
-#define ENOPROTOOPT 9921
-#endif
-
-#ifndef ENOSR
-#define ENOSR 9922
-#endif
-
-#ifndef ENOTSOCK
-#define ENOTSOCK 9923
-#endif
-
-#ifndef ENOSTR
-#define ENOSTR 9924
-#endif
-
-#ifndef ENOTCONN
-#define ENOTCONN 9925
-#endif
-
-#ifndef ENOTSUP
-#define ENOTSUP 9926
-#endif
-
-#ifndef ECANCELED
-#define ECANCELED 9927
-#endif
-
-#ifndef EINPROGRESS
-#define EINPROGRESS 9928
-#endif
-
-#ifndef EOPNOTSUPP
-#define EOPNOTSUPP 9929
-#endif
-
-#ifndef EWOULDBLOCK
-#define EWOULDBLOCK 9930
-#endif
-
-#ifndef EOWNERDEAD
-#define EOWNERDEAD  9931
-#endif
-
-#ifndef EPROTO
-#define EPROTO 9932
-#endif
-
-#ifndef EPROTONOSUPPORT
-#define EPROTONOSUPPORT 9933
-#endif
-
-#ifndef ENOTRECOVERABLE
-#define ENOTRECOVERABLE 9934
-#endif
-
-#ifndef ETIME
-#define ETIME 9935
-#endif
-
-#ifndef ETXTBSY
-#define ETXTBSY 9936
-#endif
-
-#ifndef ETIMEDOUT
-#define ETIMEDOUT 9938
-#endif
-
-#ifndef ELOOP
-#define ELOOP 9939
-#endif
-
-#ifndef EOVERFLOW
-#define EOVERFLOW 9940
-#endif
-
-#ifndef EPROTOTYPE
-#define EPROTOTYPE 9941
-#endif
-
-#ifndef ENOSYS
-#define ENOSYS 9942
-#endif
-
-#ifndef EINVAL
-#define EINVAL 9943
-#endif
-
-#ifndef ERANGE
-#define ERANGE 9944
-#endif
-
-#ifndef EILSEQ
-#define EILSEQ 9945
-#endif
-
-//  Windows Mobile doesn't appear to define these:
-
-#ifndef E2BIG
-#define E2BIG 9946
-#endif
-
-#ifndef EDOM
-#define EDOM 9947
-#endif
-
-#ifndef EFAULT
-#define EFAULT 9948
-#endif
-
-#ifndef EBADF
-#define EBADF 9949
-#endif
-
-#ifndef EPIPE
-#define EPIPE 9950
-#endif
-
-#ifndef EXDEV
-#define EXDEV 9951
-#endif
-
-#ifndef EBUSY
-#define EBUSY 9952
-#endif
-
-#ifndef ENOTEMPTY
-#define ENOTEMPTY 9953
-#endif
-
-#ifndef ENOEXEC
-#define ENOEXEC 9954
-#endif
-
-#ifndef EEXIST
-#define EEXIST 9955
-#endif
-
-#ifndef EFBIG
-#define EFBIG 9956
-#endif
-
-#ifndef ENAMETOOLONG
-#define ENAMETOOLONG 9957
-#endif
-
-#ifndef ENOTTY
-#define ENOTTY 9958
-#endif
-
-#ifndef EINTR
-#define EINTR 9959
-#endif
-
-#ifndef ESPIPE
-#define ESPIPE 9960
-#endif
-
-#ifndef EIO
-#define EIO 9961
-#endif
-
-#ifndef EISDIR
-#define EISDIR 9962
-#endif
-
-#ifndef ECHILD
-#define ECHILD 9963
-#endif
-
-#ifndef ENOLCK
-#define ENOLCK 9964
-#endif
-
-#ifndef ENOSPC
-#define ENOSPC 9965
-#endif
-
-#ifndef ENXIO
-#define ENXIO 9966
-#endif
-
-#ifndef ENODEV
-#define ENODEV 9967
-#endif
-
-#ifndef ENOENT
-#define ENOENT 9968
-#endif
-
-#ifndef ESRCH
-#define ESRCH 9969
-#endif
-
-#ifndef ENOTDIR
-#define ENOTDIR 9970
-#endif
-
-#ifndef ENOMEM
-#define ENOMEM 9971
-#endif
-
-#ifndef EPERM
-#define EPERM 9972
-#endif
-
-#ifndef EACCES
-#define EACCES 9973
-#endif
-
-#ifndef EROFS
-#define EROFS 9974
-#endif
-
-#ifndef EDEADLK
-#define EDEADLK 9975
-#endif
-
-#ifndef EAGAIN
-#define EAGAIN 9976
-#endif
-
-#ifndef ENFILE
-#define ENFILE 9977
-#endif
-
-#ifndef EMFILE
-#define EMFILE 9978
-#endif
-
-#ifndef EMLINK
-#define EMLINK 9979
-#endif
-
-#endif // include guard
diff --git a/include/ndnboost/checked_delete.hpp b/include/ndnboost/checked_delete.hpp
deleted file mode 100644
index 0980511..0000000
--- a/include/ndnboost/checked_delete.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef NDNBOOST_CHECKED_DELETE_HPP_INCLUDED
-#define NDNBOOST_CHECKED_DELETE_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/checked_delete.hpp
-//
-//  Copyright (c) 2002, 2003 Peter Dimov
-//  Copyright (c) 2003 Daniel Frey
-//  Copyright (c) 2003 Howard Hinnant
-//
-//  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)
-//
-//  See http://www.boost.org/libs/utility/checked_delete.html for documentation.
-//
-
-namespace ndnboost
-{
-
-// verify that types are complete for increased safety
-
-template<class T> inline void checked_delete(T * x)
-{
-    // intentionally complex - simplification causes regressions
-    typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
-    (void) sizeof(type_must_be_complete);
-    delete x;
-}
-
-template<class T> inline void checked_array_delete(T * x)
-{
-    typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
-    (void) sizeof(type_must_be_complete);
-    delete [] x;
-}
-
-template<class T> struct checked_deleter
-{
-    typedef void result_type;
-    typedef T * argument_type;
-
-    void operator()(T * x) const
-    {
-        // ndnboost:: disables ADL
-        ndnboost::checked_delete(x);
-    }
-};
-
-template<class T> struct checked_array_deleter
-{
-    typedef void result_type;
-    typedef T * argument_type;
-
-    void operator()(T * x) const
-    {
-        ndnboost::checked_array_delete(x);
-    }
-};
-
-} // namespace ndnboost
-
-#endif  // #ifndef NDNBOOST_CHECKED_DELETE_HPP_INCLUDED
diff --git a/include/ndnboost/concept/assert.hpp b/include/ndnboost/concept/assert.hpp
deleted file mode 100644
index 094781e..0000000
--- a/include/ndnboost/concept/assert.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-// 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 NDNBOOST_CONCEPT_ASSERT_NDNBOOST_DWA2006430_HPP
-# define NDNBOOST_CONCEPT_ASSERT_NDNBOOST_DWA2006430_HPP
-
-# include <ndnboost/config.hpp>
-# include <ndnboost/detail/workaround.hpp>
-
-// The old protocol used a constraints() member function in concept
-// checking classes.  If the compiler supports SFINAE, we can detect
-// that function and seamlessly support the old concept checking
-// classes.  In this release, backward compatibility with the old
-// concept checking classes is enabled by default, where available.
-// The old protocol is deprecated, though, and backward compatibility
-// will no longer be the default in the next release.
-
-# if !defined(NDNBOOST_NO_OLD_CONCEPT_SUPPORT)                                         \
-    && !defined(NDNBOOST_NO_SFINAE)                                                    \
-                                                                                    \
-    && !(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 NDNBOOST_OLD_CONCEPT_SUPPORT
-
-# endif
-
-# ifdef NDNBOOST_MSVC
-#  include <ndnboost/concept/detail/msvc.hpp>
-# elif NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
-#  include <ndnboost/concept/detail/borland.hpp>
-# else 
-#  include <ndnboost/concept/detail/general.hpp>
-# endif
-
-  // Usage, in class or function context:
-  //
-  //     NDNBOOST_CONCEPT_ASSERT((UnaryFunctionConcept<F,bool,int>));
-  //
-# define NDNBOOST_CONCEPT_ASSERT(ModelInParens) \
-    NDNBOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
-
-#endif // NDNBOOST_CONCEPT_ASSERT_NDNBOOST_DWA2006430_HPP
diff --git a/include/ndnboost/concept/detail/backward_compatibility.hpp b/include/ndnboost/concept/detail/backward_compatibility.hpp
deleted file mode 100644
index 7a79b95..0000000
--- a/include/ndnboost/concept/detail/backward_compatibility.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// 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 NDNBOOST_CONCEPT_BACKWARD_COMPATIBILITY_NDNBOOST_DWA200968_HPP
-# define NDNBOOST_CONCEPT_BACKWARD_COMPATIBILITY_NDNBOOST_DWA200968_HPP
-
-namespace ndnboost
-{
-  namespace concepts {}
-
-# if defined(NDNBOOST_HAS_CONCEPTS) && !defined(NDNBOOST_CONCEPT_NO_BACKWARD_KEYWORD)
-  namespace concept = concepts;
-# endif 
-} // namespace ndnboost::concept
-
-#endif // NDNBOOST_CONCEPT_BACKWARD_COMPATIBILITY_NDNBOOST_DWA200968_HPP
diff --git a/include/ndnboost/concept/detail/borland.hpp b/include/ndnboost/concept/detail/borland.hpp
deleted file mode 100644
index 0ec29d9..0000000
--- a/include/ndnboost/concept/detail/borland.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// 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 NDNBOOST_CONCEPT_DETAIL_BORLAND_NDNBOOST_DWA2006429_HPP
-# define NDNBOOST_CONCEPT_DETAIL_BORLAND_NDNBOOST_DWA2006429_HPP
-
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/concept/detail/backward_compatibility.hpp>
-
-namespace ndnboost { namespace concepts {
-
-template <class ModelFnPtr>
-struct require;
-
-template <class Model>
-struct require<void(*)(Model)>
-{
-    enum { instantiate = sizeof((((Model*)0)->~Model()), 3) };
-};
-
-#  define NDNBOOST_CONCEPT_ASSERT_FN( ModelFnPtr )         \
-  enum                                                  \
-  {                                                     \
-      NDNBOOST_PP_CAT(boost_concept_check,__LINE__) =      \
-      ndnboost::concepts::require<ModelFnPtr>::instantiate  \
-  }
-
-}} // namespace ndnboost::concept
-
-#endif // NDNBOOST_CONCEPT_DETAIL_BORLAND_NDNBOOST_DWA2006429_HPP
diff --git a/include/ndnboost/concept/detail/concept_def.hpp b/include/ndnboost/concept/detail/concept_def.hpp
deleted file mode 100644
index ab8102a..0000000
--- a/include/ndnboost/concept/detail/concept_def.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// 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 NDNBOOST_CONCEPT_DETAIL_CONCEPT_DEF_NDNBOOST_DWA200651_HPP
-# define NDNBOOST_CONCEPT_DETAIL_CONCEPT_DEF_NDNBOOST_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 // NDNBOOST_CONCEPT_DETAIL_CONCEPT_DEF_NDNBOOST_DWA200651_HPP
-
-// 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 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 < 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 */                            \
-        NDNBOOST_PP_CAT(name,Concept)();                                           \
-    };                                                                          \
-                                                                                \
-    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
-    struct name                                                                
-#else
-# define NDNBOOST_concept(name, params)                                            \
-    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
-    struct name; /* forward declaration */                                      \
-                                                                                \
-    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
-    struct NDNBOOST_PP_CAT(name,Concept)                                           \
-      : name< NDNBOOST_PP_SEQ_ENUM(params) >                                       \
-    {                                                                           \
-    };                                                                          \
-                                                                                \
-    template < NDNBOOST_PP_SEQ_FOR_EACH_I(NDNBOOST_CONCEPT_typename,~,params) >       \
-    struct name                                                                
-#endif
-    
-// 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
deleted file mode 100644
index b563876..0000000
--- a/include/ndnboost/concept/detail/concept_undef.hpp
+++ /dev/null
@@ -1,5 +0,0 @@
-// 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 NDNBOOST_concept_typename
-# undef NDNBOOST_concept
diff --git a/include/ndnboost/concept/detail/general.hpp b/include/ndnboost/concept/detail/general.hpp
deleted file mode 100644
index bba4c49..0000000
--- a/include/ndnboost/concept/detail/general.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-// 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 NDNBOOST_CONCEPT_DETAIL_GENERAL_NDNBOOST_DWA2006429_HPP
-# define NDNBOOST_CONCEPT_DETAIL_GENERAL_NDNBOOST_DWA2006429_HPP
-
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/concept/detail/backward_compatibility.hpp>
-
-# ifdef NDNBOOST_OLD_CONCEPT_SUPPORT
-#  include <ndnboost/concept/detail/has_constraints.hpp>
-#  include <ndnboost/mpl/if.hpp>
-# endif
-
-// This implementation works on Comeau and GCC, all the way back to
-// 2.95
-namespace ndnboost { namespace concepts {
-
-template <class ModelFn>
-struct requirement_;
-
-namespace detail
-{
-  template <void(*)()> struct instantiate {};
-}
-
-template <class Model>
-struct requirement
-{
-    static void failed() { ((Model*)0)->~Model(); }
-};
-
-struct failed {};
-
-template <class Model>
-struct requirement<failed ************ Model::************>
-{
-    static void failed() { ((Model*)0)->~Model(); }
-};
-
-# ifdef NDNBOOST_OLD_CONCEPT_SUPPORT
-
-template <class Model>
-struct constraint
-{
-    static void failed() { ((Model*)0)->constraints(); }
-};
-  
-template <class Model>
-struct requirement_<void(*)(Model)>
-  : mpl::if_<
-        concepts::not_satisfied<Model>
-      , constraint<Model>
-      , requirement<failed ************ Model::************>
-    >::type
-{};
-  
-# else
-
-// For GCC-2.x, these can't have exactly the same name
-template <class Model>
-struct requirement_<void(*)(Model)>
-    : requirement<failed ************ Model::************>
-{};
-  
-# endif
-
-#  define NDNBOOST_CONCEPT_ASSERT_FN( ModelFnPtr )             \
-    typedef ::ndnboost::concepts::detail::instantiate<          \
-    &::ndnboost::concepts::requirement_<ModelFnPtr>::failed>    \
-      NDNBOOST_PP_CAT(boost_concept_check,__LINE__)
-
-}}
-
-#endif // NDNBOOST_CONCEPT_DETAIL_GENERAL_NDNBOOST_DWA2006429_HPP
diff --git a/include/ndnboost/concept/detail/has_constraints.hpp b/include/ndnboost/concept/detail/has_constraints.hpp
deleted file mode 100644
index 0fc96d5..0000000
--- a/include/ndnboost/concept/detail/has_constraints.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// 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 NDNBOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_NDNBOOST_DWA2006429_HPP
-# define NDNBOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_NDNBOOST_DWA2006429_HPP
-
-# include <ndnboost/mpl/bool.hpp>
-# include <ndnboost/detail/workaround.hpp>
-# include <ndnboost/concept/detail/backward_compatibility.hpp>
-
-namespace ndnboost { namespace concepts {
-
-namespace detail
-{ 
-
-// Here we implement the metafunction that detects whether a
-// constraints metafunction exists
-  typedef char yes;
-  typedef char (&no)[2];
-
-  template <class Model, void (Model::*)()>
-  struct wrap_constraints {};
-    
-#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
-  //    argument expression
-  inline no has_constraints_(...);
-#else
-  template <class Model>
-  inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
-  inline no has_constraints_(...);
-#endif
-}
-
-// This would be called "detail::has_constraints," but it has a strong
-// tendency to show up in error messages.
-template <class Model>
-struct not_satisfied
-{
-    NDNBOOST_STATIC_CONSTANT(
-        bool
-      , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
-    typedef mpl::bool_<value> type;
-};
-
-}} // namespace ndnboost::concepts::detail
-
-#endif // NDNBOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_NDNBOOST_DWA2006429_HPP
diff --git a/include/ndnboost/concept/detail/msvc.hpp b/include/ndnboost/concept/detail/msvc.hpp
deleted file mode 100644
index 8002ff8..0000000
--- a/include/ndnboost/concept/detail/msvc.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// 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 NDNBOOST_CONCEPT_CHECK_MSVC_NDNBOOST_DWA2006429_HPP
-# define NDNBOOST_CONCEPT_CHECK_MSVC_NDNBOOST_DWA2006429_HPP
-
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/concept/detail/backward_compatibility.hpp>
-
-# ifdef NDNBOOST_OLD_CONCEPT_SUPPORT
-#  include <ndnboost/concept/detail/has_constraints.hpp>
-#  include <ndnboost/mpl/if.hpp>
-# endif
-
-
-namespace ndnboost { namespace concepts {
-
-
-template <class Model>
-struct check
-{
-    virtual void failed(Model* x)
-    {
-        x->~Model();
-    }
-};
-
-# ifndef NDNBOOST_NO_PARTIAL_SPECIALIZATION
-struct failed {};
-template <class Model>
-struct check<failed ************ Model::************>
-{
-    virtual void failed(Model* x)
-    {
-        x->~Model();
-    }
-};
-# endif
-
-# ifdef NDNBOOST_OLD_CONCEPT_SUPPORT
-  
-namespace detail
-{
-  // No need for a virtual function here, since evaluating
-  // not_satisfied below will have already instantiated the
-  // constraints() member.
-  struct constraint {};
-}
-
-template <class Model>
-struct require
-  : mpl::if_c<
-        not_satisfied<Model>::value
-      , detail::constraint
-# ifndef NDNBOOST_NO_PARTIAL_SPECIALIZATION
-      , check<Model>
-# else
-      , check<failed ************ Model::************>
-# endif 
-        >::type
-{};
-      
-# else
-  
-template <class Model>
-struct require
-# ifndef NDNBOOST_NO_PARTIAL_SPECIALIZATION
-    : check<Model>
-# else
-    : check<failed ************ Model::************>
-# endif 
-{};
-  
-# endif
-    
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
-
-//
-// The iterator library sees some really strange errors unless we
-// do things this way.
-//
-template <class Model>
-struct require<void(*)(Model)>
-{
-    virtual void failed(Model*)
-    {
-        require<Model>();
-    }
-};
-
-# define NDNBOOST_CONCEPT_ASSERT_FN( ModelFnPtr )      \
-enum                                                \
-{                                                   \
-    NDNBOOST_PP_CAT(boost_concept_check,__LINE__) =    \
-    sizeof(::ndnboost::concepts::require<ModelFnPtr>)    \
-}
-  
-# else // Not vc-7.1
-  
-template <class Model>
-require<Model>
-require_(void(*)(Model));
-  
-# define NDNBOOST_CONCEPT_ASSERT_FN( ModelFnPtr )          \
-enum                                                    \
-{                                                       \
-    NDNBOOST_PP_CAT(boost_concept_check,__LINE__) =        \
-      sizeof(::ndnboost::concepts::require_((ModelFnPtr)0)) \
-}
-  
-# endif
-}}
-
-#endif // NDNBOOST_CONCEPT_CHECK_MSVC_NDNBOOST_DWA2006429_HPP
diff --git a/include/ndnboost/concept/usage.hpp b/include/ndnboost/concept/usage.hpp
deleted file mode 100644
index 02e4976..0000000
--- a/include/ndnboost/concept/usage.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// 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 NDNBOOST_CONCEPT_USAGE_NDNBOOST_DWA2006919_HPP
-# define NDNBOOST_CONCEPT_USAGE_NDNBOOST_DWA2006919_HPP
-
-# include <ndnboost/concept/assert.hpp>
-# include <ndnboost/detail/workaround.hpp>
-# include <ndnboost/concept/detail/backward_compatibility.hpp>
-
-namespace ndnboost { namespace concepts { 
-
-# if NDNBOOST_WORKAROUND(__GNUC__, == 2)
-
-#  define NDNBOOST_CONCEPT_USAGE(model) ~model()
-
-# else 
-
-template <class Model>
-struct usage_requirements
-{
-    ~usage_requirements() { ((Model*)0)->~Model(); }
-};
-
-#  if NDNBOOST_WORKAROUND(__GNUC__, <= 3)
-
-#   define NDNBOOST_CONCEPT_USAGE(model)                                    \
-      model(); /* at least 2.96 and 3.4.3 both need this :( */           \
-      NDNBOOST_CONCEPT_ASSERT((ndnboost::concepts::usage_requirements<model>)); \
-      ~model()
-
-#  else
-
-#   define NDNBOOST_CONCEPT_USAGE(model)                                    \
-      NDNBOOST_CONCEPT_ASSERT((ndnboost::concepts::usage_requirements<model>)); \
-      ~model()
-
-#  endif
-
-# endif 
-
-}} // namespace ndnboost::concepts
-
-#endif // NDNBOOST_CONCEPT_USAGE_NDNBOOST_DWA2006919_HPP
diff --git a/include/ndnboost/concept_check.hpp b/include/ndnboost/concept_check.hpp
deleted file mode 100644
index ca434f3..0000000
--- a/include/ndnboost/concept_check.hpp
+++ /dev/null
@@ -1,1083 +0,0 @@
-//
-// (C) Copyright Jeremy Siek 2000.
-// Copyright 2002 The Trustees of Indiana University.
-//
-// 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)
-//
-// Revision History:
-//   05 May   2001: Workarounds for HP aCC from Thomas Matelich. (Jeremy Siek)
-//   02 April 2001: Removed limits header altogether. (Jeremy Siek)
-//   01 April 2001: Modified to use new <ndnboost/limits.hpp> header. (JMaddock)
-//
-
-// See http://www.boost.org/libs/concept_check for documentation.
-
-#ifndef NDNBOOST_CONCEPT_CHECKS_HPP
-# define NDNBOOST_CONCEPT_CHECKS_HPP
-
-# include <ndnboost/concept/assert.hpp>
-
-# include <ndnboost/iterator.hpp>
-# include <ndnboost/type_traits/conversion_traits.hpp>
-# include <utility>
-# include <ndnboost/type_traits/is_same.hpp>
-# include <ndnboost/type_traits/is_void.hpp>
-# include <ndnboost/mpl/assert.hpp>
-# include <ndnboost/mpl/bool.hpp>
-# include <ndnboost/detail/workaround.hpp>
-# include <ndnboost/detail/iterator.hpp>
-
-# include <ndnboost/concept/usage.hpp>
-# include <ndnboost/concept/detail/concept_def.hpp>
-
-namespace ndnboost
-{
-
-  //
-  // Backward compatibility
-  //
-
-  template <class Model>
-  inline void function_requires(Model* = 0)
-  {
-      NDNBOOST_CONCEPT_ASSERT((Model));
-  }
-  template <class T> inline void ignore_unused_variable_warning(T const&) {}
-
-#  define NDNBOOST_CLASS_REQUIRE(type_var, ns, concept)    \
-    NDNBOOST_CONCEPT_ASSERT((ns::concept<type_var>))
-
-#  define NDNBOOST_CLASS_REQUIRE2(type_var1, type_var2, ns, concept)   \
-    NDNBOOST_CONCEPT_ASSERT((ns::concept<type_var1,type_var2>))
-
-#  define NDNBOOST_CLASS_REQUIRE3(tv1, tv2, tv3, ns, concept)  \
-    NDNBOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3>))
-
-#  define NDNBOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \
-    NDNBOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3,tv4>))
-
-
-  //
-  // Begin concept definitions
-  //
-  NDNBOOST_concept(Integer, (T))
-  {
-      NDNBOOST_CONCEPT_USAGE(Integer)
-        {
-            x.error_type_must_be_an_integer_type();
-        }
-   private:
-      T x;
-  };
-
-  template <> struct Integer<char> {};
-  template <> struct Integer<signed char> {};
-  template <> struct Integer<unsigned char> {};
-  template <> struct Integer<short> {};
-  template <> struct Integer<unsigned short> {};
-  template <> struct Integer<int> {};
-  template <> struct Integer<unsigned int> {};
-  template <> struct Integer<long> {};
-  template <> struct Integer<unsigned long> {};
-# if defined(NDNBOOST_HAS_LONG_LONG)
-  template <> struct Integer< ::ndnboost::long_long_type> {};
-  template <> struct Integer< ::ndnboost::ulong_long_type> {};
-# elif defined(NDNBOOST_HAS_MS_INT64)
-  template <> struct Integer<__int64> {};
-  template <> struct Integer<unsigned __int64> {};
-# endif
-
-  NDNBOOST_concept(SignedInteger,(T)) {
-    NDNBOOST_CONCEPT_USAGE(SignedInteger) {
-      x.error_type_must_be_a_signed_integer_type();
-    }
-   private:
-    T x;
-  };
-  template <> struct SignedInteger<signed char> { };
-  template <> struct SignedInteger<short> {};
-  template <> struct SignedInteger<int> {};
-  template <> struct SignedInteger<long> {};
-# if defined(NDNBOOST_HAS_LONG_LONG)
-  template <> struct SignedInteger< ::ndnboost::long_long_type> {};
-# elif defined(NDNBOOST_HAS_MS_INT64)
-  template <> struct SignedInteger<__int64> {};
-# endif
-
-  NDNBOOST_concept(UnsignedInteger,(T)) {
-    NDNBOOST_CONCEPT_USAGE(UnsignedInteger) {
-      x.error_type_must_be_an_unsigned_integer_type();
-    }
-   private:
-    T x;
-  };
-
-  template <> struct UnsignedInteger<unsigned char> {};
-  template <> struct UnsignedInteger<unsigned short> {};
-  template <> struct UnsignedInteger<unsigned int> {};
-  template <> struct UnsignedInteger<unsigned long> {};
-# if defined(NDNBOOST_HAS_LONG_LONG)
-  template <> struct UnsignedInteger< ::ndnboost::ulong_long_type> {};
-# elif defined(NDNBOOST_HAS_MS_INT64)
-  template <> struct UnsignedInteger<unsigned __int64> {};
-# endif
-
-  //===========================================================================
-  // Basic Concepts
-
-  NDNBOOST_concept(DefaultConstructible,(TT))
-  {
-    NDNBOOST_CONCEPT_USAGE(DefaultConstructible) {
-      TT a;               // require default constructor
-      ignore_unused_variable_warning(a);
-    }
-  };
-
-  NDNBOOST_concept(Assignable,(TT))
-  {
-    NDNBOOST_CONCEPT_USAGE(Assignable) {
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
-      a = b;             // require assignment operator
-#endif
-      const_constraints(b);
-    }
-   private:
-    void const_constraints(const TT& x) {
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
-      a = x;              // const required for argument to assignment
-#else
-      ignore_unused_variable_warning(x);
-#endif
-    }
-   private:
-    TT a;
-    TT b;
-  };
-
-
-  NDNBOOST_concept(CopyConstructible,(TT))
-  {
-    NDNBOOST_CONCEPT_USAGE(CopyConstructible) {
-      TT a(b);            // require copy constructor
-      TT* ptr = &a;       // require address of operator
-      const_constraints(a);
-      ignore_unused_variable_warning(ptr);
-    }
-   private:
-    void const_constraints(const TT& a) {
-      TT c(a);            // require const copy constructor
-      const TT* ptr = &a; // require const address of operator
-      ignore_unused_variable_warning(c);
-      ignore_unused_variable_warning(ptr);
-    }
-    TT b;
-  };
-
-#if (defined _MSC_VER)
-# pragma warning( push )
-# pragma warning( disable : 4510 ) // default constructor could not be generated
-# 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=
-  NDNBOOST_concept(SGIAssignable,(TT))
-  {
-    NDNBOOST_CONCEPT_USAGE(SGIAssignable) {
-      TT c(a);
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
-      a = b;              // require assignment operator
-#endif
-      const_constraints(b);
-      ignore_unused_variable_warning(c);
-    }
-   private:
-    void const_constraints(const TT& x) {
-      TT c(x);
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
-      a = x;              // const required for argument to assignment
-#endif
-      ignore_unused_variable_warning(c);
-    }
-    TT a;
-    TT b;
-  };
-#if (defined _MSC_VER)
-# pragma warning( pop )
-#endif
-
-  NDNBOOST_concept(Convertible,(X)(Y))
-  {
-    NDNBOOST_CONCEPT_USAGE(Convertible) {
-      Y y = x;
-      ignore_unused_variable_warning(y);
-    }
-   private:
-    X x;
-  };
-
-  // The C++ standard requirements for many concepts talk about return
-  // types that must be "convertible to bool".  The problem with this
-  // requirement is that it leaves the door open for evil proxies that
-  // define things like operator|| with strange return types.  Two
-  // possible solutions are:
-  // 1) require the return type to be exactly bool
-  // 2) stay with convertible to bool, and also
-  //    specify stuff about all the logical operators.
-  // For now we just test for convertible to bool.
-  template <class TT>
-  void require_boolean_expr(const TT& t) {
-    bool x = t;
-    ignore_unused_variable_warning(x);
-  }
-
-  NDNBOOST_concept(EqualityComparable,(TT))
-  {
-    NDNBOOST_CONCEPT_USAGE(EqualityComparable) {
-      require_boolean_expr(a == b);
-      require_boolean_expr(a != b);
-    }
-   private:
-    TT a, b;
-  };
-
-  NDNBOOST_concept(LessThanComparable,(TT))
-  {
-    NDNBOOST_CONCEPT_USAGE(LessThanComparable) {
-      require_boolean_expr(a < b);
-    }
-   private:
-    TT a, b;
-  };
-
-  // This is equivalent to SGI STL's LessThanComparable.
-  NDNBOOST_concept(Comparable,(TT))
-  {
-    NDNBOOST_CONCEPT_USAGE(Comparable) {
-      require_boolean_expr(a < b);
-      require_boolean_expr(a > b);
-      require_boolean_expr(a <= b);
-      require_boolean_expr(a >= b);
-    }
-   private:
-    TT a, b;
-  };
-
-#define NDNBOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME)    \
-  NDNBOOST_concept(NAME, (First)(Second))                          \
-  {                                                             \
-      NDNBOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); }                         \
-     private:                                                   \
-        bool constraints_() { return a OP b; }                  \
-        First a;                                                \
-        Second b;                                               \
-  }
-
-#define NDNBOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME)    \
-  NDNBOOST_concept(NAME, (Ret)(First)(Second))                 \
-  {                                                         \
-      NDNBOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); }                     \
-  private:                                                  \
-      Ret constraints_() { return a OP b; }                 \
-      First a;                                              \
-      Second b;                                             \
-  }
-
-  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);
-
-  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
-
-  NDNBOOST_concept(Generator,(Func)(Return))
-  {
-      NDNBOOST_CONCEPT_USAGE(Generator) { test(is_void<Return>()); }
-
-   private:
-      void test(ndnboost::mpl::false_)
-      {
-          // Do we really want a reference here?
-          const Return& r = f();
-          ignore_unused_variable_warning(r);
-      }
-
-      void test(ndnboost::mpl::true_)
-      {
-          f();
-      }
-
-      Func f;
-  };
-
-  NDNBOOST_concept(UnaryFunction,(Func)(Return)(Arg))
-  {
-      NDNBOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void<Return>()); }
-
-   private:
-      void test(ndnboost::mpl::false_)
-      {
-          f(arg);               // "priming the pump" this way keeps msvc6 happy (ICE)
-          Return r = f(arg);
-          ignore_unused_variable_warning(r);
-      }
-
-      void test(ndnboost::mpl::true_)
-      {
-          f(arg);
-      }
-
-#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"
-      // in class without a constructor [-Wuninitialized])
-      UnaryFunction();
-#endif
-
-      Func f;
-      Arg arg;
-  };
-
-  NDNBOOST_concept(BinaryFunction,(Func)(Return)(First)(Second))
-  {
-      NDNBOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void<Return>()); }
-   private:
-      void test(ndnboost::mpl::false_)
-      {
-          f(first,second);
-          Return r = f(first, second); // require operator()
-          (void)r;
-      }
-
-      void test(ndnboost::mpl::true_)
-      {
-          f(first,second);
-      }
-
-#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"
-      // in class without a constructor [-Wuninitialized])
-      BinaryFunction();
-#endif
-
-      Func f;
-      First first;
-      Second second;
-  };
-
-  NDNBOOST_concept(UnaryPredicate,(Func)(Arg))
-  {
-    NDNBOOST_CONCEPT_USAGE(UnaryPredicate) {
-      require_boolean_expr(f(arg)); // require operator() returning bool
-    }
-   private:
-#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"
-      // in class without a constructor [-Wuninitialized])
-      UnaryPredicate();
-#endif
-
-    Func f;
-    Arg arg;
-  };
-
-  NDNBOOST_concept(BinaryPredicate,(Func)(First)(Second))
-  {
-    NDNBOOST_CONCEPT_USAGE(BinaryPredicate) {
-      require_boolean_expr(f(a, b)); // require operator() returning bool
-    }
-   private:
-#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"
-      // in class without a constructor [-Wuninitialized])
-      BinaryPredicate();
-#endif
-    Func f;
-    First a;
-    Second b;
-  };
-
-  // use this when functor is used inside a container class like std::set
-  NDNBOOST_concept(Const_BinaryPredicate,(Func)(First)(Second))
-    : BinaryPredicate<Func, First, Second>
-  {
-    NDNBOOST_CONCEPT_USAGE(Const_BinaryPredicate) {
-      const_constraints(f);
-    }
-   private:
-    void const_constraints(const Func& fun) {
-      // operator() must be a const member function
-      require_boolean_expr(fun(a, b));
-    }
-#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"
-      // in class without a constructor [-Wuninitialized])
-      Const_BinaryPredicate();
-#endif
-
-    Func f;
-    First a;
-    Second b;
-  };
-
-  NDNBOOST_concept(AdaptableGenerator,(Func)(Return))
-    : Generator<Func, typename Func::result_type>
-  {
-      typedef typename Func::result_type result_type;
-
-      NDNBOOST_CONCEPT_USAGE(AdaptableGenerator)
-      {
-          NDNBOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
-      }
-  };
-
-  NDNBOOST_concept(AdaptableUnaryFunction,(Func)(Return)(Arg))
-    : UnaryFunction<Func, typename Func::result_type, typename Func::argument_type>
-  {
-      typedef typename Func::argument_type argument_type;
-      typedef typename Func::result_type result_type;
-
-      ~AdaptableUnaryFunction()
-      {
-          NDNBOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
-          NDNBOOST_CONCEPT_ASSERT((Convertible<Arg, argument_type>));
-      }
-  };
-
-  NDNBOOST_concept(AdaptableBinaryFunction,(Func)(Return)(First)(Second))
-    : BinaryFunction<
-          Func
-        , typename Func::result_type
-        , typename Func::first_argument_type
-        , typename Func::second_argument_type
-      >
-  {
-      typedef typename Func::first_argument_type first_argument_type;
-      typedef typename Func::second_argument_type second_argument_type;
-      typedef typename Func::result_type result_type;
-
-      ~AdaptableBinaryFunction()
-      {
-          NDNBOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
-          NDNBOOST_CONCEPT_ASSERT((Convertible<First, first_argument_type>));
-          NDNBOOST_CONCEPT_ASSERT((Convertible<Second, second_argument_type>));
-      }
-  };
-
-  NDNBOOST_concept(AdaptablePredicate,(Func)(Arg))
-    : UnaryPredicate<Func, Arg>
-    , AdaptableUnaryFunction<Func, bool, Arg>
-  {
-  };
-
-  NDNBOOST_concept(AdaptableBinaryPredicate,(Func)(First)(Second))
-    : BinaryPredicate<Func, First, Second>
-    , AdaptableBinaryFunction<Func, bool, First, Second>
-  {
-  };
-
-  //===========================================================================
-  // Iterator Concepts
-
-  NDNBOOST_concept(InputIterator,(TT))
-    : Assignable<TT>
-    , EqualityComparable<TT>
-  {
-      typedef typename ndnboost::detail::iterator_traits<TT>::value_type value_type;
-      typedef typename ndnboost::detail::iterator_traits<TT>::difference_type difference_type;
-      typedef typename ndnboost::detail::iterator_traits<TT>::reference reference;
-      typedef typename ndnboost::detail::iterator_traits<TT>::pointer pointer;
-      typedef typename ndnboost::detail::iterator_traits<TT>::iterator_category iterator_category;
-
-      NDNBOOST_CONCEPT_USAGE(InputIterator)
-      {
-        NDNBOOST_CONCEPT_ASSERT((SignedInteger<difference_type>));
-        NDNBOOST_CONCEPT_ASSERT((Convertible<iterator_category, std::input_iterator_tag>));
-
-        TT j(i);
-        (void)*i;           // require dereference operator
-        ++j;                // require preincrement operator
-        i++;                // require postincrement operator
-      }
-   private:
-    TT i;
-  };
-
-  NDNBOOST_concept(OutputIterator,(TT)(ValueT))
-    : Assignable<TT>
-  {
-    NDNBOOST_CONCEPT_USAGE(OutputIterator) {
-
-      ++i;                // require preincrement operator
-      i++;                // require postincrement operator
-      *i++ = t;           // require postincrement and assignment
-    }
-   private:
-    TT i, j;
-    ValueT t;
-  };
-
-  NDNBOOST_concept(ForwardIterator,(TT))
-    : InputIterator<TT>
-  {
-      NDNBOOST_CONCEPT_USAGE(ForwardIterator)
-      {
-          NDNBOOST_CONCEPT_ASSERT((Convertible<
-              NDNBOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category
-            , std::forward_iterator_tag
-          >));
-
-          typename InputIterator<TT>::reference r = *i;
-          ignore_unused_variable_warning(r);
-      }
-
-   private:
-      TT i;
-  };
-
-  NDNBOOST_concept(Mutable_ForwardIterator,(TT))
-    : ForwardIterator<TT>
-  {
-      NDNBOOST_CONCEPT_USAGE(Mutable_ForwardIterator) {
-        *i++ = *i;         // require postincrement and assignment
-      }
-   private:
-      TT i;
-  };
-
-  NDNBOOST_concept(BidirectionalIterator,(TT))
-    : ForwardIterator<TT>
-  {
-      NDNBOOST_CONCEPT_USAGE(BidirectionalIterator)
-      {
-          NDNBOOST_CONCEPT_ASSERT((Convertible<
-              NDNBOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category
-            , std::bidirectional_iterator_tag
-          >));
-
-          --i;                // require predecrement operator
-          i--;                // require postdecrement operator
-      }
-   private:
-      TT i;
-  };
-
-  NDNBOOST_concept(Mutable_BidirectionalIterator,(TT))
-    : BidirectionalIterator<TT>
-    , Mutable_ForwardIterator<TT>
-  {
-      NDNBOOST_CONCEPT_USAGE(Mutable_BidirectionalIterator)
-      {
-          *i-- = *i;                  // require postdecrement and assignment
-      }
-   private:
-      TT i;
-  };
-
-  NDNBOOST_concept(RandomAccessIterator,(TT))
-    : BidirectionalIterator<TT>
-    , Comparable<TT>
-  {
-      NDNBOOST_CONCEPT_USAGE(RandomAccessIterator)
-      {
-          NDNBOOST_CONCEPT_ASSERT((Convertible<
-              NDNBOOST_DEDUCED_TYPENAME BidirectionalIterator<TT>::iterator_category
-            , std::random_access_iterator_tag
-          >));
-
-          i += n;             // require assignment addition operator
-          i = i + n; i = n + i; // require addition with difference type
-          i -= n;             // require assignment subtraction operator
-          i = i - n;                  // require subtraction with difference type
-          n = i - j;                  // require difference operator
-          (void)i[n];                 // require element access operator
-      }
-
-   private:
-    TT a, b;
-    TT i, j;
-      typename ndnboost::detail::iterator_traits<TT>::difference_type n;
-  };
-
-  NDNBOOST_concept(Mutable_RandomAccessIterator,(TT))
-    : RandomAccessIterator<TT>
-    , Mutable_BidirectionalIterator<TT>
-  {
-      NDNBOOST_CONCEPT_USAGE(Mutable_RandomAccessIterator)
-      {
-          i[n] = *i;                  // require element access and assignment
-      }
-   private:
-    TT i;
-    typename ndnboost::detail::iterator_traits<TT>::difference_type n;
-  };
-
-  //===========================================================================
-  // Container s
-
-  NDNBOOST_concept(Container,(C))
-    : Assignable<C>
-  {
-    typedef typename C::value_type value_type;
-    typedef typename C::difference_type difference_type;
-    typedef typename C::size_type size_type;
-    typedef typename C::const_reference const_reference;
-    typedef typename C::const_pointer const_pointer;
-    typedef typename C::const_iterator const_iterator;
-
-      NDNBOOST_CONCEPT_USAGE(Container)
-      {
-          NDNBOOST_CONCEPT_ASSERT((InputIterator<const_iterator>));
-          const_constraints(c);
-      }
-
-   private:
-      void const_constraints(const C& cc) {
-          i = cc.begin();
-          i = cc.end();
-          n = cc.size();
-          n = cc.max_size();
-          b = cc.empty();
-      }
-      C c;
-      bool b;
-      const_iterator i;
-      size_type n;
-  };
-
-  NDNBOOST_concept(Mutable_Container,(C))
-    : Container<C>
-  {
-      typedef typename C::reference reference;
-      typedef typename C::iterator iterator;
-      typedef typename C::pointer pointer;
-
-      NDNBOOST_CONCEPT_USAGE(Mutable_Container)
-      {
-          NDNBOOST_CONCEPT_ASSERT((
-               Assignable<typename Mutable_Container::value_type>));
-
-          NDNBOOST_CONCEPT_ASSERT((InputIterator<iterator>));
-
-          i = c.begin();
-          i = c.end();
-          c.swap(c2);
-      }
-
-   private:
-      iterator i;
-      C c, c2;
-  };
-
-  NDNBOOST_concept(ForwardContainer,(C))
-    : Container<C>
-  {
-      NDNBOOST_CONCEPT_USAGE(ForwardContainer)
-      {
-          NDNBOOST_CONCEPT_ASSERT((
-               ForwardIterator<
-                    typename ForwardContainer::const_iterator
-               >));
-      }
-  };
-
-  NDNBOOST_concept(Mutable_ForwardContainer,(C))
-    : ForwardContainer<C>
-    , Mutable_Container<C>
-  {
-      NDNBOOST_CONCEPT_USAGE(Mutable_ForwardContainer)
-      {
-          NDNBOOST_CONCEPT_ASSERT((
-               Mutable_ForwardIterator<
-                   typename Mutable_ForwardContainer::iterator
-               >));
-      }
-  };
-
-  NDNBOOST_concept(ReversibleContainer,(C))
-    : ForwardContainer<C>
-  {
-      typedef typename
-        C::const_reverse_iterator
-      const_reverse_iterator;
-
-      NDNBOOST_CONCEPT_USAGE(ReversibleContainer)
-      {
-          NDNBOOST_CONCEPT_ASSERT((
-              BidirectionalIterator<
-                  typename ReversibleContainer::const_iterator>));
-
-          NDNBOOST_CONCEPT_ASSERT((BidirectionalIterator<const_reverse_iterator>));
-
-          const_constraints(c);
-      }
-   private:
-      void const_constraints(const C& cc)
-      {
-          const_reverse_iterator i = cc.rbegin();
-          i = cc.rend();
-      }
-      C c;
-  };
-
-  NDNBOOST_concept(Mutable_ReversibleContainer,(C))
-    : Mutable_ForwardContainer<C>
-    , ReversibleContainer<C>
-  {
-      typedef typename C::reverse_iterator reverse_iterator;
-
-      NDNBOOST_CONCEPT_USAGE(Mutable_ReversibleContainer)
-      {
-          typedef typename Mutable_ForwardContainer<C>::iterator iterator;
-          NDNBOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<iterator>));
-          NDNBOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<reverse_iterator>));
-
-          reverse_iterator i = c.rbegin();
-          i = c.rend();
-      }
-   private:
-      C c;
-  };
-
-  NDNBOOST_concept(RandomAccessContainer,(C))
-    : ReversibleContainer<C>
-  {
-      typedef typename C::size_type size_type;
-      typedef typename C::const_reference const_reference;
-
-      NDNBOOST_CONCEPT_USAGE(RandomAccessContainer)
-      {
-          NDNBOOST_CONCEPT_ASSERT((
-              RandomAccessIterator<
-                  typename RandomAccessContainer::const_iterator
-              >));
-
-          const_constraints(c);
-      }
-   private:
-      void const_constraints(const C& cc)
-      {
-          const_reference r = cc[n];
-          ignore_unused_variable_warning(r);
-      }
-
-      C c;
-      size_type n;
-  };
-
-  NDNBOOST_concept(Mutable_RandomAccessContainer,(C))
-    : Mutable_ReversibleContainer<C>
-    , RandomAccessContainer<C>
-  {
-   private:
-      typedef Mutable_RandomAccessContainer self;
-   public:
-      NDNBOOST_CONCEPT_USAGE(Mutable_RandomAccessContainer)
-      {
-          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);
-      }
-
-   private:
-      typename Mutable_ReversibleContainer<C>::size_type i;
-      C c;
-  };
-
-  // A Sequence is inherently mutable
-  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>
-  {
-      NDNBOOST_CONCEPT_USAGE(Sequence)
-      {
-          S
-              c(n),
-              c2(n, t),
-              c3(first, last);
-
-          c.insert(p, t);
-          c.insert(p, n, t);
-          c.insert(p, first, last);
-
-          c.erase(p);
-          c.erase(p, q);
-
-          typename Sequence::reference r = c.front();
-
-          ignore_unused_variable_warning(c);
-          ignore_unused_variable_warning(c2);
-          ignore_unused_variable_warning(c3);
-          ignore_unused_variable_warning(r);
-          const_constraints(c);
-      }
-   private:
-      void const_constraints(const S& c) {
-          typename Sequence::const_reference r = c.front();
-          ignore_unused_variable_warning(r);
-      }
-
-      typename S::value_type t;
-      typename S::size_type n;
-      typename S::value_type* first, *last;
-      typename S::iterator p, q;
-  };
-
-  NDNBOOST_concept(FrontInsertionSequence,(S))
-    : Sequence<S>
-  {
-      NDNBOOST_CONCEPT_USAGE(FrontInsertionSequence)
-      {
-          c.push_front(t);
-          c.pop_front();
-      }
-   private:
-      S c;
-      typename S::value_type t;
-  };
-
-  NDNBOOST_concept(BackInsertionSequence,(S))
-    : Sequence<S>
-  {
-      NDNBOOST_CONCEPT_USAGE(BackInsertionSequence)
-      {
-          c.push_back(t);
-          c.pop_back();
-          typename BackInsertionSequence::reference r = c.back();
-          ignore_unused_variable_warning(r);
-          const_constraints(c);
-      }
-   private:
-      void const_constraints(const S& cc) {
-          typename BackInsertionSequence::const_reference
-              r = cc.back();
-          ignore_unused_variable_warning(r);
-      };
-      S c;
-      typename S::value_type t;
-  };
-
-  NDNBOOST_concept(AssociativeContainer,(C))
-    : ForwardContainer<C>
-    , DefaultConstructible<C>
-  {
-      typedef typename C::key_type key_type;
-      typedef typename C::key_compare key_compare;
-      typedef typename C::value_compare value_compare;
-      typedef typename C::iterator iterator;
-
-      NDNBOOST_CONCEPT_USAGE(AssociativeContainer)
-      {
-          i = c.find(k);
-          r = c.equal_range(k);
-          c.erase(k);
-          c.erase(i);
-          c.erase(r.first, r.second);
-          const_constraints(c);
-          NDNBOOST_CONCEPT_ASSERT((BinaryPredicate<key_compare,key_type,key_type>));
-
-          typedef typename AssociativeContainer::value_type value_type_;
-          NDNBOOST_CONCEPT_ASSERT((BinaryPredicate<value_compare,value_type_,value_type_>));
-      }
-
-      // Redundant with the base concept, but it helps below.
-      typedef typename C::const_iterator const_iterator;
-   private:
-      void const_constraints(const C& cc)
-      {
-          ci = cc.find(k);
-          n = cc.count(k);
-          cr = cc.equal_range(k);
-      }
-
-      C c;
-      iterator i;
-      std::pair<iterator,iterator> r;
-      const_iterator ci;
-      std::pair<const_iterator,const_iterator> cr;
-      typename C::key_type k;
-      typename C::size_type n;
-  };
-
-  NDNBOOST_concept(UniqueAssociativeContainer,(C))
-    : AssociativeContainer<C>
-  {
-      NDNBOOST_CONCEPT_USAGE(UniqueAssociativeContainer)
-      {
-          C c(first, last);
-
-          pos_flag = c.insert(t);
-          c.insert(first, last);
-
-          ignore_unused_variable_warning(c);
-      }
-   private:
-      std::pair<typename C::iterator, bool> pos_flag;
-      typename C::value_type t;
-      typename C::value_type* first, *last;
-  };
-
-  NDNBOOST_concept(MultipleAssociativeContainer,(C))
-    : AssociativeContainer<C>
-  {
-      NDNBOOST_CONCEPT_USAGE(MultipleAssociativeContainer)
-      {
-          C c(first, last);
-
-          pos = c.insert(t);
-          c.insert(first, last);
-
-          ignore_unused_variable_warning(c);
-          ignore_unused_variable_warning(pos);
-      }
-   private:
-      typename C::iterator pos;
-      typename C::value_type t;
-      typename C::value_type* first, *last;
-  };
-
-  NDNBOOST_concept(SimpleAssociativeContainer,(C))
-    : AssociativeContainer<C>
-  {
-      NDNBOOST_CONCEPT_USAGE(SimpleAssociativeContainer)
-      {
-          typedef typename C::key_type key_type;
-          typedef typename C::value_type value_type;
-          NDNBOOST_MPL_ASSERT((ndnboost::is_same<key_type,value_type>));
-      }
-  };
-
-  NDNBOOST_concept(PairAssociativeContainer,(C))
-    : AssociativeContainer<C>
-  {
-      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;
-          NDNBOOST_MPL_ASSERT((ndnboost::is_same<value_type,required_value_type>));
-      }
-  };
-
-  NDNBOOST_concept(SortedAssociativeContainer,(C))
-    : AssociativeContainer<C>
-    , ReversibleContainer<C>
-  {
-      NDNBOOST_CONCEPT_USAGE(SortedAssociativeContainer)
-      {
-          C
-              c(kc),
-              c2(first, last),
-              c3(first, last, kc);
-
-          p = c.upper_bound(k);
-          p = c.lower_bound(k);
-          r = c.equal_range(k);
-
-          c.insert(p, t);
-
-          ignore_unused_variable_warning(c);
-          ignore_unused_variable_warning(c2);
-          ignore_unused_variable_warning(c3);
-          const_constraints(c);
-      }
-
-      void const_constraints(const C& c)
-      {
-          kc = c.key_comp();
-          vc = c.value_comp();
-
-          cp = c.upper_bound(k);
-          cp = c.lower_bound(k);
-          cr = c.equal_range(k);
-      }
-
-   private:
-      typename C::key_compare kc;
-      typename C::value_compare vc;
-      typename C::value_type t;
-      typename C::key_type k;
-      typedef typename C::iterator iterator;
-      typedef typename C::const_iterator const_iterator;
-
-      typedef SortedAssociativeContainer self;
-      iterator p;
-      const_iterator cp;
-      std::pair<typename self::iterator,typename self::iterator> r;
-      std::pair<typename self::const_iterator,typename self::const_iterator> cr;
-      typename C::value_type* first, *last;
-  };
-
-  // HashedAssociativeContainer
-
-  NDNBOOST_concept(Collection,(C))
-  {
-      NDNBOOST_CONCEPT_USAGE(Collection)
-      {
-        ndnboost::function_requires<ndnboost::InputIteratorConcept<iterator> >();
-        ndnboost::function_requires<ndnboost::InputIteratorConcept<const_iterator> >();
-        ndnboost::function_requires<ndnboost::CopyConstructibleConcept<value_type> >();
-        const_constraints(c);
-        i = c.begin();
-        i = c.end();
-        c.swap(c);
-      }
-
-      void const_constraints(const C& cc) {
-        ci = cc.begin();
-        ci = cc.end();
-        n = cc.size();
-        b = cc.empty();
-      }
-
-    private:
-      typedef typename C::value_type value_type;
-      typedef typename C::iterator iterator;
-      typedef typename C::const_iterator const_iterator;
-      typedef typename C::reference reference;
-      typedef typename C::const_reference const_reference;
-      // typedef typename C::pointer pointer;
-      typedef typename C::difference_type difference_type;
-      typedef typename C::size_type size_type;
-
-      C c;
-      bool b;
-      iterator i;
-      const_iterator ci;
-      size_type n;
-  };
-} // namespace ndnboost
-
-# include <ndnboost/concept/detail/concept_undef.hpp>
-
-#endif // NDNBOOST_CONCEPT_CHECKS_HPP
-
diff --git a/include/ndnboost/config.hpp b/include/ndnboost/config.hpp
deleted file mode 100644
index 0b38d4b..0000000
--- a/include/ndnboost/config.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-//  Boost config.hpp configuration header file  ------------------------------//
-
-//  (C) Copyright John Maddock 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/config for most recent version.
-
-//  Boost config.hpp policy and rationale documentation has been moved to
-//  http://www.boost.org/libs/config
-//
-//  CAUTION: This file is intended to be completely stable -
-//           DO NOT MODIFY THIS FILE!
-//
-
-#ifndef NDNBOOST_CONFIG_HPP
-#define NDNBOOST_CONFIG_HPP
-
-// if we don't have a user config, then use the default location:
-#if !defined(NDNBOOST_USER_CONFIG) && !defined(NDNBOOST_NO_USER_CONFIG)
-#  define NDNBOOST_USER_CONFIG <ndnboost/config/user.hpp>
-#endif
-// include it first:
-#ifdef NDNBOOST_USER_CONFIG
-#  include NDNBOOST_USER_CONFIG
-#endif
-
-// if we don't have a compiler config set, try and find one:
-#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 NDNBOOST_COMPILER_CONFIG
-#  include NDNBOOST_COMPILER_CONFIG
-#endif
-
-// if we don't have a std library config set, try and find one:
-#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 NDNBOOST_STDLIB_CONFIG
-#  include NDNBOOST_STDLIB_CONFIG
-#endif
-
-// if we don't have a platform config set, try and find one:
-#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 NDNBOOST_PLATFORM_CONFIG
-#  include NDNBOOST_PLATFORM_CONFIG
-#endif
-
-// get config suffix code:
-#include <ndnboost/config/suffix.hpp>
-
-#endif  // NDNBOOST_CONFIG_HPP
-
-
-
-
-
-
-
-
-
-
-
diff --git a/include/ndnboost/config/abi/borland_prefix.hpp b/include/ndnboost/config/abi/borland_prefix.hpp
deleted file mode 100644
index 3a0e5ae..0000000
--- a/include/ndnboost/config/abi/borland_prefix.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  for C++ Builder the following options effect the ABI:
-//
-//  -b (on or off - effect emum sizes)
-//  -Vx  (on or off - empty members)
-//  -Ve (on or off - empty base classes)
-//  -aX (alignment - 5 options).
-//  -pX (Calling convention - 4 options)
-//  -VmX (member pointer size and layout - 5 options)
-//  -VC (on or off, changes name mangling)
-//  -Vl (on or off, changes struct layout).
-
-//  In addition the following warnings are sufficiently annoying (and
-//  unfixable) to have them turned off by default:
-//
-//  8027 - functions containing [for|while] loops are not expanded inline
-//  8026 - functions taking class by value arguments are not expanded inline
-
-#pragma nopushoptwarn
-#  pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
-
-
-
diff --git a/include/ndnboost/config/abi/borland_suffix.hpp b/include/ndnboost/config/abi/borland_suffix.hpp
deleted file mode 100644
index 940535f..0000000
--- a/include/ndnboost/config/abi/borland_suffix.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to 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)
-
-#  pragma option pop
-#pragma nopushoptwarn
-
-
-
-
-
diff --git a/include/ndnboost/config/abi/msvc_prefix.hpp b/include/ndnboost/config/abi/msvc_prefix.hpp
deleted file mode 100644
index 97f06cd..0000000
--- a/include/ndnboost/config/abi/msvc_prefix.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//
-// Boost binaries are built with the compiler's default ABI settings,
-// if the user changes their default alignment in the VS IDE then their
-// code will no longer be binary compatible with the bjam built binaries
-// unless this header is included to force Boost code into a consistent ABI.
-//
-// Note that inclusion of this header is only necessary for libraries with 
-// separate source, header only libraries DO NOT need this as long as all
-// translation units are built with the same options.
-//
-#if defined(_M_X64)
-#  pragma pack(push,16)
-#else
-#  pragma pack(push,8)
-#endif
-
-
diff --git a/include/ndnboost/config/abi/msvc_suffix.hpp b/include/ndnboost/config/abi/msvc_suffix.hpp
deleted file mode 100644
index a64d783..0000000
--- a/include/ndnboost/config/abi/msvc_suffix.hpp
+++ /dev/null
@@ -1,8 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to 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)
-
-#pragma pack(pop)
-
-
diff --git a/include/ndnboost/config/abi_prefix.hpp b/include/ndnboost/config/abi_prefix.hpp
deleted file mode 100644
index f1299ed..0000000
--- a/include/ndnboost/config/abi_prefix.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//  abi_prefix header  -------------------------------------------------------//
-
-// (c) Copyright John Maddock 2003
-   
-// Use, modification and distribution are subject to 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 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
-
-#include <ndnboost/config.hpp>
-
-// this must occur after all other includes and before any code appears:
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-
-#if defined( __BORLANDC__ )
-#pragma nopushoptwarn
-#endif
-
diff --git a/include/ndnboost/config/abi_suffix.hpp b/include/ndnboost/config/abi_suffix.hpp
deleted file mode 100644
index 9d65b83..0000000
--- a/include/ndnboost/config/abi_suffix.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//  abi_sufffix header  -------------------------------------------------------//
-
-// (c) Copyright John Maddock 2003
-   
-// Use, modification and distribution are subject to 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).
-
-// This header should be #included AFTER code that was preceded by a #include
-// <ndnboost/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 NDNBOOST_CONFIG_ABI_PREFIX_HPP
-#endif
-
-// the suffix header occurs after all of our code:
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-
-#if defined( __BORLANDC__ )
-#pragma nopushoptwarn
-#endif
-
-
diff --git a/include/ndnboost/config/auto_link.hpp b/include/ndnboost/config/auto_link.hpp
deleted file mode 100644
index 95cb4ab..0000000
--- a/include/ndnboost/config/auto_link.hpp
+++ /dev/null
@@ -1,423 +0,0 @@
-//  (C) Copyright John Maddock 2003.
-//  Use, modification and distribution are subject to 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)
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         auto_link.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
-  */
-
-/*************************************************************************
-
-USAGE:
-~~~~~~
-
-Before including this header you must define one or more of define the following macros:
-
-NDNBOOST_LIB_NAME:           Required: A string containing the basename of the library,
-                          for example boost_regex.
-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).
-NDNBOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to NDNBOOST_LIB_NAME.lib,
-                          rather than a mangled-name version.
-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.
-
-These macros will be undef'ed at the end of the header, further this header
-has no include guards - so be sure to include it only once from your library!
-
-Algorithm:
-~~~~~~~~~~
-
-Libraries for Borland and Microsoft compilers are automatically
-selected here, the name of the lib is selected according to the following
-formula:
-
-NDNBOOST_LIB_PREFIX
-   + NDNBOOST_LIB_NAME
-   + "_"
-   + NDNBOOST_LIB_TOOLSET
-   + NDNBOOST_LIB_THREAD_OPT
-   + NDNBOOST_LIB_RT_OPT
-   "-"
-   + NDNBOOST_LIB_VERSION
-
-These are defined as:
-
-NDNBOOST_LIB_PREFIX:     "lib" for static libraries otherwise "".
-
-NDNBOOST_LIB_NAME:       The base name of the lib ( for example boost_regex).
-
-NDNBOOST_LIB_TOOLSET:    The compiler toolset name (vc6, vc7, bcb5 etc).
-
-NDNBOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
-
-NDNBOOST_LIB_RT_OPT:     A suffix that indicates the runtime library used,
-                      contains one or more of the following letters after
-                      a hyphen:
-
-                      s      static runtime (dynamic if not present).
-                      g      debug/diagnostic runtime (release if not present).
-                      y      Python debug/diagnostic runtime (release if not present).
-                      d      debug build (release if not present).
-                      p      STLport build.
-                      n      STLport build without its IOStreams.
-
-NDNBOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.
-
-
-***************************************************************************/
-
-#ifdef __cplusplus
-#  ifndef NDNBOOST_CONFIG_HPP
-#     include <ndnboost/config.hpp>
-#  endif
-#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
-//
-// C language compatability (no, honestly)
-//
-#  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(NDNBOOST_MSVC) \
-    || defined(__BORLANDC__) \
-    || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
-    || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
-
-#ifndef NDNBOOST_VERSION_HPP
-#  include <ndnboost/version.hpp>
-#endif
-
-#ifndef NDNBOOST_LIB_NAME
-#  error "Macro NDNBOOST_LIB_NAME not set (internal error)"
-#endif
-
-//
-// error check:
-//
-#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
-#  pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
-#  pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
-#  error "Incompatible build options"
-#endif
-//
-// select toolset if not defined already:
-//
-#ifndef NDNBOOST_LIB_TOOLSET
-#  if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1200)
-    // Note: no compilers before 1200 are supported
-#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)
-
-#    ifdef UNDER_CE
-       // eVC4:
-#      define NDNBOOST_LIB_TOOLSET "evc4"
-#    else
-       // vc6:
-#      define NDNBOOST_LIB_TOOLSET "vc6"
-#    endif
-
-#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1310)
-
-     // vc7:
-#    define NDNBOOST_LIB_TOOLSET "vc7"
-
-#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1400)
-
-     // vc71:
-#    define NDNBOOST_LIB_TOOLSET "vc71"
-
-#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1500)
-
-     // vc80:
-#    define NDNBOOST_LIB_TOOLSET "vc80"
-
-#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1600)
-
-     // vc90:
-#    define NDNBOOST_LIB_TOOLSET "vc90"
-
-#  elif defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1700)
-
-     // vc10:
-#    define NDNBOOST_LIB_TOOLSET "vc100"
-
-#  elif defined(NDNBOOST_MSVC)
-
-     // vc11:
-#    define NDNBOOST_LIB_TOOLSET "vc110"
-
-#  elif defined(__BORLANDC__)
-
-     // CBuilder 6:
-#    define NDNBOOST_LIB_TOOLSET "bcb"
-
-#  elif defined(__ICL)
-
-     // Intel C++, no version number:
-#    define NDNBOOST_LIB_TOOLSET "iw"
-
-#  elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
-
-     // Metrowerks CodeWarrior 8.x
-#    define NDNBOOST_LIB_TOOLSET "cw8"
-
-#  elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
-
-     // Metrowerks CodeWarrior 9.x
-#    define NDNBOOST_LIB_TOOLSET "cw9"
-
-#  endif
-#endif // NDNBOOST_LIB_TOOLSET
-
-//
-// select thread opt:
-//
-#if defined(_MT) || defined(__MT__)
-#  define NDNBOOST_LIB_THREAD_OPT "-mt"
-#else
-#  define NDNBOOST_LIB_THREAD_OPT
-#endif
-
-#if defined(_MSC_VER) || defined(__MWERKS__)
-
-#  ifdef _DLL
-
-#     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(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
-#            define NDNBOOST_LIB_RT_OPT "-gydp"
-#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define NDNBOOST_LIB_RT_OPT "-gdp"
-#        elif defined(_DEBUG)\
-               && 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 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 NDNBOOST_LIB_RT_OPT "-p"
-#        endif
-
-#     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-
-#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
-#            define NDNBOOST_LIB_RT_OPT "-gydpn"
-#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define NDNBOOST_LIB_RT_OPT "-gdpn"
-#        elif defined(_DEBUG)\
-               && 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 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 NDNBOOST_LIB_RT_OPT "-pn"
-#        endif
-
-#     else
-
-#        if defined(_DEBUG) && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
-#            define NDNBOOST_LIB_RT_OPT "-gyd"
-#        elif defined(_DEBUG)
-#            define NDNBOOST_LIB_RT_OPT "-gd"
-#        else
-#            define NDNBOOST_LIB_RT_OPT
-#        endif
-
-#     endif
-
-#  else
-
-#     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(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
-#            define NDNBOOST_LIB_RT_OPT "-sgydp"
-#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define NDNBOOST_LIB_RT_OPT "-sgdp"
-#        elif defined(_DEBUG)\
-               && 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 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 NDNBOOST_LIB_RT_OPT "-sp"
-#        endif
-
-#     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-
-#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
-#            define NDNBOOST_LIB_RT_OPT "-sgydpn"
-#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define NDNBOOST_LIB_RT_OPT "-sgdpn"
-#        elif defined(_DEBUG)\
-               && 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 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 NDNBOOST_LIB_RT_OPT "-spn"
-#        endif
-
-#     else
-
-#        if defined(_DEBUG)\
-               && defined(NDNBOOST_DEBUG_PYTHON) && defined(NDNBOOST_LINKING_PYTHON)
-#             define NDNBOOST_LIB_RT_OPT "-sgyd"
-#        elif defined(_DEBUG)
-#             define NDNBOOST_LIB_RT_OPT "-sgd"
-#        else
-#            define NDNBOOST_LIB_RT_OPT "-s"
-#        endif
-
-#     endif
-
-#  endif
-
-#elif defined(__BORLANDC__)
-
-//
-// figure out whether we want the debug builds or not:
-//
-#if __BORLANDC__ > 0x561
-#pragma defineonoption NDNBOOST_BORLAND_DEBUG -v
-#endif
-//
-// sanity check:
-//
-#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
-#error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
-#endif
-
-#  ifdef _RTLDLL
-
-#     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 NDNBOOST_LIB_RT_OPT
-#     endif
-
-#  else
-
-#     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 NDNBOOST_LIB_RT_OPT "-s"
-#     endif
-
-#  endif
-
-#endif
-
-//
-// select linkage opt:
-//
-#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 NDNBOOST_LIB_PREFIX "lib"
-#endif
-
-//
-// now include the lib:
-//
-#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 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(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, 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
-
-#else
-#  error "some required macros where not defined (internal logic error)."
-#endif
-
-
-#endif // _MSC_VER || __BORLANDC__
-
-//
-// finally undef any macros we may have set:
-//
-#ifdef NDNBOOST_LIB_PREFIX
-#  undef NDNBOOST_LIB_PREFIX
-#endif
-#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(NDNBOOST_LIB_TOOLSET)
-//#  undef NDNBOOST_LIB_TOOLSET
-//#endif
-#if defined(NDNBOOST_LIB_THREAD_OPT)
-#  undef NDNBOOST_LIB_THREAD_OPT
-#endif
-#if defined(NDNBOOST_LIB_RT_OPT)
-#  undef NDNBOOST_LIB_RT_OPT
-#endif
-#if defined(NDNBOOST_LIB_LINK_OPT)
-#  undef NDNBOOST_LIB_LINK_OPT
-#endif
-#if defined(NDNBOOST_LIB_DEBUG_OPT)
-#  undef NDNBOOST_LIB_DEBUG_OPT
-#endif
-#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
deleted file mode 100644
index 7826232..0000000
--- a/include/ndnboost/config/compiler/borland.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright David Abrahams 2002 - 2003.
-//  (C) Copyright Aleksey Gurtovoy 2002.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Borland C++ compiler setup:
-
-//
-// versions check:
-// we don't support Borland prior to version 5.4:
-#if __BORLANDC__ < 0x540
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-
-// last known compiler version:
-#if (__BORLANDC__ > 0x613)
-//#  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")
-//#  endif
-#elif (__BORLANDC__ == 0x600)
-#  error "CBuilderX preview compiler is no longer supported"
-#endif
-
-//
-// Support macros to help with standard library detection
-#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
-#  define NDNBOOST_BCB_WITH_ROGUE_WAVE
-#elif __BORLANDC__ < 0x570
-#  define NDNBOOST_BCB_WITH_STLPORT
-#else
-#  define NDNBOOST_BCB_WITH_DINKUMWARE
-#endif
-
-//
-// Version 5.0 and below:
-#   if __BORLANDC__ <= 0x0550
-// Borland C++Builder 4 and 5:
-#     define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#     if __BORLANDC__ == 0x0550
-// Borland C++Builder 5, command-line compiler 5.5:
-#       define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
-#     endif
-// Variadic macros do not exist for C++ Builder versions 5 and below
-#define NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#   endif
-
-// Version 5.51 and below:
-#if (__BORLANDC__ <= 0x551)
-#  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>
-#include <cwchar>
-#else
-#include <limits.h>
-#include <wchar.h>
-#endif // __cplusplus
-#ifndef WCHAR_MAX
-#  define WCHAR_MAX 0xffff
-#endif
-#ifndef WCHAR_MIN
-#  define WCHAR_MIN 0
-#endif
-#endif
-
-// Borland C++ Builder 6 and below:
-#if (__BORLANDC__ <= 0x564)
-
-#  if defined(NDEBUG) && defined(__cplusplus)
-      // fix broken <cstring> so that Boost.test works:
-#     include <cstring>
-#     undef strcmp
-#  endif
-   // fix broken errno declaration:
-#  include <errno.h>
-#  ifndef errno
-#     define errno errno
-#  endif
-
-#endif
-
-//
-// 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 NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#endif
-
-// Borland C++ Builder 2006 Update 2 and below:
-#if (__BORLANDC__ <= 0x582)
-#  define NDNBOOST_NO_SFINAE
-#  define NDNBOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-#  define NDNBOOST_NO_TEMPLATE_TEMPLATES
-
-#  define NDNBOOST_NO_PRIVATE_IN_AGGREGATE
-
-#  ifdef _WIN32
-#     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 NDNBOOST_NO_STDC_NAMESPACE
-      // _CPPUNWIND doesn't get automatically set for some reason:
-#     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 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 NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif
-
-// Borland C++ Builder 2008 and below:
-#  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 NDNBOOST_ILLEGAL_CV_REFERENCES
-#endif
-
-//
-//  Positive Feature detection
-//
-// Borland C++ Builder 2008 and below:
-#if (__BORLANDC__ >= 0x599)
-#  pragma defineonoption NDNBOOST_CODEGEAR_0X_SUPPORT -Ax
-#endif
-//
-// C++0x Macros:
-//
-#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 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 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 NDNBOOST_HAS_TR1_HASH
-
-#  define NDNBOOST_HAS_MACRO_USE_FACET
-#endif
-
-//
-// Post 0x561 we have long long and stdint.h:
-#if __BORLANDC__ >= 0x561
-#  ifndef __NO_LONG_LONG
-#     define NDNBOOST_HAS_LONG_LONG
-#  else
-#     define NDNBOOST_NO_LONG_LONG
-#  endif
-   // On non-Win32 platforms let the platform config figure this out:
-#  ifdef _WIN32
-#      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( 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:
-#include <float.h>
-#endif
-//
-// __int64:
-//
-#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
-#  define NDNBOOST_HAS_MS_INT64
-#endif
-//
-// check for exception handling support:
-//
-#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 NDNBOOST_HAS_DIRENT_H
-#endif
-//
-// all versions support __declspec:
-//
-#if defined(__STRICT_ANSI__)
-// 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 NDNBOOST_ABI_PREFIX
-#  define NDNBOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
-#endif
-#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 NDNBOOST_DISABLE_WIN32 -A
-#elif defined(__STRICT_ANSI__)
-#  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 NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define NDNBOOST_NO_VOID_RETURNS
-#endif
-
-// Borland did not implement value-initialization completely, as I reported
-// in 2007, Borland Report 51854, "Value-initialization: POD struct should be
-// 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 NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
-
-#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
deleted file mode 100644
index d8ab35c..0000000
--- a/include/ndnboost/config/compiler/clang.hpp
+++ /dev/null
@@ -1,158 +0,0 @@
-// (C) Copyright Douglas Gregor 2010
-//
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-// Clang compiler setup.
-
-#if !__has_feature(cxx_exceptions) && !defined(NDNBOOST_NO_EXCEPTIONS)
-#  define NDNBOOST_NO_EXCEPTIONS
-#endif
-
-#if !__has_feature(cxx_rtti) && !defined(NDNBOOST_NO_RTTI)
-#  define NDNBOOST_NO_RTTI
-#endif
-
-#if !__has_feature(cxx_rtti) && !defined(NDNBOOST_NO_TYPEID)
-#  define NDNBOOST_NO_TYPEID
-#endif
-
-#if defined(__int64) && !defined(__GNUC__)
-#  define NDNBOOST_HAS_MS_INT64
-#endif
-
-#define NDNBOOST_HAS_NRVO
-
-// Clang supports "long long" in all compilation modes.
-#define NDNBOOST_HAS_LONG_LONG
-
-//
-// Dynamic shared object (DSO) and dynamic-link library (DLL) support
-//
-#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
-#  define NDNBOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
-#  define NDNBOOST_SYMBOL_IMPORT
-#  define NDNBOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
-#endif
-
-// 
-// 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 NDNBOOST_FALLTHROUGH [[clang::fallthrough]] 
-#  endif 
-#endif 
-
-#if !__has_feature(cxx_auto_type)
-#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#endif
-
-#if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
-#  define NDNBOOST_NO_CXX11_CHAR16_T
-#  define NDNBOOST_NO_CXX11_CHAR32_T
-#endif
-
-#if !__has_feature(cxx_constexpr)
-#  define NDNBOOST_NO_CXX11_CONSTEXPR
-#endif
-
-#if !__has_feature(cxx_decltype)
-#  define NDNBOOST_NO_CXX11_DECLTYPE
-#endif
-
-#if !__has_feature(cxx_decltype_incomplete_return_types)
-#  define NDNBOOST_NO_CXX11_DECLTYPE_N3276
-#endif
-
-#if !__has_feature(cxx_defaulted_functions)
-#  define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#endif
-
-#if !__has_feature(cxx_deleted_functions)
-#  define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
-#endif
-
-#if !__has_feature(cxx_explicit_conversions)
-#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#endif
-
-#if !__has_feature(cxx_default_function_template_args)
-#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#endif
-
-#if !__has_feature(cxx_generalized_initializers)
-#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#endif
-
-#if !__has_feature(cxx_lambdas)
-#  define NDNBOOST_NO_CXX11_LAMBDAS
-#endif
-
-#if !__has_feature(cxx_local_type_template_args)
-#  define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#endif
-
-#if !__has_feature(cxx_noexcept)
-#  define NDNBOOST_NO_CXX11_NOEXCEPT
-#endif
-
-#if !__has_feature(cxx_nullptr)
-#  define NDNBOOST_NO_CXX11_NULLPTR
-#endif
-
-#if !__has_feature(cxx_range_for)
-#  define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
-#endif
-
-#if !__has_feature(cxx_raw_string_literals)
-#  define NDNBOOST_NO_CXX11_RAW_LITERALS
-#endif
-
-#if !__has_feature(cxx_generalized_initializers)
-#  define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#endif
-
-#if !__has_feature(cxx_rvalue_references)
-#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-#endif
-
-#if !__has_feature(cxx_strong_enums)
-#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
-#endif
-
-#if !__has_feature(cxx_static_assert)
-#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
-#endif
-
-#if !__has_feature(cxx_alias_templates)
-#  define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
-#endif
-
-#if !__has_feature(cxx_unicode_literals)
-#  define NDNBOOST_NO_CXX11_UNICODE_LITERALS
-#endif
-
-#if !__has_feature(cxx_variadic_templates)
-#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
-#endif
-
-#if !__has_feature(cxx_user_literals)
-#  define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
-#endif
-
-// Clang always supports variadic macros
-// Clang always supports extern templates
-
-#ifndef NDNBOOST_COMPILER
-#  define NDNBOOST_COMPILER "Clang version " __clang_version__
-#endif
-
-// Macro used to identify the Clang compiler.
-#define NDNBOOST_CLANG 1
-
diff --git a/include/ndnboost/config/compiler/codegear.hpp b/include/ndnboost/config/compiler/codegear.hpp
deleted file mode 100644
index f46c9ae..0000000
--- a/include/ndnboost/config/compiler/codegear.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright David Abrahams 2002 - 2003.
-//  (C) Copyright Aleksey Gurtovoy 2002.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  CodeGear C++ compiler setup:
-
-#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
-# pragma warn -8066 // dead code can never execute
-# pragma warn -8104 // static members with ctors not threadsafe
-# pragma warn -8105 // reference member in class without ctors
-#endif
-//
-// versions check:
-// last known and checked version is 0x621
-#if (__CODEGEARC__ > 0x621)
-#  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")
-#  endif
-#endif
-
-// CodeGear C++ Builder 2009
-#if (__CODEGEARC__ <= 0x613)
-#  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 NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  define NDNBOOST_SP_NO_SP_CONVERTIBLE
-#endif
-
-// CodeGear C++ Builder 2010
-#if (__CODEGEARC__ <= 0x621)
-#  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 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,
-// "Value-initialization: arrays should have each element value-initialized",
-// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
-// 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 NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
-
-#  if defined(NDEBUG) && defined(__cplusplus)
-      // fix broken <cstring> so that Boost.test works:
-#     include <cstring>
-#     undef strcmp
-#  endif
-   // fix broken errno declaration:
-#  include <errno.h>
-#  ifndef errno
-#     define errno errno
-#  endif
-
-#endif
-//
-// C++0x macros:
-//
-#if (__CODEGEARC__ <= 0x620)
-#define NDNBOOST_NO_CXX11_STATIC_ASSERT
-#else
-#define NDNBOOST_HAS_STATIC_ASSERT
-#endif
-#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 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 NDNBOOST_HAS_TR1_HASH
-#define NDNBOOST_HAS_TR1_TYPE_TRAITS
-#define NDNBOOST_HAS_TR1_UNORDERED_MAP
-#define NDNBOOST_HAS_TR1_UNORDERED_SET
-
-#define NDNBOOST_HAS_MACRO_USE_FACET
-
-#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
-
-// On non-Win32 platforms let the platform config figure this out:
-#ifdef _WIN32
-#  define NDNBOOST_HAS_STDINT_H
-#endif
-
-//
-// __int64:
-//
-#if !defined(__STRICT_ANSI__)
-#  define NDNBOOST_HAS_MS_INT64
-#endif
-//
-// check for exception handling support:
-//
-#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 NDNBOOST_HAS_DIRENT_H
-#endif
-//
-// all versions support __declspec:
-//
-#if defined(__STRICT_ANSI__)
-// config/platform/win32.hpp will define NDNBOOST_SYMBOL_EXPORT, etc., unless already defined  
-#  define NDNBOOST_SYMBOL_EXPORT
-#endif
-//
-// ABI fixing headers:
-//
-#ifndef NDNBOOST_ABI_PREFIX
-#  define NDNBOOST_ABI_PREFIX "ndnboost/config/abi/borland_prefix.hpp"
-#endif
-#ifndef NDNBOOST_ABI_SUFFIX
-#  define NDNBOOST_ABI_SUFFIX "ndnboost/config/abi/borland_suffix.hpp"
-#endif
-//
-// Disable Win32 support in ANSI mode:
-//
-#  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 NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define NDNBOOST_NO_VOID_RETURNS
-#endif
-
-#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
deleted file mode 100644
index 4238be9..0000000
--- a/include/ndnboost/config/compiler/comeau.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  (C) Copyright Douglas Gregor 2001. 
-//  (C) Copyright Peter Dimov 2001. 
-//  (C) Copyright Aleksey Gurtovoy 2003. 
-//  (C) Copyright Beman Dawes 2003. 
-//  (C) Copyright Jens Maurer 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Comeau C++ compiler setup:
-
-#include "ndnboost/config/compiler/common_edg.hpp"
-
-#if (__COMO_VERSION__ <= 4245)
-
-#  if defined(_MSC_VER) && _MSC_VER <= 1300
-#     if _MSC_VER > 100
-         // only set this in non-strict mode:
-#        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 NDNBOOST_NO_VOID_RETURNS
-#  endif
-
-#endif  // version 4245
-
-//
-// enable __int64 support in VC emulation mode
-//
-#  if defined(_MSC_VER) && (_MSC_VER >= 1200)
-#     define NDNBOOST_HAS_MS_INT64
-#  endif
-
-#define NDNBOOST_COMPILER "Comeau compiler version " NDNBOOST_STRINGIZE(__COMO_VERSION__)
-
-//
-// versions check:
-// we don't know Comeau prior to version 4245:
-#if __COMO_VERSION__ < 4245
-#  error "Compiler not configured - please reconfigure"
-#endif
-//
-// last known and checked version is 4245:
-#if (__COMO_VERSION__ > 4245)
-#  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
deleted file mode 100644
index 25181ac..0000000
--- a/include/ndnboost/config/compiler/common_edg.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  (C) Copyright Jens Maurer 2001. 
-//  (C) Copyright David Abrahams 2002. 
-//  (C) Copyright Aleksey Gurtovoy 2002. 
-//  (C) Copyright Markus Schoepflin 2005.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//
-// Options common to all edg based compilers.
-//
-// This is included from within the individual compiler mini-configs.
-
-#ifndef  __EDG_VERSION__
-#  error This file requires that __EDG_VERSION__ be defined.
-#endif
-
-#if (__EDG_VERSION__ <= 238)
-#   define NDNBOOST_NO_INTEGRAL_INT64_T
-#   define NDNBOOST_NO_SFINAE
-#endif
-
-#if (__EDG_VERSION__ <= 240)
-#   define NDNBOOST_NO_VOID_RETURNS
-#endif
-
-#if (__EDG_VERSION__ <= 241) && !defined(NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-#   define NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#endif
-
-#if (__EDG_VERSION__ <= 244) && !defined(NDNBOOST_NO_TEMPLATE_TEMPLATES)
-#   define NDNBOOST_NO_TEMPLATE_TEMPLATES
-#endif 
-
-#if (__EDG_VERSION__ < 300) && !defined(NDNBOOST_NO_IS_ABSTRACT)
-#   define NDNBOOST_NO_IS_ABSTRACT
-#endif 
-
-#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(NDNBOOST_NO_EXCEPTIONS)
-#     define NDNBOOST_NO_EXCEPTIONS
-# endif
-
-# if !defined(__NO_LONG_LONG)
-#     define NDNBOOST_HAS_LONG_LONG
-# else
-#     define NDNBOOST_NO_LONG_LONG
-# endif
-
-//
-// C++0x features
-//
-//   See above for NDNBOOST_NO_LONG_LONG
-//
-#if (__EDG_VERSION__ < 310)
-#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
-#endif
-#if (__EDG_VERSION__ <= 310)
-// No support for initializer lists
-#  define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#endif
-#if (__EDG_VERSION__ < 400)
-#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-
-#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 NDNBOOST_HAS_LONG_LONG
-#endif
diff --git a/include/ndnboost/config/compiler/compaq_cxx.hpp b/include/ndnboost/config/compiler/compaq_cxx.hpp
deleted file mode 100644
index cf8b5e5..0000000
--- a/include/ndnboost/config/compiler/compaq_cxx.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Tru64 C++ compiler setup (now HP):
-
-#define NDNBOOST_COMPILER "HP Tru64 C++ " NDNBOOST_STRINGIZE(__DECCXX_VER)
-
-#include "ndnboost/config/compiler/common_edg.hpp"
-
-//
-// versions check:
-// Nothing to do here?
-
-
-
diff --git a/include/ndnboost/config/compiler/cray.hpp b/include/ndnboost/config/compiler/cray.hpp
deleted file mode 100644
index ca86118..0000000
--- a/include/ndnboost/config/compiler/cray.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//  (C) Copyright John Maddock 2011.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Greenhills C compiler setup:
-
-#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."
-#endif
-
-//
-// Check this is a recent EDG based compiler, otherwise we don't support it here:
-//
-#ifndef __EDG_VERSION__
-#  error "Unsupported Cray compiler, please try running the configure script."
-#endif
-
-#include "ndnboost/config/compiler/common_edg.hpp"
-
-//
-// Cray peculiarities, probably version 7 specific:
-//
-#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 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
deleted file mode 100644
index b1cb3b7..0000000
--- a/include/ndnboost/config/compiler/digitalmars.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//  Copyright (C) Christof Meerwald 2003
-//  Copyright (C) Dan Watkins 2003
-//
-//  Use, modification and distribution are subject to 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)
-
-//  Digital Mars C++ compiler setup:
-#define NDNBOOST_COMPILER __DMC_VERSION_STRING__
-
-#define NDNBOOST_HAS_LONG_LONG
-#define NDNBOOST_HAS_PRAGMA_ONCE
-
-#if (__DMC__ <= 0x833)
-#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(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 NDNBOOST_HAS_DIRENT_H
-#define NDNBOOST_HAS_STDINT_H
-#define NDNBOOST_HAS_WINTHREADS
-#endif
-
-#if (__DMC__ >= 0x847)
-#define NDNBOOST_HAS_EXPM1
-#define NDNBOOST_HAS_LOG1P
-#endif
-
-//
-// Is this really the best way to detect whether the std lib is in namespace std?
-//
-#ifdef __cplusplus
-#include <cstddef>
-#endif
-#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
-#  define NDNBOOST_NO_STDC_NAMESPACE
-#endif
-
-
-// check for exception handling support:
-#if !defined(_CPPUNWIND) && !defined(NDNBOOST_NO_EXCEPTIONS)
-#  define NDNBOOST_NO_EXCEPTIONS
-#endif
-
-//
-// C++0x features
-//
-#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 NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-
-#if __DMC__ < 0x800
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is ...:
-#if (__DMC__ > 0x848)
-#  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
deleted file mode 100644
index c2d5130..0000000
--- a/include/ndnboost/config/compiler/gcc.hpp
+++ /dev/null
@@ -1,280 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Darin Adler 2001 - 2002. 
-//  (C) Copyright Jens Maurer 2001 - 2002. 
-//  (C) Copyright Beman Dawes 2001 - 2003. 
-//  (C) Copyright Douglas Gregor 2002. 
-//  (C) Copyright David Abrahams 2002 - 2003. 
-//  (C) Copyright Synge Todo 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  GNU C++ compiler setup.
-
-//
-// Define NDNBOOST_GCC so we know this is "real" GCC and not some pretender:
-//
-#if !defined(__CUDACC__)
-#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 NDNBOOST_NO_AUTO_PTR
-#   endif
-#   if __GNUC_MINOR__ < 95
-      //
-      // Prior to gcc 2.95 member templates only partly
-      // work - define NDNBOOST_MSVC6_MEMBER_TEMPLATES
-      // instead since inline member templates mostly work.
-      //
-#     define NDNBOOST_NO_MEMBER_TEMPLATES
-#     if __GNUC_MINOR__ >= 9
-#       define NDNBOOST_MSVC6_MEMBER_TEMPLATES
-#     endif
-#   endif
-
-#   if __GNUC_MINOR__ < 96
-#     define NDNBOOST_NO_SFINAE
-#   endif
-
-#   if __GNUC_MINOR__ <= 97
-#     define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#     define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
-#   endif
-
-#   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 NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#elif __GNUC__ == 3
-#  if defined (__PATHSCALE__)
-#     define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-#     define NDNBOOST_NO_IS_ABSTRACT
-#  endif
-   //
-   // gcc-3.x problems:
-   //
-   // Bug specific to gcc 3.1 and 3.2:
-   //
-#  if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
-#     define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#  endif
-#  if __GNUC_MINOR__ < 4
-#     define NDNBOOST_NO_IS_ABSTRACT
-#  endif
-#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
-#endif
-#if __GNUC__ < 4
-//
-// All problems to gcc-3.x and earlier here:
-//
-#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-#  ifdef __OPEN64__
-#     define NDNBOOST_NO_IS_ABSTRACT
-#  endif
-#endif
-
-#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
-// Previous versions of GCC did not completely implement value-initialization:
-// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
-// members", reported by Jonathan Wakely in 2006,
-// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
-// GCC Bug 33916, "Default constructor fails to initialize array members",
-// 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 NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#endif
-
-#if !defined(__EXCEPTIONS) && !defined(NDNBOOST_NO_EXCEPTIONS)
-# define NDNBOOST_NO_EXCEPTIONS
-#endif
-
-
-//
-// Threading support: Turn this on unconditionally here (except for
-// those platforms where we can know for sure). It will get turned off again
-// later if no threading API is detected.
-//
-#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
-# define NDNBOOST_HAS_THREADS
-#endif 
-
-//
-// gcc 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 NDNBOOST_HAS_NRVO
-#endif
-
-//
-// Dynamic shared object (DSO) and dynamic-link library (DLL) support
-//
-#if __GNUC__ >= 4
-#  if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
-     // 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 NDNBOOST_HAS_DECLSPEC
-#    define NDNBOOST_SYMBOL_EXPORT __attribute__((dllexport))
-#    define NDNBOOST_SYMBOL_IMPORT __attribute__((dllimport))
-#  else
-#    define NDNBOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
-#    define NDNBOOST_SYMBOL_IMPORT
-#  endif
-#  define NDNBOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
-#else
-// config/platform/win32.hpp will define NDNBOOST_SYMBOL_EXPORT, etc., unless already defined  
-#  define NDNBOOST_SYMBOL_EXPORT
-#endif
-
-//
-// RTTI and typeinfo detection is possible post gcc-4.3:
-//
-#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
-#  ifndef __GXX_RTTI
-#     ifndef NDNBOOST_NO_TYPEID
-#        define NDNBOOST_NO_TYPEID
-#     endif
-#     ifndef NDNBOOST_NO_RTTI
-#        define NDNBOOST_NO_RTTI
-#     endif
-#  endif
-#endif
-
-//
-// Recent GCC versions have __int128 when in 64-bit mode.
-//
-// We disable this if the compiler is really nvcc as it
-// doesn't actually support __int128 as of CUDA_VERSION=5000
-// even though it defines __SIZEOF_INT128__.  
-// See https://svn.boost.org/trac/boost/ticket/8048
-// Only re-enable this for nvcc if you're absolutely sure
-// of the circumstances under which it's supported:
-//
-#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
-#  define NDNBOOST_HAS_INT128
-#endif
-
-// C++0x features in 4.3.n and later
-//
-#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)
-// 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 NDNBOOST_HAS_DECLTYPE
-#  define NDNBOOST_HAS_RVALUE_REFS
-#  define NDNBOOST_HAS_STATIC_ASSERT
-#  define NDNBOOST_HAS_VARIADIC_TMPL
-#else
-#  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 NDNBOOST_HAS_VARIADIC_TMPL
-#  else
-#    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 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 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 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 NDNBOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
-// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
-#  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 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 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 NDNBOOST_NO_CXX11_DECLTYPE_N3276
-#endif
-
-#ifndef NDNBOOST_COMPILER
-#  define NDNBOOST_COMPILER "GNU C++ version " __VERSION__
-#endif
-
-// ConceptGCC compiler:
-//   http://www.generic-programming.org/software/ConceptGCC/
-#ifdef __GXX_CONCEPTS__
-#  define NDNBOOST_HAS_CONCEPTS
-#  define NDNBOOST_COMPILER "ConceptGCC version " __VERSION__
-#endif
-
-// versions check:
-// we don't know gcc prior to version 2.90:
-#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
-#  error "Compiler not configured - please reconfigure"
-#endif
-//
-// last known and checked version is 4.6 (Pre-release):
-#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
-#  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
-// gcc post 3.4, so any failures are gcc regressions...
-//#     warning "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
-
-
diff --git a/include/ndnboost/config/compiler/gcc_xml.hpp b/include/ndnboost/config/compiler/gcc_xml.hpp
deleted file mode 100644
index 17f9f78..0000000
--- a/include/ndnboost/config/compiler/gcc_xml.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//  (C) Copyright John Maddock 2006. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  GCC-XML C++ compiler setup:
-
-#  if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
-#     define NDNBOOST_NO_IS_ABSTRACT
-#  endif
-
-//
-// Threading support: Turn this on unconditionally here (except for
-// those platforms where we can know for sure). It will get turned off again
-// later if no threading API is detected.
-//
-#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
-# define NDNBOOST_HAS_THREADS
-#endif 
-
-//
-// gcc has "long long"
-//
-#define NDNBOOST_HAS_LONG_LONG
-
-// C++0x features:
-//
-#  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 NDNBOOST_COMPILER "GCC-XML C++ version " __GCCXML__
-
-
diff --git a/include/ndnboost/config/compiler/greenhills.hpp b/include/ndnboost/config/compiler/greenhills.hpp
deleted file mode 100644
index d16897d..0000000
--- a/include/ndnboost/config/compiler/greenhills.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Greenhills C++ compiler setup:
-
-#define NDNBOOST_COMPILER "Greenhills C++ version " NDNBOOST_STRINGIZE(__ghs)
-
-#include "ndnboost/config/compiler/common_edg.hpp"
-
-//
-// versions check:
-// we don't support Greenhills prior to version 0:
-#if __ghs < 0
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0:
-#if (__ghs > 0)
-#  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
deleted file mode 100644
index d8438e8..0000000
--- a/include/ndnboost/config/compiler/hp_acc.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  (C) Copyright Aleksey Gurtovoy 2002. 
-//  (C) Copyright David Abrahams 2002 - 2003. 
-//  (C) Copyright Toon Knapen 2003. 
-//  (C) Copyright Boris Gubenko 2006 - 2007.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  HP aCC C++ compiler setup:
-
-#if defined(__EDG__)
-#include "ndnboost/config/compiler/common_edg.hpp"
-#endif
-
-#if (__HP_aCC <= 33100)
-#    define NDNBOOST_NO_INTEGRAL_INT64_T
-#    define NDNBOOST_NO_OPERATORS_IN_NAMESPACE
-#  if !defined(_NAMESPACE_STD)
-#     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 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 NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-
-#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
-#    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 NDNBOOST_HAS_LONG_LONG
-#    define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
-#endif
-
-#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
-#    define NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#endif
-
-// This macro should not be defined when compiling in strict ansi
-// mode, but, currently, we don't have the ability to determine
-// what standard mode we are compiling with. Some future version
-// 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 NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-
-#define NDNBOOST_COMPILER "HP aCC version " NDNBOOST_STRINGIZE(__HP_aCC)
-
-//
-// versions check:
-// we don't support HP aCC prior to version 33000:
-#if __HP_aCC < 33000
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-
-//
-// Extended checks for supporting aCC on PA-RISC
-#if __HP_aCC > 30000 && __HP_aCC < 50000
-#  if __HP_aCC < 38000
-      // versions prior to version A.03.80 not supported
-#     error "Compiler version not supported - version A.03.80 or higher is required"
-#  elif !defined(__hpxstd98)
-      // must compile using the option +hpxstd98 with version A.03.80 and above
-#     error "Compiler option '+hpxstd98' is required for proper support"
-#  endif //PA-RISC
-#endif
-
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
-//
-#if !defined(__EDG__)
-
-#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
-      https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
-*/
-
-#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
-  #define NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-
-#endif
-
-//
-// 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(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
deleted file mode 100644
index 9216831..0000000
--- a/include/ndnboost/config/compiler/intel.hpp
+++ /dev/null
@@ -1,272 +0,0 @@
-//  (C) Copyright John Maddock 2001-8.
-//  (C) Copyright Peter Dimov 2001.
-//  (C) Copyright Jens Maurer 2001.
-//  (C) Copyright David Abrahams 2002 - 2003.
-//  (C) Copyright Aleksey Gurtovoy 2002 - 2003.
-//  (C) Copyright Guillaume Melquiond 2002 - 2003.
-//  (C) Copyright Beman Dawes 2003.
-//  (C) Copyright Martin Wille 2003.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Intel compiler setup:
-
-#include "ndnboost/config/compiler/common_edg.hpp"
-
-#if defined(__INTEL_COMPILER)
-#  define NDNBOOST_INTEL_CXX_VERSION __INTEL_COMPILER
-#elif defined(__ICL)
-#  define NDNBOOST_INTEL_CXX_VERSION __ICL
-#elif defined(__ICC)
-#  define NDNBOOST_INTEL_CXX_VERSION __ICC
-#elif defined(__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__ && (NDNBOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
-#  define NDNBOOST_INTEL_STDCXX0X
-#endif
-#if defined(_MSC_VER) && (_MSC_VER >= 1600)
-#  define NDNBOOST_INTEL_STDCXX0X
-#endif
-
-#ifdef NDNBOOST_INTEL_STDCXX0X
-#define NDNBOOST_COMPILER "Intel C++ C++0x mode version " NDNBOOST_STRINGIZE(NDNBOOST_INTEL_CXX_VERSION)
-#else
-#define NDNBOOST_COMPILER "Intel C++ version " NDNBOOST_STRINGIZE(NDNBOOST_INTEL_CXX_VERSION)
-#endif
-#define NDNBOOST_INTEL NDNBOOST_INTEL_CXX_VERSION
-
-#if defined(_WIN32) || defined(_WIN64)
-#  define NDNBOOST_INTEL_WIN NDNBOOST_INTEL
-#else
-#  define NDNBOOST_INTEL_LINUX NDNBOOST_INTEL
-#endif
-
-#if (NDNBOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
-#  define NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-#  define NDNBOOST_NO_TEMPLATE_TEMPLATES
-#endif
-
-#if (NDNBOOST_INTEL_CXX_VERSION <= 600)
-
-#  if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
-
-// Boost libraries assume strong standard conformance unless otherwise
-// indicated by a config macro. As configured by Intel, the EDG front-end
-// requires certain compiler options be set to achieve that strong conformance.
-// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
-// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
-// 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 NDNBOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
-// the compiler option is not enabled.
-
-#     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 NDNBOOST_NO_VOID_RETURNS
-#     define NDNBOOST_NO_INTEGRAL_INT64_T
-#  endif
-
-#endif
-
-#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 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
-// headers define this macro if they typedef wchar_t. Anyway, we're lucky
-// because they define it without a value, while Intel C++ defines it
-// to 1. So we can check its value to see if the macro was defined natively
-// or not.
-// 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 NDNBOOST_NO_INTRINSIC_WCHAR_T
-#  endif
-#endif
-
-#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)) || (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) || (NDNBOOST_INTEL_CXX_VERSION <= 1200)
-// GCC or VC emulation:
-#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-//
-// 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(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 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 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 NDNBOOST_HAS_MS_INT64
-#  endif
-#  define NDNBOOST_NO_SWPRINTF
-#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-#elif defined(_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 (NDNBOOST_INTEL_CXX_VERSION >= 600)
-#  define NDNBOOST_HAS_NRVO
-#endif
-
-//
-// versions check:
-// we don't support Intel prior to version 5.0:
-#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 NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-
-// Intel on Altix Itanium
-#if defined(__itanium__) && defined(__INTEL_COMPILER)
-#  define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-
-//
-// An attempt to value-initialize a pointer-to-member may trigger an
-// internal error on Intel <= 11.1 (last checked version), as was 
-// reported by John Maddock, Intel support issue 589832, May 2010.
-// Moreover, according to test results from Huang-Vista-x86_32_intel,
-// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some 
-// cases when it should be value-initialized.
-// (Niels Dekker, LKEB, May 2010)
-// 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 NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#  endif
-#endif
-
-//
-// Dynamic shared object (DSO) and dynamic-link library (DLL) support
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#  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(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  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(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(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  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  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 (NDNBOOST_INTEL_CXX_VERSION < 1200)
-//
-// fenv.h appears not to work with Intel prior to 12.0:
-//
-#  define NDNBOOST_NO_FENV_H
-#endif
-
-//
-// last known and checked version:
-#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)
-//
-//      We don't emit this warning any more, since we have so few
-//      defect macros set anyway (just the one).
-//
-//#     pragma message("Unknown compiler version - please run the configure tests and report the results")
-#  endif
-#endif
-
diff --git a/include/ndnboost/config/compiler/kai.hpp b/include/ndnboost/config/compiler/kai.hpp
deleted file mode 100644
index 38320f5..0000000
--- a/include/ndnboost/config/compiler/kai.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  (C) Copyright David Abrahams 2002. 
-//  (C) Copyright Aleksey Gurtovoy 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Kai C++ compiler setup:
-
-#include "ndnboost/config/compiler/common_edg.hpp"
-
-#   if (__KCC_VERSION <= 4001) || !defined(NDNBOOST_STRICT_CONFIG)
-      // at least on Sun, the contents of <cwchar> is not in namespace std
-#     define NDNBOOST_NO_STDC_NAMESPACE
-#   endif
-
-// see also common_edg.hpp which needs a special check for __KCC
-# 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(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
deleted file mode 100644
index a5161cd..0000000
--- a/include/ndnboost/config/compiler/metrowerks.hpp
+++ /dev/null
@@ -1,145 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  (C) Copyright Darin Adler 2001. 
-//  (C) Copyright Peter Dimov 2001. 
-//  (C) Copyright David Abrahams 2001 - 2002. 
-//  (C) Copyright Beman Dawes 2001 - 2003. 
-//  (C) Copyright Stefan Slapeta 2004. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Metrowerks C++ compiler setup:
-
-// locale support is disabled when linking with the dynamic runtime
-#   ifdef _MSL_NO_LOCALE
-#     define NDNBOOST_NO_STD_LOCALE
-#   endif 
-
-#   if __MWERKS__ <= 0x2301  // 5.3
-#     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 NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#   endif
-
-#   if(__MWERKS__ <= 0x2407)  // 7.x
-#     define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#     define NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
-#   endif
-
-#   if(__MWERKS__ <= 0x3003)  // 8.x
-#     define NDNBOOST_NO_SFINAE
-#    endif
-
-// the "|| !defined(NDNBOOST_STRICT_CONFIG)" part should apply to the last
-// tested version *only*:
-#   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 NDNBOOST_NO_INTRINSIC_WCHAR_T
-#endif
-
-#if !__option(exceptions) && !defined(NDNBOOST_NO_EXCEPTIONS)
-#   define NDNBOOST_NO_EXCEPTIONS
-#endif
-
-#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
-#   if __MWERKS__ == 0x3000
-#     define NDNBOOST_COMPILER_VERSION 8.0
-#   elif __MWERKS__ == 0x3001
-#     define NDNBOOST_COMPILER_VERSION 8.1
-#   elif __MWERKS__ == 0x3002
-#     define NDNBOOST_COMPILER_VERSION 8.2
-#   elif __MWERKS__ == 0x3003
-#     define NDNBOOST_COMPILER_VERSION 8.3
-#   elif __MWERKS__ == 0x3200
-#     define NDNBOOST_COMPILER_VERSION 9.0
-#   elif __MWERKS__ == 0x3201
-#     define NDNBOOST_COMPILER_VERSION 9.1
-#   elif __MWERKS__ == 0x3202
-#     define NDNBOOST_COMPILER_VERSION 9.2
-#   elif __MWERKS__ == 0x3204
-#     define NDNBOOST_COMPILER_VERSION 9.3
-#   elif __MWERKS__ == 0x3205
-#     define NDNBOOST_COMPILER_VERSION 9.4
-#   elif __MWERKS__ == 0x3206
-#     define NDNBOOST_COMPILER_VERSION 9.5
-#   elif __MWERKS__ == 0x3207
-#     define NDNBOOST_COMPILER_VERSION 9.6
-#   else
-#     define NDNBOOST_COMPILER_VERSION __MWERKS__
-#   endif
-#else
-#  define NDNBOOST_COMPILER_VERSION __MWERKS__
-#endif
-
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
-//
-#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
-#  define NDNBOOST_HAS_RVALUE_REFS
-#else
-#  define NDNBOOST_NO_CXX11_RVALUE_REFERENCES              
-#endif
-#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 NDNBOOST_COMPILER "Metrowerks CodeWarrior C++ version " NDNBOOST_STRINGIZE(NDNBOOST_COMPILER_VERSION)
-
-//
-// versions check:
-// we don't support Metrowerks prior to version 5.3:
-#if __MWERKS__ < 0x2301
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version:
-#if (__MWERKS__ > 0x3205)
-#  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
deleted file mode 100644
index 83aa275..0000000
--- a/include/ndnboost/config/compiler/mpw.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  (C) Copyright Aleksey Gurtovoy 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  MPW C++ compilers setup:
-
-#   if    defined(__SC__)
-#     define NDNBOOST_COMPILER "MPW SCpp version " NDNBOOST_STRINGIZE(__SC__)
-#   elif defined(__MRC__)
-#     define NDNBOOST_COMPILER "MPW MrCpp version " NDNBOOST_STRINGIZE(__MRC__)
-#   else
-#     error "Using MPW compiler configuration by mistake.  Please update."
-#   endif
-
-//
-// MPW 8.90:
-//
-#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 NDNBOOST_NO_CWCHAR
-#  define NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-
-#  define NDNBOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
-
-#endif
-
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
-//
-#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:
-// we don't support MPW prior to version 8.9:
-#if MPW_CPLUS < 0x890
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0x890:
-#if (MPW_CPLUS > 0x890)
-#  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
deleted file mode 100644
index c3507cf..0000000
--- a/include/ndnboost/config/compiler/nvcc.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright Eric Jourdanneau, Joel Falcou 2010
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  NVIDIA CUDA C++ compiler setup
-
-#ifndef NDNBOOST_COMPILER
-#  define NDNBOOST_COMPILER "NVIDIA CUDA C++ Compiler"
-#endif
-
-// NVIDIA Specific support
-// 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
-#ifdef __GNUC__
-
-#include <ndnboost/config/compiler/gcc.hpp>
-
-#elif defined(_MSC_VER)
-
-#include <ndnboost/config/compiler/visualc.hpp>
-
-#endif
diff --git a/include/ndnboost/config/compiler/pathscale.hpp b/include/ndnboost/config/compiler/pathscale.hpp
deleted file mode 100644
index 9ddaeb8..0000000
--- a/include/ndnboost/config/compiler/pathscale.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//  (C) Copyright Bryce Lelbach 2011
-
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-// PathScale EKOPath C++ Compiler
-
-#ifndef NDNBOOST_COMPILER
-#  define NDNBOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
-#endif
-
-#if __PATHCC__ >= 4
-#  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
deleted file mode 100644
index 07a92de..0000000
--- a/include/ndnboost/config/compiler/pgi.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-//  (C) Copyright Noel Belcourt 2007.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  PGI C++ compiler setup:
-
-#define NDNBOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
-#define NDNBOOST_COMPILER "PGI compiler version " NDNBOOST_STRINGIZE(NDNBOOST_COMPILER_VERSION)
-
-//
-// Threading support:
-// Turn this on unconditionally here, it will get turned off again later
-// if no threading API is detected.
-//
-
-#if __PGIC__ >= 11
-
-// options requested by configure --enable-test
-#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 NDNBOOST_NO_STDC_NAMESPACE
-#undef NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
-#undef NDNBOOST_DEDUCED_TYPENAME
-
-#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 NDNBOOST_HAS_THREADS
-#define NDNBOOST_HAS_NRVO
-#define NDNBOOST_HAS_LONG_LONG
-
-// options --enable-test wants undefined
-#undef NDNBOOST_NO_STDC_NAMESPACE
-#undef NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
-#undef NDNBOOST_DEDUCED_TYPENAME
-
-#elif __PGIC__ >= 7
-
-#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
-
-#  error "Pgi compiler not configured - please reconfigure"
-
-#endif
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
-//
-#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 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:
-// probably nothing to do here?
-
diff --git a/include/ndnboost/config/compiler/sgi_mipspro.hpp b/include/ndnboost/config/compiler/sgi_mipspro.hpp
deleted file mode 100644
index 1ebe245..0000000
--- a/include/ndnboost/config/compiler/sgi_mipspro.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  SGI C++ compiler setup:
-
-#define NDNBOOST_COMPILER "SGI Irix compiler version " NDNBOOST_STRINGIZE(_COMPILER_VERSION)
-
-#include "ndnboost/config/compiler/common_edg.hpp"
-
-//
-// Threading support:
-// Turn this on unconditionally here, it will get turned off again later
-// if no threading API is detected.
-//
-#define NDNBOOST_HAS_THREADS
-#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-
-#undef NDNBOOST_NO_SWPRINTF
-#undef NDNBOOST_DEDUCED_TYPENAME
-
-//
-// version check:
-// probably nothing to do here?
-
-
diff --git a/include/ndnboost/config/compiler/sunpro_cc.hpp b/include/ndnboost/config/compiler/sunpro_cc.hpp
deleted file mode 100644
index 6b344e1..0000000
--- a/include/ndnboost/config/compiler/sunpro_cc.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  (C) Copyright Peter Dimov 2002. 
-//  (C) Copyright Aleksey Gurtovoy 2002 - 2003. 
-//  (C) Copyright David Abrahams 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Sun C++ compiler setup:
-
-#    if __SUNPRO_CC <= 0x500
-#      define NDNBOOST_NO_MEMBER_TEMPLATES
-#      define NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#    endif
-
-#    if (__SUNPRO_CC <= 0x520)
-       //
-       // Sunpro 5.2 and earler:
-       //
-       // although sunpro 5.2 supports the syntax for
-       // inline initialization it often gets the value
-       // wrong, especially where the value is computed
-       // from other constants (J Maddock 6th May 2001)
-#      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 NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#    endif
-
-#    if (__SUNPRO_CC <= 0x530) 
-       // Requesting debug info (-g) with Boost.Python results
-       // in an internal compiler error for "static const"
-       // initialized in-class.
-       //    >> Assertion:   (../links/dbg_cstabs.cc, line 611)
-       //         while processing ../test.cpp at line 0.
-       // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
-#      define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
-
-       // SunPro 5.3 has better support for partial specialization,
-       // but breaks when compiling std::less<shared_ptr<T> >
-       // (Jens Maurer 4 Nov 2001).
-
-       // std::less specialization fixed as reported by George
-       // Heintzelman; partial specialization re-enabled
-       // (Peter Dimov 17 Jan 2002)
-
-//#      define NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-       // integral constant expressions with 64 bit numbers fail
-#      define NDNBOOST_NO_INTEGRAL_INT64_T
-#    endif
-
-#    if (__SUNPRO_CC < 0x570) 
-#      define NDNBOOST_NO_TEMPLATE_TEMPLATES
-       // see http://lists.boost.org/MailArchives/boost/msg47184.php
-       // and http://lists.boost.org/MailArchives/boost/msg47220.php
-#      define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#      define NDNBOOST_NO_SFINAE
-#      define NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-#    endif
-#    if (__SUNPRO_CC <= 0x580) 
-#      define NDNBOOST_NO_IS_ABSTRACT
-#    endif
-
-#    if (__SUNPRO_CC <= 0x5100)
-       // Sun 5.10 may not correctly value-initialize objects of
-       // some user defined types, as was reported in April 2010
-       // (CR 6947016), and confirmed by Steve Clamage.
-       // (Niels Dekker, LKEB, May 2010).
-#      define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#    endif
-
-//
-// Dynamic shared object (DSO) and dynamic-link library (DLL) support
-//
-#if __SUNPRO_CC > 0x500
-#  define NDNBOOST_SYMBOL_EXPORT __global
-#  define NDNBOOST_SYMBOL_IMPORT __global
-#  define NDNBOOST_SYMBOL_VISIBLE __global
-#endif
-
-
-
-//
-// Issues that effect all known versions:
-//
-#define NDNBOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define NDNBOOST_NO_ADL_BARRIER
-
-//
-// C++0x features
-//
-#  define NDNBOOST_HAS_LONG_LONG
-
-#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 NDNBOOST_COMPILER "Sun compiler version " NDNBOOST_STRINGIZE(__SUNPRO_CC)
-
-//
-// versions check:
-// we don't support sunpro prior to version 4:
-#if __SUNPRO_CC < 0x400
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0x590:
-#if (__SUNPRO_CC > 0x590)
-#  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
deleted file mode 100644
index a667657..0000000
--- a/include/ndnboost/config/compiler/vacpp.hpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Toon Knapen 2001 - 2003. 
-//  (C) Copyright Lie-Quan Lee 2001. 
-//  (C) Copyright Markus Schoepflin 2002 - 2003. 
-//  (C) Copyright Beman Dawes 2002 - 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Visual Age (IBM) C++ compiler setup:
-
-#if __IBMCPP__ <= 501
-#  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 NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#  define NDNBOOST_NO_INTEGRAL_INT64_T
-#  define NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#endif
-
-#if (__IBMCPP__ <= 600) || !defined(NDNBOOST_STRICT_CONFIG)
-#  define NDNBOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
-#endif
-
-#if (__IBMCPP__ <= 1110)
-// XL C++ V11.1 and earlier versions may not always value-initialize  
-// 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 NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#endif
-
-//
-// On AIX thread support seems to be indicated by _THREAD_SAFE:
-//
-#ifdef _THREAD_SAFE
-#  define NDNBOOST_HAS_THREADS
-#endif
-
-#define NDNBOOST_COMPILER "IBM Visual Age version " NDNBOOST_STRINGIZE(__IBMCPP__)
-
-//
-// versions check:
-// we don't support Visual age prior to version 5:
-#if __IBMCPP__ < 500
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 1210:
-#if (__IBMCPP__ > 1210)
-#  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 NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
-#endif
-
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
-//
-#if ! __IBMCPP_AUTO_TYPEDEDUCTION
-#  define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#endif
-#if ! __IBMCPP_UTF_LITERAL__
-#  define NDNBOOST_NO_CXX11_CHAR16_T
-#  define NDNBOOST_NO_CXX11_CHAR32_T
-#endif
-#if ! __IBMCPP_CONSTEXPR
-#  define NDNBOOST_NO_CXX11_CONSTEXPR
-#endif
-#if ! __IBMCPP_DECLTYPE
-#  define NDNBOOST_NO_CXX11_DECLTYPE
-#else
-#  define NDNBOOST_HAS_DECLTYPE
-#endif
-#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
-#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
-#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
-#  define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#endif
-#if ! __IBMCPP_EXTERN_TEMPLATE
-#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
-#endif
-#if ! __IBMCPP_VARIADIC_TEMPLATES
-// not enabled separately at this time
-#  define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#endif
-#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 NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-#endif
-#if ! __IBMCPP_SCOPED_ENUM
-#  define NDNBOOST_NO_CXX11_SCOPED_ENUMS
-#endif
-#define NDNBOOST_NO_SFINAE_EXPR
-#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#if ! __IBMCPP_STATIC_ASSERT
-#  define NDNBOOST_NO_CXX11_STATIC_ASSERT
-#endif
-#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
-#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
-#if ! __IBMCPP_VARIADIC_TEMPLATES
-#  define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
-#endif
-#if ! __C99_MACRO_WITH_VA_ARGS
-#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-
-
-
diff --git a/include/ndnboost/config/compiler/visualc.hpp b/include/ndnboost/config/compiler/visualc.hpp
deleted file mode 100644
index 1ba9d16..0000000
--- a/include/ndnboost/config/compiler/visualc.hpp
+++ /dev/null
@@ -1,324 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Darin Adler 2001 - 2002. 
-//  (C) Copyright Peter Dimov 2001. 
-//  (C) Copyright Aleksey Gurtovoy 2002. 
-//  (C) Copyright David Abrahams 2002 - 2003. 
-//  (C) Copyright Beman Dawes 2002 - 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-//
-//  Microsoft Visual C++ compiler setup:
-//
-//  We need to be careful with the checks in this file, as contrary
-//  to popular belief there are versions with _MSC_VER with the final
-//  digit non-zero (mainly the MIPS cross compiler).
-//
-//  So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
-//  No other comparisons (==, >, or <=) are safe.
-//
-
-#define NDNBOOST_MSVC _MSC_VER
-
-//
-// Helper macro NDNBOOST_MSVC_FULL_VER for use in Boost code:
-//
-#if _MSC_FULL_VER > 100000000
-#  define NDNBOOST_MSVC_FULL_VER _MSC_FULL_VER
-#else
-#  define NDNBOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
-#endif
-
-// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
-#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
-
-//
-// versions check:
-// we don't support Visual C++ prior to version 6:
-#if _MSC_VER < 1200
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-
-#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 NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#  define NDNBOOST_NO_VOID_RETURNS
-#  define NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
-
-#  if _MSC_VER == 1202
-#    define NDNBOOST_NO_STD_TYPEINFO
-#  endif
-
-#endif
-
-/// Visual Studio has no fenv.h
-#define NDNBOOST_NO_FENV_H
-
-#if (_MSC_VER < 1310)  // 130X == VC++ 7.0
-
-#  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 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 NDNBOOST_NO_MEMBER_TEMPLATES
-//    For VC++ experts wishing to attempt workarounds, we define:
-#  define NDNBOOST_MSVC6_MEMBER_TEMPLATES
-
-#  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 NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#  endif
-
-#endif
-
-#if _MSC_VER < 1400 
-// although a conforming signature for swprint exists in VC7.1
-// it appears not to actually work:
-#  define NDNBOOST_NO_SWPRINTF
-// Our extern template tests also fail for this compiler:
-#  define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
-// Variadic macros do not exist for VC7.1 and lower
-#  define NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-
-#if defined(UNDER_CE)
-// Windows CE does not have a conforming signature for swprintf
-#  define NDNBOOST_NO_SWPRINTF
-#endif
-
-#if _MSC_VER < 1500  // 140X == VC++ 8.0
-#  define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#endif
-
-#if _MSC_VER < 1600  // 150X == VC++ 9.0
-   // A bug in VC9:
-#  define NDNBOOST_NO_ADL_BARRIER
-#endif
-
-
-// MSVC (including the latest checked version) has not yet completely 
-// implemented value-initialization, as is reported:
-// "VC++ does not value-initialize members of derived classes without 
-// user-declared constructor", reported in 2009 by Sylvester Hesp:
-// https://connect.microsoft.com/VisualStudio/feedback/details/484295
-// "Presence of copy constructor breaks member class initialization",
-// reported in 2009 by Alex Vakulenko:
-// https://connect.microsoft.com/VisualStudio/feedback/details/499606
-// "Value-initialization in new-expression", reported in 2005 by
-// Pavel Kuznetsov (MetaCommunications Engineering):
-// 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 NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
-
-#ifndef _NATIVE_WCHAR_T_DEFINED
-#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
-#endif
-
-#if defined(_WIN32_WCE) || defined(UNDER_CE)
-#  define NDNBOOST_NO_SWPRINTF
-#endif
-
-// we have ThreadEx or GetSystemTimeAsFileTime unless we're running WindowsCE
-#if !defined(_WIN32_WCE) && !defined(UNDER_CE)
-#  define NDNBOOST_HAS_THREADEX
-#  define NDNBOOST_HAS_GETSYSTEMTIMEASFILETIME
-#endif
-
-//   
-// check for exception handling support:   
-#if !defined(_CPPUNWIND) && !defined(NDNBOOST_NO_EXCEPTIONS)
-#  define NDNBOOST_NO_EXCEPTIONS   
-#endif 
-
-//
-// __int64 support:
-//
-#if (_MSC_VER >= 1200)
-#   define NDNBOOST_HAS_MS_INT64
-#endif
-#if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
-#   define NDNBOOST_HAS_LONG_LONG
-#else
-#   define NDNBOOST_NO_LONG_LONG
-#endif
-#if (_MSC_VER >= 1400) && !defined(_DEBUG)
-#   define NDNBOOST_HAS_NRVO
-#endif
-//
-// disable Win32 API's if compiler extentions are
-// turned off:
-//
-#if !defined(_MSC_EXTENSIONS) && !defined(NDNBOOST_DISABLE_WIN32)
-#  define NDNBOOST_DISABLE_WIN32
-#endif
-#if !defined(_CPPRTTI) && !defined(NDNBOOST_NO_RTTI)
-#  define NDNBOOST_NO_RTTI
-#endif
-
-//
-// TR1 features:
-//
-#if _MSC_VER >= 1700
-// # 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 NDNBOOST_NO_LONG_LONG
-
-// C++ features supported by VC++ 10 (aka 2010)
-//
-#if _MSC_VER < 1600
-#  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 NDNBOOST_HAS_STDINT_H
-#endif
-
-// C++ features supported by VC++ 11 (aka 2012)
-//
-#if _MSC_VER < 1700
-#  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 NDNBOOST_MSVC_ENABLE_2012_NOV_CTP is defined.
-//
-#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 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 NDNBOOST_ABI_PREFIX
-#  define NDNBOOST_ABI_PREFIX "ndnboost/config/abi/msvc_prefix.hpp"
-#endif
-#ifndef NDNBOOST_ABI_SUFFIX
-#  define NDNBOOST_ABI_SUFFIX "ndnboost/config/abi/msvc_suffix.hpp"
-#endif
-
-#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
-// these compilers have been shipped with, and even that is not all of it. Some
-// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
-// IOW, you can't use these 'versions' in any sensible way. Sorry.
-# if defined(UNDER_CE)
-#   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 NDNBOOST_COMPILER_VERSION evc4.0
-#   elif _MSC_VER < 1400
-      // Note: I'm not aware of any CE compiler with version 13xx
-#      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 NDNBOOST_COMPILER_VERSION evc8
-#   elif _MSC_VER < 1600
-#     define NDNBOOST_COMPILER_VERSION evc9
-#   elif _MSC_VER < 1700
-#     define NDNBOOST_COMPILER_VERSION evc10
-#   elif _MSC_VER < 1800 
-#     define NDNBOOST_COMPILER_VERSION evc11 
-#   else
-#      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
-#   endif
-# else
-#   if _MSC_VER < 1200
-      // Note: these are so far off, they are not really supported
-#     define NDNBOOST_COMPILER_VERSION 5.0
-#   elif _MSC_VER < 1300
-#       define NDNBOOST_COMPILER_VERSION 6.0
-#   elif _MSC_VER < 1310
-#     define NDNBOOST_COMPILER_VERSION 7.0
-#   elif _MSC_VER < 1400
-#     define NDNBOOST_COMPILER_VERSION 7.1
-#   elif _MSC_VER < 1500
-#     define NDNBOOST_COMPILER_VERSION 8.0
-#   elif _MSC_VER < 1600
-#     define NDNBOOST_COMPILER_VERSION 9.0
-#   elif _MSC_VER < 1700
-#     define NDNBOOST_COMPILER_VERSION 10.0
-#   elif _MSC_VER < 1800 
-#     define NDNBOOST_COMPILER_VERSION 11.0 
-#   else
-#     define NDNBOOST_COMPILER_VERSION _MSC_VER
-#   endif
-# endif
-
-#  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(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")
-#  endif
-#endif
diff --git a/include/ndnboost/config/no_tr1/cmath.hpp b/include/ndnboost/config/no_tr1/cmath.hpp
deleted file mode 100644
index df3bdb7..0000000
--- a/include/ndnboost/config/no_tr1/cmath.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2008.
-//  Use, modification and distribution are subject to 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)
-//
-// The aim of this header is just to include <cmath> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if ndnboost/tr1/tr1/cmath is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef NDNBOOST_CONFIG_CMATH
-#  define NDNBOOST_CONFIG_CMATH
-
-#  ifndef NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_CONFIG_NO_CMATH_RECURSION
-#  endif
-
-#  include <cmath>
-
-#  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
deleted file mode 100644
index 7c22667..0000000
--- a/include/ndnboost/config/no_tr1/complex.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to 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)
-//
-// The aim of this header is just to include <complex> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if ndnboost/tr1/tr1/complex is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef NDNBOOST_CONFIG_COMPLEX
-#  define NDNBOOST_CONFIG_COMPLEX
-
-#  ifndef NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_CONFIG_NO_COMPLEX_RECURSION
-#  endif
-
-#  include <complex>
-
-#  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
deleted file mode 100644
index 8e7fb5c..0000000
--- a/include/ndnboost/config/no_tr1/functional.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to 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)
-//
-// The aim of this header is just to include <functional> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if ndnboost/tr1/tr1/functional is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef NDNBOOST_CONFIG_FUNCTIONAL
-#  define NDNBOOST_CONFIG_FUNCTIONAL
-
-#  ifndef NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_CONFIG_NO_FUNCTIONAL_RECURSION
-#  endif
-
-#  include <functional>
-
-#  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
deleted file mode 100644
index 153226c..0000000
--- a/include/ndnboost/config/no_tr1/memory.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to 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)
-//
-// The aim of this header is just to include <memory> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if ndnboost/tr1/tr1/memory is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef NDNBOOST_CONFIG_MEMORY
-#  define NDNBOOST_CONFIG_MEMORY
-
-#  ifndef NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_CONFIG_NO_MEMORY_RECURSION
-#  endif
-
-#  include <memory>
-
-#  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
deleted file mode 100644
index d55b65f..0000000
--- a/include/ndnboost/config/no_tr1/utility.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to 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)
-//
-// The aim of this header is just to include <utility> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if ndnboost/tr1/tr1/utility is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef NDNBOOST_CONFIG_UTILITY
-#  define NDNBOOST_CONFIG_UTILITY
-
-#  ifndef NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_TR1_NO_RECURSION
-#     define NDNBOOST_CONFIG_NO_UTILITY_RECURSION
-#  endif
-
-#  include <utility>
-
-#  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
deleted file mode 100644
index 2c8bd90..0000000
--- a/include/ndnboost/config/platform/aix.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  IBM/Aix specific config options:
-
-#define NDNBOOST_PLATFORM "IBM Aix"
-
-#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 NDNBOOST_HAS_STDINT_H
-
-// Threading API's:
-#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
deleted file mode 100644
index 26d2dd6..0000000
--- a/include/ndnboost/config/platform/amigaos.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-//  (C) Copyright John Maddock 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-#define NDNBOOST_PLATFORM "AmigaOS"
-
-#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
deleted file mode 100644
index 3dab0b0..0000000
--- a/include/ndnboost/config/platform/beos.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  BeOS specific config options:
-
-#define NDNBOOST_PLATFORM "BeOS"
-
-#define NDNBOOST_NO_CWCHAR
-#define NDNBOOST_NO_CWCTYPE
-#define NDNBOOST_HAS_UNISTD_H
-
-#define NDNBOOST_HAS_BETHREADS
-
-#ifndef NDNBOOST_DISABLE_THREADS
-#  define NDNBOOST_HAS_THREADS
-#endif
-
-// boilerplate code:
-#include <ndnboost/config/posix_features.hpp>
- 
-
-
diff --git a/include/ndnboost/config/platform/bsd.hpp b/include/ndnboost/config/platform/bsd.hpp
deleted file mode 100644
index df54511..0000000
--- a/include/ndnboost/config/platform/bsd.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Darin Adler 2001. 
-//  (C) Copyright Douglas Gregor 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  generic BSD config options:
-
-#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
-#error "This platform is not BSD"
-#endif
-
-#ifdef __FreeBSD__
-#define NDNBOOST_PLATFORM "FreeBSD " NDNBOOST_STRINGIZE(__FreeBSD__)
-#elif defined(__NetBSD__)
-#define NDNBOOST_PLATFORM "NetBSD " NDNBOOST_STRINGIZE(__NetBSD__)
-#elif defined(__OpenBSD__)
-#define NDNBOOST_PLATFORM "OpenBSD " NDNBOOST_STRINGIZE(__OpenBSD__)
-#elif defined(__DragonFly__)
-#define NDNBOOST_PLATFORM "DragonFly " NDNBOOST_STRINGIZE(__DragonFly__)
-#endif
-
-//
-// is this the correct version check?
-// FreeBSD has <nl_types.h> but does not
-// advertise the fact in <unistd.h>:
-//
-#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
-#  define NDNBOOST_HAS_NL_TYPES_H
-#endif
-
-//
-// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
-// and not in <unistd.h>
-//
-#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
-   || defined(__OpenBSD__) || defined(__DragonFly__) 
-#  define NDNBOOST_HAS_PTHREADS
-#endif
-
-//
-// No wide character support in the BSD header files:
-//
-#if defined(__NetBSD__)
-#define __NetBSD_GCC__ (__GNUC__         * 1000000 \
-                       + __GNUC_MINOR__ *    1000 \
-                       + __GNUC_PATCHLEVEL__)
-// XXX - the following is required until c++config.h
-//       defines _GLIBCXX_HAVE_SWPRINTF and friends
-//       or the preprocessor conditionals are removed
-//       from the cwchar header.
-#define _GLIBCXX_HAVE_SWPRINTF 1
-#endif
-
-#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
-      || (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
-#  define NDNBOOST_NO_CWCHAR
-#endif
-//
-// The BSD <ctype.h> has macros only, no functions:
-//
-#if !defined(__OpenBSD__) || defined(__DragonFly__)
-#  define NDNBOOST_NO_CTYPE_FUNCTIONS
-#endif
-
-//
-// thread API's not auto detected:
-//
-#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 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
deleted file mode 100644
index 200cdab..0000000
--- a/include/ndnboost/config/platform/cray.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//  (C) Copyright John Maddock 2011.
-//  Use, modification and distribution are subject to 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)
-
-
-//  See http://www.boost.org for most recent version.
-
-//  SGI Irix specific config options:
-
-#define NDNBOOST_PLATFORM "Cray"
-
-// boilerplate code:
-#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
deleted file mode 100644
index 30022ff..0000000
--- a/include/ndnboost/config/platform/cygwin.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  cygwin specific config options:
-
-#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 NDNBOOST_HAS_UNISTD_H
-#include <unistd.h>
-#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(NDNBOOST_HAS_WINTHREADS)
-#     define NDNBOOST_HAS_WINTHREADS
-#  endif
-#  define NDNBOOST_HAS_FTIME
-#endif
-
-//
-// find out if we have a stdint.h, there should be a better way to do this:
-//
-#include <sys/types.h>
-#ifdef _STDINT_H
-#define NDNBOOST_HAS_STDINT_H
-#endif
-
-/// Cygwin has no fenv.h
-#define NDNBOOST_NO_FENV_H
-
-// boilerplate code:
-#include <ndnboost/config/posix_features.hpp>
-
-//
-// Cygwin lies about XSI conformance, there is no 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
deleted file mode 100644
index e540a2e..0000000
--- a/include/ndnboost/config/platform/hpux.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  (C) Copyright David Abrahams 2002. 
-//  (C) Copyright Toon Knapen 2003. 
-//  (C) Copyright Boris Gubenko 2006 - 2007.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  hpux specific config options:
-
-#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 NDNBOOST_HAS_STDINT_H
-#endif
-
-#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
-#  define NDNBOOST_NO_SWPRINTF
-#endif
-#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
-#  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 NDNBOOST_DISABLE_THREADS
-#  elif !defined(NDNBOOST_DISABLE_THREADS)
-      // threads supported from gcc-3.3 onwards:
-#     define NDNBOOST_HAS_THREADS
-#     define NDNBOOST_HAS_PTHREADS
-#  endif
-#elif defined(__HP_aCC) && !defined(NDNBOOST_DISABLE_THREADS)
-#  define NDNBOOST_HAS_PTHREADS
-#endif
-
-// boilerplate code:
-#define NDNBOOST_HAS_UNISTD_H
-#include <ndnboost/config/posix_features.hpp>
-
-// the following are always available:
-#ifndef NDNBOOST_HAS_GETTIMEOFDAY
-#  define NDNBOOST_HAS_GETTIMEOFDAY
-#endif
-#ifndef NDNBOOST_HAS_SCHED_YIELD
-#    define NDNBOOST_HAS_SCHED_YIELD
-#endif
-#ifndef NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#endif
-#ifndef NDNBOOST_HAS_NL_TYPES_H
-#    define NDNBOOST_HAS_NL_TYPES_H
-#endif
-#ifndef NDNBOOST_HAS_NANOSLEEP
-#    define NDNBOOST_HAS_NANOSLEEP
-#endif
-#ifndef NDNBOOST_HAS_GETTIMEOFDAY
-#    define NDNBOOST_HAS_GETTIMEOFDAY
-#endif
-#ifndef NDNBOOST_HAS_DIRENT_H
-#    define NDNBOOST_HAS_DIRENT_H
-#endif
-#ifndef NDNBOOST_HAS_CLOCK_GETTIME
-#    define NDNBOOST_HAS_CLOCK_GETTIME
-#endif
-#ifndef NDNBOOST_HAS_SIGACTION
-#  define NDNBOOST_HAS_SIGACTION
-#endif
-#ifndef NDNBOOST_HAS_NRVO 
-#  ifndef __parisc
-#    define NDNBOOST_HAS_NRVO
-#  endif
-#endif
-#ifndef NDNBOOST_HAS_LOG1P 
-#  define NDNBOOST_HAS_LOG1P
-#endif
-#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
deleted file mode 100644
index 852d821..0000000
--- a/include/ndnboost/config/platform/irix.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2003. 
-//  Use, modification and distribution are subject to 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)
-
-
-//  See http://www.boost.org for most recent version.
-
-//  SGI Irix specific config options:
-
-#define NDNBOOST_PLATFORM "SGI Irix"
-
-#define NDNBOOST_NO_SWPRINTF 
-//
-// these are not auto detected by POSIX feature tests:
-//
-#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 NDNBOOST_DISABLE_THREADS
-#endif
-
-// boilerplate code:
-#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
deleted file mode 100644
index 1073635..0000000
--- a/include/ndnboost/config/platform/linux.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  linux specific config options:
-
-#define NDNBOOST_PLATFORM "linux"
-
-// make sure we have __GLIBC_PREREQ if available at all
-#ifdef __cplusplus
-#include <cstdlib>
-#else
-#include <stdlib.h>
-#endif
-
-//
-// <stdint.h> added to glibc 2.1.1
-// We can only test for 2.1 though:
-//
-#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
-   // <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
-   // int64_t only if __GNUC__.  Thus, assume a fully usable <stdint.h>
-   // only when using GCC.
-#  if defined __GNUC__
-#    define NDNBOOST_HAS_STDINT_H
-#  endif
-#endif
-
-#if defined(__LIBCOMO__)
-   //
-   // como on linux doesn't have std:: c functions:
-   // NOTE: versions of libcomo prior to beta28 have octal version numbering,
-   // e.g. version 25 is 21 (dec)
-   //
-#  if __LIBCOMO_VERSION__ <= 20
-#    define NDNBOOST_NO_STDC_NAMESPACE
-#  endif
-
-#  if __LIBCOMO_VERSION__ <= 21
-#    define NDNBOOST_NO_SWPRINTF
-#  endif
-
-#endif
-
-//
-// If glibc is past version 2 then we definitely have
-// gettimeofday, earlier versions may or may not have it:
-//
-#if defined(__GLIBC__) && (__GLIBC__ >= 2)
-#  define NDNBOOST_HAS_GETTIMEOFDAY
-#endif
-
-#ifdef __USE_POSIX199309
-#  define NDNBOOST_HAS_NANOSLEEP
-#endif
-
-#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
-// __GLIBC_PREREQ is available since 2.1.2
-
-   // swprintf is available since glibc 2.2.0
-#  if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
-#    define NDNBOOST_NO_SWPRINTF
-#  endif
-#else
-#  define NDNBOOST_NO_SWPRINTF
-#endif
-
-// boilerplate code:
-#define NDNBOOST_HAS_UNISTD_H
-#include <ndnboost/config/posix_features.hpp>
-#define NDNBOOST_HAS_PTHREAD_YIELD
-
-#ifndef __GNUC__
-//
-// if the compiler is not gcc we still need to be able to parse
-// the GNU system headers, some of which (mainly <stdint.h>)
-// use GNU specific extensions:
-//
-#  ifndef __extension__
-#     define __extension__
-#  endif
-#  ifndef __const__
-#     define __const__ const
-#  endif
-#  ifndef __volatile__
-#     define __volatile__ volatile
-#  endif
-#  ifndef __signed__
-#     define __signed__ signed
-#  endif
-#  ifndef __typeof__
-#     define __typeof__ typeof
-#  endif
-#  ifndef __inline__
-#     define __inline__ inline
-#  endif
-#endif
-
-
diff --git a/include/ndnboost/config/platform/macos.hpp b/include/ndnboost/config/platform/macos.hpp
deleted file mode 100644
index c6922db..0000000
--- a/include/ndnboost/config/platform/macos.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Darin Adler 2001 - 2002. 
-//  (C) Copyright Bill Kempf 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Mac OS specific config options:
-
-#define NDNBOOST_PLATFORM "Mac OS"
-
-#if __MACH__ && !defined(_MSL_USING_MSL_C)
-
-// Using the Mac OS X system BSD-style C library.
-
-#  ifndef NDNBOOST_HAS_UNISTD_H
-#    define NDNBOOST_HAS_UNISTD_H
-#  endif
-//
-// Begin by including our boilerplate code for POSIX
-// feature detection, this is safe even when using
-// the MSL as Metrowerks supply their own <unistd.h>
-// to replace the platform-native BSD one. G++ users
-// should also always be able to do this on MaxOS X.
-//
-#  include <ndnboost/config/posix_features.hpp>
-#  ifndef NDNBOOST_HAS_STDINT_H
-#     define NDNBOOST_HAS_STDINT_H
-#  endif
-
-//
-// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday,
-// of these only pthreads are advertised in <unistd.h>, so set the 
-// other options explicitly:
-//
-#  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 NDNBOOST_NO_STDC_NAMESPACE
-#  endif
-
-#  if (__GNUC__ == 4)
-
-// Both gcc and intel require these.  
-#    define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define NDNBOOST_HAS_NANOSLEEP
-
-#  endif
-
-#else
-
-// Using the MSL C library.
-
-// We will eventually support threads in non-Carbon builds, but we do
-// not support this yet.
-#  if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
-
-#  if !defined(NDNBOOST_HAS_PTHREADS)
-// MPTasks support is deprecated/removed from Boost:
-//#    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 NDNBOOST_HAS_GETTIMEOFDAY
-#  endif
-
-#ifdef NDNBOOST_HAS_PTHREADS
-#  define NDNBOOST_HAS_THREADS
-#endif
-
-// The remote call manager depends on this.
-#    define NDNBOOST_BIND_ENABLE_PASCAL
-
-#  endif
-
-#endif
-
-
-
diff --git a/include/ndnboost/config/platform/qnxnto.hpp b/include/ndnboost/config/platform/qnxnto.hpp
deleted file mode 100644
index 972bf5c..0000000
--- a/include/ndnboost/config/platform/qnxnto.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//  (C) Copyright Jim Douglas 2005. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  QNX specific config options:
-
-#define NDNBOOST_PLATFORM "QNX"
-
-#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  NDNBOOST_HAS_NL_TYPES_H
-#undef  NDNBOOST_HAS_LOG1P
-#undef  NDNBOOST_HAS_EXPM1
-
-#define NDNBOOST_HAS_PTHREADS
-#define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-
-#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
deleted file mode 100644
index e9ce41e..0000000
--- a/include/ndnboost/config/platform/solaris.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  sun specific config options:
-
-#define NDNBOOST_PLATFORM "Sun Solaris"
-
-#define NDNBOOST_HAS_GETTIMEOFDAY
-
-// boilerplate code:
-#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 NDNBOOST_HAS_PTHREADS
-#endif
-
-
-
-
diff --git a/include/ndnboost/config/platform/symbian.hpp b/include/ndnboost/config/platform/symbian.hpp
deleted file mode 100644
index 1b32193..0000000
--- a/include/ndnboost/config/platform/symbian.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//  (C) Copyright Yuriy Krasnoschek 2009. 
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  symbian specific config options:
-
-
-#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 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 NDNBOOST_HAS_UNISTD_H
-#  include <ndnboost/config/posix_features.hpp>
-// S60 SDK defines _POSIX_VERSION as POSIX.1
-#  ifndef NDNBOOST_HAS_STDINT_H
-#    define NDNBOOST_HAS_STDINT_H
-#  endif
-#  ifndef NDNBOOST_HAS_GETTIMEOFDAY
-#    define NDNBOOST_HAS_GETTIMEOFDAY
-#  endif
-#  ifndef NDNBOOST_HAS_DIRENT_H
-#    define NDNBOOST_HAS_DIRENT_H
-#  endif
-#  ifndef NDNBOOST_HAS_SIGACTION
-#    define NDNBOOST_HAS_SIGACTION
-#  endif
-#  ifndef NDNBOOST_HAS_PTHREADS
-#    define NDNBOOST_HAS_PTHREADS
-#  endif
-#  ifndef NDNBOOST_HAS_NANOSLEEP
-#    define NDNBOOST_HAS_NANOSLEEP
-#  endif
-#  ifndef NDNBOOST_HAS_SCHED_YIELD
-#    define NDNBOOST_HAS_SCHED_YIELD
-#  endif
-#  ifndef NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  endif
-#  ifndef NDNBOOST_HAS_LOG1P
-#    define NDNBOOST_HAS_LOG1P
-#  endif
-#  ifndef NDNBOOST_HAS_EXPM1
-#    define NDNBOOST_HAS_EXPM1
-#  endif
-#  ifndef NDNBOOST_POSIX_API
-#    define NDNBOOST_POSIX_API
-#  endif
-// endianess support
-#  include <sys/endian.h>
-// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
-#  ifndef __LITTLE_ENDIAN
-#    ifdef _LITTLE_ENDIAN
-#      define __LITTLE_ENDIAN _LITTLE_ENDIAN
-#    else
-#      define __LITTLE_ENDIAN 1234
-#    endif
-#  endif
-#  ifndef __BIG_ENDIAN
-#    ifdef _BIG_ENDIAN
-#      define __BIG_ENDIAN _BIG_ENDIAN
-#    else
-#      define __BIG_ENDIAN 4321
-#    endif
-#  endif
-#  ifndef __BYTE_ORDER
-#    define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
-#  endif
-// Known limitations
-#  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(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
deleted file mode 100644
index f5f7457..0000000
--- a/include/ndnboost/config/platform/vms.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//  (C) Copyright Artyom Beilis 2010.  
-//  Use, modification and distribution are subject to 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 NDNBOOST_CONFIG_PLATFORM_VMS_HPP 
-#define NDNBOOST_CONFIG_PLATFORM_VMS_HPP 
-
-#define NDNBOOST_PLATFORM "OpenVMS" 
-
-#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
deleted file mode 100644
index 425044e..0000000
--- a/include/ndnboost/config/platform/vxworks.hpp
+++ /dev/null
@@ -1,369 +0,0 @@
-//  (C) Copyright Dustin Spicuzza 2009.
-//      Adapted to vxWorks 6.9 by Peter Brockamp 2012.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Since WRS does not yet properly support boost under vxWorks
-//  and this file was badly outdated, but I was keen on using it,
-//  I patched boost myself to make things work. This has been tested
-//  and adapted by me for vxWorks 6.9 *only*, as I'm lacking access
-//  to earlier 6.X versions! The only thing I know for sure is that
-//  very old versions of vxWorks (namely everything below 6.x) are
-//  absolutely unable to use boost. This is mainly due to the completely
-//  outdated libraries and ancient compiler (GCC 2.96 or worse). Do
-//  not even think of getting this to work, a miserable failure will
-//  be guaranteed!
-//  Equally, this file has been tested for RTPs (Real Time Processes)
-//  only, not for DKMs (Downloadable Kernel Modules). These two types
-//  of executables differ largely in the available functionality of
-//  the C-library, STL, and so on. A DKM uses a library similar to those
-//  of vxWorks 5.X - with all its limitations and incompatibilities
-//  with respect to ANSI C++ and STL. So probably there might be problems
-//  with the usage of boost from DKMs. WRS or any voluteers are free to
-//  prove the opposite!
-
-// ====================================================================
-//
-// Some important information regarding the usage of POSIX semaphores:
-// -------------------------------------------------------------------
-//
-// VxWorks as a real time operating system handles threads somewhat
-// different from what "normal" OSes do, regarding their scheduling!
-// This could lead to a scenario called "priority inversion" when using
-// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion.
-//
-// Now, VxWorks POSIX-semaphores for DKM's default to the usage of
-// priority inverting semaphores, which is fine. On the other hand,
-// for RTP's it defaults to using non priority inverting semaphores,
-// which could easily pose a serious problem for a real time process,
-// i.e. deadlocks! To overcome this two possibilities do exist:
-//
-// a) Patch every piece of boost that uses semaphores to instanciate
-//    the proper type of semaphores. This is non-intrusive with respect
-//    to the OS and could relatively easy been done by giving all
-//    semaphores attributes deviating from the default (for in-depth
-//    information see the POSIX functions pthread_mutexattr_init()
-//    and pthread_mutexattr_setprotocol()). However this breaks all
-//    too easily, as with every new version some boost library could
-//    all in a sudden start using semaphores, resurrecting the very
-//    same, hard to locate problem over and over again!
-//
-// b) We could change the default properties for POSIX-semaphores
-//    that VxWorks uses for RTP's and this is being suggested here,
-//    as it will more or less seamlessly integrate with boost. I got
-//    the following information from WRS how to do this, compare
-//    Wind River TSR# 1209768:
-//
-// Instructions for changing the default properties of POSIX-
-// semaphores for RTP's in VxWorks 6.9:
-// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c
-//   in the root of your Workbench-installation.
-// - Around line 917 there should be the definition of the default
-//   mutex attributes:
-//
-//   LOCAL pthread_mutexattr_t defaultMutexAttr =
-//       {
-//       PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0,
-//       PTHREAD_MUTEX_DEFAULT
-//       };
-//
-//   Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
-// - Around line 1236 there should be a definition for the function
-//   pthread_mutexattr_init(). A couple of lines below you should
-//   find a block of code like this:
-//
-//   pAttr->mutexAttrStatus      = PTHREAD_INITIALIZED_OBJ;
-//   pAttr->mutexAttrProtocol    = PTHREAD_PRIO_NONE;
-//   pAttr->mutexAttrPrioceiling = 0;
-//   pAttr->mutexAttrType        = PTHREAD_MUTEX_DEFAULT;
-//
-//   Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
-// - Finally, rebuild your VSB. This will create a new VxWorks kernel
-//   with the changed properties. That's it! Now, using boost should
-//   no longer cause any problems with task deadlocks!
-//
-// And here's another useful piece of information concerning VxWorks'
-// POSIX-functionality in general:
-// VxWorks is not a genuine POSIX-OS in itself, rather it is using a
-// kind of compatibility layer (sort of a wrapper) to emulate the
-// POSIX-functionality by using its own resources and functions.
-// At the time a task (thread) calls it's first POSIX-function during
-// runtime it is being transformed by the OS into a POSIX-thread.
-// This transformation does include a call to malloc() to allocate the
-// memory required for the housekeeping of POSIX-threads. In a high
-// priority RTP this malloc() call may be highly undesirable, as its
-// timing is more or less unpredictable (depending on what your actual
-// heap looks like). You can circumvent this problem by calling the
-// function thread_self() at a well defined point in the code of the
-// task, e.g. shortly after the task spawns up. Thereby you are able
-// to define the time when the task-transformation will take place and
-// you could shift it to an uncritical point where a malloc() call is
-// tolerable. So, if this could pose a problem for your code, remember
-// to call thread_self() from the affected task at an early stage.
-//
-// ====================================================================
-
-// Block out all versions before vxWorks 6.x, as these don't work:
-// Include header with the vxWorks version information and query them
-#include <version.h>
-#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6)
-#  error "The vxWorks version you're using is so badly outdated,\
-          it doesn't work at all with boost, sorry, no chance!"
-#endif
-
-// Handle versions above 5.X but below 6.9
-#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9)
-// TODO: Starting from what version does vxWorks work with boost?
-// We can't reasonably insert a #warning "" as a user hint here,
-// as this will show up with every file including some boost header,
-// badly bugging the user... So for the time being we just leave it.
-#endif
-
-// vxWorks specific config options:
-// --------------------------------
-#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 NDNBOOST_NO_CWCHAR
-
-  // Lots of wide-functions and -headers are unavailable for DKMs as well:
-#  define NDNBOOST_NO_CWCTYPE
-#  define NDNBOOST_NO_SWPRINTF
-#  define NDNBOOST_NO_STD_WSTRING
-#  define NDNBOOST_NO_STD_WSTREAMBUF
-#endif
-
-// Generally available headers:
-#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 NDNBOOST_LOCALE_WITH_ICU
-
-// Generally available functionality:
-#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 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 NDNBOOST_HAS_PTHREADS
-#define NDNBOOST_HAS_SCHED_YIELD
-#define NDNBOOST_HAS_SIGACTION
-
-// Functionality available for RTPs only:
-#ifdef __RTP__
-#  define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define NDNBOOST_HAS_LOG1P
-#  define NDNBOOST_HAS_EXPM1
-#endif
-
-// Functionality available for DKMs only:
-#ifdef _WRS_KERNEL
-  // Luckily, at the moment there seems to be none!
-#endif
-
-// These #defines allow posix_features to work, since vxWorks doesn't
-// #define them itself for DKMs (for RTPs on the contrary it does):
-#ifdef _WRS_KERNEL
-#  ifndef _POSIX_TIMERS
-#    define _POSIX_TIMERS  1
-#  endif
-#  ifndef _POSIX_THREADS
-#    define _POSIX_THREADS 1
-#  endif
-#endif
-
-// vxWorks doesn't work with asio serial ports:
-#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
-//       straight need arises... This implementation would presumably consist
-//       of some vxWorks specific ioctl-calls, etc. Any voluteers?
-
-// vxWorks-around: <time.h> #defines CLOCKS_PER_SEC as sysClkRateGet() but
-//                 miserably fails to #include the required <sysLib.h> to make
-//                 sysClkRateGet() available! So we manually include it here.
-#ifdef __RTP__
-#  include <time.h>
-#  include <sysLib.h>
-#endif
-
-// vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
-//                 UINT64_C() are defined errorneously, yielding not a signed/
-//                 unsigned long/long long type, but a signed/unsigned int/long
-//                 type. Eventually this leads to compile errors in ratio_fwd.hpp,
-//                 when trying to define several constants which do not fit into a
-//                 long type! We correct them here by redefining.
-#include <cstdint>
-
-// Some macro-magic to do the job
-#define VX_JOIN(X, Y)     VX_DO_JOIN(X, Y)
-#define VX_DO_JOIN(X, Y)  VX_DO_JOIN2(X, Y)
-#define VX_DO_JOIN2(X, Y) X##Y
-
-// Correctly setup the macros
-#undef  INT32_C
-#undef  UINT32_C
-#undef  INT64_C
-#undef  UINT64_C
-#define INT32_C(x)  VX_JOIN(x, L)
-#define UINT32_C(x) VX_JOIN(x, UL)
-#define INT64_C(x)  VX_JOIN(x, LL)
-#define UINT64_C(x) VX_JOIN(x, ULL)
-
-// #include Libraries required for the following function adaption
-#include <ioLib.h>
-#include <tickLib.h>
-#include <sys/time.h>
-
-// Use C-linkage for the following helper functions
-extern "C" {
-
-// vxWorks-around: The required functions getrlimit() and getrlimit() are missing.
-//                 But we have the similar functions getprlimit() and setprlimit(),
-//                 which may serve the purpose.
-//                 Problem: The vxWorks-documentation regarding these functions
-//                 doesn't deserve its name! It isn't documented what the first two
-//                 parameters idtype and id mean, so we must fall back to an educated
-//                 guess - null, argh... :-/
-
-// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
-//       Thus for DKMs there would have to be another implementation.
-#ifdef __RTP__
-  inline int getrlimit(int resource, struct rlimit *rlp){
-    return getprlimit(0, 0, resource, rlp);
-  }
-
-  inline int setrlimit(int resource, const struct rlimit *rlp){
-    return setprlimit(0, 0, resource, const_cast<struct rlimit*>(rlp));
-  }
-#endif
-
-// vxWorks has ftruncate() only, so we do simulate truncate():
-inline int truncate(const char *p, off_t l){
-  int fd = open(p, O_WRONLY);
-  if (fd == -1){
-    errno = EACCES;
-    return -1;
-  }
-  if (ftruncate(fd, l) == -1){
-    close(fd);
-    errno = EACCES;
-    return -1;
-  }
-  return close(fd);
-}
-
-// Fake symlink handling by dummy functions:
-inline int symlink(const char*, const char*){
-  // vxWorks has no symlinks -> always return an error!
-  errno = EACCES;
-  return -1;
-}
-
-inline ssize_t readlink(const char*, char*, size_t){
-  // vxWorks has no symlinks -> always return an error!
-  errno = EACCES;
-  return -1;
-}
-
-// vxWorks claims to implement gettimeofday in sys/time.h
-// but nevertheless does not provide it! See
-// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256
-// We implement a surrogate version here via clock_gettime:
-inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
-  struct timespec ts;
-  clock_gettime(CLOCK_MONOTONIC, &ts);
-  tv->tv_sec  = ts.tv_sec;
-  tv->tv_usec = ts.tv_nsec / 1000;
-  return 0;
-}
-
-// vxWorks does provide neither struct tms nor function times()!
-// We implement an empty dummy-function, simply setting the user
-// and system time to the half of thew actual system ticks-value
-// and the child user and system time to 0.
-// Rather ugly but at least it suppresses compiler errors...
-// Unfortunately, this of course *does* have an severe impact on
-// dependant libraries, actually this is chrono only! Here it will
-// not be possible to correctly use user and system times! But
-// as vxWorks is lacking the ability to calculate user and system
-// process times there seems to be no other possible solution.
-struct tms{
-  clock_t tms_utime;  // User CPU time
-  clock_t tms_stime;  // System CPU time
-  clock_t tms_cutime; // User CPU time of terminated child processes
-  clock_t tms_cstime; // System CPU time of terminated child processes
-};
-
-inline clock_t times(struct tms *t){
-  struct timespec ts;
-  clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
-  clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec)  * CLOCKS_PER_SEC +
-                                     static_cast<double>(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0));
-  t->tms_utime  = ticks/2U;
-  t->tms_stime  = ticks/2U;
-  t->tms_cutime = 0; // vxWorks is lacking the concept of a child process!
-  t->tms_cstime = 0; // -> Set the wait times for childs to 0
-  return ticks;
-}
-
-} // extern "C"
-
-// Put the selfmade functions into the std-namespace, just in case
-namespace std {
-# ifdef __RTP__
-    using ::getrlimit;
-    using ::setrlimit;
-# endif
-  using ::truncate;
-  using ::symlink;
-  using ::readlink;
-  using ::times;
-  using ::gettimeofday;
-}
-
-// Some more macro-magic:
-// vxWorks-around: Some functions are not present or broken in vxWorks
-//                 but may be patched to life via helper macros...
-
-// Include signal.h which might contain a typo to be corrected here
-#include <signal.h>
-
-#define getpagesize()    sysconf(_SC_PAGESIZE)         // getpagesize is deprecated anyway!
-#ifndef S_ISSOCK
-#  define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
-#endif
-#define lstat(p, b)      stat(p, b)                    // lstat() == stat(), as vxWorks has no symlinks!
-#ifndef FPE_FLTINV
-#  define FPE_FLTINV     (FPE_FLTSUB+1)                // vxWorks has no FPE_FLTINV, so define one as a dummy
-#endif
-#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
-#  define BUS_ADRALN     BUS_ADRALNR                   // Correct a supposed typo in vxWorks' <signal.h>
-#endif
-//typedef int              locale_t;                     // locale_t is a POSIX-extension, currently unpresent in vxWorks!
-
-// #include boilerplate code:
-#include <ndnboost/config/posix_features.hpp>
-
-// vxWorks lies about XSI conformance, there is no 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
deleted file mode 100644
index bc4e1da..0000000
--- a/include/ndnboost/config/platform/win32.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Bill Kempf 2001. 
-//  (C) Copyright Aleksey Gurtovoy 2003. 
-//  (C) Copyright Rene Rivera 2005.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Win32 specific config options:
-
-#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(NDNBOOST_NO_SWPRINTF)
-#  define NDNBOOST_NO_SWPRINTF
-#endif
-
-//  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 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 NDNBOOST_HAS_STDINT_H
-#  ifndef __STDC_LIMIT_MACROS
-#     define __STDC_LIMIT_MACROS
-#  endif
-#  define NDNBOOST_HAS_DIRENT_H
-#  define NDNBOOST_HAS_UNISTD_H
-#endif
-
-#if defined(__MINGW32__) && (__GNUC__ >= 4)
-#  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 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 NDNBOOST_HAS_THREADS across
-// all translation units (needed for shared_ptr etc).
-//
-
-#ifdef _WIN32_WCE
-#  define NDNBOOST_NO_ANSI_APIS
-#else
-#  define NDNBOOST_HAS_GETSYSTEMTIMEASFILETIME
-#endif
-
-#ifndef NDNBOOST_HAS_PTHREADS
-#  define NDNBOOST_HAS_WINTHREADS
-#endif
-
-#ifndef NDNBOOST_DISABLE_WIN32
-// WEK: Added
-#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
deleted file mode 100644
index 72cc724..0000000
--- a/include/ndnboost/config/posix_features.hpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  Use, modification and distribution are subject to 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)
-
-
-//  See http://www.boost.org for most recent version.
-
-// All POSIX feature tests go in this file,
-// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well
-// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's
-// may be present but none-functional unless _POSIX_C_SOURCE and
-// _XOPEN_SOURCE have been defined to the right value (it's up
-// to the user to do this *before* including any header, although
-// in most cases the compiler will do this for you).
-
-#  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 NDNBOOST_HAS_NL_TYPES_H
-#     endif
-
-      // POSIX version 6 requires <stdint.h>
-#     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
-#        define NDNBOOST_HAS_STDINT_H
-#     endif
-
-      // POSIX version 2 requires <dirent.h>
-#     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
-#        define NDNBOOST_HAS_DIRENT_H
-#     endif
-
-      // POSIX version 3 requires <signal.h> to have sigaction:
-#     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
-#        define NDNBOOST_HAS_SIGACTION
-#     endif
-      // POSIX defines _POSIX_THREADS > 0 for pthread support,
-      // however some platforms define _POSIX_THREADS without
-      // a value, hence the (_POSIX_THREADS+0 >= 0) check.
-      // 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(NDNBOOST_HAS_WINTHREADS) && !defined(NDNBOOST_HAS_MPTASKS)
-#        define NDNBOOST_HAS_PTHREADS
-#     endif
-
-      // 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 NDNBOOST_HAS_NANOSLEEP
-#     endif
-
-      // 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 NDNBOOST_HAS_CLOCK_GETTIME
-#     endif
-
-      // 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 NDNBOOST_HAS_SCHED_YIELD
-#     endif
-
-      // 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 NDNBOOST_HAS_GETTIMEOFDAY
-#        if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
-#           define NDNBOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#        endif
-#        ifndef NDNBOOST_HAS_LOG1P
-#           define NDNBOOST_HAS_LOG1P
-#        endif
-#        ifndef NDNBOOST_HAS_EXPM1
-#           define NDNBOOST_HAS_EXPM1
-#        endif
-#     endif
-
-#  endif
-
-
-
-
diff --git a/include/ndnboost/config/requires_threads.hpp b/include/ndnboost/config/requires_threads.hpp
deleted file mode 100644
index 7b793a6..0000000
--- a/include/ndnboost/config/requires_threads.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to 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 NDNBOOST_CONFIG_REQUIRES_THREADS_HPP
-#define NDNBOOST_CONFIG_REQUIRES_THREADS_HPP
-
-#ifndef NDNBOOST_CONFIG_HPP
-#  include <ndnboost/config.hpp>
-#endif
-
-#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(NDNBOOST_STRICT_CONFIG))
-//
-// this is checked up to gcc 3.3:
-//
-#if defined(__sgi) || defined(__hpux)
-#  error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
-#endif
-
-#endif
-
-#  error "Threading support unavaliable: it has been explicitly disabled with NDNBOOST_DISABLE_THREADS"
-
-#elif !defined(NDNBOOST_HAS_THREADS)
-
-# if defined __COMO__
-//  Comeau C++
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"
-
-#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
-//  Intel
-#ifdef _WIN32
-#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
-#else
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
-#endif
-
-# elif defined __GNUC__
-//  GNU C++:
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
-
-#elif defined __sgi
-//  SGI MIPSpro C++
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
-
-#elif defined __DECCXX
-//  Compaq Tru64 Unix cxx
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
-
-#elif defined __BORLANDC__
-//  Borland
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
-
-#elif defined  __MWERKS__
-//  Metrowerks CodeWarrior
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"
-
-#elif defined  __SUNPRO_CC
-//  Sun Workshop Compiler C++
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
-
-#elif defined __HP_aCC
-//  HP aCC
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
-
-#elif defined(__IBMCPP__)
-//  IBM Visual Age
-#   error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
-
-#elif defined _MSC_VER
-//  Microsoft Visual C++
-//
-//  Must remain the last #elif since some other vendors (Metrowerks, for
-//  example) also #define _MSC_VER
-#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
-
-#else
-
-#  error "Compiler threading support is not turned on.  Please consult your compiler's documentation for the appropriate options to use"
-
-#endif // compilers
-
-#endif // NDNBOOST_HAS_THREADS
-
-#endif // NDNBOOST_CONFIG_REQUIRES_THREADS_HPP
diff --git a/include/ndnboost/config/select_compiler_config.hpp b/include/ndnboost/config/select_compiler_config.hpp
deleted file mode 100644
index 9ddaf2d..0000000
--- a/include/ndnboost/config/select_compiler_config.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//  Boost compiler configuration selection header file
-
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Martin Wille 2003.
-//  (C) Copyright Guillaume Melquiond 2003.
-//
-//  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)
-
-//  See http://www.boost.org/ for most recent version.
-
-// locate which compiler we are using and define
-// NDNBOOST_COMPILER_CONFIG as needed: 
-
-#if defined(__GCCXML__)
-// GCC-XML emulates other compilers, it has to appear first here!
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc_xml.hpp"
-
-#elif defined(_CRAYC)
-// EDG based Cray compiler:
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/cray.hpp"
-
-#elif defined __CUDACC__
-//  NVIDIA CUDA C++ compiler for GPU
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/nvcc.hpp"
-
-#elif defined __COMO__
-//  Comeau C++
-#   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 NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/pathscale.hpp"
-
-#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
-//  Intel
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/intel.hpp"
-
-#elif defined __clang__
-//  Clang C++ emulates GCC, so it has to appear early.
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/clang.hpp"
-
-#elif defined __DMC__
-//  Digital Mars C++
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/digitalmars.hpp"
-
-# elif defined __GNUC__
-//  GNU C++:
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/gcc.hpp"
-
-#elif defined __KCC
-//  Kai C++
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/kai.hpp"
-
-#elif defined __sgi
-//  SGI MIPSpro C++
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/sgi_mipspro.hpp"
-
-#elif defined __DECCXX
-//  Compaq Tru64 Unix cxx
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/compaq_cxx.hpp"
-
-#elif defined __ghs
-//  Greenhills C++
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/greenhills.hpp"
-
-#elif defined __CODEGEARC__
-//  CodeGear - must be checked for before Borland
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/codegear.hpp"
-
-#elif defined __BORLANDC__
-//  Borland
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/borland.hpp"
-
-#elif defined  __MWERKS__
-//  Metrowerks CodeWarrior
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/metrowerks.hpp"
-
-#elif defined  __SUNPRO_CC
-//  Sun Workshop Compiler C++
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/sunpro_cc.hpp"
-
-#elif defined __HP_aCC
-//  HP aCC
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/hp_acc.hpp"
-
-#elif defined(__MRC__) || defined(__SC__)
-//  MPW MrCpp or SCpp
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/mpw.hpp"
-
-#elif defined(__IBMCPP__)
-//  IBM Visual Age
-#   define NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/vacpp.hpp"
-
-#elif defined(__PGI)
-//  Portland Group Inc.
-#   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 NDNBOOST_COMPILER_CONFIG "ndnboost/config/compiler/visualc.hpp"
-
-#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)"
-
-#endif
diff --git a/include/ndnboost/config/select_platform_config.hpp b/include/ndnboost/config/select_platform_config.hpp
deleted file mode 100644
index b043871..0000000
--- a/include/ndnboost/config/select_platform_config.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-//  Boost compiler configuration selection header file
-
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  (C) Copyright Jens Maurer 2001. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-// 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 NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/linux.hpp"
-
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
-// BSD:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/bsd.hpp"
-
-#elif defined(sun) || defined(__sun)
-// solaris:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/solaris.hpp"
-
-#elif defined(__sgi)
-// SGI Irix:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/irix.hpp"
-
-#elif defined(__hpux)
-// hp unix:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/hpux.hpp"
-
-#elif defined(__CYGWIN__)
-// cygwin is not win32:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/cygwin.hpp"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-// win32:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/win32.hpp"
-
-#elif defined(__BEOS__)
-// BeOS
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/beos.hpp"
-
-#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
-// MacOS
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/macos.hpp"
-
-#elif defined(__IBMCPP__) || defined(_AIX)
-// IBM
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/aix.hpp"
-
-#elif defined(__amigaos__)
-// AmigaOS
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/amigaos.hpp"
-
-#elif defined(__QNXNTO__)
-// QNX:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/qnxnto.hpp"
-
-#elif defined(__VXWORKS__)
-// vxWorks:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/vxworks.hpp"
-
-#elif defined(__SYMBIAN32__) 
-// Symbian: 
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/symbian.hpp" 
-
-#elif defined(_CRAYC)
-// Cray:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/cray.hpp" 
-
-#elif defined(__VMS) 
-// VMS:
-#  define NDNBOOST_PLATFORM_CONFIG "ndnboost/config/platform/vms.hpp" 
-#else
-
-#  if defined(unix) \
-      || defined(__unix) \
-      || defined(_XOPEN_SOURCE) \
-      || defined(_POSIX_SOURCE)
-
-   // generic unix platform:
-
-#  ifndef NDNBOOST_HAS_UNISTD_H
-#     define NDNBOOST_HAS_UNISTD_H
-#  endif
-
-#  include <ndnboost/config/posix_features.hpp>
-
-#  endif
-
-#  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"
-#  endif
-
-#endif
-
-
-
diff --git a/include/ndnboost/config/select_stdlib_config.hpp b/include/ndnboost/config/select_stdlib_config.hpp
deleted file mode 100644
index c7caede..0000000
--- a/include/ndnboost/config/select_stdlib_config.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//  Boost compiler configuration selection header file
-
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001 - 2002. 
-//  Use, modification and distribution are subject to 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)
-
-
-//  See http://www.boost.org for most recent version.
-
-// 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 
-//  if they know whose std lib they are using.)
-#ifdef __cplusplus
-#  include <cstddef>
-#else
-#  include <stddef.h>
-#endif
-
-#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-// 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 NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/stlport.hpp"
-
-#else
-
-// If our std lib was not some version of STLport, then include <utility> as it is about 
-// the smallest of the std lib headers that includes real C++ stuff.  (Some std libs do not
-// include their C++-related macros in <cstddef> so this additional include makes sure
-// we get those definitions)
-// (again do not rely on this header being included since users can short-circuit this 
-//  header if they know whose std lib they are using.)
-#include <ndnboost/config/no_tr1/utility.hpp>
-
-#if defined(__LIBCOMO__)
-// Comeau STL:
-#define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcomo.hpp"
-
-#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
-// Rogue Wave library:
-#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/roguewave.hpp"
-
-#elif defined(_LIBCPP_VERSION)
-// libc++
-#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libcpp.hpp"
-
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
-// GNU libstdc++ 3
-#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/libstdcpp3.hpp"
-
-#elif defined(__STL_CONFIG_H)
-// generic SGI STL
-#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/sgi.hpp"
-
-#elif defined(__MSL_CPP__)
-// MSL standard lib:
-#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/msl.hpp"
-
-#elif defined(__IBMCPP__)
-// take the default VACPP std lib
-#  define NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/vacpp.hpp"
-
-#elif defined(MSIPL_COMPILE_H)
-// Modena C++ standard library
-#  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 NDNBOOST_STDLIB_CONFIG "ndnboost/config/stdlib/dinkumware.hpp"
-
-#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"
-
-#endif
-
-#endif
-
-
-
diff --git a/include/ndnboost/config/stdlib/dinkumware.hpp b/include/ndnboost/config/stdlib/dinkumware.hpp
deleted file mode 100644
index 06ce536..0000000
--- a/include/ndnboost/config/stdlib/dinkumware.hpp
+++ /dev/null
@@ -1,155 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright Jens Maurer 2001.
-//  (C) Copyright Peter Dimov 2001.
-//  (C) Copyright David Abrahams 2002.
-//  (C) Copyright Guillaume Melquiond 2003.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Dinkumware standard library config:
-
-#if !defined(_YVALS) && !defined(_CPPLIB_VER)
-#include <ndnboost/config/no_tr1/utility.hpp>
-#if !defined(_YVALS) && !defined(_CPPLIB_VER)
-#error This is not the Dinkumware lib!
-#endif
-#endif
-
-
-#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
-   // 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 NDNBOOST_NO_STDC_NAMESPACE
-#  endif
-#  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 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 NDNBOOST_NO_STD_USE_FACET
-#     define NDNBOOST_HAS_TWO_ARG_USE_FACET
-      // C lib functions aren't in namespace std either:
-#     define NDNBOOST_NO_STDC_NAMESPACE
-      // and nor is <exception>
-#     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 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 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 NDNBOOST_NO_STD_MIN_MAX
-#     endif
-#     define NDNBOOST_NO_MS_INT64_NUMERIC_LIMITS
-#  endif
-#endif
-
-//
-// std extension namespace is stdext for vc7.1 and later, 
-// the same applies to other compilers that sit on top
-// of vc7.1 (Intel and Comeau):
-//
-#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__)
-#  define NDNBOOST_STD_EXTENSION_NAMESPACE stdext
-#endif
-
-
-#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)
-   // 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 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 NDNBOOST_NO_STD_LOCALE
-#endif
-
-#include <typeinfo>
-#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__)
-#  define NDNBOOST_NO_STD_TYPEINFO    
-#endif  
-
-//  C++0x headers implemented in 520 (as shipped by Microsoft)
-//
-#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
-#  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(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 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 NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
-
-#ifdef _CPPLIB_VER
-#  define NDNBOOST_DINKUMWARE_STDLIB _CPPLIB_VER
-#else
-#  define NDNBOOST_DINKUMWARE_STDLIB 1
-#endif
-
-#ifdef _CPPLIB_VER
-#  define NDNBOOST_STDLIB "Dinkumware standard library version " NDNBOOST_STRINGIZE(_CPPLIB_VER)
-#else
-#  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
deleted file mode 100644
index 0f20a16..0000000
--- a/include/ndnboost/config/stdlib/libcomo.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  (C) Copyright John Maddock 2002 - 2003. 
-//  (C) Copyright Jens Maurer 2002 - 2003. 
-//  (C) Copyright Beman Dawes 2002 - 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Comeau STL:
-
-#if !defined(__LIBCOMO__)
-#  include <ndnboost/config/no_tr1/utility.hpp>
-#  if !defined(__LIBCOMO__)
-#      error "This is not the Comeau STL!"
-#  endif
-#endif
-
-//
-// std::streambuf<wchar_t> is non-standard
-// NOTE: versions of libcomo prior to beta28 have octal version numbering,
-// e.g. version 25 is 21 (dec)
-#if __LIBCOMO_VERSION__ <= 22
-#  define NDNBOOST_NO_STD_WSTREAMBUF
-#endif
-
-#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
-#define NDNBOOST_NO_SWPRINTF
-#endif
-
-#if __LIBCOMO_VERSION__ >= 31
-#  define NDNBOOST_HAS_HASH
-#  define NDNBOOST_HAS_SLIST
-#endif
-
-//  C++0x headers not yet implemented
-//
-#  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.
-// The SGI STL has it's own __type_traits class, which
-// has intrinsic compiler support with SGI's compilers.
-// Whatever map SGI style type traits to boost equivalents:
-//
-#define NDNBOOST_HAS_SGI_TYPE_TRAITS
-
-#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
deleted file mode 100644
index a4ee678..0000000
--- a/include/ndnboost/config/stdlib/libcpp.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//  (C) Copyright Christopher Jefferson 2011.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  config for libc++
-//  Might need more in here later.
-
-#if !defined(_LIBCPP_VERSION)
-#  include <ciso646>
-#  if !defined(_LIBCPP_VERSION)
-#      error "This is not libc++!"
-#  endif
-#endif
-
-#define NDNBOOST_STDLIB "libc++ version " NDNBOOST_STRINGIZE(_LIBCPP_VERSION)
-
-#define NDNBOOST_HAS_THREADS
-
-#ifdef _LIBCPP_HAS_NO_VARIADICS
-#    define NDNBOOST_NO_CXX11_HDR_TUPLE
-#endif
-
-//
-// These appear to be unusable/incomplete so far:
-//
-#  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 NDNBOOST_NO_STD_MESSAGES
-
-//  --- end ---
diff --git a/include/ndnboost/config/stdlib/libstdcpp3.hpp b/include/ndnboost/config/stdlib/libstdcpp3.hpp
deleted file mode 100644
index 6a0d990..0000000
--- a/include/ndnboost/config/stdlib/libstdcpp3.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-//  (C) Copyright John Maddock 2001.
-//  (C) Copyright Jens Maurer 2001.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  config for libstdc++ v3
-//  not much to go in here:
-
-#define NDNBOOST_GNU_STDLIB 1
-
-#ifdef __GLIBCXX__
-#define NDNBOOST_STDLIB "GNU libstdc++ version " NDNBOOST_STRINGIZE(__GLIBCXX__)
-#else
-#define NDNBOOST_STDLIB "GNU libstdc++ version " NDNBOOST_STRINGIZE(__GLIBCPP__)
-#endif
-
-#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
-#  define NDNBOOST_NO_CWCHAR
-#  define NDNBOOST_NO_CWCTYPE
-#  define NDNBOOST_NO_STD_WSTRING
-#  define NDNBOOST_NO_STD_WSTREAMBUF
-#endif
-
-#if defined(__osf__) && !defined(_REENTRANT) \
-  && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
-// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
-// file is included, therefore for consistency we define it here as well.
-#  define _REENTRANT
-#endif
-
-#ifdef __GLIBCXX__ // gcc 3.4 and greater:
-#  if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
-        || defined(_GLIBCXX__PTHREADS) \
-        || defined(_GLIBCXX_HAS_GTHREADS) \
-        || defined(_WIN32) \
-        || defined(_AIX)
-      //
-      // If the std lib has thread support turned on, then turn it on in Boost
-      // as well.  We do this because some gcc-3.4 std lib headers define _REENTANT
-      // while others do not...
-      //
-#     define NDNBOOST_HAS_THREADS
-#  else
-#     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 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 NDNBOOST_HAS_THREADS
-#endif
-
-#if !defined(_GLIBCPP_USE_LONG_LONG) \
-    && !defined(_GLIBCXX_USE_LONG_LONG)\
-    && defined(NDNBOOST_HAS_LONG_LONG)
-// May have been set by compiler/*.hpp, but "long long" without library
-// support is useless.
-#  undef NDNBOOST_HAS_LONG_LONG
-#endif
-
-// Apple doesn't seem to reliably defined a *unix* macro
-#if !defined(CYGWIN) && (  defined(__unix__)  \
-                        || defined(__unix)    \
-                        || defined(unix)      \
-                        || defined(__APPLE__) \
-                        || defined(__APPLE)   \
-                        || defined(APPLE))
-#  include <unistd.h>
-#endif
-
-#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
-#  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 NDNBOOST_HASH_SET_HEADER <ext/hash_set>
-#   define NDNBOOST_HASH_MAP_HEADER <ext/hash_map>
-# else
-#   define NDNBOOST_HASH_SET_HEADER <backward/hash_set>
-#   define NDNBOOST_HASH_MAP_HEADER <backward/hash_map>
-# endif
-#endif
-
-//  stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
-//  __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
-//  developers. He also commented:
-//
-//       "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
-//       GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
-//       Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
-//       than any release in the 4.2 series."
-//
-//  Another resource for understanding stdlibc++ features is:
-//  http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
-
-//  C++0x headers in GCC 4.3.0 and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  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 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 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(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 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 NDNBOOST_NO_CXX11_HDR_TYPEINDEX
-#endif
-
-//  C++0x features in GCC 4.7.0 and later
-//
-#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 NDNBOOST_NO_CXX11_HDR_CHRONO
-#  define NDNBOOST_NO_CXX11_ALLOCATOR
-#endif
-//  C++0x headers not yet (fully!) implemented
-//
-#  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
deleted file mode 100644
index 96fb952..0000000
--- a/include/ndnboost/config/stdlib/modena.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//  (C) Copyright Jens Maurer 2001. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Modena C++ standard library (comes with KAI C++)
-
-#if !defined(MSIPL_COMPILE_H)
-#  include <ndnboost/config/no_tr1/utility.hpp>
-#  if !defined(__MSIPL_COMPILE_H)
-#      error "This is not the Modena C++ library!"
-#  endif
-#endif
-
-#ifndef MSIPL_NL_TYPES
-#define NDNBOOST_NO_STD_MESSAGES
-#endif
-
-#ifndef MSIPL_WCHART
-#define NDNBOOST_NO_STD_WSTRING
-#endif
-
-//  C++0x headers not yet implemented
-//
-#  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 NDNBOOST_STDLIB "Modena C++ standard library"
-
-
-
-
-
diff --git a/include/ndnboost/config/stdlib/msl.hpp b/include/ndnboost/config/stdlib/msl.hpp
deleted file mode 100644
index e692e2f..0000000
--- a/include/ndnboost/config/stdlib/msl.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  (C) Copyright Darin Adler 2001. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Metrowerks standard library:
-
-#ifndef __MSL_CPP__
-#  include <ndnboost/config/no_tr1/utility.hpp>
-#  ifndef __MSL_CPP__
-#     error This is not the MSL standard library!
-#  endif
-#endif
-
-#if __MSL_CPP__ >= 0x6000  // Pro 6
-#  define NDNBOOST_HAS_HASH
-#  define NDNBOOST_STD_EXTENSION_NAMESPACE Metrowerks
-#endif
-#define NDNBOOST_HAS_SLIST
-
-#if __MSL_CPP__ < 0x6209
-#  define NDNBOOST_NO_STD_MESSAGES
-#endif
-
-// check C lib version for <stdint.h>
-#include <cstddef>
-
-#if defined(__MSL__) && (__MSL__ >= 0x5000)
-#  define NDNBOOST_HAS_STDINT_H
-#  if !defined(__PALMOS_TRAPS__)
-#    define NDNBOOST_HAS_UNISTD_H
-#  endif
-   // boilerplate code:
-#  include <ndnboost/config/posix_features.hpp>
-#endif
-
-#if defined(_MWMT) || _MSL_THREADSAFE
-#  define NDNBOOST_HAS_THREADS
-#endif
-
-#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
-#  define NDNBOOST_NO_STD_USE_FACET
-#  define NDNBOOST_HAS_TWO_ARG_USE_FACET
-#endif
-
-//  C++0x headers not yet implemented
-//
-#  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 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
deleted file mode 100644
index 955c491..0000000
--- a/include/ndnboost/config/stdlib/roguewave.hpp
+++ /dev/null
@@ -1,186 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001. 
-//  (C) Copyright David Abrahams 2003. 
-//  (C) Copyright Boris Gubenko 2007. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  Rogue Wave std lib:
-
-#define NDNBOOST_RW_STDLIB 1 
-
-#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
-#  include <ndnboost/config/no_tr1/utility.hpp>
-#  if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
-#     error This is not the Rogue Wave standard library
-#  endif
-#endif
-//
-// figure out a consistent version number:
-//
-#ifndef _RWSTD_VER
-#  define NDNBOOST_RWSTD_VER 0x010000
-#elif _RWSTD_VER < 0x010000
-#  define NDNBOOST_RWSTD_VER (_RWSTD_VER << 8)
-#else
-#  define NDNBOOST_RWSTD_VER _RWSTD_VER
-#endif
-
-#ifndef _RWSTD_VER
-#  define NDNBOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
-#elif _RWSTD_VER < 0x04010200
- #  define NDNBOOST_STDLIB "Rogue Wave standard library version " NDNBOOST_STRINGIZE(_RWSTD_VER)
-#else
-#  ifdef _RWSTD_VER_STR
-#    define NDNBOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
-#  else
-#    define NDNBOOST_STDLIB "Apache STDCXX standard library version " NDNBOOST_STRINGIZE(_RWSTD_VER)
-#  endif
-#endif
-
-//
-// Prior to version 2.2.0 the primary template for std::numeric_limits
-// does not have compile time constants, even though specializations of that
-// template do:
-//
-#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 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 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) || (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 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 (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 NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#endif
-
-//
-// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
-// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
-// on HP aCC systems even though the allocator is in fact broken):
-//
-#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
-#  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(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 (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 NDNBOOST_RWSTD_VER < 0x020100
-#  define NDNBOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
-#endif
-
-//
-// Disable NDNBOOST_HAS_LONG_LONG when the library has no support for it.
-//
-#if !defined(_RWSTD_LONG_LONG) && defined(NDNBOOST_HAS_LONG_LONG)
-#  undef NDNBOOST_HAS_LONG_LONG
-#endif
-
-//
-// check that on HP-UX, the proper RW library is used
-//
-#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD)
-#  error "Boost requires Standard RW library. Please compile and link with -AA"
-#endif
-
-//
-// Define macros specific to RW V2.2 on HP-UX
-//
-#if defined(__HP_aCC) && (NDNBOOST_RWSTD_VER == 0x02020100)
-#  ifndef __HP_TC1_MAKE_PAIR
-#    define __HP_TC1_MAKE_PAIR
-#  endif
-#  ifndef _HP_INSTANTIATE_STD2_VL
-#    define _HP_INSTANTIATE_STD2_VL
-#  endif
-#endif
-
-#if _RWSTD_VER < 0x05000000
-#  define NDNBOOST_NO_CXX11_HDR_ARRAY
-#endif
-// type_traits header is incomplete:
-#  define NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS
-//
-//  C++0x headers not yet implemented
-//
-#  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
deleted file mode 100644
index be14f4e..0000000
--- a/include/ndnboost/config/stdlib/sgi.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Darin Adler 2001. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  generic SGI STL:
-
-#if !defined(__STL_CONFIG_H)
-#  include <ndnboost/config/no_tr1/utility.hpp>
-#  if !defined(__STL_CONFIG_H)
-#      error "This is not the SGI STL!"
-#  endif
-#endif
-
-//
-// No std::iterator traits without partial specialisation:
-//
-#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
-#  define NDNBOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-//
-// No std::stringstream with gcc < 3
-//
-#if defined(__GNUC__) && (__GNUC__ < 3) && \
-     ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
-     !defined(__STL_USE_NEW_IOSTREAMS) || \
-   defined(__APPLE_CC__)
-   // Note that we only set this for GNU C++ prior to 2.95 since the
-   // latest patches for that release do contain a minimal <sstream>
-   // If you are running a 2.95 release prior to 2.95.3 then this will need
-   // setting, but there is no way to detect that automatically (other
-   // than by running the configure script).
-   // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
-   // have <sstream>.
-#  define NDNBOOST_NO_STRINGSTREAM
-#endif
-
-// Apple doesn't seem to reliably defined a *unix* macro
-#if !defined(CYGWIN) && (  defined(__unix__)  \
-                        || defined(__unix)    \
-                        || defined(unix)      \
-                        || defined(__APPLE__) \
-                        || defined(__APPLE)   \
-                        || defined(APPLE))
-#  include <unistd.h>
-#endif
-
-
-//
-// Assume no std::locale without own iostreams (this may be an
-// incorrect assumption in some cases):
-//
-#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
-#  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 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 NDNBOOST_NO_STD_MESSAGES
-#endif
-
-//
-// No template iterator constructors, or std::allocator
-// without member templates:
-//
-#if !defined(__STL_MEMBER_TEMPLATES)
-#  define NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define NDNBOOST_NO_STD_ALLOCATOR
-#endif
-
-//
-// We always have SGI style hash_set, hash_map, and slist:
-//
-#define NDNBOOST_HAS_HASH
-#define NDNBOOST_HAS_SLIST
-
-//
-// If this is GNU libstdc++2, then no <limits> and no std::wstring:
-//
-#if (defined(__GNUC__) && (__GNUC__ < 3))
-#  include <string>
-#  if defined(__BASTRING__)
-#     define NDNBOOST_NO_LIMITS
-// Note: <ndnboost/limits.hpp> will provide compile-time constants
-#     undef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#     define NDNBOOST_NO_STD_WSTRING
-#  endif
-#endif
-
-//
-// There is no standard iterator unless we have namespace support:
-//
-#if !defined(__STL_USE_NAMESPACES)
-#  define NDNBOOST_NO_STD_ITERATOR
-#endif
-
-//
-// Intrinsic type_traits support.
-// The SGI STL has it's own __type_traits class, which
-// has intrinsic compiler support with SGI's compilers.
-// Whatever map SGI style type traits to boost equivalents:
-//
-#define NDNBOOST_HAS_SGI_TYPE_TRAITS
-
-//  C++0x headers not yet implemented
-//
-#  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 NDNBOOST_STDLIB "SGI standard library"
-
-
-
diff --git a/include/ndnboost/config/stdlib/stlport.hpp b/include/ndnboost/config/stdlib/stlport.hpp
deleted file mode 100644
index 05dd719..0000000
--- a/include/ndnboost/config/stdlib/stlport.hpp
+++ /dev/null
@@ -1,243 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  (C) Copyright Darin Adler 2001. 
-//  (C) Copyright Jens Maurer 2001. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-//  STLPort standard library config:
-
-#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-#  include <cstddef>
-#  if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-#      error "This is not STLPort!"
-#  endif
-#endif
-
-// Apple doesn't seem to reliably defined a *unix* macro
-#if !defined(CYGWIN) && (  defined(__unix__)  \
-                        || defined(__unix)    \
-                        || defined(unix)      \
-                        || defined(__APPLE__) \
-                        || defined(__APPLE)   \
-                        || defined(APPLE))
-#  include <unistd.h>
-#endif
-
-//
-// __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 NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#endif
-
-//
-// If STLport thinks that there is no partial specialisation, then there is no
-// std::iterator traits:
-//
-#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
-#  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 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 NDNBOOST_NO_STD_LOCALE
-#  define NDNBOOST_NO_STRINGSTREAM
-#endif
-
-//
-// If the streams are not native, and we have a "using ::x" compiler bug
-// 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(NDNBOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
-#     define NDNBOOST_NO_STD_LOCALE
-#  endif
-#else
-#  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 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 NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define NDNBOOST_NO_STD_ALLOCATOR
-#endif
-//
-// however we always have at least a partial allocator:
-//
-#define NDNBOOST_HAS_PARTIAL_STD_ALLOCATOR
-
-#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
-#  define NDNBOOST_NO_STD_ALLOCATOR
-#endif
-
-#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC <= 1300)
-#  define NDNBOOST_NO_STD_ALLOCATOR
-#endif
-
-//
-// If STLport thinks there is no wchar_t at all, then we have to disable
-// the support for the relevant specilazations of std:: templates.
-//
-#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT)
-#  ifndef  NDNBOOST_NO_STD_WSTRING
-#     define NDNBOOST_NO_STD_WSTRING
-#  endif
-#  ifndef  NDNBOOST_NO_STD_WSTREAMBUF
-#     define NDNBOOST_NO_STD_WSTREAMBUF
-#  endif
-#endif
-
-//
-// We always have SGI style hash_set, hash_map, and slist:
-//
-#ifndef _STLP_NO_EXTENSIONS
-#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 NDNBOOST_NO_STDC_NAMESPACE, since our
-// workaround does not conflict with STLports:
-//
-//
-// Harold Howe says:
-// 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 
-// 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 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) \
-         || defined(__STL_USE_OWN_NAMESPACE) \
-         || defined(_STLP_IMPORT_VENDOR_CSTD) \
-         || defined(_STLP_USE_OWN_NAMESPACE)) \
-      && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
-#     define NDNBOOST_NO_STDC_NAMESPACE
-#     define NDNBOOST_NO_EXCEPTION_STD_NAMESPACE
-#  endif
-#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560
-// STLport doesn't import std::abs correctly:
-#include <stdlib.h>
-namespace std { using ::abs; }
-// and strcmp/strcpy don't get imported either ('cos they are macros)
-#include <string.h>
-#ifdef strcpy
-#  undef strcpy
-#endif
-#ifdef strcmp
-#  undef strcmp
-#endif
-#ifdef _STLP_VENDOR_CSTD
-namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; }
-#endif
-#endif
-
-//
-// 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 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 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(NDNBOOST_NO_STDC_NAMESPACE)
-#  define NDNBOOST_NO_CWCHAR
-#  define NDNBOOST_NO_CWCTYPE
-#endif
-
-//
-// If STLport for some reason was configured so that it thinks that wchar_t
-// is not an intrinsic type, then we have to disable the support for it as
-// well (we would be missing required specializations otherwise).
-//
-#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT)
-#  undef  NDNBOOST_NO_INTRINSIC_WCHAR_T
-#  define NDNBOOST_NO_INTRINSIC_WCHAR_T
-#endif
-
-//
-// Borland ships a version of STLport with C++ Builder 6 that lacks
-// hashtables and the like:
-//
-#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
-#  undef NDNBOOST_HAS_HASH
-#endif
-
-//
-// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max
-//
-#if defined(__GNUC__) && (__GNUC__ < 3)
-#  include <algorithm> // for std::min and std::max
-#  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 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 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
deleted file mode 100644
index d4719b7..0000000
--- a/include/ndnboost/config/stdlib/vacpp.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org for most recent version.
-
-#if __IBMCPP__ <= 501
-#  define NDNBOOST_NO_STD_ALLOCATOR
-#endif
-
-#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__)  \
-                        || defined(__unix)    \
-                        || defined(unix)      \
-                        || defined(__APPLE__) \
-                        || defined(__APPLE)   \
-                        || defined(APPLE))
-#  include <unistd.h>
-#endif
-
-//  C++0x headers not yet implemented
-//
-#  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 NDNBOOST_STDLIB "Visual Age default standard library"
-
-
-
diff --git a/include/ndnboost/config/suffix.hpp b/include/ndnboost/config/suffix.hpp
deleted file mode 100644
index 7dfd7dc..0000000
--- a/include/ndnboost/config/suffix.hpp
+++ /dev/null
@@ -1,933 +0,0 @@
-//  Boost config.hpp configuration header file  ------------------------------//
-//	boostinspect:ndprecated_macros	-- tell the inspect tool to ignore this file
-
-//  Copyright (c) 2001-2003 John Maddock
-//  Copyright (c) 2001 Darin Adler
-//  Copyright (c) 2001 Peter Dimov
-//  Copyright (c) 2002 Bill Kempf 
-//  Copyright (c) 2002 Jens Maurer
-//  Copyright (c) 2002-2003 David Abrahams
-//  Copyright (c) 2003 Gennaro Prota
-//  Copyright (c) 2003 Eric Friedman
-//  Copyright (c) 2010 Eric Jourdanneau, Joel Falcou
-// 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)
-
-//  See http://www.boost.org/ for most recent version.
-
-//  Boost config.hpp policy and rationale documentation has been moved to
-//  http://www.boost.org/libs/config/
-//
-//  This file is intended to be stable, and relatively unchanging.
-//  It should contain boilerplate code only - no compiler specific
-//  code unless it is unavoidable - no changes unless unavoidable.
-
-#ifndef NDNBOOST_CONFIG_SUFFIX_HPP
-#define NDNBOOST_CONFIG_SUFFIX_HPP
-
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-//
-// Some GCC-4.x versions issue warnings even when __extension__ is used,
-// so use this as a workaround:
-//
-#pragma GCC system_header
-#endif
-
-//
-// ensure that visibility macros are always defined, thus symplifying use
-//
-#ifndef NDNBOOST_SYMBOL_EXPORT
-# define NDNBOOST_SYMBOL_EXPORT
-#endif
-#ifndef NDNBOOST_SYMBOL_IMPORT
-# define NDNBOOST_SYMBOL_IMPORT
-#endif
-#ifndef NDNBOOST_SYMBOL_VISIBLE
-# define NDNBOOST_SYMBOL_VISIBLE
-#endif
-
-//
-// look for long long by looking for the appropriate macros in <limits.h>.
-// Note that we use limits.h rather than climits for maximal portability,
-// remember that since these just declare a bunch of macros, there should be
-// no namespace issues from this.
-//
-#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 NDNBOOST_HAS_LONG_LONG
-# else
-#   define NDNBOOST_NO_LONG_LONG
-# endif
-#endif
-
-// GCC 3.x will clean up all of those nasty macro definitions that
-// NDNBOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
-// it under GCC 3.x.
-#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 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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(NDNBOOST_NO_CWCHAR) && !defined(NDNBOOST_NO_SWPRINTF)
-#     define NDNBOOST_NO_SWPRINTF
-#  endif
-
-//
-// If Win32 support is turned off, then we must turn off
-// threading support also, unless there is some other
-// thread API enabled:
-//
-#if defined(NDNBOOST_DISABLE_WIN32) && defined(_WIN32) \
-   && !defined(NDNBOOST_DISABLE_THREADS) && !defined(NDNBOOST_HAS_PTHREADS)
-#  define NDNBOOST_DISABLE_THREADS
-#endif
-
-//
-// Turn on threading support if the compiler thinks that it's in
-// multithreaded mode.  We put this here because there are only a
-// limited number of macros that identify this (if there's any missing
-// from here then add to the appropriate compiler section):
-//
-#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
-    || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
-    && !defined(NDNBOOST_HAS_THREADS)
-#  define NDNBOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading support off if NDNBOOST_DISABLE_THREADS is defined:
-//
-#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(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 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
-
-//
-// If the compiler claims to be C99 conformant, then it had better
-// have a <stdint.h>:
-//
-#  if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-#     define NDNBOOST_HAS_STDINT_H
-#     ifndef NDNBOOST_HAS_LOG1P
-#        define NDNBOOST_HAS_LOG1P
-#     endif
-#     ifndef NDNBOOST_HAS_EXPM1
-#        define NDNBOOST_HAS_EXPM1
-#     endif
-#  endif
-
-//
-// Define NDNBOOST_NO_SLIST and NDNBOOST_NO_HASH if required.
-// Note that this is for backwards compatibility only.
-//
-#  if !defined(NDNBOOST_HAS_SLIST) && !defined(NDNBOOST_NO_SLIST)
-#     define NDNBOOST_NO_SLIST
-#  endif
-
-#  if !defined(NDNBOOST_HAS_HASH) && !defined(NDNBOOST_NO_HASH)
-#     define NDNBOOST_NO_HASH
-#  endif
-
-//
-// Set NDNBOOST_SLIST_HEADER if not set already:
-//
-#if defined(NDNBOOST_HAS_SLIST) && !defined(NDNBOOST_SLIST_HEADER)
-#  define NDNBOOST_SLIST_HEADER <slist>
-#endif
-
-//
-// Set NDNBOOST_HASH_SET_HEADER if not set already:
-//
-#if defined(NDNBOOST_HAS_HASH) && !defined(NDNBOOST_HASH_SET_HEADER)
-#  define NDNBOOST_HASH_SET_HEADER <hash_set>
-#endif
-
-//
-// Set NDNBOOST_HASH_MAP_HEADER if not set already:
-//
-#if defined(NDNBOOST_HAS_HASH) && !defined(NDNBOOST_HASH_MAP_HEADER)
-#  define NDNBOOST_HASH_MAP_HEADER <hash_map>
-#endif
-
-//  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(NDNBOOST_ABI_PREFIX) && defined(NDNBOOST_ABI_SUFFIX) && !defined(NDNBOOST_HAS_ABI_HEADERS)
-#  define NDNBOOST_HAS_ABI_HEADERS
-#endif
-
-#if defined(NDNBOOST_HAS_ABI_HEADERS) && defined(NDNBOOST_DISABLE_ABI_HEADERS)
-#  undef NDNBOOST_HAS_ABI_HEADERS
-#endif
-
-//  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.
-//  NOTE WELL: This is a workaround for non-conforming compilers; <cstddef>
-//  must still be #included in the usual places so that <cstddef> inclusion
-//  works as expected with standard conforming compilers.  The resulting
-//  double inclusion of <cstddef> is harmless.
-
-# 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 NDNBOOST_PREVENT_MACRO_SUBSTITUTION
-
-#ifndef NDNBOOST_USING_STD_MIN
-#  define NDNBOOST_USING_STD_MIN() using std::min
-#endif
-
-#ifndef NDNBOOST_USING_STD_MAX
-#  define NDNBOOST_USING_STD_MAX() using std::max
-#endif
-
-//  NDNBOOST_NO_STD_MIN_MAX workaround  -----------------------------------------//
-
-#  if defined(NDNBOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
-
-namespace std {
-  template <class _Tp>
-  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 NDNBOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
-    return  __a < __b ? __b : __a;
-  }
-}
-
-#  endif
-
-// 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 NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#       define NDNBOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
-#  else
-#     define NDNBOOST_STATIC_CONSTANT(type, assignment) static const type assignment
-#  endif
-
-// 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.
-// These macros provide a consistent way to access a locale's facets.
-// Usage:
-//    replace
-//       std::use_facet<Type>(loc);
-//    with
-//       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(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 NDNBOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
-#  define NDNBOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
-#endif
-
-// 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:
-//
-// typedef typename A::template rebind<U> binder;
-//
-// with:
-//
-// typedef typename A::NDNBOOST_NESTED_TEMPLATE rebind<U> binder;
-
-#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#  define NDNBOOST_NESTED_TEMPLATE template
-#else
-#  define NDNBOOST_NESTED_TEMPLATE
-#endif
-
-// 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 NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION
-#  define NDNBOOST_UNREACHABLE_RETURN(x) return x;
-#else
-#  define NDNBOOST_UNREACHABLE_RETURN(x)
-#endif
-
-// NDNBOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
-//
-// Some compilers don't support the use of `typename' for dependent
-// types in deduced contexts, e.g.
-//
-//     template <class T> void f(T, typename T::type);
-//                                  ^^^^^^^^
-// Replace these declarations with:
-//
-//     template <class T> void f(T, NDNBOOST_DEDUCED_TYPENAME T::type);
-
-#ifndef NDNBOOST_NO_DEDUCED_TYPENAME
-#  define NDNBOOST_DEDUCED_TYPENAME typename
-#else
-#  define NDNBOOST_DEDUCED_TYPENAME
-#endif
-
-#ifndef NDNBOOST_NO_TYPENAME_WITH_CTOR
-#  define NDNBOOST_CTOR_TYPENAME typename
-#else
-#  define NDNBOOST_CTOR_TYPENAME
-#endif
-
-// long long workaround ------------------------------------------//
-// On gcc (and maybe other compilers?) long long is alway supported
-// 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(NDNBOOST_HAS_LONG_LONG) && defined(__cplusplus)
-namespace ndnboost{
-#  ifdef __GNUC__
-   __extension__ typedef long long long_long_type;
-   __extension__ typedef unsigned long long ulong_long_type;
-#  else
-   typedef long long long_long_type;
-   typedef unsigned long long ulong_long_type;
-#  endif
-}
-#endif
-// same again for __int128:
-#if defined(NDNBOOST_HAS_INT128) && defined(__cplusplus)
-namespace ndnboost{
-#  ifdef __GNUC__
-   __extension__ typedef __int128 int128_type;
-   __extension__ typedef unsigned __int128 uint128_type;
-#  else
-   typedef __int128 int128_type;
-   typedef unsigned __int128 uint128_type;
-#  endif
-}
-#endif
-
-// 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
-// they just link one instantiation of the template in the final
-// executable). These macros provide a uniform way to cope with the
-// problem with no effects on the calling syntax.
-
-// Example:
-//
-//  #include <iostream>
-//  #include <ostream>
-//  #include <typeinfo>
-//
-//  template <int n>
-//  void f() { std::cout << n << ' '; }
-//
-//  template <typename T>
-//  void g() { std::cout << typeid(T).name() << ' '; }
-//
-//  int main() {
-//    f<1>();
-//    f<2>();
-//
-//    g<int>();
-//    g<double>();
-//  }
-//
-// With VC++ 6.0 the output is:
-//
-//   2 2 double double
-//
-// To fix it, write
-//
-//   template <int n>
-//   void f(NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... }
-//
-//   template <typename T>
-//   void g(NDNBOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... }
-//
-
-
-#if defined(NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
-
-#  include "ndnboost/type.hpp"
-#  include "ndnboost/non_type.hpp"
-
-#  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 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 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 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 NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-
-// When NDNBOOST_NO_STD_TYPEINFO is defined, we can just import
-// the global definition into std namespace:
-#if defined(NDNBOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
-#include <typeinfo>
-namespace std{ using ::type_info; }
-#endif
-
-// ---------------------------------------------------------------------------//
-
-//
-// Helper macro NDNBOOST_STRINGIZE:
-// Converts the parameter X to a string after macro replacement
-// on X has been performed.
-//
-#define NDNBOOST_STRINGIZE(X) NDNBOOST_DO_STRINGIZE(X)
-#define NDNBOOST_DO_STRINGIZE(X) #X
-
-//
-// 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 NDNBOOST_DO_JOIN2 but does in NDNBOOST_DO_JOIN.
-//
-#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 NDNBOOST_COMPILER
-#     define NDNBOOST_COMPILER "Unknown ISO C++ Compiler"
-#  endif
-#  ifndef NDNBOOST_STDLIB
-#     define NDNBOOST_STDLIB "Unknown ISO standard library"
-#  endif
-#  ifndef NDNBOOST_PLATFORM
-#     if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
-         || defined(_POSIX_SOURCE)
-#        define NDNBOOST_PLATFORM "Generic Unix"
-#     else
-#        define NDNBOOST_PLATFORM "Unknown"
-#     endif
-#  endif
-
-//
-// Set some default values GPU support
-//
-#  ifndef NDNBOOST_GPU_ENABLED
-#  define NDNBOOST_GPU_ENABLED 
-#  endif
-
-// NDNBOOST_FORCEINLINE ---------------------------------------------//
-// Macro to use in place of 'inline' to force a function to be inline
-#if !defined(NDNBOOST_FORCEINLINE)
-#  if defined(_MSC_VER)
-#    define NDNBOOST_FORCEINLINE __forceinline
-#  elif defined(__GNUC__) && __GNUC__ > 3
-     // Clang also defines __GNUC__ (as 4)
-#    define NDNBOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
-#  else
-#    define NDNBOOST_FORCEINLINE inline
-#  endif
-#endif
-
-//
-// Set NDNBOOST_NO_DECLTYPE_N3276 when NDNBOOST_NO_DECLTYPE is defined
-//
-#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 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 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 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 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 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 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 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 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 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 NDNBOOST_NO_INITIALIZER_LISTS
-#  define NDNBOOST_NO_INITIALIZER_LISTS
-# endif
-#endif
-
-//  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 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 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 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 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 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 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 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 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 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 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 ---------------------------
-
-//  -------------------- Deprecated macros for 1.51 ---------------------------
-//  These will go away in a future release
-
-//  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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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     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 NDNBOOST_NOEXCEPT, NDNBOOST_NOEXCEPT_IF, NDNBOOST_NOEXCEPT_EXPR
-// These aid the transition to C++11 while still supporting C++03 compilers
-//
-#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 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 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 NDNBOOST_FALLTHROUGH 
-#  define NDNBOOST_FALLTHROUGH ((void)0) 
-#endif 
-
-//
-// constexpr workarounds
-// 
-#if defined(NDNBOOST_NO_CXX11_CONSTEXPR)
-#define NDNBOOST_CONSTEXPR
-#define NDNBOOST_CONSTEXPR_OR_CONST const
-#else
-#define NDNBOOST_CONSTEXPR constexpr
-#define NDNBOOST_CONSTEXPR_OR_CONST constexpr
-#endif
-
-#define NDNBOOST_STATIC_CONSTEXPR  static NDNBOOST_CONSTEXPR_OR_CONST
-
-//
-// Set NDNBOOST_HAS_STATIC_ASSERT when NDNBOOST_NO_CXX11_STATIC_ASSERT is not defined
-//
-#if !defined(NDNBOOST_NO_CXX11_STATIC_ASSERT) && !defined(NDNBOOST_HAS_STATIC_ASSERT)
-#  define NDNBOOST_HAS_STATIC_ASSERT
-#endif
-
-//
-// Set NDNBOOST_HAS_RVALUE_REFS when NDNBOOST_NO_CXX11_RVALUE_REFERENCES is not defined
-//
-#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_HAS_RVALUE_REFS)
-#define NDNBOOST_HAS_RVALUE_REFS
-#endif
-
-//
-// Set NDNBOOST_HAS_VARIADIC_TMPL when NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined
-//
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(NDNBOOST_HAS_VARIADIC_TMPL)
-#define NDNBOOST_HAS_VARIADIC_TMPL
-#endif
-
-
-#endif
diff --git a/include/ndnboost/config/user.hpp b/include/ndnboost/config/user.hpp
deleted file mode 100644
index ce06075..0000000
--- a/include/ndnboost/config/user.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-//  ndnboost/config/user.hpp  ---------------------------------------------------//
-
-//  (C) Copyright John Maddock 2001. 
-//  Use, modification and distribution are subject to 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)
-
-//  Do not check in modified versions of this file,
-//  This file may be customized by the end user, but not by boost.
-
-//
-//  Use this file to define a site and compiler specific
-//  configuration policy:
-//
-
-// define this to locate a compiler config file:
-// #define NDNBOOST_COMPILER_CONFIG <myheader>
-
-// define this to locate a stdlib config file:
-// #define NDNBOOST_STDLIB_CONFIG   <myheader>
-
-// define this to locate a platform config file:
-// #define NDNBOOST_PLATFORM_CONFIG <myheader>
-
-// define this to disable compiler config,
-// use if your compiler config has nothing to set:
-// #define NDNBOOST_NO_COMPILER_CONFIG
-
-// define this to disable stdlib config,
-// use if your stdlib config has nothing to set:
-// #define NDNBOOST_NO_STDLIB_CONFIG
-
-// define this to disable platform config,
-// use if your platform config has nothing to set:
-// #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 NDNBOOST_NO_CONFIG
-
-// define this to make the config "optimistic"
-// about unknown compiler versions.  Normally
-// unknown compiler versions are assumed to have
-// all the defects of the last known version, however
-// setting this flag, causes the config to assume
-// that unknown compiler versions are fully conformant
-// with the standard:
-// #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 NDNBOOST_ASSERT_CONFIG
-
-
-// define if you want to disable threading support, even
-// when available:
-// #define NDNBOOST_DISABLE_THREADS
-
-// define when you want to disable Win32 specific features
-// even when available:
-// #define NDNBOOST_DISABLE_WIN32
-
-// NDNBOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any 
-// prefix/suffix headers that normally control things like struct 
-// packing and alignment. 
-// #define NDNBOOST_DISABLE_ABI_HEADERS
-
-// 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 NDNBOOST_ABI_PREFIX my-header-name
-
-// 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 NDNBOOST_ABI_SUFFIX my-header-name
-
-// 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 
-// 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 has no effect.
-// #define NDNBOOST_ALL_DYN_LINK
- 
-// 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 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 NDNBOOST_WHATEVER_DYN_LINK
- 
-// 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 NDNBOOST_ALL_NO_LIB
- 
-// 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 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 NDNBOOST_WHATEVER_NO_LIB
- 
-
-
diff --git a/include/ndnboost/config/warning_disable.hpp b/include/ndnboost/config/warning_disable.hpp
deleted file mode 100644
index ef37a0a..0000000
--- a/include/ndnboost/config/warning_disable.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//  Copyright John Maddock 2008
-//  Use, modification, and distribution is subject to 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)
-//
-//  This file exists to turn off some overly-pedantic warning emitted
-//  by certain compilers.  You should include this header only in:
-//
-//  * A test case, before any other headers, or,
-//  * A library source file before any other headers.
-//
-//  IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER.
-//
-//  YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING.
-//
-//  The only warnings disabled here are those that are:
-//
-//  * Quite unreasonably pedantic.
-//  * Generally only emitted by a single compiler.
-//  * Can't easily be fixed: for example if the vendors own std lib 
-//    code emits these warnings!
-//
-//  Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS:
-//  not even std library ones!  Doing so may turn the warning
-//  off too late to be of any use.  For example the VC++ C4996
-//  warning can be emitted from <iosfwd> if that header is included
-//  before or by this one :-(
-//
-
-#ifndef NDNBOOST_CONFIG_WARNING_DISABLE_HPP
-#define NDNBOOST_CONFIG_WARNING_DISABLE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) 
-   // Error 'function': was declared deprecated
-   // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx
-   // This error is emitted when you use some perfectly conforming
-   // std lib functions in a perfectly correct way, and also by
-   // some of Microsoft's own std lib code !
-#  pragma warning(disable:4996)
-#endif
-#if defined(__INTEL_COMPILER) || defined(__ICL)
-   // As above: gives warning when a "deprecated"
-   // std library function is encountered.
-#  pragma warning(disable:1786)
-#endif
-
-#endif // NDNBOOST_CONFIG_WARNING_DISABLE_HPP
diff --git a/include/ndnboost/container/container_fwd.hpp b/include/ndnboost/container/container_fwd.hpp
deleted file mode 100644
index 824b465..0000000
--- a/include/ndnboost/container/container_fwd.hpp
+++ /dev/null
@@ -1,173 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2005-2012. 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)
-//
-// See http://www.boost.org/libs/container for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef NDNBOOST_CONTAINER_CONTAINER_FWD_HPP
-#define NDNBOOST_CONTAINER_CONTAINER_FWD_HPP
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-#  pragma once
-#endif
-
-//////////////////////////////////////////////////////////////////////////////
-//                        Standard predeclarations
-//////////////////////////////////////////////////////////////////////////////
-
-/// @cond
-
-namespace ndnboost{
-namespace intrusive{
-   //Create namespace to avoid compilation errors
-}}
-
-namespace ndnboost{ namespace container{ namespace container_detail{
-
-namespace bi = ndnboost::intrusive;
-
-}}}
-
-#include <utility>
-#include <memory>
-#include <functional>
-#include <iosfwd>
-#include <string>
-
-/// @endcond
-
-//////////////////////////////////////////////////////////////////////////////
-//                             Containers
-//////////////////////////////////////////////////////////////////////////////
-
-namespace ndnboost {
-namespace container {
-
-//vector class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class vector;
-
-//vector class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class stable_vector;
-
-//vector class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class deque;
-
-//list class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class list;
-
-//slist class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class slist;
-
-//set class
-template <class Key
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<Key> >
-class set;
-
-//multiset class
-template <class Key
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<Key> >
-class multiset;
-
-//map class
-template <class Key
-         ,class T
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<std::pair<const Key, T> > >
-class map;
-
-//multimap class
-template <class Key
-         ,class T
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<std::pair<const Key, T> > >
-class multimap;
-
-//flat_set class
-template <class Key
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<Key> >
-class flat_set;
-
-//flat_multiset class
-template <class Key
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<Key> >
-class flat_multiset;
-
-//flat_map class
-template <class Key
-         ,class T
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<std::pair<Key, T> > >
-class flat_map;
-
-//flat_multimap class
-template <class Key
-         ,class T
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<std::pair<Key, T> > >
-class flat_multimap;
-
-//basic_string class
-template <class CharT
-         ,class Traits = std::char_traits<CharT>
-         ,class Allocator  = std::allocator<CharT> >
-class basic_string;
-
-//! Type used to tag that the input range is
-//! guaranteed to be ordered
-struct ordered_range_t
-{};
-
-//! Type used to tag that the input range is
-//! guaranteed to be ordered and unique
-struct ordered_unique_range_t
-   : public ordered_range_t
-{};
-
-//! Value used to tag that the input range is
-//! guaranteed to be ordered
-static const ordered_range_t ordered_range = ordered_range_t();
-
-//! Value used to tag that the input range is
-//! guaranteed to be ordered and unique
-static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t();
-
-/// @cond
-
-namespace detail_really_deep_namespace {
-
-//Otherwise, gcc issues a warning of previously defined
-//anonymous_instance and unique_instance
-struct dummy
-{
-   dummy()
-   {
-      (void)ordered_range;
-      (void)ordered_unique_range;
-   }
-};
-
-}  //detail_really_deep_namespace {
-
-/// @endcond
-
-}}  //namespace ndnboost { namespace container {
-
-#endif //#ifndef NDNBOOST_CONTAINER_CONTAINER_FWD_HPP
diff --git a/include/ndnboost/cregex.hpp b/include/ndnboost/cregex.hpp
deleted file mode 100644
index 1384a2a..0000000
--- a/include/ndnboost/cregex.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org/libs/regex for most recent version.
-  *   FILE         cregex.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares POSIX API functions
-  *                + ndnboost::RegEx high level wrapper.
-  */
-
-#ifndef NDNBOOST_RE_CREGEX_HPP
-#define NDNBOOST_RE_CREGEX_HPP
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-
-#include <ndnboost/regex/v4/cregex.hpp>
-
-#endif /* include guard */
-
-
-
-
-
-
-
-
-
-
diff --git a/include/ndnboost/cstdint.hpp b/include/ndnboost/cstdint.hpp
deleted file mode 100644
index 8abc944..0000000
--- a/include/ndnboost/cstdint.hpp
+++ /dev/null
@@ -1,508 +0,0 @@
-//  boost cstdint.hpp header file  ------------------------------------------//
-
-//  (C) Copyright Beman Dawes 1999. 
-//  (C) Copyright Jens Mauer 2001  
-//  (C) Copyright John Maddock 2001 
-//  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)
-
-//  See http://www.boost.org/libs/integer for documentation.
-
-//  Revision History
-//   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)
-//   23 Sep 00  Added INTXX_C macro support (John Maddock).
-//   22 Sep 00  Better 64-bit support (John Maddock)
-//   29 Jun 00  Reimplement to avoid including stdint.h within namespace ndnboost
-//    8 Aug 99  Initial version (Beman Dawes)
-
-
-#ifndef NDNBOOST_CSTDINT_HPP
-#define NDNBOOST_CSTDINT_HPP
-
-//
-// Since we always define the INT#_C macros as per C++0x, 
-// define __STDC_CONSTANT_MACROS so that <stdint.h> does the right
-// thing if possible, and so that the user knows that the macros 
-// are actually defined as per C99.
-//
-#ifndef __STDC_CONSTANT_MACROS
-#  define __STDC_CONSTANT_MACROS
-#endif
-
-#include <ndnboost/config.hpp>
-
-//
-// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not
-// depending upon what headers happen to have been included first...
-// 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(NDNBOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
-
-// The following #include is an implementation artifact; not part of interface.
-# ifdef __hpux
-// HP-UX has a vaguely nice <stdint.h> in a non-standard location
-#   include <inttypes.h>
-#   ifdef __STDC_32_MODE__
-      // this is triggered with GCC, because it defines __cplusplus < 199707L
-#     define NDNBOOST_NO_INT64_T
-#   endif 
-# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX)
-#   include <inttypes.h>
-# else
-#   include <stdint.h>
-
-// There is a bug in Cygwin two _C macros
-#   if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__)
-#     undef INTMAX_C
-#     undef UINTMAX_C
-#     define INTMAX_C(c) c##LL
-#     define UINTMAX_C(c) c##ULL
-#   endif
-
-# endif
-
-#ifdef __QNX__
-
-// QNX (Dinkumware stdlib) defines these as non-standard names.
-// Reflect to the standard names.
-
-typedef ::intleast8_t int_least8_t;
-typedef ::intfast8_t int_fast8_t;
-typedef ::uintleast8_t uint_least8_t;
-typedef ::uintfast8_t uint_fast8_t;
-
-typedef ::intleast16_t int_least16_t;
-typedef ::intfast16_t int_fast16_t;
-typedef ::uintleast16_t uint_least16_t;
-typedef ::uintfast16_t uint_fast16_t;
-
-typedef ::intleast32_t int_least32_t;
-typedef ::intfast32_t int_fast32_t;
-typedef ::uintleast32_t uint_least32_t;
-typedef ::uintfast32_t uint_fast32_t;
-
-# ifndef NDNBOOST_NO_INT64_T
-
-typedef ::intleast64_t int_least64_t;
-typedef ::intfast64_t int_fast64_t;
-typedef ::uintleast64_t uint_least64_t;
-typedef ::uintfast64_t uint_fast64_t;
-
-# endif
-
-#endif
-
-namespace ndnboost
-{
-
-  using ::int8_t;             
-  using ::int_least8_t;       
-  using ::int_fast8_t;        
-  using ::uint8_t;            
-  using ::uint_least8_t;      
-  using ::uint_fast8_t;       
-                     
-  using ::int16_t;            
-  using ::int_least16_t;      
-  using ::int_fast16_t;       
-  using ::uint16_t;           
-  using ::uint_least16_t;     
-  using ::uint_fast16_t;      
-                     
-  using ::int32_t;            
-  using ::int_least32_t;      
-  using ::int_fast32_t;       
-  using ::uint32_t;           
-  using ::uint_least32_t;     
-  using ::uint_fast32_t;      
-                     
-# ifndef NDNBOOST_NO_INT64_T
-
-  using ::int64_t;            
-  using ::int_least64_t;      
-  using ::int_fast64_t;       
-  using ::uint64_t;           
-  using ::uint_least64_t;     
-  using ::uint_fast64_t;      
-                     
-# endif
-
-  using ::intmax_t;      
-  using ::uintmax_t;     
-
-} // namespace ndnboost
-
-#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS)
-// FreeBSD and Tru64 have an <inttypes.h> that contains much of what we need.
-# include <inttypes.h>
-
-namespace ndnboost {
-
-  using ::int8_t;             
-  typedef int8_t int_least8_t;       
-  typedef int8_t int_fast8_t;        
-  using ::uint8_t;            
-  typedef uint8_t uint_least8_t;      
-  typedef uint8_t uint_fast8_t;       
-                     
-  using ::int16_t;            
-  typedef int16_t int_least16_t;      
-  typedef int16_t int_fast16_t;       
-  using ::uint16_t;           
-  typedef uint16_t uint_least16_t;     
-  typedef uint16_t uint_fast16_t;      
-                     
-  using ::int32_t;            
-  typedef int32_t int_least32_t;      
-  typedef int32_t int_fast32_t;       
-  using ::uint32_t;           
-  typedef uint32_t uint_least32_t;     
-  typedef uint32_t uint_fast32_t;      
-         
-# ifndef NDNBOOST_NO_INT64_T          
-
-  using ::int64_t;            
-  typedef int64_t int_least64_t;      
-  typedef int64_t int_fast64_t;       
-  using ::uint64_t;           
-  typedef uint64_t uint_least64_t;     
-  typedef uint64_t uint_fast64_t;      
-
-  typedef int64_t intmax_t;
-  typedef uint64_t uintmax_t;
-
-# else
-
-  typedef int32_t intmax_t;
-  typedef uint32_t uintmax_t;
-
-# endif
-
-} // namespace ndnboost
-
-#else  // NDNBOOST_HAS_STDINT_H
-
-# include <ndnboost/limits.hpp> // implementation artifact; not part of interface
-# include <limits.h>         // needed for limits macros
-
-
-namespace ndnboost
-{
-
-//  These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit
-//  platforms.  For other systems, they will have to be hand tailored.
-//
-//  Because the fast types are assumed to be the same as the undecorated types,
-//  it may be possible to hand tailor a more efficient implementation.  Such
-//  an optimization may be illusionary; on the Intel x86-family 386 on, for
-//  example, byte arithmetic and load/stores are as fast as "int" sized ones.
-
-//  8-bit types  ------------------------------------------------------------//
-
-# if UCHAR_MAX == 0xff
-     typedef signed char     int8_t;
-     typedef signed char     int_least8_t;
-     typedef signed char     int_fast8_t;
-     typedef unsigned char   uint8_t;
-     typedef unsigned char   uint_least8_t;
-     typedef unsigned char   uint_fast8_t;
-# else
-#    error defaults not correct; you must hand modify ndnboost/cstdint.hpp
-# endif
-
-//  16-bit types  -----------------------------------------------------------//
-
-# if USHRT_MAX == 0xffff
-#  if defined(__crayx1)
-     // The Cray X1 has a 16-bit short, however it is not recommend
-     // for use in performance critical code.
-     typedef short           int16_t;
-     typedef short           int_least16_t;
-     typedef int             int_fast16_t;
-     typedef unsigned short  uint16_t;
-     typedef unsigned short  uint_least16_t;
-     typedef unsigned int    uint_fast16_t;
-#  else
-     typedef short           int16_t;
-     typedef short           int_least16_t;
-     typedef short           int_fast16_t;
-     typedef unsigned short  uint16_t;
-     typedef unsigned short  uint_least16_t;
-     typedef unsigned short  uint_fast16_t;
-#  endif
-# elif (USHRT_MAX == 0xffffffff) && defined(__MTA__) 
-      // On MTA / XMT short is 32 bits unless the -short16 compiler flag is specified 
-      // MTA / XMT does support the following non-standard integer types 
-      typedef __short16           int16_t; 
-      typedef __short16           int_least16_t; 
-      typedef __short16           int_fast16_t; 
-      typedef unsigned __short16  uint16_t; 
-      typedef unsigned __short16  uint_least16_t; 
-      typedef unsigned __short16  uint_fast16_t; 
-# elif (USHRT_MAX == 0xffffffff) && defined(CRAY)
-     // no 16-bit types on Cray:
-     typedef short           int_least16_t;
-     typedef short           int_fast16_t;
-     typedef unsigned short  uint_least16_t;
-     typedef unsigned short  uint_fast16_t;
-# else
-#    error defaults not correct; you must hand modify ndnboost/cstdint.hpp
-# endif
-
-//  32-bit types  -----------------------------------------------------------//
-
-# if UINT_MAX == 0xffffffff
-     typedef int             int32_t;
-     typedef int             int_least32_t;
-     typedef int             int_fast32_t;
-     typedef unsigned int    uint32_t;
-     typedef unsigned int    uint_least32_t;
-     typedef unsigned int    uint_fast32_t;
-# elif (USHRT_MAX == 0xffffffff)
-     typedef short             int32_t;
-     typedef short             int_least32_t;
-     typedef short             int_fast32_t;
-     typedef unsigned short    uint32_t;
-     typedef unsigned short    uint_least32_t;
-     typedef unsigned short    uint_fast32_t;
-# elif ULONG_MAX == 0xffffffff
-     typedef long            int32_t;
-     typedef long            int_least32_t;
-     typedef long            int_fast32_t;
-     typedef unsigned long   uint32_t;
-     typedef unsigned long   uint_least32_t;
-     typedef unsigned long   uint_fast32_t;
-# elif (UINT_MAX == 0xffffffffffffffff) && defined(__MTA__) 
-      // Integers are 64 bits on the MTA / XMT 
-      typedef __int32           int32_t; 
-      typedef __int32           int_least32_t; 
-      typedef __int32           int_fast32_t; 
-      typedef unsigned __int32  uint32_t; 
-      typedef unsigned __int32  uint_least32_t; 
-      typedef unsigned __int32  uint_fast32_t; 
-# else
-#    error defaults not correct; you must hand modify ndnboost/cstdint.hpp
-# endif
-
-//  64-bit types + intmax_t and uintmax_t  ----------------------------------//
-
-# 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)
-     // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
-#    elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL)
-                                                                 // 2**64 - 1
-#    else
-#       error defaults not correct; you must hand modify ndnboost/cstdint.hpp
-#    endif
-
-     typedef  ::ndnboost::long_long_type            intmax_t;
-     typedef  ::ndnboost::ulong_long_type   uintmax_t;
-     typedef  ::ndnboost::long_long_type            int64_t;
-     typedef  ::ndnboost::long_long_type            int_least64_t;
-     typedef  ::ndnboost::long_long_type            int_fast64_t;
-     typedef  ::ndnboost::ulong_long_type   uint64_t;
-     typedef  ::ndnboost::ulong_long_type   uint_least64_t;
-     typedef  ::ndnboost::ulong_long_type   uint_fast64_t;
-
-# elif ULONG_MAX != 0xffffffff
-
-#    if ULONG_MAX == 18446744073709551615 // 2**64 - 1
-     typedef long                 intmax_t;
-     typedef unsigned long        uintmax_t;
-     typedef long                 int64_t;
-     typedef long                 int_least64_t;
-     typedef long                 int_fast64_t;
-     typedef unsigned long        uint64_t;
-     typedef unsigned long        uint_least64_t;
-     typedef unsigned long        uint_fast64_t;
-#    else
-#       error defaults not correct; you must hand modify ndnboost/cstdint.hpp
-#    endif
-# 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;
-     __extension__ typedef long long            int_least64_t;
-     __extension__ typedef long long            int_fast64_t;
-     __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(NDNBOOST_HAS_MS_INT64)
-     //
-     // we have Borland/Intel/Microsoft __int64:
-     //
-     typedef __int64             intmax_t;
-     typedef unsigned __int64    uintmax_t;
-     typedef __int64             int64_t;
-     typedef __int64             int_least64_t;
-     typedef __int64             int_fast64_t;
-     typedef unsigned __int64    uint64_t;
-     typedef unsigned __int64    uint_least64_t;
-     typedef unsigned __int64    uint_fast64_t;
-# else // assume no 64-bit integers
-#  define NDNBOOST_NO_INT64_T
-     typedef int32_t              intmax_t;
-     typedef uint32_t             uintmax_t;
-# endif
-
-} // namespace ndnboost
-
-
-#endif // NDNBOOST_HAS_STDINT_H
-
-#endif // NDNBOOST_CSTDINT_HPP
-
-
-/****************************************************
-
-Macro definition section:
-
-Added 23rd September 2000 (John Maddock).
-Modified 11th September 2001 to be excluded when
-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(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: 
-// 
-// ndnboost/cstdint.hpp:428:35: error: use of C99 long long integer constant 
-// 
-// So we declare this a system header to suppress these warnings. 
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4) 
-#pragma GCC system_header 
-#endif 
-
-#include <limits.h>
-# define NDNBOOST__STDC_CONSTANT_MACROS_DEFINED
-# if defined(NDNBOOST_HAS_MS_INT64)
-//
-// Borland/Intel/Microsoft compilers have width specific suffixes:
-//
-#ifndef INT8_C
-#  define INT8_C(value)     value##i8
-#endif
-#ifndef INT16_C
-#  define INT16_C(value)    value##i16
-#endif
-#ifndef INT32_C
-#  define INT32_C(value)    value##i32
-#endif
-#ifndef INT64_C
-#  define INT64_C(value)    value##i64
-#endif
-#  ifdef __BORLANDC__
-    // Borland bug: appending ui8 makes the type a signed char
-#   define UINT8_C(value)    static_cast<unsigned char>(value##u)
-#  else
-#   define UINT8_C(value)    value##ui8
-#  endif
-#ifndef UINT16_C
-#  define UINT16_C(value)   value##ui16
-#endif
-#ifndef UINT32_C
-#  define UINT32_C(value)   value##ui32
-#endif
-#ifndef UINT64_C
-#  define UINT64_C(value)   value##ui64
-#endif
-#ifndef INTMAX_C
-#  define INTMAX_C(value)   value##i64
-#  define UINTMAX_C(value)  value##ui64
-#endif
-
-# else
-//  do it the old fashioned way:
-
-//  8-bit types  ------------------------------------------------------------//
-
-#  if (UCHAR_MAX == 0xff) && !defined(INT8_C)
-#   define INT8_C(value) static_cast<ndnboost::int8_t>(value)
-#   define UINT8_C(value) static_cast<ndnboost::uint8_t>(value##u)
-#  endif
-
-//  16-bit types  -----------------------------------------------------------//
-
-#  if (USHRT_MAX == 0xffff) && !defined(INT16_C)
-#   define INT16_C(value) static_cast<ndnboost::int16_t>(value)
-#   define UINT16_C(value) static_cast<ndnboost::uint16_t>(value##u)
-#  endif
-
-//  32-bit types  -----------------------------------------------------------//
-#ifndef INT32_C
-#  if (UINT_MAX == 0xffffffff)
-#   define INT32_C(value) value
-#   define UINT32_C(value) value##u
-#  elif ULONG_MAX == 0xffffffff
-#   define INT32_C(value) value##L
-#   define UINT32_C(value) value##uL
-#  endif
-#endif
-
-//  64-bit types + intmax_t and uintmax_t  ----------------------------------//
-#ifndef INT64_C
-#  if defined(NDNBOOST_HAS_LONG_LONG) && \
-    (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_LLONG_MAX))
-
-#    if defined(__hpux)
-        // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
-#       define INT64_C(value) value##LL
-#       define UINT64_C(value) value##uLL
-#    elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) ||  \
-        (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) ||  \
-        (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \
-        (defined(_LLONG_MAX) && _LLONG_MAX == 18446744073709551615ULL)
-
-#       define INT64_C(value) value##LL
-#       define UINT64_C(value) value##uLL
-#    else
-#       error defaults not correct; you must hand modify ndnboost/cstdint.hpp
-#    endif
-#  elif ULONG_MAX != 0xffffffff
-
-#    if ULONG_MAX == 18446744073709551615U // 2**64 - 1
-#       define INT64_C(value) value##L
-#       define UINT64_C(value) value##uL
-#    else
-#       error defaults not correct; you must hand modify ndnboost/cstdint.hpp
-#    endif
-#  elif defined(NDNBOOST_HAS_LONG_LONG)
-     // Usual macros not defined, work things out for ourselves:
-#    if(~0uLL == 18446744073709551615ULL)
-#       define INT64_C(value) value##LL
-#       define UINT64_C(value) value##uLL
-#    else
-#       error defaults not correct; you must hand modify ndnboost/cstdint.hpp
-#    endif
-#  else
-#    error defaults not correct; you must hand modify ndnboost/cstdint.hpp
-#  endif
-
-#  ifdef NDNBOOST_NO_INT64_T
-#   define INTMAX_C(value) INT32_C(value)
-#   define UINTMAX_C(value) UINT32_C(value)
-#  else
-#   define INTMAX_C(value) INT64_C(value)
-#   define UINTMAX_C(value) UINT64_C(value)
-#  endif
-#endif
-# endif // Borland/Microsoft specific width suffixes
-
-#endif // INT#_C macros.
-
-
-
-
diff --git a/include/ndnboost/cstdlib.hpp b/include/ndnboost/cstdlib.hpp
deleted file mode 100644
index c3d124c..0000000
--- a/include/ndnboost/cstdlib.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//  ndnboost/cstdlib.hpp header  ------------------------------------------------//
-
-//  Copyright Beman Dawes 2001.  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)
-
-//  See http://www.boost.org/libs/utility/cstdlib.html for documentation.
-
-//  Revision History
-//   26 Feb 01  Initial version (Beman Dawes)
-
-#ifndef NDNBOOST_CSTDLIB_HPP
-#define NDNBOOST_CSTDLIB_HPP
-
-#include <cstdlib>
-
-namespace ndnboost
-{
-   //  The intent is to propose the following for addition to namespace std
-   //  in the C++ Standard Library, and to then deprecate EXIT_SUCCESS and
-   //  EXIT_FAILURE.  As an implementation detail, this header defines the
-   //  new constants in terms of EXIT_SUCCESS and EXIT_FAILURE.  In a new
-   //  standard, the constants would be implementation-defined, although it
-   //  might be worthwhile to "suggest" (which a standard is allowed to do)
-   //  values of 0 and 1 respectively.
-
-   //  Rationale for having multiple failure values: some environments may
-   //  wish to distinguish between different classes of errors.
-   //  Rationale for choice of values: programs often use values < 100 for
-   //  their own error reporting.  Values > 255 are sometimes reserved for
-   //  system detected errors.  200/201 were suggested to minimize conflict.
-
-   const int exit_success = EXIT_SUCCESS;  // implementation-defined value
-   const int exit_failure = EXIT_FAILURE;  // implementation-defined value
-   const int exit_exception_failure = 200; // otherwise uncaught exception
-   const int exit_test_failure = 201;      // report_error or
-                                           //  report_critical_error called.
-}
-
-#endif
-
diff --git a/include/ndnboost/current_function.hpp b/include/ndnboost/current_function.hpp
deleted file mode 100644
index 111f9fa..0000000
--- a/include/ndnboost/current_function.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef NDNBOOST_CURRENT_FUNCTION_HPP_INCLUDED
-#define NDNBOOST_CURRENT_FUNCTION_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/current_function.hpp - NDNBOOST_CURRENT_FUNCTION
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  http://www.boost.org/libs/utility/current_function.html
-//
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void current_function_helper()
-{
-
-#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__)
-
-# define NDNBOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
-
-#elif defined(__DMC__) && (__DMC__ >= 0x810)
-
-# define NDNBOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
-
-#elif defined(__FUNCSIG__)
-
-# define NDNBOOST_CURRENT_FUNCTION __FUNCSIG__
-
-#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
-
-# define NDNBOOST_CURRENT_FUNCTION __FUNCTION__
-
-#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
-
-# define NDNBOOST_CURRENT_FUNCTION __FUNC__
-
-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-
-# define NDNBOOST_CURRENT_FUNCTION __func__
-
-#else
-
-# define NDNBOOST_CURRENT_FUNCTION "(unknown)"
-
-#endif
-
-}
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#endif // #ifndef NDNBOOST_CURRENT_FUNCTION_HPP_INCLUDED
-
diff --git a/include/ndnboost/detail/binary_search.hpp b/include/ndnboost/detail/binary_search.hpp
deleted file mode 100644
index e663267..0000000
--- a/include/ndnboost/detail/binary_search.hpp
+++ /dev/null
@@ -1,216 +0,0 @@
-// Copyright (c)  2000 David Abrahams. 
-// 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)
-// 
-// Copyright (c) 1994
-// Hewlett-Packard Company
-// 
-// Permission to use, copy, modify, distribute and sell this software
-// and its documentation for any purpose is hereby granted without fee,
-// provided that the above copyright notice appear in all copies and
-// that both that copyright notice and this permission notice appear
-// in supporting documentation.  Hewlett-Packard Company makes no
-// representations about the suitability of this software for any
-// purpose.  It is provided "as is" without express or implied warranty.
-// 
-// Copyright (c) 1996
-// Silicon Graphics Computer Systems, Inc.
-// 
-// Permission to use, copy, modify, distribute and sell this software
-// and its documentation for any purpose is hereby granted without fee,
-// provided that the above copyright notice appear in all copies and
-// that both that copyright notice and this permission notice appear
-// in supporting documentation.  Silicon Graphics makes no
-// representations about the suitability of this software for any
-// purpose.  It is provided "as is" without express or implied warranty.
-// 
-#ifndef BINARY_SEARCH_NDNBOOST_DWA_122600_H_
-# define BINARY_SEARCH_NDNBOOST_DWA_122600_H_
-
-# include <ndnboost/detail/iterator.hpp>
-# include <utility>
-
-namespace ndnboost { namespace detail {
-
-template <class ForwardIter, class Tp>
-ForwardIter lower_bound(ForwardIter first, ForwardIter last,
-                             const Tp& val) 
-{
-    typedef detail::iterator_traits<ForwardIter> traits;
-    
-    typename traits::difference_type len = ndnboost::detail::distance(first, last);
-    typename traits::difference_type half;
-    ForwardIter middle;
-
-    while (len > 0) {
-      half = len >> 1;
-      middle = first;
-      std::advance(middle, half);
-      if (*middle < val) {
-        first = middle;
-        ++first;
-        len = len - half - 1;
-      }
-      else
-        len = half;
-    }
-    return first;
-}
-
-template <class ForwardIter, class Tp, class Compare>
-ForwardIter lower_bound(ForwardIter first, ForwardIter last,
-                              const Tp& val, Compare comp)
-{
-  typedef detail::iterator_traits<ForwardIter> traits;
-
-  typename traits::difference_type len = ndnboost::detail::distance(first, last);
-  typename traits::difference_type half;
-  ForwardIter middle;
-
-  while (len > 0) {
-    half = len >> 1;
-    middle = first;
-    std::advance(middle, half);
-    if (comp(*middle, val)) {
-      first = middle;
-      ++first;
-      len = len - half - 1;
-    }
-    else
-      len = half;
-  }
-  return first;
-}
-
-template <class ForwardIter, class Tp>
-ForwardIter upper_bound(ForwardIter first, ForwardIter last,
-                           const Tp& val)
-{
-  typedef detail::iterator_traits<ForwardIter> traits;
-
-  typename traits::difference_type len = ndnboost::detail::distance(first, last);
-  typename traits::difference_type half;
-  ForwardIter middle;
-
-  while (len > 0) {
-    half = len >> 1;
-    middle = first;
-    std::advance(middle, half);
-    if (val < *middle)
-      len = half;
-    else {
-      first = middle;
-      ++first;
-      len = len - half - 1;
-    }
-  }
-  return first;
-}
-
-template <class ForwardIter, class Tp, class Compare>
-ForwardIter upper_bound(ForwardIter first, ForwardIter last,
-                           const Tp& val, Compare comp)
-{
-  typedef detail::iterator_traits<ForwardIter> traits;
-
-  typename traits::difference_type len = ndnboost::detail::distance(first, last);
-  typename traits::difference_type half;
-  ForwardIter middle;
-
-  while (len > 0) {
-    half = len >> 1;
-    middle = first;
-    std::advance(middle, half);
-    if (comp(val, *middle))
-      len = half;
-    else {
-      first = middle;
-      ++first;
-      len = len - half - 1;
-    }
-  }
-  return first;
-}
-
-template <class ForwardIter, class Tp>
-std::pair<ForwardIter, ForwardIter>
-equal_range(ForwardIter first, ForwardIter last, const Tp& val)
-{
-  typedef detail::iterator_traits<ForwardIter> traits;
-
-  typename traits::difference_type len = ndnboost::detail::distance(first, last);
-  typename traits::difference_type half;
-  ForwardIter middle, left, right;
-
-  while (len > 0) {
-    half = len >> 1;
-    middle = first;
-    std::advance(middle, half);
-    if (*middle < val) {
-      first = middle;
-      ++first;
-      len = len - half - 1;
-    }
-    else if (val < *middle)
-      len = half;
-    else {
-      left = ndnboost::detail::lower_bound(first, middle, val);
-      std::advance(first, len);
-      right = ndnboost::detail::upper_bound(++middle, first, val);
-      return std::pair<ForwardIter, ForwardIter>(left, right);
-    }
-  }
-  return std::pair<ForwardIter, ForwardIter>(first, first);
-}
-
-template <class ForwardIter, class Tp, class Compare>
-std::pair<ForwardIter, ForwardIter>
-equal_range(ForwardIter first, ForwardIter last, const Tp& val,
-              Compare comp)
-{
-  typedef detail::iterator_traits<ForwardIter> traits;
-
-  typename traits::difference_type len = ndnboost::detail::distance(first, last);
-  typename traits::difference_type half;
-  ForwardIter middle, left, right;
-
-  while (len > 0) {
-    half = len >> 1;
-    middle = first;
-    std::advance(middle, half);
-    if (comp(*middle, val)) {
-      first = middle;
-      ++first;
-      len = len - half - 1;
-    }
-    else if (comp(val, *middle))
-      len = half;
-    else {
-      left = ndnboost::detail::lower_bound(first, middle, val, comp);
-      std::advance(first, len);
-      right = ndnboost::detail::upper_bound(++middle, first, val, comp);
-      return std::pair<ForwardIter, ForwardIter>(left, right);
-    }
-  }
-  return std::pair<ForwardIter, ForwardIter>(first, first);
-}           
-
-template <class ForwardIter, class Tp>
-bool binary_search(ForwardIter first, ForwardIter last,
-                   const Tp& val) {
-  ForwardIter i = ndnboost::detail::lower_bound(first, last, val);
-  return i != last && !(val < *i);
-}
-
-template <class ForwardIter, class Tp, class Compare>
-bool binary_search(ForwardIter first, ForwardIter last,
-                   const Tp& val,
-                   Compare comp) {
-  ForwardIter i = ndnboost::detail::lower_bound(first, last, val, comp);
-  return i != last && !comp(val, *i);
-}
-
-}} // namespace ndnboost::detail
-
-#endif // BINARY_SEARCH_NDNBOOST_DWA_122600_H_
diff --git a/include/ndnboost/detail/bitmask.hpp b/include/ndnboost/detail/bitmask.hpp
deleted file mode 100644
index e5dce4a..0000000
--- a/include/ndnboost/detail/bitmask.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//  ndnboost/detail/bitmask.hpp  ------------------------------------------------//
-
-//  Copyright Beman Dawes 2006
-
-//  Distributed under the Boost Software License, Version 1.0
-//  http://www.boost.org/LICENSE_1_0.txt
-
-//  Usage:  enum foo { a=1, b=2, c=4 };
-//          NDNBOOST_BITMASK( foo );
-//
-//          void f( foo arg );
-//          ...
-//          f( a | c );
-
-#ifndef NDNBOOST_BITMASK_HPP
-#define NDNBOOST_BITMASK_HPP
-
-#include <ndnboost/cstdint.hpp>
-
-#define NDNBOOST_BITMASK(Bitmask)                                            \
-                                                                          \
-  inline Bitmask operator| (Bitmask x , Bitmask y )                       \
-  { return static_cast<Bitmask>( static_cast<ndnboost::int_least32_t>(x)     \
-      | static_cast<ndnboost::int_least32_t>(y)); }                          \
-                                                                          \
-  inline Bitmask operator& (Bitmask x , Bitmask y )                       \
-  { return static_cast<Bitmask>( static_cast<ndnboost::int_least32_t>(x)     \
-      & static_cast<ndnboost::int_least32_t>(y)); }                          \
-                                                                          \
-  inline Bitmask operator^ (Bitmask x , Bitmask y )                       \
-  { return static_cast<Bitmask>( static_cast<ndnboost::int_least32_t>(x)     \
-      ^ static_cast<ndnboost::int_least32_t>(y)); }                          \
-                                                                          \
-  inline Bitmask operator~ (Bitmask x )                                   \
-  { return static_cast<Bitmask>(~static_cast<ndnboost::int_least32_t>(x)); } \
-                                                                          \
-  inline Bitmask & operator&=(Bitmask & x , Bitmask y)                    \
-  { x = x & y ; return x ; }                                              \
-                                                                          \
-  inline Bitmask & operator|=(Bitmask & x , Bitmask y)                    \
-  { x = x | y ; return x ; }                                              \
-                                                                          \
-  inline Bitmask & operator^=(Bitmask & x , Bitmask y)                    \
-  { x = x ^ y ; return x ; }                                              
-
-#endif // NDNBOOST_BITMASK_HPP
-
diff --git a/include/ndnboost/detail/call_traits.hpp b/include/ndnboost/detail/call_traits.hpp
deleted file mode 100644
index 410f4ae..0000000
--- a/include/ndnboost/detail/call_traits.hpp
+++ /dev/null
@@ -1,172 +0,0 @@
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/utility for most recent version including documentation.
-
-// call_traits: defines typedefs for function usage
-// (see libs/utility/call_traits.htm)
-
-/* Release notes:
-   23rd July 2000:
-      Fixed array specialization. (JM)
-      Added Borland specific fixes for reference types
-      (issue raised by Steve Cleary).
-*/
-
-#ifndef NDNBOOST_DETAIL_CALL_TRAITS_HPP
-#define NDNBOOST_DETAIL_CALL_TRAITS_HPP
-
-#ifndef NDNBOOST_CONFIG_HPP
-#include <ndnboost/config.hpp>
-#endif
-#include <cstddef>
-
-#include <ndnboost/type_traits/is_arithmetic.hpp>
-#include <ndnboost/type_traits/is_enum.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost{
-
-namespace detail{
-
-template <typename T, bool small_>
-struct ct_imp2
-{
-   typedef const T& param_type;
-};
-
-template <typename T>
-struct ct_imp2<T, true>
-{
-   typedef const T param_type;
-};
-
-template <typename T, bool isp, bool b1, bool b2>
-struct ct_imp
-{
-   typedef const T& param_type;
-};
-
-template <typename T, bool isp, bool b2>
-struct ct_imp<T, isp, true, b2>
-{
-   typedef typename ct_imp2<T, sizeof(T) <= sizeof(void*)>::param_type param_type;
-};
-
-template <typename T, bool isp, bool b1>
-struct ct_imp<T, isp, b1, true>
-{
-   typedef typename ct_imp2<T, sizeof(T) <= sizeof(void*)>::param_type param_type;
-};
-
-template <typename T, bool b1, bool b2>
-struct ct_imp<T, true, b1, b2>
-{
-   typedef const T param_type;
-};
-
-}
-
-template <typename T>
-struct call_traits
-{
-public:
-   typedef T value_type;
-   typedef T& reference;
-   typedef const T& const_reference;
-   //
-   // C++ Builder workaround: we should be able to define a compile time
-   // constant and pass that as a single template parameter to ct_imp<T,bool>,
-   // however compiler bugs prevent this - instead pass three bool's to
-   // ct_imp<T,bool,bool,bool> and add an extra partial specialisation
-   // of ct_imp to handle the logic. (JM)
-   typedef typename ndnboost::detail::ct_imp<
-      T,
-      ::ndnboost::is_pointer<T>::value,
-      ::ndnboost::is_arithmetic<T>::value,
-      ::ndnboost::is_enum<T>::value
-   >::param_type param_type;
-};
-
-template <typename T>
-struct call_traits<T&>
-{
-   typedef T& value_type;
-   typedef T& reference;
-   typedef const T& const_reference;
-   typedef T& param_type;  // hh removed const
-};
-
-#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
-// references as distinct types...
-template <typename T>
-struct call_traits<T&const>
-{
-   typedef T& value_type;
-   typedef T& reference;
-   typedef const T& const_reference;
-   typedef T& param_type;  // hh removed const
-};
-template <typename T>
-struct call_traits<T&volatile>
-{
-   typedef T& value_type;
-   typedef T& reference;
-   typedef const T& const_reference;
-   typedef T& param_type;  // hh removed const
-};
-template <typename T>
-struct call_traits<T&const volatile>
-{
-   typedef T& value_type;
-   typedef T& reference;
-   typedef const T& const_reference;
-   typedef T& param_type;  // hh removed const
-};
-
-template <typename T>
-struct call_traits< T * >
-{
-   typedef T * value_type;
-   typedef T * & reference;
-   typedef T * const & const_reference;
-   typedef T * const param_type;  // hh removed const
-};
-#endif
-#if !defined(NDNBOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <typename T, std::size_t N>
-struct call_traits<T [N]>
-{
-private:
-   typedef T array_type[N];
-public:
-   // degrades array to pointer:
-   typedef const T* value_type;
-   typedef array_type& reference;
-   typedef const array_type& const_reference;
-   typedef const T* const param_type;
-};
-
-template <typename T, std::size_t N>
-struct call_traits<const T [N]>
-{
-private:
-   typedef const T array_type[N];
-public:
-   // degrades array to pointer:
-   typedef const T* value_type;
-   typedef array_type& reference;
-   typedef const array_type& const_reference;
-   typedef const T* const param_type;
-};
-#endif
-
-}
-
-#endif // NDNBOOST_DETAIL_CALL_TRAITS_HPP
diff --git a/include/ndnboost/detail/container_fwd.hpp b/include/ndnboost/detail/container_fwd.hpp
deleted file mode 100644
index 7081f07..0000000
--- a/include/ndnboost/detail/container_fwd.hpp
+++ /dev/null
@@ -1,162 +0,0 @@
-
-// Copyright 2005-2011 Daniel James.
-// 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)
-
-// Note: if you change this include guard, you also need to change
-// container_fwd_compile_fail.cpp
-#if !defined(NDNBOOST_DETAIL_CONTAINER_FWD_HPP)
-#define NDNBOOST_DETAIL_CONTAINER_FWD_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020) && \
-    !defined(NDNBOOST_DETAIL_TEST_CONFIG_ONLY)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-////////////////////////////////////////////////////////////////////////////////
-//                                                                            //
-// Define NDNBOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to      //
-// forward declare standard containers.                                       //
-//                                                                            //
-// NDNBOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it //
-// normally doesn't.                                                          //
-//                                                                            //
-// NDNBOOST_DETAIL_NO_CONTAINER_FWD overrides NDNBOOST_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 NDNBOOST_DETAIL_NO_CONTAINER_FWD
-#  elif defined(__LIBCOMO__)
-     // Comeau STL:
-#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
-#  elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
-     // Rogue Wave library:
-#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
-#  elif defined(_LIBCPP_VERSION)
-     // libc++
-#    define NDNBOOST_DETAIL_NO_CONTAINER_FWD
-#  elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
-     // GNU libstdc++ 3
-     //
-     // Disable forwarding for all recent versions, as the library has a
-     // versioned namespace mode, and I don't know how to detect it.
-#    if __GLIBCXX__ >= 20070513 \
-        || defined(_GLIBCXX_DEBUG) \
-        || defined(_GLIBCXX_PARALLEL) \
-        || defined(_GLIBCXX_PROFILE)
-#      define NDNBOOST_DETAIL_NO_CONTAINER_FWD
-#    else
-#      if defined(__GLIBCXX__) && __GLIBCXX__ >= 20040530
-#        define NDNBOOST_CONTAINER_FWD_COMPLEX_STRUCT
-#      endif
-#    endif
-#  elif defined(__STL_CONFIG_H)
-     // generic SGI STL
-     //
-     // Forward declaration seems to be okay, but it has a couple of odd
-     // implementations.
-#    define NDNBOOST_CONTAINER_FWD_BAD_BITSET
-#    if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG)
-#      define NDNBOOST_CONTAINER_FWD_BAD_DEQUE
-#     endif
-#  elif defined(__MSL_CPP__)
-     // MSL standard lib:
-#    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 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 NDNBOOST_DETAIL_NO_CONTAINER_FWD
-#  endif
-#endif
-
-#if !defined(NDNBOOST_DETAIL_TEST_CONFIG_ONLY)
-
-#if defined(NDNBOOST_DETAIL_NO_CONTAINER_FWD) && \
-    !defined(NDNBOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
-
-#include <deque>
-#include <list>
-#include <vector>
-#include <map>
-#include <set>
-#include <bitset>
-#include <string>
-#include <complex>
-
-#else
-
-#include <cstddef>
-
-#if defined(NDNBOOST_CONTAINER_FWD_BAD_DEQUE)
-#include <deque>
-#endif
-
-#if defined(NDNBOOST_CONTAINER_FWD_BAD_BITSET)
-#include <bitset>
-#endif
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(push)
-#pragma warning(disable:4099) // struct/class mismatch in fwd declarations
-#endif
-
-namespace std
-{
-    template <class T> class allocator;
-    template <class charT, class traits, class Allocator> class basic_string;
-
-#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(NDNBOOST_CONTAINER_FWD_COMPLEX_STRUCT)
-    template <class T> struct complex;
-#else
-    template <class T> class complex;
-#endif
-
-#if !defined(NDNBOOST_CONTAINER_FWD_BAD_DEQUE)
-    template <class T, class Allocator> class deque;
-#endif
-
-    template <class T, class Allocator> class list;
-    template <class T, class Allocator> class vector;
-    template <class Key, class T, class Compare, class Allocator> class map;
-    template <class Key, class T, class Compare, class Allocator>
-    class multimap;
-    template <class Key, class Compare, class Allocator> class set;
-    template <class Key, class Compare, class Allocator> class multiset;
-
-#if !defined(NDNBOOST_CONTAINER_FWD_BAD_BITSET)
-    template <size_t N> class bitset;
-#endif
-    template <class T1, class T2> struct pair;
-}
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(pop)
-#endif
-
-#endif // NDNBOOST_DETAIL_NO_CONTAINER_FWD &&
-       // !defined(NDNBOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)
-
-#endif // NDNBOOST_DETAIL_TEST_CONFIG_ONLY
-
-#endif
diff --git a/include/ndnboost/detail/endian.hpp b/include/ndnboost/detail/endian.hpp
deleted file mode 100644
index c07bd00..0000000
--- a/include/ndnboost/detail/endian.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-// Copyright 2005 Caleb Epstein
-// Copyright 2006 John Maddock
-// Copyright 2010 Rene Rivera
-// Distributed under the Boost Software License, Version 1.0. (See accompany-
-// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-/*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation.  Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose.  It is provided "as is" without express or implied warranty.
- */
-
-/*
- * Copyright notice reproduced from <ndnboost/detail/limits.hpp>, from
- * which this code was originally taken.
- *
- * Modified by Caleb Epstein to use <endian.h> with GNU libc and to
- * defined the NDNBOOST_ENDIAN macro.
- */
-
-#ifndef NDNBOOST_DETAIL_ENDIAN_HPP
-#define NDNBOOST_DETAIL_ENDIAN_HPP
-
-//
-// Special cases come first:
-//
-#if defined (__GLIBC__)
-// GNU libc offers the helpful header <endian.h> which defines
-// __BYTE_ORDER
-# include <endian.h>
-# if (__BYTE_ORDER == __LITTLE_ENDIAN)
-#  define NDNBOOST_LITTLE_ENDIAN
-# elif (__BYTE_ORDER == __BIG_ENDIAN)
-#  define NDNBOOST_BIG_ENDIAN
-# elif (__BYTE_ORDER == __PDP_ENDIAN)
-#  define NDNBOOST_PDP_ENDIAN
-# else
-#  error Unknown machine endianness detected.
-# endif
-# define NDNBOOST_BYTE_ORDER __BYTE_ORDER
-
-#elif defined(__NetBSD__) || defined(__FreeBSD__) || \
-    defined(__OpenBSD__) || (__DragonFly__)
-//
-// BSD has endian.h, see https://svn.boost.org/trac/boost/ticket/6013
-#  if defined(__OpenBSD__)
-#  include <machine/endian.h>
-#  else
-#  include <sys/endian.h>
-#  endif
-# if (_BYTE_ORDER == _LITTLE_ENDIAN)
-#  define NDNBOOST_LITTLE_ENDIAN
-# elif (_BYTE_ORDER == _BIG_ENDIAN)
-#  define NDNBOOST_BIG_ENDIAN
-# elif (_BYTE_ORDER == _PDP_ENDIAN)
-#  define NDNBOOST_PDP_ENDIAN
-# else
-#  error Unknown machine endianness detected.
-# endif
-# define NDNBOOST_BYTE_ORDER _BYTE_ORDER
-
-#elif defined( __ANDROID__ )
-// Adroid specific code, see: https://svn.boost.org/trac/boost/ticket/7528
-// Here we can use machine/_types.h, see:
-// http://stackoverflow.com/questions/6212951/endianness-of-android-ndk
-# include "machine/_types.h"
-# ifdef __ARMEB__
-#  define NDNBOOST_BIG_ENDIAN
-#  define NDNBOOST_BYTE_ORDER 4321
-# else
-#  define NDNBOOST_LITTLE_ENDIAN
-#  define NDNBOOST_BYTE_ORDER 1234
-# endif // __ARMEB__
-
-#elif defined( _XBOX )
-//
-// XBox is always big endian??
-//
-# 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 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 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 NDNBOOST_BIG_ENDIAN
-# define NDNBOOST_BYTE_ORDER 4321
-#elif defined(__i386__) || defined(__alpha__) \
-   || defined(__ia64) || defined(__ia64__) \
-   || defined(_M_IX86) || defined(_M_IA64) \
-   || defined(_M_ALPHA) || defined(__amd64) \
-   || defined(__amd64__) || defined(_M_AMD64) \
-   || defined(__x86_64) || defined(__x86_64__) \
-   || defined(_M_X64) || defined(__bfin__) \
-   || 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 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
-
-
-#endif
-
diff --git a/include/ndnboost/detail/fenv.hpp b/include/ndnboost/detail/fenv.hpp
deleted file mode 100644
index 90edcb0..0000000
--- a/include/ndnboost/detail/fenv.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2010      Bryce Lelbach
-
-    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)
-=============================================================================*/
-
-#include <ndnboost/config.hpp>
-
-#if defined(NDNBOOST_NO_FENV_H)
-  #error This platform does not have a floating point environment
-#endif
-
-#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 */
-#if defined(__clang__)       &&  (__clang_major__ < 3) &&    \
-    defined(__GNU_LIBRARY__) && /* up to version 5 */ \
-    defined(__GLIBC__) &&         /* version 6 + */ \
-    !defined(_FENV_H)
-  #define _FENV_H
-
-  #include <features.h>
-  #include <bits/fenv.h>
-
-  extern "C" {
-    extern int fegetexceptflag (fexcept_t*, int) __THROW;
-    extern int fesetexceptflag (__const fexcept_t*, int) __THROW;
-    extern int feclearexcept (int) __THROW;
-    extern int feraiseexcept (int) __THROW;
-    extern int fetestexcept (int) __THROW;
-    extern int fegetround (void) __THROW;
-    extern int fesetround (int) __THROW;
-    extern int fegetenv (fenv_t*) __THROW;
-    extern int fesetenv (__const fenv_t*) __THROW;
-    extern int feupdateenv (__const fenv_t*) __THROW;
-    extern int feholdexcept (fenv_t*) __THROW;
-
-    #ifdef __USE_GNU
-      extern int feenableexcept (int) __THROW;
-      extern int fedisableexcept (int) __THROW;
-      extern int fegetexcept (void) __THROW;
-    #endif
-  }
-
-  namespace std { namespace tr1 {
-    using ::fenv_t;
-    using ::fexcept_t;
-    using ::fegetexceptflag;
-    using ::fesetexceptflag;
-    using ::feclearexcept;
-    using ::feraiseexcept;
-    using ::fetestexcept;
-    using ::fegetround;
-    using ::fesetround;
-    using ::fegetenv;
-    using ::fesetenv;
-    using ::feupdateenv;
-    using ::feholdexcept;
-  } }
-
-#else /* if we're not using GNU's C stdlib, fenv.h should work with clang */
-  #if defined(__SUNPRO_CC) /* lol suncc */
-    #include <stdio.h>
-  #endif
-  
-  #include <fenv.h>
-
-#endif
-
-#endif /* NDNBOOST_DETAIL_FENV_HPP */
- 
diff --git a/include/ndnboost/detail/indirect_traits.hpp b/include/ndnboost/detail/indirect_traits.hpp
deleted file mode 100644
index 8cd9158..0000000
--- a/include/ndnboost/detail/indirect_traits.hpp
+++ /dev/null
@@ -1,487 +0,0 @@
-// Copyright David Abrahams 2002.
-// 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 INDIRECT_TRAITS_NDNBOOST_DWA2002131_HPP
-# define INDIRECT_TRAITS_NDNBOOST_DWA2002131_HPP
-# include <ndnboost/type_traits/is_function.hpp>
-# include <ndnboost/type_traits/is_reference.hpp>
-# include <ndnboost/type_traits/is_pointer.hpp>
-# include <ndnboost/type_traits/is_class.hpp>
-# include <ndnboost/type_traits/is_const.hpp>
-# include <ndnboost/type_traits/is_volatile.hpp>
-# include <ndnboost/type_traits/is_member_function_pointer.hpp>
-# include <ndnboost/type_traits/is_member_pointer.hpp>
-# include <ndnboost/type_traits/remove_cv.hpp>
-# include <ndnboost/type_traits/remove_reference.hpp>
-# include <ndnboost/type_traits/remove_pointer.hpp>
-
-# include <ndnboost/type_traits/detail/ice_and.hpp>
-# include <ndnboost/detail/workaround.hpp>
-
-# include <ndnboost/mpl/eval_if.hpp>
-# include <ndnboost/mpl/if.hpp>
-# include <ndnboost/mpl/bool.hpp>
-# include <ndnboost/mpl/and.hpp>
-# include <ndnboost/mpl/not.hpp>
-# include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-#  ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <ndnboost/detail/is_function_ref_tester.hpp>
-#  endif 
-
-namespace ndnboost { namespace detail {
-
-namespace indirect_traits {
-
-#  ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <class T>
-struct is_reference_to_const : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_const<T const&> : mpl::true_
-{
-};
-
-#   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_
-{
-};
-#   endif 
-
-template <class T>
-struct is_reference_to_function : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_function<T&> : is_function<T>
-{
-};
-
-template <class T>
-struct is_pointer_to_function : mpl::false_
-{
-};
-
-// There's no such thing as a pointer-to-cv-function, so we don't need
-// specializations for those
-template <class T>
-struct is_pointer_to_function<T*> : is_function<T>
-{
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer_impl : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer_impl<T&>
-    : is_member_function_pointer<typename remove_cv<T>::type>
-{
-};
-
-
-template <class T>
-struct is_reference_to_member_function_pointer
-    : is_reference_to_member_function_pointer_impl<T>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
-};
-
-template <class T>
-struct is_reference_to_function_pointer_aux
-    : mpl::and_<
-          is_reference<T>
-        , is_pointer_to_function<
-              typename remove_cv<
-                  typename remove_reference<T>::type
-              >::type
-          >
-      >
-{
-    // There's no such thing as a pointer-to-cv-function, so we don't need specializations for those
-};
-
-template <class T>
-struct is_reference_to_function_pointer
-    : mpl::if_<
-          is_reference_to_function<T>
-        , mpl::false_
-        , is_reference_to_function_pointer_aux<T>
-     >::type
-{
-};
-
-template <class T>
-struct is_reference_to_non_const
-    : mpl::and_<
-          is_reference<T>
-        , mpl::not_<
-             is_reference_to_const<T>
-          >
-      >
-{
-};
-
-template <class T>
-struct is_reference_to_volatile : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_volatile<T volatile&> : mpl::true_
-{
-};
-
-#   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_
-{
-};
-#   endif 
-
-
-template <class T>
-struct is_reference_to_pointer : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T*&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* const&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* volatile&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* const volatile&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_class
-    : mpl::and_<
-          is_reference<T>
-        , is_class<
-              typename remove_cv<
-                  typename remove_reference<T>::type
-              >::type
-          >
-      >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
-};
-
-template <class T>
-struct is_pointer_to_class
-    : mpl::and_<
-          is_pointer<T>
-        , is_class<
-              typename remove_cv<
-                  typename remove_pointer<T>::type
-              >::type
-          >
-      >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T))
-};
-
-#  else
-
-using namespace ndnboost::detail::is_function_ref_tester_;
-
-typedef char (&inner_yes_type)[3];
-typedef char (&inner_no_type)[2];
-typedef char (&outer_no_type)[1];
-
-template <typename V>
-struct is_const_help
-{
-    typedef typename mpl::if_<
-          is_const<V>
-        , inner_yes_type
-        , inner_no_type
-        >::type type;
-};
-
-template <typename V>
-struct is_volatile_help
-{
-    typedef typename mpl::if_<
-          is_volatile<V>
-        , inner_yes_type
-        , inner_no_type
-        >::type type;
-};
-
-template <typename V>
-struct is_pointer_help
-{
-    typedef typename mpl::if_<
-          is_pointer<V>
-        , inner_yes_type
-        , inner_no_type
-        >::type type;
-};
-
-template <typename V>
-struct is_class_help
-{
-    typedef typename mpl::if_<
-          is_class<V>
-        , inner_yes_type
-        , inner_no_type
-        >::type type;
-};
-
-template <class T>
-struct is_reference_to_function_aux
-{
-    static T t;
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value = sizeof(detail::is_function_ref_tester(t,0)) == sizeof(::ndnboost::type_traits::yes_type));
-    typedef mpl::bool_<value> type;
- };
-
-template <class T>
-struct is_reference_to_function
-    : mpl::if_<is_reference<T>, is_reference_to_function_aux<T>, mpl::bool_<false> >::type
-{
-};
-
-template <class T>
-struct is_pointer_to_function_aux
-{
-    static T t;
-    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;
-};
-
-template <class T>
-struct is_pointer_to_function
-    : mpl::if_<is_pointer<T>, is_pointer_to_function_aux<T>, mpl::bool_<false> >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_function,(T))
-};
-
-struct false_helper1
-{
-    template <class T>
-    struct apply : mpl::false_
-    {
-    };
-};
-
-template <typename V>
-typename is_const_help<V>::type reference_to_const_helper(V&);    
-outer_no_type
-reference_to_const_helper(...);
-
-struct true_helper1
-{
-    template <class T>
-    struct apply
-    {
-        static T t;
-        NDNBOOST_STATIC_CONSTANT(
-            bool, value
-            = sizeof(reference_to_const_helper(t)) == sizeof(inner_yes_type));
-        typedef mpl::bool_<value> type;
-    };
-};
-
-template <bool ref = true>
-struct is_reference_to_const_helper1 : true_helper1
-{
-};
-
-template <>
-struct is_reference_to_const_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_const
-    : is_reference_to_const_helper1<is_reference<T>::value>::template apply<T>
-{
-};
-
-
-template <bool ref = true>
-struct is_reference_to_non_const_helper1
-{
-    template <class T>
-    struct apply
-    {
-        static T t;
-        NDNBOOST_STATIC_CONSTANT(
-            bool, value
-            = sizeof(reference_to_const_helper(t)) == sizeof(inner_no_type));
-        
-        typedef mpl::bool_<value> type;
-    };
-};
-
-template <>
-struct is_reference_to_non_const_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_non_const
-    : is_reference_to_non_const_helper1<is_reference<T>::value>::template apply<T>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_non_const,(T))
-};
-
-
-template <typename V>
-typename is_volatile_help<V>::type reference_to_volatile_helper(V&);    
-outer_no_type
-reference_to_volatile_helper(...);
-
-template <bool ref = true>
-struct is_reference_to_volatile_helper1
-{
-    template <class T>
-    struct apply
-    {
-        static T t;
-        NDNBOOST_STATIC_CONSTANT(
-            bool, value
-            = sizeof(reference_to_volatile_helper(t)) == sizeof(inner_yes_type));
-        typedef mpl::bool_<value> type;
-    };
-};
-
-template <>
-struct is_reference_to_volatile_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_volatile
-    : is_reference_to_volatile_helper1<is_reference<T>::value>::template apply<T>
-{
-};
-
-template <typename V>
-typename is_pointer_help<V>::type reference_to_pointer_helper(V&);
-outer_no_type reference_to_pointer_helper(...);
-
-template <class T>
-struct reference_to_pointer_impl
-{
-    static T t;
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value
-        = (sizeof((reference_to_pointer_helper)(t)) == sizeof(inner_yes_type))
-        );
-    
-    typedef mpl::bool_<value> type;
-};
-    
-template <class T>
-struct is_reference_to_pointer
-  : mpl::eval_if<is_reference<T>, reference_to_pointer_impl<T>, mpl::false_>::type
-{   
-    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
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_function_pointer,(T))
-};
-
-
-template <class T>
-struct is_member_function_pointer_help
-    : mpl::if_<is_member_function_pointer<T>, inner_yes_type, inner_no_type>
-{};
-
-template <typename V>
-typename is_member_function_pointer_help<V>::type member_function_pointer_helper(V&);
-outer_no_type member_function_pointer_helper(...);
-
-template <class T>
-struct is_pointer_to_member_function_aux
-{
-    static T t;
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value
-        = sizeof((member_function_pointer_helper)(t)) == sizeof(inner_yes_type));
-    typedef mpl::bool_<value> type;
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer
-    : mpl::if_<
-        is_reference<T>
-        , is_pointer_to_member_function_aux<T>
-        , mpl::bool_<false>
-     >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
-};
-
-template <typename V>
-typename is_class_help<V>::type reference_to_class_helper(V const volatile&);
-outer_no_type reference_to_class_helper(...);
-
-template <class T>
-struct is_reference_to_class
-{
-    static T t;
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value
-        = (is_reference<T>::value
-           & (sizeof(reference_to_class_helper(t)) == sizeof(inner_yes_type)))
-        );
-    typedef mpl::bool_<value> type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
-};
-
-template <typename V>
-typename is_class_help<V>::type pointer_to_class_helper(V const volatile*);
-outer_no_type pointer_to_class_helper(...);
-
-template <class T>
-struct is_pointer_to_class
-{
-    static T t;
-    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 // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION 
-
-}
-
-using namespace indirect_traits;
-
-}} // namespace ndnboost::python::detail
-
-#endif // INDIRECT_TRAITS_NDNBOOST_DWA2002131_HPP
diff --git a/include/ndnboost/detail/interlocked.hpp b/include/ndnboost/detail/interlocked.hpp
deleted file mode 100644
index 5c480d5..0000000
--- a/include/ndnboost/detail/interlocked.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-#ifndef NDNBOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
-#define NDNBOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/interlocked.hpp
-//
-//  Copyright 2005 Peter Dimov
-//
-//  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)
-//
-
-#include <ndnboost/config.hpp>
-
-#if defined( NDNBOOST_USE_WINDOWS_H )
-
-# include <windows.h>
-
-# 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)
-
-#if _WIN32_WCE >= 0x600
-
-extern "C" long __cdecl _InterlockedIncrement( long volatile * );
-extern "C" long __cdecl _InterlockedDecrement( long volatile * );
-extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long );
-extern "C" long __cdecl _InterlockedExchange( long volatile *, long );
-extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long );
-
-# 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
-
-extern "C" long __cdecl InterlockedIncrement( long* );
-extern "C" long __cdecl InterlockedDecrement( long* );
-extern "C" long __cdecl InterlockedCompareExchange( long*, long, long );
-extern "C" long __cdecl InterlockedExchange( long*, long );
-extern "C" long __cdecl InterlockedExchangeAdd( long*, long );
-
-# 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 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( NDNBOOST_MSVC ) || defined( NDNBOOST_INTEL_WIN )
-
-#if defined( NDNBOOST_MSVC ) && NDNBOOST_MSVC >= 1600
-
-#include <intrin.h>
-
-#elif defined( __CLRCALL_PURE_OR_CDECL )
-
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedIncrement( long volatile * );
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedDecrement( long volatile * );
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedCompareExchange( long volatile *, long, long );
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedExchange( long volatile *, long );
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedExchangeAdd( long volatile *, long );
-
-#else
-
-extern "C" long __cdecl _InterlockedIncrement( long volatile * );
-extern "C" long __cdecl _InterlockedDecrement( long volatile * );
-extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long );
-extern "C" long __cdecl _InterlockedExchange( long volatile *, long );
-extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long );
-
-#endif
-
-# pragma intrinsic( _InterlockedIncrement )
-# pragma intrinsic( _InterlockedDecrement )
-# pragma intrinsic( _InterlockedCompareExchange )
-# pragma intrinsic( _InterlockedExchange )
-# pragma intrinsic( _InterlockedExchangeAdd )
-
-# if defined(_M_IA64) || defined(_M_AMD64)
-
-extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* );
-extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* );
-
-#  pragma intrinsic( _InterlockedCompareExchangePointer )
-#  pragma intrinsic( _InterlockedExchangePointer )
-
-#  define NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
-#  define NDNBOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
-
-# else
-
-#  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 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 NDNBOOST_INTERLOCKED_IMPORT
-#else
-#define NDNBOOST_INTERLOCKED_IMPORT __declspec(dllimport)
-#endif
-
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-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" 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 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 NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER ::ndnboost::detail::InterlockedCompareExchangePointer
-#  define NDNBOOST_INTERLOCKED_EXCHANGE_POINTER ::ndnboost::detail::InterlockedExchangePointer
-# else
-#  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
-
-# error "Interlocked intrinsics not available"
-
-#endif
-
-#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
deleted file mode 100644
index 001ff5f..0000000
--- a/include/ndnboost/detail/is_function_ref_tester.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.  
-// 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)
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#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(NDNBOOST_TT_PREPROCESSING_MODE)
-#   include "ndnboost/preprocessor/iterate.hpp"
-#   include "ndnboost/preprocessor/enum_params.hpp"
-#   include "ndnboost/preprocessor/comma_if.hpp"
-#endif
-
-namespace ndnboost {
-namespace detail {
-namespace is_function_ref_tester_ {
-
-template <class T>
-ndnboost::type_traits::no_type NDNBOOST_TT_DECL is_function_ref_tester(T& ...);
-
-#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
-// preprocessor-generated part, don't edit by hand!
-
-template <class R>
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(), int);
-
-template <class R,class T0 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0), int);
-
-template <class R,class T0,class T1 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1), int);
-
-template <class R,class T0,class T1,class T2 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2), int);
-
-template <class R,class T0,class T1,class T2,class T3 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_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), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_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), int);
-
-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 >
-ndnboost::type_traits::yes_type is_function_ref_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), int);
-
-#else
-
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "ndnboost/detail/is_function_ref_tester.hpp"))
-#include NDNBOOST_PP_ITERATE()
-
-#endif // NDNBOOST_TT_PREPROCESSING_MODE
-
-} // namespace detail
-} // namespace python
-} // namespace ndnboost
-
-#endif // NDNBOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i NDNBOOST_PP_FRAME_ITERATION(1)
-
-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 // NDNBOOST_PP_IS_ITERATING
-
diff --git a/include/ndnboost/detail/is_incrementable.hpp b/include/ndnboost/detail/is_incrementable.hpp
deleted file mode 100644
index a9ff9ca..0000000
--- a/include/ndnboost/detail/is_incrementable.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-// Copyright David Abrahams 2004. Use, modification and distribution is
-// subject to 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 IS_INCREMENTABLE_NDNBOOST_DWA200415_HPP
-# define IS_INCREMENTABLE_NDNBOOST_DWA200415_HPP
-
-# include <ndnboost/type_traits/detail/template_arity_spec.hpp>
-# include <ndnboost/type_traits/remove_cv.hpp>
-# include <ndnboost/mpl/aux_/lambda_support.hpp>
-# include <ndnboost/mpl/bool.hpp>
-# include <ndnboost/detail/workaround.hpp>
-
-// Must be the last include
-# include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost { namespace detail { 
-
-// is_incrementable<T> metafunction
-//
-// Requires: Given x of type T&, if the expression ++x is well-formed
-// it must have complete type; otherwise, it must neither be ambiguous
-// nor violate access.
-
-// This namespace ensures that ADL doesn't mess things up.
-namespace is_incrementable_
-{
-  // a type returned from operator++ when no increment is found in the
-  // type's own namespace
-  struct tag {};
-  
-  // any soaks up implicit conversions and makes the following
-  // operator++ less-preferred than any other such operator that
-  // might be found via ADL.
-  struct any { template <class T> any(T const&); };
-
-  // This is a last-resort operator++ for when none other is found
-# if NDNBOOST_WORKAROUND(__GNUC__, == 4) && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2
-  
-}
-
-namespace is_incrementable_2
-{
-  is_incrementable_::tag operator++(is_incrementable_::any const&);
-  is_incrementable_::tag operator++(is_incrementable_::any const&,int);
-}
-using namespace is_incrementable_2;
-
-namespace is_incrementable_
-{
-  
-# else
-  
-  tag operator++(any const&);
-  tag operator++(any const&,int);
-  
-# endif 
-
-# 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 NDNBOOST_comma(a,b) (a,b)
-# endif 
-
-# if defined(NDNBOOST_MSVC)
-#  pragma warning(push)
-#  pragma warning(disable:4913) // Warning about operator,
-# endif 
-
-  // two check overloads help us identify which operator++ was picked
-  char (& check_(tag) )[2];
-  
-  template <class T>
-  char check_(T const&);
-  
-
-  template <class T>
-  struct impl
-  {
-      static typename ndnboost::remove_cv<T>::type& x;
-
-      NDNBOOST_STATIC_CONSTANT(
-          bool
-        , value = sizeof(is_incrementable_::check_(NDNBOOST_comma(++x,0))) == 1
-      );
-  };
-
-  template <class T>
-  struct postfix_impl
-  {
-      static typename ndnboost::remove_cv<T>::type& x;
-
-      NDNBOOST_STATIC_CONSTANT(
-          bool
-        , value = sizeof(is_incrementable_::check_(NDNBOOST_comma(x++,0))) == 1
-      );
-  };
-
-# if defined(NDNBOOST_MSVC)
-#  pragma warning(pop)
-# endif 
-
-}
-
-# undef NDNBOOST_comma
-
-template<typename T> 
-struct is_incrementable 
-NDNBOOST_TT_AUX_BOOL_C_BASE(::ndnboost::detail::is_incrementable_::impl<T>::value)
-{ 
-    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 
-NDNBOOST_TT_AUX_BOOL_C_BASE(::ndnboost::detail::is_incrementable_::impl<T>::value)
-{ 
-    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
-
-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
-
-# include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // IS_INCREMENTABLE_NDNBOOST_DWA200415_HPP
diff --git a/include/ndnboost/detail/iterator.hpp b/include/ndnboost/detail/iterator.hpp
deleted file mode 100644
index 388a89b..0000000
--- a/include/ndnboost/detail/iterator.hpp
+++ /dev/null
@@ -1,494 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// 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)
-
-// Boost versions of
-//
-//    std::iterator_traits<>::iterator_category
-//    std::iterator_traits<>::difference_type
-//    std::distance()
-//
-// ...for all compilers and iterators
-//
-// Additionally, if X is a pointer
-//    std::iterator_traits<X>::pointer
-
-// Otherwise, if partial specialization is supported or X is not a pointer
-//    std::iterator_traits<X>::value_type
-//    std::iterator_traits<X>::pointer
-//    std::iterator_traits<X>::reference
-//
-// See http://www.boost.org for most recent version including documentation.
-
-// Revision History
-// 04 Mar 2001 - More attempted fixes for Intel C++ (David Abrahams)
-// 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 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
-//               before detecting is_pointer, in honor of the new type_traits
-//               semantics. (David Abrahams)
-// 13 Feb 2001 - Make it work with nearly all standard-conforming iterators
-//               under raw VC6. The one category remaining which will fail is
-//               that of iterators derived from std::iterator but not
-//               ndnboost::iterator and which redefine difference_type.
-// 11 Feb 2001 - Clean away code which can never be used (David Abrahams)
-// 09 Feb 2001 - Always have a definition for each traits member, even if it
-//               can't be properly deduced. These will be incomplete types in
-//               some cases (undefined<void>), but it helps suppress MSVC errors
-//               elsewhere (David Abrahams)
-// 07 Feb 2001 - Support for more of the traits members where possible, making
-//               this useful as a replacement for std::iterator_traits<T> when
-//               used as a default template parameter.
-// 06 Feb 2001 - Removed useless #includes of standard library headers
-//               (David Abrahams)
-
-#ifndef ITERATOR_NDNBOOST_DWA122600_HPP_
-# define ITERATOR_NDNBOOST_DWA122600_HPP_
-
-# include <ndnboost/config.hpp>
-# include <iterator>
-
-// STLPort 4.0 and betas have a bug when debugging is enabled and there is no
-// partial specialization: instead of an iterator_category typedef, the standard
-// container iterators have _Iterator_category.
-//
-// Also, whether debugging is enabled or not, there is a broken specialization
-// of std::iterator<output_iterator_tag,void,void,void,void> which has no
-// typedefs but iterator_category.
-# if defined(__SGI_STL_PORT)
-
-#  if (__SGI_STL_PORT <= 0x410) && !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) && defined(__STL_DEBUG)
-#   define NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-#  endif
-
-#  define NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-
-# endif // STLPort <= 4.1b4 && no partial specialization
-
-# if !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS)             \
-  && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-  && !defined(NDNBOOST_MSVC_STD_ITERATOR)
-    
-namespace ndnboost { namespace detail {
-
-// Define a new template so it can be specialized
-template <class Iterator>
-struct iterator_traits
-    : std::iterator_traits<Iterator>
-{};
-using std::distance;
-
-}} // namespace ndnboost::detail
-
-# else
-
-#  if  !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)  \
-    && !defined(NDNBOOST_MSVC_STD_ITERATOR)
-
-// This is the case where everything conforms except NDNBOOST_NO_STD_ITERATOR_TRAITS
-
-namespace ndnboost { namespace detail {
-
-// Rogue Wave Standard Library fools itself into thinking partial
-// specialization is missing on some platforms (e.g. Sun), so fails to
-// supply iterator_traits!
-template <class Iterator>
-struct iterator_traits
-{
-    typedef typename Iterator::value_type value_type;
-    typedef typename Iterator::reference reference;
-    typedef typename Iterator::pointer pointer;
-    typedef typename Iterator::difference_type difference_type;
-    typedef typename Iterator::iterator_category iterator_category;
-};
-
-template <class T>
-struct iterator_traits<T*>
-{
-    typedef T value_type;
-    typedef T& reference;
-    typedef T* pointer;
-    typedef std::ptrdiff_t difference_type;
-    typedef std::random_access_iterator_tag iterator_category;
-};
-
-template <class T>
-struct iterator_traits<T const*>
-{
-    typedef T value_type;
-    typedef T const& reference;
-    typedef T const* pointer;
-    typedef std::ptrdiff_t difference_type;
-    typedef std::random_access_iterator_tag iterator_category;
-};
-
-}} // namespace ndnboost::detail
-
-#  else
-
-# include <ndnboost/type_traits/remove_const.hpp>
-# include <ndnboost/type_traits/detail/yes_no_type.hpp>
-# include <ndnboost/type_traits/is_pointer.hpp>
-
-# ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#  include <ndnboost/type_traits/is_same.hpp>
-#  include <ndnboost/type_traits/remove_pointer.hpp>
-# endif
-# ifdef NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-#  include <ndnboost/type_traits/is_base_and_derived.hpp>
-# endif
-
-# include <ndnboost/mpl/if.hpp>
-# include <ndnboost/mpl/has_xxx.hpp>
-# include <cstddef>
-
-// should be the last #include
-# include "ndnboost/type_traits/detail/bool_trait_def.hpp"
-
-namespace ndnboost { namespace detail {
-
-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 --
-//
-//   A metafunction returning true iff T is a mutable iterator type
-//   with a nested value_type. Will only work portably with iterators
-//   whose operator* returns a reference, but that seems to be OK for
-//   the iterators supplied by Dinkumware. Some input iterators may
-//   compile-time if they arrive here, and if the compiler is strict
-//   about not taking the address of an rvalue.
-
-// 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*, 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
-// makes sure we can still work with non-lvalue iterators.
-template <class T> T* mutable_iterator_lvalue_helper(T& x);
-int mutable_iterator_lvalue_helper(...);
-
-
-// This one detects output iterators such as ostream_iterator which
-// return references to themselves.
-template <class T>
-type_traits::yes_type is_mutable_iterator_helper(T const*, T const*);
-
-type_traits::no_type is_mutable_iterator_helper(...);
-
-template <class T>
-struct is_mutable_iterator_impl
-{
-    static T t;
-    
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value = sizeof(
-            detail::is_mutable_iterator_helper(
-                (T*)0
-              , mutable_iterator_lvalue_helper(*t) // like &*t
-            ))
-        == sizeof(type_traits::yes_type)
-    );
-};
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(
-    is_mutable_iterator,T,::ndnboost::detail::is_mutable_iterator_impl<T>::value)
-
-
-// is_full_iterator_traits --
-//
-//   A metafunction returning true iff T has all the requisite nested
-//   types to satisfy the requirements for a fully-conforming
-//   iterator_traits implementation.
-template <class T>
-struct is_full_iterator_traits_impl
-{
-    enum { value = 
-           has_value_type<T>::value 
-           & has_reference<T>::value 
-           & has_pointer<T>::value 
-           & has_difference_type<T>::value
-           & has_iterator_category<T>::value
-    };
-};
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(
-    is_full_iterator_traits,T,::ndnboost::detail::is_full_iterator_traits_impl<T>::value)
-
-
-#   ifdef NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(_Iterator_category)
-    
-// is_stlport_40_debug_iterator --
-//
-//   A metafunction returning true iff T has all the requisite nested
-//   types to satisfy the requirements of an STLPort 4.0 debug iterator
-//   iterator_traits implementation.
-template <class T>
-struct is_stlport_40_debug_iterator_impl
-{
-    enum { value = 
-           has_value_type<T>::value 
-           & has_reference<T>::value 
-           & has_pointer<T>::value 
-           & has_difference_type<T>::value
-           & has__Iterator_category<T>::value
-    };
-};
-
-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>
-struct stlport_40_debug_iterator_traits
-{
-    typedef typename T::value_type value_type;
-    typedef typename T::reference reference;
-    typedef typename T::pointer pointer;
-    typedef typename T::difference_type difference_type;
-    typedef typename T::_Iterator_category iterator_category;
-};
-#   endif // NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF 
-
-template <class T> struct pointer_iterator_traits;
-
-#   ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <class T>
-struct pointer_iterator_traits<T*>
-{
-    typedef typename remove_const<T>::type value_type;
-    typedef T* pointer;
-    typedef T& reference;
-    typedef std::random_access_iterator_tag iterator_category;
-    typedef std::ptrdiff_t difference_type;
-};
-#   else
-
-// In case of no template partial specialization, and if T is a
-// pointer, iterator_traits<T>::value_type can still be computed.  For
-// 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_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_NDNBOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
-      , typename remove_const<
-            typename remove_pointer<P>::type
-        >::type
-    >
-{
-};
-
-
-template<class P>
-struct pointer_reference
-  : mpl::if_<
-        is_same<P, typename remove_pointer<P>::type>
-      , please_invoke_NDNBOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
-      , typename remove_pointer<P>::type&
-    >
-{
-};
-
-template <class T>
-struct pointer_iterator_traits
-{
-    typedef T pointer;
-    typedef std::random_access_iterator_tag iterator_category;
-    typedef std::ptrdiff_t difference_type;
-
-    typedef typename pointer_value_type<T>::type value_type;
-    typedef typename pointer_reference<T>::type reference;
-};
-
-#   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
-template <class Iterator>
-struct standard_iterator_traits
-{
-    typedef typename Iterator::difference_type difference_type;
-    typedef typename Iterator::value_type value_type;
-    typedef typename Iterator::pointer pointer;
-    typedef typename Iterator::reference reference;
-    typedef typename Iterator::iterator_category iterator_category;
-};
-
-template <class Iterator>
-struct msvc_stdlib_mutable_traits
-    : std::iterator_traits<Iterator>
-{
-    typedef typename std::iterator_traits<Iterator>::distance_type difference_type;
-    typedef typename std::iterator_traits<Iterator>::value_type* pointer;
-    typedef typename std::iterator_traits<Iterator>::value_type& reference;
-};
-
-template <class Iterator>
-struct msvc_stdlib_const_traits
-    : std::iterator_traits<Iterator>
-{
-    typedef typename std::iterator_traits<Iterator>::distance_type difference_type;
-    typedef const typename std::iterator_traits<Iterator>::value_type* pointer;
-    typedef const typename std::iterator_traits<Iterator>::value_type& reference;
-};
-
-#   ifdef NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-template <class Iterator>
-struct is_bad_output_iterator
-    : is_base_and_derived<
-        std::iterator<std::output_iterator_tag,void,void,void,void>
-        , Iterator>
-{
-};
-
-struct bad_output_iterator_traits
-{
-    typedef void value_type;
-    typedef void difference_type;
-    typedef std::output_iterator_tag iterator_category;
-    typedef void pointer;
-    typedef void reference;
-};
-#   endif
-
-// If we're looking at an MSVC6 (old Dinkumware) ``standard''
-// iterator, this will generate an appropriate traits class. 
-template <class Iterator>
-struct msvc_stdlib_iterator_traits
-    : mpl::if_<
-       is_mutable_iterator<Iterator>
-       , msvc_stdlib_mutable_traits<Iterator>
-       , msvc_stdlib_const_traits<Iterator>
-      >::type
-{};
-
-template <class Iterator>
-struct non_pointer_iterator_traits
-    : mpl::if_<
-        // if the iterator contains all the right nested types...
-        is_full_iterator_traits<Iterator>
-        // Use a standard iterator_traits implementation
-        , standard_iterator_traits<Iterator>
-#   ifdef NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-        // Check for STLPort 4.0 broken _Iterator_category type
-        , mpl::if_<
-             is_stlport_40_debug_iterator<Iterator>
-             , stlport_40_debug_iterator_traits<Iterator>
-#   endif
-        // Otherwise, assume it's a Dinkum iterator
-        , msvc_stdlib_iterator_traits<Iterator>
-#   ifdef NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-        >::type
-#   endif 
-    >::type
-{
-};
-
-template <class Iterator>
-struct iterator_traits_aux
-    : mpl::if_<
-        is_pointer<Iterator>
-        , pointer_iterator_traits<Iterator>
-        , non_pointer_iterator_traits<Iterator>
-    >::type
-{
-};
-
-template <class Iterator>
-struct iterator_traits
-{
-    // Explicit forwarding from base class needed to keep MSVC6 happy
-    // under some circumstances.
- private:
-#   ifdef NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-    typedef 
-    typename mpl::if_<
-        is_bad_output_iterator<Iterator>
-        , bad_output_iterator_traits
-        , iterator_traits_aux<Iterator>
-    >::type base;
-#   else
-    typedef iterator_traits_aux<Iterator> base;
-#   endif
- public:
-    typedef typename base::value_type value_type;
-    typedef typename base::pointer pointer;
-    typedef typename base::reference reference;
-    typedef typename base::difference_type difference_type;
-    typedef typename base::iterator_category iterator_category;
-};
-
-// This specialization cuts off ETI (Early Template Instantiation) for MSVC.
-template <> struct iterator_traits<int>
-{
-    typedef int value_type;
-    typedef int pointer;
-    typedef int reference;
-    typedef int difference_type;
-    typedef int iterator_category;
-};
-
-}} // namespace ndnboost::detail
-
-#  endif // workarounds
-
-namespace ndnboost { namespace detail {
-
-namespace iterator_traits_
-{
-  template <class Iterator, class Difference>
-  struct distance_select
-  {
-      static Difference execute(Iterator i1, const Iterator i2, ...)
-      {
-          Difference result = 0;
-          while (i1 != i2)
-          {
-              ++i1;
-              ++result;
-          }
-          return result;
-      }
-
-      static Difference execute(Iterator i1, const Iterator i2, std::random_access_iterator_tag*)
-      {
-          return i2 - i1;
-      }
-  };
-} // namespace ndnboost::detail::iterator_traits_
-
-template <class Iterator>
-inline typename iterator_traits<Iterator>::difference_type
-distance(Iterator first, Iterator last)
-{
-    typedef typename iterator_traits<Iterator>::difference_type diff_t;
-    typedef typename ::ndnboost::detail::iterator_traits<Iterator>::iterator_category iterator_category;
-    
-    return iterator_traits_::distance_select<Iterator,diff_t>::execute(
-        first, last, (iterator_category*)0);
-}
-
-}}
-
-# endif
-
-
-# undef NDNBOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-# undef NDNBOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-
-#endif // ITERATOR_NDNBOOST_DWA122600_HPP_
diff --git a/include/ndnboost/detail/lcast_precision.hpp b/include/ndnboost/detail/lcast_precision.hpp
deleted file mode 100644
index 2b0b2aa..0000000
--- a/include/ndnboost/detail/lcast_precision.hpp
+++ /dev/null
@@ -1,184 +0,0 @@
-// Copyright Alexander Nasonov & Paul A. Bristow 2006.
-
-// Use, modification and distribution are subject to 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 NDNBOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-#define NDNBOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-
-#include <climits>
-#include <ios>
-#include <limits>
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/integer_traits.hpp>
-
-#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(NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || \
-  (defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC<1310))
-
-#define NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
-#endif
-
-#ifdef NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
-#include <ndnboost/assert.hpp>
-#else
-#include <ndnboost/static_assert.hpp>
-#endif
-
-namespace ndnboost { namespace detail {
-
-class lcast_abstract_stub {};
-
-#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 NDNBOOST_NO_IS_ABSTRACT
-    typedef std::numeric_limits<T> limits; // No fix for SF:1358600.
-#else
-    typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_<
-        ndnboost::is_abstract<T>
-      , std::numeric_limits<lcast_abstract_stub>
-      , std::numeric_limits<T>
-      >::type limits;
-#endif
-
-    NDNBOOST_STATIC_CONSTANT(bool, use_default_precision =
-            !limits::is_specialized || limits::is_exact
-        );
-
-    NDNBOOST_STATIC_CONSTANT(bool, is_specialized_bin =
-            !use_default_precision &&
-            limits::radix == 2 && limits::digits > 0
-        );
-
-    NDNBOOST_STATIC_CONSTANT(bool, is_specialized_dec =
-            !use_default_precision &&
-            limits::radix == 10 && limits::digits10 > 0
-        );
-
-    NDNBOOST_STATIC_CONSTANT(std::streamsize, streamsize_max =
-            ndnboost::integer_traits<std::streamsize>::const_max
-        );
-
-    NDNBOOST_STATIC_CONSTANT(unsigned int, precision_dec = limits::digits10 + 1U);
-
-    NDNBOOST_STATIC_ASSERT(!is_specialized_dec ||
-            precision_dec <= streamsize_max + 0UL
-        );
-
-    NDNBOOST_STATIC_CONSTANT(unsigned long, precision_bin =
-            2UL + limits::digits * 30103UL / 100000UL
-        );
-
-    NDNBOOST_STATIC_ASSERT(!is_specialized_bin ||
-            (limits::digits + 0UL < ULONG_MAX / 30103UL &&
-            precision_bin > limits::digits10 + 0UL &&
-            precision_bin <= streamsize_max + 0UL)
-        );
-
-    NDNBOOST_STATIC_CONSTANT(std::streamsize, value =
-            is_specialized_bin ? precision_bin
-                               : is_specialized_dec ? precision_dec : 6
-        );
-};
-#endif
-
-template<class T>
-inline std::streamsize lcast_get_precision(T* = 0)
-{
-#ifndef NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
-    return lcast_precision<T>::value;
-#else // Follow lcast_precision algorithm at run-time:
-
-#ifdef NDNBOOST_NO_IS_ABSTRACT
-    typedef std::numeric_limits<T> limits; // No fix for SF:1358600.
-#else
-    typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_<
-        ndnboost::is_abstract<T>
-      , std::numeric_limits<lcast_abstract_stub>
-      , std::numeric_limits<T>
-      >::type limits;
-#endif
-
-    bool const use_default_precision =
-        !limits::is_specialized || limits::is_exact;
-
-    if(!use_default_precision)
-    { // Includes all built-in floating-point types, float, double ...
-      // and UDT types for which digits (significand bits) is defined (not zero)
-
-        bool const is_specialized_bin =
-            limits::radix == 2 && limits::digits > 0;
-        bool const is_specialized_dec =
-            limits::radix == 10 && limits::digits10 > 0;
-        std::streamsize const streamsize_max =
-            (ndnboost::integer_traits<std::streamsize>::max)();
-
-        if(is_specialized_bin)
-        { // Floating-point types with
-          // limits::digits defined by the specialization.
-
-            unsigned long const digits = limits::digits;
-            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.
-            NDNBOOST_ASSERT(
-                    digits < ULONG_MAX / 30103UL &&
-                    precision > limits::digits10 + 0UL &&
-                    precision <= streamsize_max + 0UL
-                );
-            return precision;
-        }
-        else if(is_specialized_dec)
-        {   // 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;
-            NDNBOOST_ASSERT(precision <= streamsize_max + 0UL);
-            return precision;
-        }
-    }
-
-    // Integral type (for which precision has no effect)
-    // or type T for which limits is NOT specialized,
-    // so assume stream precision remains the default 6 decimal digits.
-    // Warning: if your User-defined Floating-point type T is NOT specialized,
-    // then you may lose accuracy by only using 6 decimal digits.
-    // To avoid this, you need to specialize T with either
-    // radix == 2 and digits == the number of significand bits,
-    // OR
-    // radix = 10 and digits10 == the number of decimal digits.
-
-    return 6;
-#endif
-}
-
-template<class T>
-inline void lcast_set_precision(std::ios_base& stream, T*)
-{
-    stream.precision(lcast_get_precision<T>());
-}
-
-template<class Source, class Target>
-inline void lcast_set_precision(std::ios_base& stream, Source*, Target*)
-{
-    std::streamsize const s = lcast_get_precision(static_cast<Source*>(0));
-    std::streamsize const t = lcast_get_precision(static_cast<Target*>(0));
-    stream.precision(s > t ? s : t);
-}
-
-}}
-
-#endif //  NDNBOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-
diff --git a/include/ndnboost/detail/lightweight_mutex.hpp b/include/ndnboost/detail/lightweight_mutex.hpp
deleted file mode 100644
index 2860c1a..0000000
--- a/include/ndnboost/detail/lightweight_mutex.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef NDNBOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-#define NDNBOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/lightweight_mutex.hpp - lightweight mutex
-//
-//  Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.
-//
-//  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
-//
-
-#include <ndnboost/smart_ptr/detail/lightweight_mutex.hpp>
-
-#endif // #ifndef NDNBOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
diff --git a/include/ndnboost/detail/lightweight_test.hpp b/include/ndnboost/detail/lightweight_test.hpp
deleted file mode 100644
index 40e7cd6..0000000
--- a/include/ndnboost/detail/lightweight_test.hpp
+++ /dev/null
@@ -1,208 +0,0 @@
-#ifndef NDNBOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
-#define NDNBOOST_DETAIL_LIGHTWEIGHT_TEST_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/lightweight_test.hpp - lightweight test library
-//
-//  Copyright (c) 2002, 2009 Peter Dimov
-//  Copyright (2) Beman Dawes 2010, 2011
-//  Copyright (3) Ion Gaztanaga 2013
-//
-//  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
-//
-//    ---------------
-//
-//    If expression is false increases the error count 
-//    and outputs a message containing 'expression'
-//
-//  NDNBOOST_TEST(expression)
-//
-//    ---------------
-//
-//    Increases error count and outputs a message containing 'message'
-//
-//  NDNBOOST_ERROR(message)
-//
-//    ---------------
-//
-//    If 'expr1' != 'expr2' increases the error count 
-//    and outputs a message containing both expressions
-//
-//  NDNBOOST_TEST_EQ(expr1, expr2)
-//
-//    ---------------
-//
-//    If 'expr1' == 'expr2' increases the error count 
-//    and outputs a message containing both expressions
-//
-//  NDNBOOST_TEST_NE(expr1, expr2)
-//
-//    ---------------
-//
-//    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 NDNBOOST_NO_EXCEPTIONS is defined, this macro expands to nothing
-//    and 'expr' is not evaluated.
-//
-//  NDNBOOST_TEST_THROWS(expr, excep)
-//
-//    ---------------
-//
-//    Returns the error count
-//
-//  int ndnboost::report_errors()
-//
-
-#include <iostream>
-#include <ndnboost/current_function.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/detail/no_exceptions_support.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 NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
-# define NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM std::cerr
-#endif
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-struct report_errors_reminder
-{
-  bool called_report_errors_function;
-  report_errors_reminder() : called_report_errors_function(false) {}
- ~report_errors_reminder()
-  {
-    NDNBOOST_ASSERT(called_report_errors_function);  // verify report_errors() was called  
-  }
-};
-
-inline report_errors_reminder& report_errors_remind()
-{
-  static report_errors_reminder r;
-  return r;
-}
-
-inline int & test_errors()
-{
-    static int x = 0;
-    report_errors_remind();
-    return x;
-}
-
-inline void test_failed_impl(char const * expr, char const * file, int line, char const * function)
-{
-    NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
-      << file << "(" << line << "): test '" << expr << "' failed in function '"
-      << function << "'" << std::endl;
-    ++test_errors();
-}
-
-inline void error_impl(char const * msg, char const * file, int line, char const * function)
-{
-    NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
-      << file << "(" << line << "): " << msg << " in function '"
-      << function << "'" << std::endl;
-    ++test_errors();
-}
-
-inline void throw_failed_impl(char const * excep, char const * file, int line, char const * function)
-{
-   NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
-    << file << "(" << line << "): Exception '" << excep << "' not thrown in function '"
-    << function << "'" << std::endl;
-   ++test_errors();
-}
-
-template<class T, class U> inline void test_eq_impl( char const * expr1, char const * expr2,
-  char const * file, int line, char const * function, T const & t, U const & u )
-{
-    if( t == u )
-    {
-    }
-    else
-    {
-        NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
-            << file << "(" << line << "): test '" << expr1 << " == " << expr2
-            << "' failed in function '" << function << "': "
-            << "'" << t << "' != '" << u << "'" << std::endl;
-        ++test_errors();
-    }
-}
-
-template<class T, class U> inline void test_ne_impl( char const * expr1, char const * expr2,
-  char const * file, int line, char const * function, T const & t, U const & u )
-{
-    if( t != u )
-    {
-    }
-    else
-    {
-        NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
-            << file << "(" << line << "): test '" << expr1 << " != " << expr2
-            << "' failed in function '" << function << "': "
-            << "'" << t << "' == '" << u << "'" << std::endl;
-        ++test_errors();
-    }
-}
-
-} // namespace detail
-
-inline int report_errors()
-{
-    detail::report_errors_remind().called_report_errors_function = true;
-
-    int errors = detail::test_errors();
-
-    if( errors == 0 )
-    {
-        NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
-          << "No errors detected." << std::endl;
-        return 0;
-    }
-    else
-    {
-        NDNBOOST_LIGHTWEIGHT_TEST_OSTREAM
-          << errors << " error" << (errors == 1? "": "s") << " detected." << std::endl;
-        return 1;
-    }
-}
-
-} // namespace ndnboost
-
-#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__, NDNBOOST_CURRENT_FUNCTION); \
-      }                                                        \
-      catch(EXCEP const&) {                                    \
-      }                                                        \
-      catch(...) {                                             \
-         ::ndnboost::detail::throw_failed_impl                    \
-         (#EXCEP, __FILE__, __LINE__, NDNBOOST_CURRENT_FUNCTION); \
-      }                                                        \
-   //
-#else
-   #define NDNBOOST_TEST_THROWS( EXPR, EXCEP )
-#endif
-
-#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
deleted file mode 100644
index 037b18c..0000000
--- a/include/ndnboost/detail/no_exceptions_support.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef NDNBOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_
-#define NDNBOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-#  pragma once
-#endif
-
-//----------------------------------------------------------------------
-// (C) Copyright 2004 Pavel Vozenilek.
-// Use, modification and distribution is subject to 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)
-//
-//
-// This file contains helper macros used when exception support may be
-// 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 
-// or without exception support enabled.
-//
-
-/* Example of use:
-
-void foo() {
-  NDNBOOST_TRY {
-    ...
-  } NDNBOOST_CATCH(const std::bad_alloc&) {
-      ...
-      NDNBOOST_RETHROW
-  } NDNBOOST_CATCH(const std::exception& e) {
-      ...
-  }
-  NDNBOOST_CATCH_END
-}
-
-With exception support enabled it will expand into:
-
-void foo() {
-  { try {
-    ...
-  } catch (const std::bad_alloc&) {
-      ...
-      throw;
-  } catch (const std::exception& e) {
-      ...
-  }
-  }
-}
-
-With exception support disabled it will expand into:
-
-void foo() {
-  { if(true) {
-    ...
-  } else if (false) {
-      ...
-  } else if (false)  {
-      ...
-  }
-  }
-}
-*/
-//----------------------------------------------------------------------
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#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 NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
-#        define NDNBOOST_TRY { if ("")
-#        define NDNBOOST_CATCH(x) else if (!"")
-#    else
-#        define NDNBOOST_TRY { if (true)
-#        define NDNBOOST_CATCH(x) else if (false)
-#    endif
-#    define NDNBOOST_RETHROW
-#    define NDNBOOST_CATCH_END }
-#endif
-
-
-#endif 
diff --git a/include/ndnboost/detail/ob_call_traits.hpp b/include/ndnboost/detail/ob_call_traits.hpp
deleted file mode 100644
index ddbbb0c..0000000
--- a/include/ndnboost/detail/ob_call_traits.hpp
+++ /dev/null
@@ -1,168 +0,0 @@
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/utility for most recent version including documentation.
-//
-//  Crippled version for crippled compilers:
-//  see libs/utility/call_traits.htm
-//
-
-/* Release notes:
-   01st October 2000:
-      Fixed call_traits on VC6, using "poor man's partial specialisation",
-      using ideas taken from "Generative programming" by Krzysztof Czarnecki 
-      & Ulrich Eisenecker.
-*/
-
-#ifndef NDNBOOST_OB_CALL_TRAITS_HPP
-#define NDNBOOST_OB_CALL_TRAITS_HPP
-
-#ifndef NDNBOOST_CONFIG_HPP
-#include <ndnboost/config.hpp>
-#endif
-
-#ifndef NDNBOOST_ARITHMETIC_TYPE_TRAITS_HPP
-#include <ndnboost/type_traits/arithmetic_traits.hpp>
-#endif
-#ifndef NDNBOOST_COMPOSITE_TYPE_TRAITS_HPP
-#include <ndnboost/type_traits/composite_traits.hpp>
-#endif
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC6_MEMBER_TEMPLATES
-//
-// use member templates to emulate
-// partial specialisation:
-//
-namespace detail{
-
-template <class T>
-struct standard_call_traits
-{
-   typedef T value_type;
-   typedef T& reference;
-   typedef const T& const_reference;
-   typedef const T& param_type;
-};
-template <class T>
-struct simple_call_traits
-{
-   typedef T value_type;
-   typedef T& reference;
-   typedef const T& const_reference;
-   typedef const T param_type;
-};
-template <class T>
-struct reference_call_traits
-{
-   typedef T value_type;
-   typedef T reference;
-   typedef T const_reference;
-   typedef T param_type;
-};
-
-template <bool pointer, bool arithmetic, bool reference>
-struct call_traits_chooser
-{
-   template <class T>
-   struct rebind
-   {
-      typedef standard_call_traits<T> type;
-   };
-};
-
-template <>
-struct call_traits_chooser<true, false, false>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef simple_call_traits<T> type;
-   };
-};
-
-template <>
-struct call_traits_chooser<false, false, true>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef reference_call_traits<T> type;
-   };
-};
-
-template <bool size_is_small> 
-struct call_traits_sizeof_chooser2
-{
-   template <class T>
-   struct small_rebind
-   {
-      typedef simple_call_traits<T> small_type;
-   };
-};
-
-template<> 
-struct call_traits_sizeof_chooser2<false>
-{
-   template <class T>
-   struct small_rebind
-   {
-      typedef standard_call_traits<T> small_type;
-   };
-};
-
-template <>
-struct call_traits_chooser<false, true, false>
-{
-   template <class T>
-   struct rebind
-   {
-      enum { sizeof_choice = (sizeof(T) <= sizeof(void*)) };
-      typedef call_traits_sizeof_chooser2<(sizeof(T) <= sizeof(void*))> chooser;
-      typedef typename chooser::template small_rebind<T> bound_type;
-      typedef typename bound_type::small_type type;
-   };
-};
-
-} // namespace detail
-template <typename T>
-struct call_traits
-{
-private:
-    typedef detail::call_traits_chooser<
-         ::ndnboost::is_pointer<T>::value,
-         ::ndnboost::is_arithmetic<T>::value, 
-         ::ndnboost::is_reference<T>::value
-      > chooser;
-   typedef typename chooser::template rebind<T> bound_type;
-   typedef typename bound_type::type call_traits_type;
-public:
-   typedef typename call_traits_type::value_type       value_type;
-   typedef typename call_traits_type::reference        reference;
-   typedef typename call_traits_type::const_reference  const_reference;
-   typedef typename call_traits_type::param_type       param_type;
-};
-
-#else
-//
-// sorry call_traits is completely non-functional
-// blame your broken compiler:
-//
-
-template <typename T>
-struct call_traits
-{
-   typedef T value_type;
-   typedef T& reference;
-   typedef const T& const_reference;
-   typedef const T& param_type;
-};
-
-#endif // member templates
-
-}
-
-#endif // NDNBOOST_OB_CALL_TRAITS_HPP
diff --git a/include/ndnboost/detail/reference_content.hpp b/include/ndnboost/detail/reference_content.hpp
deleted file mode 100644
index 098d4ea..0000000
--- a/include/ndnboost/detail/reference_content.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost detail/reference_content.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// 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 NDNBOOST_DETAIL_REFERENCE_CONTENT_HPP
-#define NDNBOOST_DETAIL_REFERENCE_CONTENT_HPP
-
-#include "ndnboost/config.hpp"
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#   include "ndnboost/mpl/bool.hpp"
-#   include "ndnboost/type_traits/has_nothrow_copy.hpp"
-#else
-#   include "ndnboost/mpl/if.hpp"
-#   include "ndnboost/type_traits/is_reference.hpp"
-#endif
-
-#include "ndnboost/mpl/void.hpp"
-
-namespace ndnboost {
-
-namespace detail {
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) class template reference_content
-//
-// Non-Assignable wrapper for references.
-//
-template <typename RefT>
-class reference_content
-{
-private: // representation
-
-    RefT content_;
-
-public: // structors
-
-    ~reference_content()
-    {
-    }
-
-    reference_content(RefT r)
-        : content_( r )
-    {
-    }
-
-    reference_content(const reference_content& operand)
-        : content_( operand.content_ )
-    {
-    }
-
-private: // non-Assignable
-
-    reference_content& operator=(const reference_content&);
-
-public: // queries
-
-    RefT get() const
-    {
-        return content_;
-    }
-
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) metafunction make_reference_content
-//
-// Wraps with reference_content if specified type is reference.
-//
-
-template <typename T = mpl::void_> struct make_reference_content;
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct make_reference_content
-{
-    typedef T type;
-};
-
-template <typename T>
-struct make_reference_content< T& >
-{
-    typedef reference_content<T&> type;
-};
-
-#else // defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct make_reference_content
-    : mpl::if_<
-          is_reference<T>
-        , reference_content<T>
-        , T
-        >
-{
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
-
-template <>
-struct make_reference_content< mpl::void_ >
-{
-    template <typename T>
-    struct apply
-        : make_reference_content<T>
-    {
-    };
-
-    typedef mpl::void_ type;
-};
-
-} // namespace detail
-
-///////////////////////////////////////////////////////////////////////////////
-// reference_content<T&> type traits specializations
-//
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct has_nothrow_copy<
-      ::ndnboost::detail::reference_content< T& >
-    >
-    : mpl::true_
-{
-};
-
-#endif // !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_DETAIL_REFERENCE_CONTENT_HPP
diff --git a/include/ndnboost/detail/scoped_enum_emulation.hpp b/include/ndnboost/detail/scoped_enum_emulation.hpp
deleted file mode 100644
index cd2f599..0000000
--- a/include/ndnboost/detail/scoped_enum_emulation.hpp
+++ /dev/null
@@ -1,337 +0,0 @@
-//  scoped_enum_emulation.hpp  ---------------------------------------------------------//
-
-//  Copyright Beman Dawes, 2009
-//  Copyright (C) 2011-2012 Vicente J. Botet Escriba
-//  Copyright (C) 2012 Anthony Williams
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-/*
-[section:scoped_enums Scoped Enums]
-
-Generates C++0x scoped enums if the feature is present, otherwise emulates C++0x
-scoped enums with C++03 namespaces and enums. The Boost.Config NDNBOOST_NO_CXX11_SCOPED_ENUMS
-macro is used to detect feature support.
-
-See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf for a
-description of the scoped enum feature. Note that the committee changed the name
-from strongly typed enum to scoped enum.
-
-Some of the enumerations defined in the standard library are scoped enums.
-
-  enum class future_errc
-  {
-      broken_promise,
-      future_already_retrieved,
-      promise_already_satisfied,
-      no_state
-  };
-
-On compilers that don't support them, the library provides two emulations:
-
-[heading Strict]
-
-* Able to specify the underlying type.
-* explicit conversion to/from underlying type.
-* The wrapper is not a C++03 enum type.
-
-The user can declare  declare these types as
-
-  NDNBOOST_SCOPED_ENUM_DECLARE_BEGIN(future_errc)
-  {
-      broken_promise,
-      future_already_retrieved,
-      promise_already_satisfied,
-      no_state
-  }
-  NDNBOOST_SCOPED_ENUM_DECLARE_END(future_errc)
-
-These macros allows to use 'future_errc' in almost all the cases as an scoped enum.
-
-  future_errc err = future_errc::no_state;
-
-There are however some limitations:
-
-* The type is not a C++ enum, so 'is_enum<future_errc>' will be false_type.
-* The emulated scoped enum can not be used in switch nor in template arguments. For these cases the user needs to use some macros.
-
-Instead of
-
-        switch (ev)
-        {
-        case future_errc::broken_promise:
-  // ...
-
-use
-
-        switch (ndnboost::native_value(ev))
-        {
-        case future_errc::broken_promise:
-
-And instead of
-
-    #ifdef NDNBOOST_NO_CXX11_SCOPED_ENUMS
-    template <>
-    struct NDNBOOST_SYMBOL_VISIBLE is_error_code_enum<future_errc> : public true_type { };
-    #endif
-
-use
-
-    #ifdef NDNBOOST_NO_CXX11_SCOPED_ENUMS
-    template <>
-    struct NDNBOOST_SYMBOL_VISIBLE is_error_code_enum<future_errc::enum_type > : public true_type { };
-    #endif
-
-
-Sample usage:
-
-     NDNBOOST_SCOPED_ENUM_UT_DECLARE_BEGIN(algae, char) { green, red, cyan }; NDNBOOST_SCOPED_ENUM_DECLARE_END(algae)
-     ...
-     algae sample( algae::red );
-     void foo( algae color );
-     ...
-     sample = algae::green;
-     foo( algae::cyan );
-
- Light
-  Caution: only the syntax is emulated; the semantics are not emulated and
-  the syntax emulation doesn't include being able to specify the underlying
-  representation type.
-
-  The literal scoped emulation is via struct rather than namespace to allow use within classes.
-  Thanks to Andrey Semashev for pointing that out.
-  However the type is an real C++03 enum and so convertible implicitly to an int.
-
-  Sample usage:
-
-     NDNBOOST_SCOPED_ENUM_START(algae) { green, red, cyan }; NDNBOOST_SCOPED_ENUM_END
-     ...
-     NDNBOOST_SCOPED_ENUM(algae) sample( algae::red );
-     void foo( NDNBOOST_SCOPED_ENUM(algae) color );
-     ...
-     sample = algae::green;
-     foo( algae::cyan );
-
-  Helpful comments and suggestions were also made by Kjell Elster, Phil Endecott,
-  Joel Falcou, Mathias Gaunard, Felipe Magno de Almeida, Matt Calabrese, Vicente
-  Botet, and Daniel James.
-
-[endsect]
-*/
-
-
-#ifndef NDNBOOST_SCOPED_ENUM_EMULATION_HPP
-#define NDNBOOST_SCOPED_ENUM_EMULATION_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost
-{
-
-#ifdef NDNBOOST_NO_CXX11_SCOPED_ENUMS
-  /**
-   * Meta-function to get the underlying type of a scoped enum.
-   *
-   * Requires EnumType must be an enum type or the emulation of a scoped enum
-   */
-  template <typename EnumType>
-  struct underlying_type
-  {
-    /**
-     * The member typedef type names the underlying type of EnumType. It is EnumType::underlying_type when the EnumType is an emulated scoped enum,
-     * std::underlying_type<EnumType>::type when the standard library std::underlying_type is provided.
-     *
-     * The user will need to specialize it when the compiler supports scoped enums but don't provides std::underlying_type.
-     */
-    typedef typename EnumType::underlying_type type;
-  };
-
-  /**
-   * Meta-function to get the native enum type associated to an enum class or its emulation.
-   */
-  template <typename EnumType>
-  struct native_type
-  {
-    /**
-     * The member typedef type names the native enum type associated to the scoped enum,
-     * which is it self if the compiler supports scoped enums or EnumType::enum_type if it is an emulated scoped enum.
-     */
-    typedef typename EnumType::enum_type type;
-  };
-
-  /**
-   * Casts a scoped enum to its underlying type.
-   *
-   * This function is useful when working with scoped enum classes, which doens't implicitly convert to the underlying type.
-   * @param v A scoped enum.
-   * @returns The underlying type.
-   * @throws No-throws.
-   */
-  template <typename UnderlyingType, typename EnumType>
-  UnderlyingType underlying_cast(EnumType v)
-  {
-    return v.get_underlying_value_();
-  }
-
-  /**
-   * Casts a scoped enum to its native enum type.
-   *
-   * This function is useful to make programs portable when the scoped enum emulation can not be use where native enums can.
-   *
-   * EnumType the scoped enum type
-   *
-   * @param v A scoped enum.
-   * @returns The native enum value.
-   * @throws No-throws.
-   */
-  template <typename EnumType>
-  inline
-  typename EnumType::enum_type native_value(EnumType e)
-  {
-    return e.native_value_();
-  }
-
-#else  // NDNBOOST_NO_CXX11_SCOPED_ENUMS
-
-  template <typename EnumType>
-  struct underlying_type
-  {
-    //typedef typename std::underlying_type<EnumType>::type type;
-  };
-
-  template <typename EnumType>
-  struct native_type
-  {
-    typedef EnumType type;
-  };
-
-  template <typename UnderlyingType, typename EnumType>
-  UnderlyingType underlying_cast(EnumType v)
-  {
-    return static_cast<UnderlyingType>(v);
-  }
-
-  template <typename EnumType>
-  inline
-  EnumType native_value(EnumType e)
-  {
-    return e;
- }
-
-#endif
-}
-
-
-#ifdef NDNBOOST_NO_CXX11_SCOPED_ENUMS
-
-#ifndef NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-
-#define NDNBOOST_SCOPED_ENUM_UT_DECLARE_CONVERSION_OPERATOR \
-     explicit operator underlying_type() const { return get_underlying_value_(); }
-
-#else
-
-#define NDNBOOST_SCOPED_ENUM_UT_DECLARE_CONVERSION_OPERATOR
-
-#endif
-
-/**
- * Start a declaration of a scoped enum.
- *
- * @param EnumType The new scoped enum.
- * @param UnderlyingType The underlying type.
- */
-#define NDNBOOST_SCOPED_ENUM_UT_DECLARE_BEGIN(EnumType, UnderlyingType)    \
-    struct EnumType {                                                   \
-        typedef UnderlyingType underlying_type;                         \
-        EnumType() NDNBOOST_NOEXCEPT {}                                    \
-        explicit EnumType(underlying_type v) : v_(v) {}                 \
-        underlying_type get_underlying_value_() const { return v_; }               \
-        NDNBOOST_SCOPED_ENUM_UT_DECLARE_CONVERSION_OPERATOR                \
-    private:                                                            \
-        underlying_type v_;                                             \
-        typedef EnumType self_type;                                     \
-    public:                                                             \
-        enum enum_type
-
-#define NDNBOOST_SCOPED_ENUM_DECLARE_END2() \
-        enum_type get_native_value_() const NDNBOOST_NOEXCEPT { return enum_type(v_); } \
-        operator enum_type() const NDNBOOST_NOEXCEPT { return get_native_value_(); } \
-        friend bool operator ==(self_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)==enum_type(rhs.v_); } \
-        friend bool operator ==(self_type lhs, enum_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)==rhs; } \
-        friend bool operator ==(enum_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return lhs==enum_type(rhs.v_); } \
-        friend bool operator !=(self_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)!=enum_type(rhs.v_); } \
-        friend bool operator !=(self_type lhs, enum_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)!=rhs; } \
-        friend bool operator !=(enum_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return lhs!=enum_type(rhs.v_); } \
-        friend bool operator <(self_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)<enum_type(rhs.v_); } \
-        friend bool operator <(self_type lhs, enum_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)<rhs; } \
-        friend bool operator <(enum_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return lhs<enum_type(rhs.v_); } \
-        friend bool operator <=(self_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)<=enum_type(rhs.v_); } \
-        friend bool operator <=(self_type lhs, enum_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)<=rhs; } \
-        friend bool operator <=(enum_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return lhs<=enum_type(rhs.v_); } \
-        friend bool operator >(self_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)>enum_type(rhs.v_); } \
-        friend bool operator >(self_type lhs, enum_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)>rhs; } \
-        friend bool operator >(enum_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return lhs>enum_type(rhs.v_); } \
-        friend bool operator >=(self_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)>=enum_type(rhs.v_); } \
-        friend bool operator >=(self_type lhs, enum_type rhs) NDNBOOST_NOEXCEPT { return enum_type(lhs.v_)>=rhs; } \
-        friend bool operator >=(enum_type lhs, self_type rhs) NDNBOOST_NOEXCEPT { return lhs>=enum_type(rhs.v_); } \
-    };
-
-#define NDNBOOST_SCOPED_ENUM_DECLARE_END(EnumType) \
-    ; \
-    EnumType(enum_type v) NDNBOOST_NOEXCEPT : v_(v) {}                 \
-    NDNBOOST_SCOPED_ENUM_DECLARE_END2()
-
-/**
- * Starts a declaration of a scoped enum with the default int underlying type.
- *
- * @param EnumType The new scoped enum.
- */
-#define NDNBOOST_SCOPED_ENUM_DECLARE_BEGIN(EnumType) \
-  NDNBOOST_SCOPED_ENUM_UT_DECLARE_BEGIN(EnumType,int)
-
-/**
- * Name of the native enum type.
- *
- * @param NT The new scoped enum.
- */
-#define NDNBOOST_SCOPED_ENUM_NATIVE(EnumType) EnumType::enum_type
-/**
- * Forward declares an scoped enum.
- *
- * @param NT The scoped enum.
- */
-#define NDNBOOST_SCOPED_ENUM_FORWARD_DECLARE(EnumType) struct EnumType
-
-#else  // NDNBOOST_NO_CXX11_SCOPED_ENUMS
-
-#define NDNBOOST_SCOPED_ENUM_UT_DECLARE_BEGIN(EnumType,UnderlyingType) enum class EnumType:UnderlyingType
-#define NDNBOOST_SCOPED_ENUM_DECLARE_BEGIN(EnumType) enum class EnumType
-#define NDNBOOST_SCOPED_ENUM_DECLARE_END2()
-#define NDNBOOST_SCOPED_ENUM_DECLARE_END(EnumType) ;
-
-#define NDNBOOST_SCOPED_ENUM_NATIVE(EnumType) EnumType
-#define NDNBOOST_SCOPED_ENUM_FORWARD_DECLARE(EnumType) enum class EnumType
-
-#endif  // NDNBOOST_NO_CXX11_SCOPED_ENUMS
-
-#define NDNBOOST_SCOPED_ENUM_START(name) NDNBOOST_SCOPED_ENUM_DECLARE_BEGIN(name)
-#define NDNBOOST_SCOPED_ENUM_END NDNBOOST_SCOPED_ENUM_DECLARE_END2()
-#define NDNBOOST_SCOPED_ENUM(name) NDNBOOST_SCOPED_ENUM_NATIVE(name)
-
-//#ifdef NDNBOOST_NO_CXX11_SCOPED_ENUMS
-//
-//# define NDNBOOST_SCOPED_ENUM_START(name) struct name { enum enum_type
-//# define NDNBOOST_SCOPED_ENUM_END };
-//# define NDNBOOST_SCOPED_ENUM(name) name::enum_type
-//
-//#else
-//
-//# define NDNBOOST_SCOPED_ENUM_START(name) enum class name
-//# define NDNBOOST_SCOPED_ENUM_END
-//# define NDNBOOST_SCOPED_ENUM(name) name
-//
-//#endif
-#endif  // NDNBOOST_SCOPED_ENUM_EMULATION_HPP
diff --git a/include/ndnboost/detail/sp_typeinfo.hpp b/include/ndnboost/detail/sp_typeinfo.hpp
deleted file mode 100644
index 7ed63aa..0000000
--- a/include/ndnboost/detail/sp_typeinfo.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-#ifndef NDNBOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
-#define NDNBOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_typeinfo.hpp
-//
-//  Copyright 2007 Peter Dimov
-//
-// 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)
-
-#include <ndnboost/config.hpp>
-
-#if defined( NDNBOOST_NO_TYPEID )
-
-#include <ndnboost/current_function.hpp>
-#include <functional>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class sp_typeinfo
-{
-private:
-
-    sp_typeinfo( sp_typeinfo const& );
-    sp_typeinfo& operator=( sp_typeinfo const& );
-
-    char const * name_;
-
-public:
-
-    explicit sp_typeinfo( char const * name ): name_( name )
-    {
-    }
-
-    bool operator==( sp_typeinfo const& rhs ) const
-    {
-        return this == &rhs;
-    }
-
-    bool operator!=( sp_typeinfo const& rhs ) const
-    {
-        return this != &rhs;
-    }
-
-    bool before( sp_typeinfo const& rhs ) const
-    {
-        return std::less< sp_typeinfo const* >()( this, &rhs );
-    }
-
-    char const* name() const
-    {
-        return name_;
-    }
-};
-
-template<class T> struct sp_typeid_
-{
-    static sp_typeinfo ti_;
-
-    static char const * name()
-    {
-        return NDNBOOST_CURRENT_FUNCTION;
-    }
-};
-
-#if defined(__SUNPRO_CC)
-// see #4199, the Sun Studio compiler gets confused about static initialization 
-// constructor arguments. But an assignment works just fine. 
-template<class T> sp_typeinfo sp_typeid_< T >::ti_ = sp_typeid_< T >::name();
-#else
-template<class T> sp_typeinfo sp_typeid_< T >::ti_(sp_typeid_< T >::name());
-#endif
-
-template<class T> struct sp_typeid_< T & >: sp_typeid_< T >
-{
-};
-
-template<class T> struct sp_typeid_< T const >: sp_typeid_< T >
-{
-};
-
-template<class T> struct sp_typeid_< T volatile >: sp_typeid_< T >
-{
-};
-
-template<class T> struct sp_typeid_< T const volatile >: sp_typeid_< T >
-{
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#define NDNBOOST_SP_TYPEID(T) (ndnboost::detail::sp_typeid_<T>::ti_)
-
-#else
-
-#include <typeinfo>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-#if defined( NDNBOOST_NO_STD_TYPEINFO )
-
-typedef ::type_info sp_typeinfo;
-
-#else
-
-typedef std::type_info sp_typeinfo;
-
-#endif
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#define NDNBOOST_SP_TYPEID(T) typeid(T)
-
-#endif
-
-#endif  // #ifndef NDNBOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
diff --git a/include/ndnboost/detail/utf8_codecvt_facet.hpp b/include/ndnboost/detail/utf8_codecvt_facet.hpp
deleted file mode 100644
index 37d9133..0000000
--- a/include/ndnboost/detail/utf8_codecvt_facet.hpp
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu)
-// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu).
-// Distributed under the Boost Software License, Version 1.0. (See accompany-
-// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef NDNBOOST_UTF8_CODECVT_FACET_HPP
-#define NDNBOOST_UTF8_CODECVT_FACET_HPP
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// utf8_codecvt_facet.hpp
-
-// This header defines class utf8_codecvt_facet, derived fro 
-// std::codecvt<wchar_t, char>, which can be used to convert utf8 data in
-// files into wchar_t strings in the application.
-//
-// The header is NOT STANDALONE, and is not to be included by the USER.
-// There are at least two libraries which want to use this functionality, and
-// we want to avoid code duplication. It would be possible to create utf8
-// library, but:
-// - this requires review process first
-// - in the case, when linking the a library which uses utf8 
-//   (say 'program_options'), user should also link to the utf8 library.
-//   This seems inconvenient, and asking a user to link to an unrevieved 
-//   library is strange. 
-// Until the above points are fixed, a library which wants to use utf8 must:
-// - include this header from one of it's headers or sources
-// - include the corresponding .cpp file from one of the sources
-// - before including either file, the library must define
-//   - NDNBOOST_UTF8_BEGIN_NAMESPACE to the namespace declaration that must be used
-//   - NDNBOOST_UTF8_END_NAMESPACE to the code to close the previous namespace
-//   - declaration.
-//   - NDNBOOST_UTF8_DECL -- to the code which must be used for all 'exportable'
-//     symbols.
-//
-// For example, program_options library might contain:
-//    #define NDNBOOST_UTF8_BEGIN_NAMESPACE <backslash character> 
-//             namespace ndnboost { namespace program_options {
-//    #define NDNBOOST_UTF8_END_NAMESPACE }}
-//    #define NDNBOOST_UTF8_DECL NDNBOOST_PROGRAM_OPTIONS_DECL
-//    #include "../../detail/utf8/utf8_codecvt.cpp"
-//
-// Essentially, each library will have its own copy of utf8 code, in
-// different namespaces. 
-
-// Note:(Robert Ramey).  I have made the following alterations in the original
-// code.
-// a) Rendered utf8_codecvt<wchar_t, char>  with using templates
-// b) Move longer functions outside class definition to prevent inlining
-// and make code smaller
-// c) added on a derived class to permit translation to/from current
-// locale to utf8
-
-//  See http://www.boost.org for updates, documentation, and revision history.
-
-// archives stored as text - note these ar templated on the basic
-// stream templates to accommodate wide (and other?) kind of characters
-//
-// note the fact that on libraries without wide characters, ostream is
-// is not a specialization of basic_ostream which in fact is not defined
-// in such cases.   So we can't use basic_ostream<OStream::char_type> but rather
-// use two template parameters
-//
-// utf8_codecvt_facet
-//   This is an implementation of a std::codecvt facet for translating 
-//   from UTF-8 externally to UCS-4.  Note that this is not tied to
-//   any specific types in order to allow customization on platforms
-//   where wchar_t is not big enough.
-//
-// NOTES:  The current implementation jumps through some unpleasant hoops in
-// order to deal with signed character types.  As a std::codecvt_base::result,
-// it is necessary  for the ExternType to be convertible to unsigned  char.
-// I chose not to tie the extern_type explicitly to char. But if any combination
-// of types other than <wchar_t,char_t> is used, then std::codecvt must be
-// specialized on those types for this to work.
-
-#include <locale>
-#include <cwchar>   // for mbstate_t
-#include <cstddef>  // for std::size_t
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#if defined(NDNBOOST_NO_STDC_NAMESPACE)
-namespace std {
-    using ::mbstate_t;
-    using ::size_t;
-}
-#endif
-
-#if !defined(__MSL_CPP__) && !defined(__LIBCOMO__)
-    #define NDNBOOST_CODECVT_DO_LENGTH_CONST const
-#else
-    #define NDNBOOST_CODECVT_DO_LENGTH_CONST
-#endif
-
-// maximum lenght of a multibyte string
-#define MB_LENGTH_MAX 8
-
-NDNBOOST_UTF8_BEGIN_NAMESPACE
-
-struct NDNBOOST_UTF8_DECL utf8_codecvt_facet :
-    public std::codecvt<wchar_t, char, std::mbstate_t>  
-{
-public:
-    explicit utf8_codecvt_facet(std::size_t no_locale_manage=0)
-        : std::codecvt<wchar_t, char, std::mbstate_t>(no_locale_manage) 
-    {}
-protected:
-    virtual std::codecvt_base::result do_in(
-        std::mbstate_t& state, 
-        const char * from,
-        const char * from_end, 
-        const char * & from_next,
-        wchar_t * to, 
-        wchar_t * to_end, 
-        wchar_t*& to_next
-    ) const;
-
-    virtual std::codecvt_base::result do_out(
-        std::mbstate_t & state, const wchar_t * from,
-        const wchar_t * from_end, const wchar_t*  & from_next,
-        char * to, char * to_end, char * & to_next
-    ) const;
-
-    bool invalid_continuing_octet(unsigned char octet_1) const {
-        return (octet_1 < 0x80|| 0xbf< octet_1);
-    }
-
-    bool invalid_leading_octet(unsigned char octet_1)   const {
-        return (0x7f < octet_1 && octet_1 < 0xc0) ||
-            (octet_1 > 0xfd);
-    }
-
-    // continuing octets = octets except for the leading octet
-    static unsigned int get_cont_octet_count(unsigned   char lead_octet) {
-        return get_octet_count(lead_octet) - 1;
-    }
-
-    static unsigned int get_octet_count(unsigned char   lead_octet);
-
-    // How many "continuing octets" will be needed for this word
-    // ==   total octets - 1.
-    int get_cont_octet_out_count(wchar_t word) const ;
-
-    virtual bool do_always_noconv() const throw() { return false; }
-
-    // UTF-8 isn't really stateful since we rewind on partial conversions
-    virtual std::codecvt_base::result do_unshift(
-        std::mbstate_t&,
-        char * from,
-        char * /*to*/,
-        char * & next
-    ) const 
-    {
-        next = from;
-        return ok;
-    }
-
-    virtual int do_encoding() const throw() {
-        const int variable_byte_external_encoding=0;
-        return variable_byte_external_encoding;
-    }
-
-    // How many char objects can I process to get <= max_limit
-    // wchar_t objects?
-    virtual int do_length(
-        NDNBOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &,
-        const char * from,
-        const char * from_end, 
-        std::size_t max_limit
-#if NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
-        ) const throw();
-#else
-        ) const;
-#endif
-
-    // Largest possible value do_length(state,from,from_end,1) could return.
-    virtual int do_max_length() const throw () {
-        return 6; // largest UTF-8 encoding of a UCS-4 character
-    }
-};
-
-NDNBOOST_UTF8_END_NAMESPACE
-
-#endif // NDNBOOST_UTF8_CODECVT_FACET_HPP
diff --git a/include/ndnboost/detail/utf8_codecvt_facet.ipp b/include/ndnboost/detail/utf8_codecvt_facet.ipp
deleted file mode 100644
index 00e893d..0000000
--- a/include/ndnboost/detail/utf8_codecvt_facet.ipp
+++ /dev/null
@@ -1,285 +0,0 @@
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// utf8_codecvt_facet.ipp
-
-// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu)
-// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). 
-// Use, modification and distribution is subject to 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)
-
-// Please see the comments in <ndnboost/detail/utf8_codecvt_facet.hpp> to
-// learn how this file should be used.
-
-#include <ndnboost/detail/utf8_codecvt_facet.hpp>
-
-#include <cstdlib> // for multi-byte converson routines
-#include <cassert>
-
-#include <ndnboost/limits.hpp>
-#include <ndnboost/config.hpp>
-
-// If we don't have wstring, then Unicode support 
-// is not available anyway, so we don't need to even
-// compiler this file. This also fixes the problem
-// with mingw, which can compile this file, but will
-// generate link error when building DLL.
-#ifndef NDNBOOST_NO_STD_WSTRING
-
-NDNBOOST_UTF8_BEGIN_NAMESPACE
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// implementation for wchar_t
-
-// Translate incoming UTF-8 into UCS-4
-std::codecvt_base::result utf8_codecvt_facet::do_in(
-    std::mbstate_t& /*state*/, 
-    const char * from,
-    const char * from_end, 
-    const char * & from_next,
-    wchar_t * to, 
-    wchar_t * to_end, 
-    wchar_t * & to_next
-) const {
-    // Basic algorithm:  The first octet determines how many
-    // octets total make up the UCS-4 character.  The remaining
-    // "continuing octets" all begin with "10". To convert, subtract
-    // the amount that specifies the number of octets from the first
-    // octet.  Subtract 0x80 (1000 0000) from each continuing octet,
-    // then mash the whole lot together.  Note that each continuing
-    // octet only uses 6 bits as unique values, so only shift by
-    // multiples of 6 to combine.
-    while (from != from_end && to != to_end) {
-
-        // Error checking   on the first octet
-        if (invalid_leading_octet(*from)){
-            from_next = from;
-            to_next = to;
-            return std::codecvt_base::error;
-        }
-
-        // The first octet is   adjusted by a value dependent upon 
-        // the number   of "continuing octets" encoding the character
-        const   int cont_octet_count = get_cont_octet_count(*from);
-        const   wchar_t octet1_modifier_table[] =   {
-            0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc
-        };
-
-        // The unsigned char conversion is necessary in case char is
-        // signed   (I learned this the hard way)
-        wchar_t ucs_result = 
-            (unsigned char)(*from++) - octet1_modifier_table[cont_octet_count];
-
-        // Invariants   : 
-        //   1) At the start of the loop,   'i' continuing characters have been
-        //    processed 
-        //   2) *from   points to the next continuing character to be processed.
-        int i   = 0;
-        while(i != cont_octet_count && from != from_end) {
-
-            // Error checking on continuing characters
-            if (invalid_continuing_octet(*from)) {
-                from_next   = from;
-                to_next =   to;
-                return std::codecvt_base::error;
-            }
-
-            ucs_result *= (1 << 6); 
-
-            // each continuing character has an extra (10xxxxxx)b attached to 
-            // it that must be removed.
-            ucs_result += (unsigned char)(*from++) - 0x80;
-            ++i;
-        }
-
-        // If   the buffer ends with an incomplete unicode character...
-        if (from == from_end && i   != cont_octet_count) {
-            // rewind "from" to before the current character translation
-            from_next = from - (i+1); 
-            to_next = to;
-            return std::codecvt_base::partial;
-        }
-        *to++   = ucs_result;
-    }
-    from_next = from;
-    to_next = to;
-
-    // Were we done converting or did we run out of destination space?
-    if(from == from_end) return std::codecvt_base::ok;
-    else return std::codecvt_base::partial;
-}
-
-std::codecvt_base::result utf8_codecvt_facet::do_out(
-    std::mbstate_t& /*state*/, 
-    const wchar_t *   from,
-    const wchar_t * from_end, 
-    const wchar_t * & from_next,
-    char * to, 
-    char * to_end, 
-    char * & to_next
-) const
-{
-    // RG - consider merging this table with the other one
-    const wchar_t octet1_modifier_table[] = {
-        0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc
-    };
-
-    wchar_t max_wchar = (std::numeric_limits<wchar_t>::max)();
-    while (from != from_end && to != to_end) {
-
-        // Check for invalid UCS-4 character
-        if (*from  > max_wchar) {
-            from_next = from;
-            to_next = to;
-            return std::codecvt_base::error;
-        }
-
-        int cont_octet_count = get_cont_octet_out_count(*from);
-
-        // RG  - comment this formula better
-        int shift_exponent = (cont_octet_count) *   6;
-
-        // Process the first character
-        *to++ = static_cast<char>(octet1_modifier_table[cont_octet_count] +
-            (unsigned char)(*from / (1 << shift_exponent)));
-
-        // Process the continuation characters 
-        // Invariants: At   the start of the loop:
-        //   1) 'i' continuing octets   have been generated
-        //   2) '*to'   points to the next location to place an octet
-        //   3) shift_exponent is   6 more than needed for the next octet
-        int i   = 0;
-        while   (i != cont_octet_count && to != to_end) {
-            shift_exponent -= 6;
-            *to++ = static_cast<char>(0x80 + ((*from / (1 << shift_exponent)) % (1 << 6)));
-            ++i;
-        }
-        // If   we filled up the out buffer before encoding the character
-        if(to   == to_end && i != cont_octet_count) {
-            from_next = from;
-            to_next = to - (i+1);
-            return std::codecvt_base::partial;
-        }
-        ++from;
-    }
-    from_next = from;
-    to_next = to;
-    // Were we done or did we run out of destination space
-    if(from == from_end) return std::codecvt_base::ok;
-    else return std::codecvt_base::partial;
-}
-
-// How many char objects can I process to get <= max_limit
-// wchar_t objects?
-int utf8_codecvt_facet::do_length(
-    NDNBOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &,
-    const char * from,
-    const char * from_end, 
-    std::size_t max_limit
-#if NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
-) const throw()
-#else
-) const
-#endif
-{ 
-    // RG - this code is confusing!  I need a better way to express it.
-    // and test cases.
-
-    // Invariants:
-    // 1) last_octet_count has the size of the last measured character
-    // 2) char_count holds the number of characters shown to fit
-    // within the bounds so far (no greater than max_limit)
-    // 3) from_next points to the octet 'last_octet_count' before the
-    // last measured character.  
-    int last_octet_count=0;
-    std::size_t char_count = 0;
-    const char* from_next = from;
-    // Use "<" because the buffer may represent incomplete characters
-    while (from_next+last_octet_count <= from_end && char_count <= max_limit) {
-        from_next += last_octet_count;
-        last_octet_count = (get_octet_count(*from_next));
-        ++char_count;
-    }
-    return static_cast<int>(from_next-from_end);
-}
-
-unsigned int utf8_codecvt_facet::get_octet_count(
-    unsigned char   lead_octet
-){
-    // if the 0-bit (MSB) is 0, then 1 character
-    if (lead_octet <= 0x7f) return 1;
-
-    // Otherwise the count number of consecutive 1 bits starting at MSB
-//    assert(0xc0 <= lead_octet && lead_octet <= 0xfd);
-
-    if (0xc0 <= lead_octet && lead_octet <= 0xdf) return 2;
-    else if (0xe0 <= lead_octet && lead_octet <= 0xef) return 3;
-    else if (0xf0 <= lead_octet && lead_octet <= 0xf7) return 4;
-    else if (0xf8 <= lead_octet && lead_octet <= 0xfb) return 5;
-    else return 6;
-}
-NDNBOOST_UTF8_END_NAMESPACE
-
-namespace {
-template<std::size_t s>
-int get_cont_octet_out_count_impl(wchar_t word){
-    if (word < 0x80) {
-        return 0;
-    }
-    if (word < 0x800) {
-        return 1;
-    }
-    return 2;
-}
-
-template<>
-int get_cont_octet_out_count_impl<4>(wchar_t word){
-    if (word < 0x80) {
-        return 0;
-    }
-    if (word < 0x800) {
-        return 1;
-    }
-
-    // Note that the following code will generate warnings on some platforms
-    // where wchar_t is defined as UCS2.  The warnings are superfluous as the
-    // specialization is never instantitiated with such compilers, but this
-    // can cause problems if warnings are being treated as errors, so we guard
-    // against that.  Including <ndnboost/detail/utf8_codecvt_facet.hpp> as we do
-    // should be enough to get WCHAR_MAX defined.
-#if !defined(WCHAR_MAX)
-#   error WCHAR_MAX not defined!
-#endif
-    // cope with VC++ 7.1 or earlier having invalid WCHAR_MAX
-#if defined(_MSC_VER) && _MSC_VER <= 1310 // 7.1 or earlier
-    return 2;
-#elif WCHAR_MAX > 0x10000
-    
-   if (word < 0x10000) {
-        return 2;
-    }
-    if (word < 0x200000) {
-        return 3;
-    }
-    if (word < 0x4000000) {
-        return 4;
-    }
-    return 5;
-    
-#else
-    return 2;
-#endif
-}
-
-} // namespace anonymous
-
-NDNBOOST_UTF8_BEGIN_NAMESPACE
-// How many "continuing octets" will be needed for this word
-// ==   total octets - 1.
-int utf8_codecvt_facet::get_cont_octet_out_count(
-    wchar_t word
-) const {
-    return get_cont_octet_out_count_impl<sizeof(wchar_t)>(word);
-}
-NDNBOOST_UTF8_END_NAMESPACE
-
-#endif
diff --git a/include/ndnboost/detail/workaround.hpp b/include/ndnboost/detail/workaround.hpp
deleted file mode 100644
index 8f6a917..0000000
--- a/include/ndnboost/detail/workaround.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-// Copyright David Abrahams 2002.
-// 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 WORKAROUND_NDNBOOST_DWA2002126_HPP
-# define WORKAROUND_NDNBOOST_DWA2002126_HPP
-
-// Compiler/library version workaround macro
-//
-// Usage:
-//
-//     #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-//        // workaround for eVC4 and VC6
-//        ... // workaround code here
-//     #endif
-//
-// 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:
-//
-//     (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 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
-// 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
-// NDNBOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
-// error will be issued if the compiler version exceeds the argument
-// to NDNBOOST_TESTED_AT().  This can be used to locate workarounds which
-// may be obsoleted by newer versions.
-
-# ifndef NDNBOOST_STRICT_CONFIG
-
-#include <ndnboost/config.hpp>
-
-#ifndef __BORLANDC__
-#define __BORLANDC___WORKAROUND_GUARD 1
-#else
-#define __BORLANDC___WORKAROUND_GUARD 0
-#endif
-#ifndef __CODEGEARC__
-#define __CODEGEARC___WORKAROUND_GUARD 1
-#else
-#define __CODEGEARC___WORKAROUND_GUARD 0
-#endif
-#ifndef _MSC_VER
-#define _MSC_VER_WORKAROUND_GUARD 1
-#else
-#define _MSC_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef _MSC_FULL_VER
-#define _MSC_FULL_VER_WORKAROUND_GUARD 1
-#else
-#define _MSC_FULL_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef NDNBOOST_MSVC
-#define NDNBOOST_MSVC_WORKAROUND_GUARD 1
-#else
-#define NDNBOOST_MSVC_WORKAROUND_GUARD 0
-#endif
-#ifndef NDNBOOST_MSVC_FULL_VER
-#define NDNBOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
-#else
-#define NDNBOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef __GNUC__
-#define __GNUC___WORKAROUND_GUARD 1
-#else
-#define __GNUC___WORKAROUND_GUARD 0
-#endif
-#ifndef __GNUC_MINOR__
-#define __GNUC_MINOR___WORKAROUND_GUARD 1
-#else
-#define __GNUC_MINOR___WORKAROUND_GUARD 0
-#endif
-#ifndef __GNUC_PATCHLEVEL__
-#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1
-#else
-#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0
-#endif
-#ifndef __IBMCPP__
-#define __IBMCPP___WORKAROUND_GUARD 1
-#else
-#define __IBMCPP___WORKAROUND_GUARD 0
-#endif
-#ifndef __SUNPRO_CC
-#define __SUNPRO_CC_WORKAROUND_GUARD 1
-#else
-#define __SUNPRO_CC_WORKAROUND_GUARD 0
-#endif
-#ifndef __DECCXX_VER
-#define __DECCXX_VER_WORKAROUND_GUARD 1
-#else
-#define __DECCXX_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef __MWERKS__
-#define __MWERKS___WORKAROUND_GUARD 1
-#else
-#define __MWERKS___WORKAROUND_GUARD 0
-#endif
-#ifndef __EDG__
-#define __EDG___WORKAROUND_GUARD 1
-#else
-#define __EDG___WORKAROUND_GUARD 0
-#endif
-#ifndef __EDG_VERSION__
-#define __EDG_VERSION___WORKAROUND_GUARD 1
-#else
-#define __EDG_VERSION___WORKAROUND_GUARD 0
-#endif
-#ifndef __HP_aCC
-#define __HP_aCC_WORKAROUND_GUARD 1
-#else
-#define __HP_aCC_WORKAROUND_GUARD 0
-#endif
-#ifndef __hpxstd98
-#define __hpxstd98_WORKAROUND_GUARD 1
-#else
-#define __hpxstd98_WORKAROUND_GUARD 0
-#endif
-#ifndef _CRAYC
-#define _CRAYC_WORKAROUND_GUARD 1
-#else
-#define _CRAYC_WORKAROUND_GUARD 0
-#endif
-#ifndef __DMC__
-#define __DMC___WORKAROUND_GUARD 1
-#else
-#define __DMC___WORKAROUND_GUARD 0
-#endif
-#ifndef MPW_CPLUS
-#define MPW_CPLUS_WORKAROUND_GUARD 1
-#else
-#define MPW_CPLUS_WORKAROUND_GUARD 0
-#endif
-#ifndef __COMO__
-#define __COMO___WORKAROUND_GUARD 1
-#else
-#define __COMO___WORKAROUND_GUARD 0
-#endif
-#ifndef __COMO_VERSION__
-#define __COMO_VERSION___WORKAROUND_GUARD 1
-#else
-#define __COMO_VERSION___WORKAROUND_GUARD 0
-#endif
-#ifndef __INTEL_COMPILER
-#define __INTEL_COMPILER_WORKAROUND_GUARD 1
-#else
-#define __INTEL_COMPILER_WORKAROUND_GUARD 0
-#endif
-#ifndef __ICL
-#define __ICL_WORKAROUND_GUARD 1
-#else
-#define __ICL_WORKAROUND_GUARD 0
-#endif
-#ifndef _COMPILER_VERSION
-#define _COMPILER_VERSION_WORKAROUND_GUARD 1
-#else
-#define _COMPILER_VERSION_WORKAROUND_GUARD 0
-#endif
-
-#ifndef _RWSTD_VER
-#define _RWSTD_VER_WORKAROUND_GUARD 1
-#else
-#define _RWSTD_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef NDNBOOST_RWSTD_VER
-#define NDNBOOST_RWSTD_VER_WORKAROUND_GUARD 1
-#else
-#define NDNBOOST_RWSTD_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef __GLIBCPP__
-#define __GLIBCPP___WORKAROUND_GUARD 1
-#else
-#define __GLIBCPP___WORKAROUND_GUARD 0
-#endif
-#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
-#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1
-#else
-#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0
-#endif
-#ifndef __SGI_STL_PORT
-#define __SGI_STL_PORT_WORKAROUND_GUARD 1
-#else
-#define __SGI_STL_PORT_WORKAROUND_GUARD 0
-#endif
-#ifndef _STLPORT_VERSION
-#define _STLPORT_VERSION_WORKAROUND_GUARD 1
-#else
-#define _STLPORT_VERSION_WORKAROUND_GUARD 0
-#endif
-#ifndef __LIBCOMO_VERSION__
-#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1
-#else
-#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0
-#endif
-#ifndef _CPPLIB_VER
-#define _CPPLIB_VER_WORKAROUND_GUARD 1
-#else
-#define _CPPLIB_VER_WORKAROUND_GUARD 0
-#endif
-
-#ifndef NDNBOOST_INTEL_CXX_VERSION
-#define NDNBOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
-#else
-#define NDNBOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0
-#endif
-#ifndef NDNBOOST_INTEL_WIN
-#define NDNBOOST_INTEL_WIN_WORKAROUND_GUARD 1
-#else
-#define NDNBOOST_INTEL_WIN_WORKAROUND_GUARD 0
-#endif
-#ifndef NDNBOOST_DINKUMWARE_STDLIB
-#define NDNBOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1
-#else
-#define NDNBOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0
-#endif
-#ifndef NDNBOOST_INTEL
-#define NDNBOOST_INTEL_WORKAROUND_GUARD 1
-#else
-#define NDNBOOST_INTEL_WORKAROUND_GUARD 0
-#endif
-// Always define to zero, if it's used it'll be defined my MPL:
-#define NDNBOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0
-
-#  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
-// 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 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 NDNBOOST_DETECT_OUTDATED_WORKAROUNDS
-#   define NDNBOOST_OPEN_PAREN (
-#   define NDNBOOST_TESTED_AT(value)  > value) ?(-1): NDNBOOST_OPEN_PAREN 1
-#  else
-#   define NDNBOOST_TESTED_AT(value) != ((value)-(value))
-#  endif
-
-# else
-
-#  define NDNBOOST_WORKAROUND(symbol, test) 0
-
-# endif 
-
-#endif // WORKAROUND_NDNBOOST_DWA2002126_HPP
diff --git a/include/ndnboost/exception/current_exception_cast.hpp b/include/ndnboost/exception/current_exception_cast.hpp
deleted file mode 100644
index 9a724c1..0000000
--- a/include/ndnboost/exception/current_exception_cast.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
-
-//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 NDNBOOST_UUID_7E83C166200811DE885E826156D89593
-#define NDNBOOST_UUID_7E83C166200811DE885E826156D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma GCC system_header
-#endif
-#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(push,1)
-#endif
-
-namespace
-ndnboost
-    {
-    template <class E>
-    inline
-    E *
-    current_exception_cast()
-        {
-        try
-            {
-            throw;
-            }
-        catch(
-        E & e )
-            {
-            return &e;
-            }
-        catch(
-        ...)
-            {
-            return 0;
-            }
-        }
-    }
-
-#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
deleted file mode 100644
index 437b81c..0000000
--- a/include/ndnboost/exception/detail/attribute_noreturn.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-//Copyright (c) 2009 Emil Dotchevski and Reverge Studios, Inc.
-
-//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 NDNBOOST_UUID_61531AB0680611DEADD5846855D89593
-#define NDNBOOST_UUID_61531AB0680611DEADD5846855D89593
-
-#if defined(_MSC_VER)
-#define NDNBOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
-#elif defined(__GNUC__)
-#define NDNBOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__))
-#else
-#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
deleted file mode 100644
index f547380..0000000
--- a/include/ndnboost/exception/detail/error_info_impl.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc.
-
-//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 NDNBOOST_UUID_CE6983AC753411DDA764247956D89593
-#define NDNBOOST_UUID_CE6983AC753411DDA764247956D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma GCC system_header
-#endif
-#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(push,1)
-#endif
-
-#include <string>
-
-namespace
-ndnboost
-    {
-    namespace
-    exception_detail
-        {
-        class
-        error_info_base
-            {
-            public:
-
-            virtual std::string name_value_string() const = 0;
-
-            protected:
-
-            virtual
-            ~error_info_base() throw()
-                {
-                }
-            };
-        }
-
-    template <class Tag,class T>
-    class
-    error_info:
-        public exception_detail::error_info_base
-        {
-        public:
-
-        typedef T value_type;
-
-        error_info( value_type const & value );
-        ~error_info() throw();
-
-        value_type const &
-        value() const
-            {
-            return value_;
-            }
-
-        value_type &
-        value()
-            {
-            return value_;
-            }
-
-        private:
-
-        std::string name_value_string() const;
-
-        value_type value_;
-        };
-    }
-
-#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
deleted file mode 100644
index 2fcae2f..0000000
--- a/include/ndnboost/exception/detail/type_info.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-//Copyright (c) 2006-2010 Emil Dotchevski and Reverge Studios, Inc.
-
-//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 NDNBOOST_UUID_C3E1741C754311DDB2834CCA55D89593
-#define NDNBOOST_UUID_C3E1741C754311DDB2834CCA55D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma GCC system_header
-#endif
-#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 NDNBOOST_NO_TYPEID
-#include <ndnboost/units/detail/utility.hpp>
-#endif
-#include <string>
-
-namespace
-ndnboost
-    {
-    template <class T>
-    inline
-    std::string
-    tag_type_name()
-        {
-#ifdef NDNBOOST_NO_TYPEID
-        return NDNBOOST_CURRENT_FUNCTION;
-#else
-        return units::detail::demangle(typeid(T*).name());
-#endif
-        }
-
-    template <class T>
-    inline
-    std::string
-    type_name()
-        {
-#ifdef NDNBOOST_NO_TYPEID
-        return NDNBOOST_CURRENT_FUNCTION;
-#else
-        return units::detail::demangle(typeid(T).name());
-#endif
-        }
-
-    namespace
-    exception_detail
-        {
-        struct
-        type_info_
-            {
-            detail::sp_typeinfo const * type_;
-
-            explicit
-            type_info_( detail::sp_typeinfo const & type ):
-                type_(&type)
-                {
-                }
-
-            friend
-            bool
-            operator<( type_info_ const & a, type_info_ const & b )
-                {
-                return 0!=(a.type_->before(*b.type_));
-                }
-            };
-        }
-    }
-
-#define NDNBOOST_EXCEPTION_STATIC_TYPEID(T) ::ndnboost::exception_detail::type_info_(NDNBOOST_SP_TYPEID(T))
-
-#ifndef NDNBOOST_NO_RTTI
-#define NDNBOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::ndnboost::exception_detail::type_info_(typeid(x))
-#endif
-
-#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
deleted file mode 100644
index 9a9747b..0000000
--- a/include/ndnboost/exception/exception.hpp
+++ /dev/null
@@ -1,483 +0,0 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
-
-//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 NDNBOOST_UUID_274DA366004E11DCB1DDFE2E56D89593
-#define NDNBOOST_UUID_274DA366004E11DCB1DDFE2E56D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma GCC system_header
-#endif
-#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(push,1)
-#endif
-
-namespace
-ndnboost
-    {
-    namespace
-    exception_detail
-        {
-        template <class T>
-        class
-        refcount_ptr
-            {
-            public:
-
-            refcount_ptr():
-                px_(0)
-                {
-                }
-
-            ~refcount_ptr()
-                {
-                release();
-                }
-
-            refcount_ptr( refcount_ptr const & x ):
-                px_(x.px_)
-                {
-                add_ref();
-                }
-
-            refcount_ptr &
-            operator=( refcount_ptr const & x )
-                {
-                adopt(x.px_);
-                return *this;
-                }
-
-            void
-            adopt( T * px )
-                {
-                release();
-                px_=px;
-                add_ref();
-                }
-
-            T *
-            get() const
-                {
-                return px_;
-                }
-
-            private:
-
-            T * px_;
-
-            void
-            add_ref()
-                {
-                if( px_ )
-                    px_->add_ref();
-                }
-
-            void
-            release()
-                {
-                if( px_ && px_->release() )
-                    px_=0;
-                }
-            };
-        }
-
-    ////////////////////////////////////////////////////////////////////////
-
-    template <class Tag,class T>
-    class error_info;
-
-    typedef error_info<struct throw_function_,char const *> throw_function;
-    typedef error_info<struct throw_file_,char const *> throw_file;
-    typedef error_info<struct throw_line_,int> throw_line;
-
-    template <>
-    class
-    error_info<throw_function_,char const *>
-        {
-        public:
-        typedef char const * value_type;
-        value_type v_;
-        explicit
-        error_info( value_type v ):
-            v_(v)
-            {
-            }
-        };
-
-    template <>
-    class
-    error_info<throw_file_,char const *>
-        {
-        public:
-        typedef char const * value_type;
-        value_type v_;
-        explicit
-        error_info( value_type v ):
-            v_(v)
-            {
-            }
-        };
-
-    template <>
-    class
-    error_info<throw_line_,int>
-        {
-        public:
-        typedef int value_type;
-        value_type v_;
-        explicit
-        error_info( value_type v ):
-            v_(v)
-            {
-            }
-        };
-
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility push (default)
-# endif
-#endif
-    class exception;
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility pop
-# endif
-#endif
-
-    template <class T>
-    class shared_ptr;
-
-    namespace
-    exception_detail
-        {
-        class error_info_base;
-        struct type_info_;
-
-        struct
-        error_info_container
-            {
-            virtual char const * diagnostic_information( char const * ) const = 0;
-            virtual shared_ptr<error_info_base> get( type_info_ const & ) const = 0;
-            virtual void set( shared_ptr<error_info_base> const &, type_info_ const & ) = 0;
-            virtual void add_ref() const = 0;
-            virtual bool release() const = 0;
-            virtual refcount_ptr<exception_detail::error_info_container> clone() const = 0;
-
-            protected:
-
-            ~error_info_container() throw()
-                {
-                }
-            };
-
-        template <class>
-        struct get_info;
-
-        template <>
-        struct get_info<throw_function>;
-
-        template <>
-        struct get_info<throw_file>;
-
-        template <>
-        struct get_info<throw_line>;
-
-        char const * get_diagnostic_information( exception const &, char const * );
-
-        void copy_boost_exception( exception *, exception const * );
-
-        template <class E,class Tag,class T>
-        E const & set_info( E const &, error_info<Tag,T> const & );
-
-        template <class E>
-        E const & set_info( E const &, throw_function const & );
-
-        template <class E>
-        E const & set_info( E const &, throw_file const & );
-
-        template <class E>
-        E const & set_info( E const &, throw_line const & );
-        }
-
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility push (default)
-# endif
-#endif
-    class
-    exception
-        {
-        protected:
-
-        exception():
-            throw_function_(0),
-            throw_file_(0),
-            throw_line_(-1)
-            {
-            }
-
-#ifdef __HP_aCC
-        //On HP aCC, this protected copy constructor prevents throwing ndnboost::exception.
-        //On all other platforms, the same effect is achieved by the pure virtual destructor.
-        exception( exception const & x ) throw():
-            data_(x.data_),
-            throw_function_(x.throw_function_),
-            throw_file_(x.throw_file_),
-            throw_line_(x.throw_line_)
-            {
-            }
-#endif
-
-        virtual ~exception() throw()
-#ifndef __HP_aCC
-            = 0 //Workaround for HP aCC, =0 incorrectly leads to link errors.
-#endif
-            ;
-
-#if (defined(__MWERKS__) && __MWERKS__<=0x3207) || (defined(_MSC_VER) && _MSC_VER<=1310)
-        public:
-#else
-        private:
-
-        template <class E>
-        friend E const & exception_detail::set_info( E const &, throw_function const & );
-
-        template <class E>
-        friend E const & exception_detail::set_info( E const &, throw_file const & );
-
-        template <class E>
-        friend E const & exception_detail::set_info( E const &, throw_line const & );
-
-        template <class E,class Tag,class T>
-        friend E const & exception_detail::set_info( E const &, error_info<Tag,T> const & );
-
-        friend char const * exception_detail::get_diagnostic_information( exception const &, char const * );
-
-        template <class>
-        friend struct exception_detail::get_info;
-        friend struct exception_detail::get_info<throw_function>;
-        friend struct exception_detail::get_info<throw_file>;
-        friend struct exception_detail::get_info<throw_line>;
-        friend void exception_detail::copy_boost_exception( exception *, exception const * );
-#endif
-        mutable exception_detail::refcount_ptr<exception_detail::error_info_container> data_;
-        mutable char const * throw_function_;
-        mutable char const * throw_file_;
-        mutable int throw_line_;
-        };
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility pop
-# endif
-#endif
-
-    inline
-    exception::
-    ~exception() throw()
-        {
-        }
-
-    namespace
-    exception_detail
-        {
-        template <class E>
-        E const &
-        set_info( E const & x, throw_function const & y )
-            {
-            x.throw_function_=y.v_;
-            return x;
-            }
-
-        template <class E>
-        E const &
-        set_info( E const & x, throw_file const & y )
-            {
-            x.throw_file_=y.v_;
-            return x;
-            }
-
-        template <class E>
-        E const &
-        set_info( E const & x, throw_line const & y )
-            {
-            x.throw_line_=y.v_;
-            return x;
-            }
-        }
-
-    ////////////////////////////////////////////////////////////////////////
-
-    namespace
-    exception_detail
-        {
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility push (default)
-# endif
-#endif
-        template <class T>
-        struct
-        error_info_injector:
-            public T,
-            public exception
-            {
-            explicit
-            error_info_injector( T const & x ):
-                T(x)
-                {
-                }
-
-            ~error_info_injector() throw()
-                {
-                }
-            };
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility pop
-# endif
-#endif
-
-        struct large_size { char c[256]; };
-        large_size dispatch_boost_exception( exception const * );
-
-        struct small_size { };
-        small_size dispatch_boost_exception( void const * );
-
-        template <class,int>
-        struct enable_error_info_helper;
-
-        template <class T>
-        struct
-        enable_error_info_helper<T,sizeof(large_size)>
-            {
-            typedef T type;
-            };
-
-        template <class T>
-        struct
-        enable_error_info_helper<T,sizeof(small_size)>
-            {
-            typedef error_info_injector<T> type;
-            };
-
-        template <class T>
-        struct
-        enable_error_info_return_type
-            {
-            typedef typename enable_error_info_helper<T,sizeof(exception_detail::dispatch_boost_exception(static_cast<T *>(0)))>::type type;
-            };
-        }
-
-    template <class T>
-    inline
-    typename
-    exception_detail::enable_error_info_return_type<T>::type
-    enable_error_info( T const & x )
-        {
-        typedef typename exception_detail::enable_error_info_return_type<T>::type rt;
-        return rt(x);
-        }
-
-    ////////////////////////////////////////////////////////////////////////
-
-    namespace
-    exception_detail
-        {
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility push (default)
-# endif
-#endif
-        class
-        clone_base
-            {
-            public:
-
-            virtual clone_base const * clone() const = 0;
-            virtual void rethrow() const = 0;
-
-            virtual
-            ~clone_base() throw()
-                {
-                }
-            };
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility pop
-# endif
-#endif
-
-        inline
-        void
-        copy_boost_exception( exception * a, exception const * b )
-            {
-            refcount_ptr<error_info_container> data;
-            if( error_info_container * d=b->data_.get() )
-                data = d->clone();
-            a->throw_file_ = b->throw_file_;
-            a->throw_line_ = b->throw_line_;
-            a->throw_function_ = b->throw_function_;
-            a->data_ = data;
-            }
-
-        inline
-        void
-        copy_boost_exception( void *, void const * )
-            {
-            }
-
-        template <class T>
-        class
-        clone_impl:
-            public T,
-            public virtual clone_base
-            {
-            struct clone_tag { };
-            clone_impl( clone_impl const & x, clone_tag ):
-                T(x)
-                {
-                copy_boost_exception(this,&x);
-                }
-
-            public:
-
-            explicit
-            clone_impl( T const & x ):
-                T(x)
-                {
-                copy_boost_exception(this,&x);
-                }
-
-            ~clone_impl() throw()
-                {
-                }
-
-            private:
-
-            clone_base const *
-            clone() const
-                {
-                return new clone_impl(*this,clone_tag());
-                }
-
-            void
-            rethrow() const
-                {
-                throw*this;
-                }
-            };
-        }
-
-    template <class T>
-    inline
-    exception_detail::clone_impl<T>
-    enable_current_exception( T const & x )
-        {
-        return exception_detail::clone_impl<T>(x);
-        }
-    }
-
-#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
deleted file mode 100644
index cb34154..0000000
--- a/include/ndnboost/exception/get_error_info.hpp
+++ /dev/null
@@ -1,130 +0,0 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
-
-//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 NDNBOOST_UUID_1A590226753311DD9E4CCF6156D89593
-#define NDNBOOST_UUID_1A590226753311DD9E4CCF6156D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma GCC system_header
-#endif
-#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(push,1)
-#endif
-
-#include <ndnboost/exception/exception.hpp>
-#include <ndnboost/exception/detail/error_info_impl.hpp>
-#include <ndnboost/exception/detail/type_info.hpp>
-#include <ndnboost/shared_ptr.hpp>
-
-namespace
-ndnboost
-    {
-    namespace
-    exception_detail
-        {
-        template <class ErrorInfo>
-        struct
-        get_info
-            {
-            static
-            typename ErrorInfo::value_type *
-            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(NDNBOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) )
-                        {
-#ifndef NDNBOOST_NO_RTTI
-                        NDNBOOST_ASSERT( 0!=dynamic_cast<ErrorInfo *>(eib.get()) );
-#endif
-                        ErrorInfo * w = static_cast<ErrorInfo *>(eib.get());
-                        return &w->value();
-                        }
-                return 0;
-                }
-            };
-
-        template <>
-        struct
-        get_info<throw_function>
-            {
-            static
-            char const * *
-            get( exception const & x )
-                {
-                return x.throw_function_ ? &x.throw_function_ : 0;
-                }
-            };
-
-        template <>
-        struct
-        get_info<throw_file>
-            {
-            static
-            char const * *
-            get( exception const & x )
-                {
-                return x.throw_file_ ? &x.throw_file_ : 0;
-                }
-            };
-
-        template <>
-        struct
-        get_info<throw_line>
-            {
-            static
-            int *
-            get( exception const & x )
-                {
-                return x.throw_line_!=-1 ? &x.throw_line_ : 0;
-                }
-            };
-
-        template <class T,class R>
-        struct
-        get_error_info_return_type
-            {
-            typedef R * type;
-            };
-
-        template <class T,class R>
-        struct
-        get_error_info_return_type<T const,R>
-            {
-            typedef R const * type;
-            };
-        }
-
-#ifdef NDNBOOST_NO_RTTI
-    template <class ErrorInfo>
-    inline
-    typename ErrorInfo::value_type const *
-    get_error_info( ndnboost::exception const & x )
-        {
-        return exception_detail::get_info<ErrorInfo>::get(x);
-        }
-    template <class ErrorInfo>
-    inline
-    typename ErrorInfo::value_type *
-    get_error_info( ndnboost::exception & x )
-        {
-        return exception_detail::get_info<ErrorInfo>::get(x);
-        }
-#else
-    template <class ErrorInfo,class E>
-    inline
-    typename exception_detail::get_error_info_return_type<E,typename ErrorInfo::value_type>::type
-    get_error_info( E & some_exception )
-        {
-        if( exception const * x = dynamic_cast<exception const *>(&some_exception) )
-            return exception_detail::get_info<ErrorInfo>::get(*x);
-        else
-            return 0;
-        }
-#endif
-    }
-
-#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(pop)
-#endif
-#endif
diff --git a/include/ndnboost/filesystem.hpp b/include/ndnboost/filesystem.hpp
deleted file mode 100644
index b0f5509..0000000
--- a/include/ndnboost/filesystem.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//  ndnboost/filesystem.hpp  --------------------------------------------------------------//
-
-//  Copyright Beman Dawes 2010
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-//  Library home page: http://www.boost.org/libs/filesystem
-
-//--------------------------------------------------------------------------------------// 
-
-#ifndef NDNBOOST_FILESYSTEM_FILESYSTEM_HPP
-#define NDNBOOST_FILESYSTEM_FILESYSTEM_HPP
-
-#  include <ndnboost/filesystem/config.hpp>
-#  include <ndnboost/filesystem/path.hpp>
-#  include <ndnboost/filesystem/operations.hpp>
-#  include <ndnboost/filesystem/convenience.hpp>
-
-#endif  // NDNBOOST_FILESYSTEM_FILESYSTEM_HPP 
diff --git a/include/ndnboost/filesystem/config.hpp b/include/ndnboost/filesystem/config.hpp
deleted file mode 100644
index f70bec2..0000000
--- a/include/ndnboost/filesystem/config.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//  ndnboost/filesystem/v3/config.hpp  ----------------------------------------------------//
-
-//  Copyright Beman Dawes 2003
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-//  Library home page: http://www.boost.org/libs/filesystem
-
-//--------------------------------------------------------------------------------------// 
-
-#ifndef NDNBOOST_FILESYSTEM3_CONFIG_HPP
-#define NDNBOOST_FILESYSTEM3_CONFIG_HPP
-
-# if defined(NDNBOOST_FILESYSTEM_VERSION) && NDNBOOST_FILESYSTEM_VERSION != 3
-#   error Compiling Filesystem version 3 file with NDNBOOST_FILESYSTEM_VERSION defined != 3
-# endif
-
-# if !defined(NDNBOOST_FILESYSTEM_VERSION)
-#   define NDNBOOST_FILESYSTEM_VERSION 3
-# endif
-
-#define NDNBOOST_FILESYSTEM_I18N  // aid users wishing to compile several versions
-
-// This header implements separate compilation features as described in
-// http://www.boost.org/more/separate_compilation.html
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/system/api_config.hpp>  // for NDNBOOST_POSIX_API or NDNBOOST_WINDOWS_API
-#include <ndnboost/detail/workaround.hpp> 
-
-//  NDNBOOST_FILESYSTEM_DEPRECATED needed for source compiles -----------------------------//
-
-# ifdef NDNBOOST_FILESYSTEM_SOURCE
-#   define NDNBOOST_FILESYSTEM_DEPRECATED
-# endif
-
-//  throw an exception  ----------------------------------------------------------------//
-//
-//  Exceptions were originally thrown via ndnboost::throw_exception().
-//  As throw_exception() became more complex, it caused user error reporting
-//  to be harder to interpret, since the exception reported became much more complex.
-//  The immediate fix was to throw directly, wrapped in a macro to make any later change
-//  easier.
-
-#define NDNBOOST_FILESYSTEM_THROW(EX) throw EX
-
-# if defined( NDNBOOST_NO_STD_WSTRING )
-#   error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support
-# endif
-
-//  This header implements separate compilation features as described in
-//  http://www.boost.org/more/separate_compilation.html
-
-//  normalize macros  ------------------------------------------------------------------//
-
-#if !defined(NDNBOOST_FILESYSTEM_DYN_LINK) && !defined(NDNBOOST_FILESYSTEM_STATIC_LINK) \
-  && !defined(NDNBOOST_ALL_DYN_LINK) && !defined(NDNBOOST_ALL_STATIC_LINK)
-# define NDNBOOST_FILESYSTEM_STATIC_LINK
-#endif
-
-#if defined(NDNBOOST_ALL_DYN_LINK) && !defined(NDNBOOST_FILESYSTEM_DYN_LINK)
-# define NDNBOOST_FILESYSTEM_DYN_LINK 
-#elif defined(NDNBOOST_ALL_STATIC_LINK) && !defined(NDNBOOST_FILESYSTEM_STATIC_LINK)
-# define NDNBOOST_FILESYSTEM_STATIC_LINK 
-#endif
-
-#if defined(NDNBOOST_FILESYSTEM_DYN_LINK) && defined(NDNBOOST_FILESYSTEM_STATIC_LINK)
-# error Must not define both NDNBOOST_FILESYSTEM_DYN_LINK and NDNBOOST_FILESYSTEM_STATIC_LINK
-#endif
-
-#if defined(NDNBOOST_ALL_NO_LIB) && !defined(NDNBOOST_FILESYSTEM_NO_LIB)
-# define NDNBOOST_FILESYSTEM_NO_LIB 
-#endif
-
-//  enable dynamic linking  ------------------------------------------------------------//
-
-#if defined(NDNBOOST_ALL_DYN_LINK) || defined(NDNBOOST_FILESYSTEM_DYN_LINK)
-# if defined(NDNBOOST_FILESYSTEM_SOURCE)
-#   define NDNBOOST_FILESYSTEM_DECL NDNBOOST_SYMBOL_EXPORT
-# else 
-#   define NDNBOOST_FILESYSTEM_DECL NDNBOOST_SYMBOL_IMPORT
-# endif
-#else
-# define NDNBOOST_FILESYSTEM_DECL
-#endif
-
-//  enable automatic library variant selection  ----------------------------------------// 
-
-#if !defined(NDNBOOST_FILESYSTEM_SOURCE) && !defined(NDNBOOST_ALL_NO_LIB) \
-  && !defined(NDNBOOST_FILESYSTEM_NO_LIB)
-//
-// Set the name of our library, this will get undef'ed by auto_link.hpp
-// once it's done with it:
-//
-#define NDNBOOST_LIB_NAME ndnboost_filesystem
-//
-// If we're importing code from a dll, then tell auto_link.hpp about it:
-//
-#if defined(NDNBOOST_ALL_DYN_LINK) || defined(NDNBOOST_FILESYSTEM_DYN_LINK)
-#  define NDNBOOST_DYN_LINK
-#endif
-//
-// And include the header that does the work:
-//
-#include <ndnboost/config/auto_link.hpp>
-#endif  // auto-linking disabled
-
-#endif // NDNBOOST_FILESYSTEM3_CONFIG_HPP
diff --git a/include/ndnboost/filesystem/convenience.hpp b/include/ndnboost/filesystem/convenience.hpp
deleted file mode 100644
index 5e91750..0000000
--- a/include/ndnboost/filesystem/convenience.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//  ndnboost/filesystem/convenience.hpp  ----------------------------------------//
-
-//  Copyright Beman Dawes, 2002-2005
-//  Copyright Vladimir Prus, 2002
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/filesystem
-
-//----------------------------------------------------------------------------// 
-
-#ifndef NDNBOOST_FILESYSTEM3_CONVENIENCE_HPP
-#define NDNBOOST_FILESYSTEM3_CONVENIENCE_HPP
-
-#include <ndnboost/config.hpp>
-
-# if defined( NDNBOOST_NO_STD_WSTRING )
-#   error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support
-# endif
-
-#include <ndnboost/filesystem/operations.hpp>
-#include <ndnboost/system/error_code.hpp>
-
-#include <ndnboost/config/abi_prefix.hpp> // must be the last #include
-
-namespace ndnboost
-{
-  namespace filesystem
-  {
-
-# ifndef NDNBOOST_FILESYSTEM_NO_DEPRECATED
-
-    inline std::string extension(const path & p)
-    {
-      return p.extension().string();
-    }
-
-    inline std::string basename(const path & p)
-    {
-      return p.stem().string();
-    }
-
-    inline path change_extension( const path & p, const path & new_extension )
-    { 
-      path new_p( p );
-      new_p.replace_extension( new_extension );
-      return new_p;
-    }
-
-# endif
-
-
-  } // namespace filesystem
-} // namespace ndnboost
-
-#include <ndnboost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-#endif // NDNBOOST_FILESYSTEM3_CONVENIENCE_HPP
diff --git a/include/ndnboost/filesystem/detail/utf8_codecvt_facet.hpp b/include/ndnboost/filesystem/detail/utf8_codecvt_facet.hpp
deleted file mode 100644
index 5e8251c..0000000
--- a/include/ndnboost/filesystem/detail/utf8_codecvt_facet.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu)
-// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu).
-
-// Distributed under the Boost Software License, Version 1.0.
-// (See http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef NDNBOOST_FILESYSTEM_UTF8_CODECVT_FACET_HPP
-#define NDNBOOST_FILESYSTEM_UTF8_CODECVT_FACET_HPP
-
-#include <ndnboost/filesystem/config.hpp>
-
-#define NDNBOOST_UTF8_BEGIN_NAMESPACE \
-     namespace ndnboost { namespace filesystem { namespace detail {
-
-#define NDNBOOST_UTF8_END_NAMESPACE }}}
-#define NDNBOOST_UTF8_DECL NDNBOOST_FILESYSTEM_DECL
-
-#include <ndnboost/detail/utf8_codecvt_facet.hpp>
-
-#undef NDNBOOST_UTF8_BEGIN_NAMESPACE
-#undef NDNBOOST_UTF8_END_NAMESPACE
-#undef NDNBOOST_UTF8_DECL
-
-#endif
diff --git a/include/ndnboost/filesystem/operations.hpp b/include/ndnboost/filesystem/operations.hpp
deleted file mode 100644
index b395e49..0000000
--- a/include/ndnboost/filesystem/operations.hpp
+++ /dev/null
@@ -1,1096 +0,0 @@
-//  ndnboost/filesystem/operations.hpp  ---------------------------------------------------//
-
-//  Copyright Beman Dawes 2002-2009
-//  Copyright Jan Langer 2002
-//  Copyright Dietmar Kuehl 2001                                        
-//  Copyright Vladimir Prus 2002
-   
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-//  Library home page: http://www.boost.org/libs/filesystem
-
-//--------------------------------------------------------------------------------------//
-
-#ifndef NDNBOOST_FILESYSTEM3_OPERATIONS_HPP
-#define NDNBOOST_FILESYSTEM3_OPERATIONS_HPP
-
-#include <ndnboost/config.hpp>
-
-# if defined( NDNBOOST_NO_STD_WSTRING )
-#   error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support
-# endif
-
-#include <ndnboost/filesystem/config.hpp>
-#include <ndnboost/filesystem/path.hpp>
-
-#include <ndnboost/detail/scoped_enum_emulation.hpp>
-#include <ndnboost/detail/bitmask.hpp>
-#include <ndnboost/system/error_code.hpp>
-#include <ndnboost/system/system_error.hpp>
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/iterator.hpp>
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/assert.hpp>
-
-#include <string>
-#include <utility> // for pair
-#include <ctime>
-#include <vector>
-#include <stack>
-
-#ifdef NDNBOOST_WINDOWS_API
-#  include <fstream>
-#endif
-
-#include <ndnboost/config/abi_prefix.hpp> // must be the last #include
-
-//--------------------------------------------------------------------------------------//
-
-namespace ndnboost
-{
-  namespace filesystem
-  {
-
-//--------------------------------------------------------------------------------------//
-//                                     file_type                                        //
-//--------------------------------------------------------------------------------------//
-
-  enum file_type
-  { 
-    status_error,
-#   ifndef NDNBOOST_FILESYSTEM_NO_DEPRECATED
-    status_unknown = status_error,
-#   endif
-    file_not_found,
-    regular_file,
-    directory_file,
-    // the following may not apply to some operating systems or file systems
-    symlink_file,
-    block_file,
-    character_file,
-    fifo_file,
-    socket_file,
-    reparse_file,  // Windows: FILE_ATTRIBUTE_REPARSE_POINT that is not a symlink
-    type_unknown,  // file does exist, but isn't one of the above types or
-                   // we don't have strong enough permission to find its type
-
-    _detail_directory_symlink  // internal use only; never exposed to users
-  };
-
-//--------------------------------------------------------------------------------------//
-//                                       perms                                          //
-//--------------------------------------------------------------------------------------//
-
-  enum perms
-  {
-    no_perms = 0,       // file_not_found is no_perms rather than perms_not_known
-
-    // POSIX equivalent macros given in comments.
-    // Values are from POSIX and are given in octal per the POSIX standard.
-
-    // permission bits
-    
-    owner_read = 0400,  // S_IRUSR, Read permission, owner
-    owner_write = 0200, // S_IWUSR, Write permission, owner
-    owner_exe = 0100,   // S_IXUSR, Execute/search permission, owner
-    owner_all = 0700,   // S_IRWXU, Read, write, execute/search by owner
-
-    group_read = 040,   // S_IRGRP, Read permission, group
-    group_write = 020,  // S_IWGRP, Write permission, group
-    group_exe = 010,    // S_IXGRP, Execute/search permission, group
-    group_all = 070,    // S_IRWXG, Read, write, execute/search by group
-
-    others_read = 04,   // S_IROTH, Read permission, others
-    others_write = 02,  // S_IWOTH, Write permission, others
-    others_exe = 01,    // S_IXOTH, Execute/search permission, others
-    others_all = 07,    // S_IRWXO, Read, write, execute/search by others
-
-    all_all = owner_all|group_all|others_all,  // 0777
-
-    // other POSIX bits
-
-    set_uid_on_exe = 04000, // S_ISUID, Set-user-ID on execution
-    set_gid_on_exe = 02000, // S_ISGID, Set-group-ID on execution
-    sticky_bit     = 01000, // S_ISVTX,
-                            // (POSIX XSI) On directories, restricted deletion flag 
-	                          // (V7) 'sticky bit': save swapped text even after use 
-                            // (SunOS) On non-directories: don't cache this file
-                            // (SVID-v4.2) On directories: restricted deletion flag
-                            // Also see http://en.wikipedia.org/wiki/Sticky_bit
-
-    perms_mask = all_all|set_uid_on_exe|set_gid_on_exe|sticky_bit,  // 07777
-
-    perms_not_known = 0xFFFF, // present when directory_entry cache not loaded
-
-    // options for permissions() function
-
-    add_perms = 0x1000,     // adds the given permission bits to the current bits
-    remove_perms = 0x2000,  // removes the given permission bits from the current bits;
-                            // choose add_perms or remove_perms, not both; if neither add_perms
-                            // nor remove_perms is given, replace the current bits with
-                            // the given bits.
-
-    symlink_perms = 0x4000  // on POSIX, don't resolve symlinks; implied on Windows
-  };
-
-  NDNBOOST_BITMASK(perms)
-
-//--------------------------------------------------------------------------------------//
-//                                    file_status                                       //
-//--------------------------------------------------------------------------------------//
-
-  class NDNBOOST_FILESYSTEM_DECL file_status
-  {
-  public:
-             file_status()            : m_value(status_error), m_perms(perms_not_known) {}
-    explicit file_status(file_type v, perms prms = perms_not_known)
-                                      : m_value(v), m_perms(prms) {}
-
-    // observers
-    file_type  type() const                       { return m_value; }
-    perms      permissions() const                { return m_perms; } 
-
-    // modifiers
-    void       type(file_type v)                  { m_value = v; }
-    void       permissions(perms prms)            { m_perms = prms; }
-
-    bool operator==(const file_status& rhs) const { return type() == rhs.type() && 
-                                                    permissions() == rhs.permissions(); }
-    bool operator!=(const file_status& rhs) const { return !(*this == rhs); }
-
-  private:
-    file_type   m_value;
-    enum perms  m_perms;
-  };
-
-  inline bool type_present(file_status f) { return f.type() != status_error; }
-  inline bool permissions_present(file_status f)
-                                          {return f.permissions() != perms_not_known;}
-  inline bool status_known(file_status f) { return type_present(f) && permissions_present(f); }
-  inline bool exists(file_status f)       { return f.type() != status_error
-                                                && f.type() != file_not_found; }
-  inline bool is_regular_file(file_status f){ return f.type() == regular_file; }
-  inline bool is_directory(file_status f) { return f.type() == directory_file; }
-  inline bool is_symlink(file_status f)   { return f.type() == symlink_file; }
-  inline bool is_other(file_status f)     { return exists(f) && !is_regular_file(f)
-                                                && !is_directory(f) && !is_symlink(f); }
-
-# ifndef NDNBOOST_FILESYSTEM_NO_DEPRECATED
-  inline bool is_regular(file_status f)   { return f.type() == regular_file; }
-# endif
-
-  struct space_info
-  {
-    // all values are byte counts
-    ndnboost::uintmax_t capacity;
-    ndnboost::uintmax_t free;      // <= capacity
-    ndnboost::uintmax_t available; // <= free
-  };
-
-  NDNBOOST_SCOPED_ENUM_START(copy_option)
-    {none, fail_if_exists = none, overwrite_if_exists};
-  NDNBOOST_SCOPED_ENUM_END
-
-//--------------------------------------------------------------------------------------//
-//                             implementation details                                   //
-//--------------------------------------------------------------------------------------//
-
-  namespace detail
-  {
-    NDNBOOST_FILESYSTEM_DECL
-    file_status status(const path&p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    file_status symlink_status(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    bool is_empty(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    path initial_path(system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    path canonical(const path& p, const path& base, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void copy(const path& from, const path& to, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void copy_directory(const path& from, const path& to, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void copy_file(const path& from, const path& to,
-                    NDNBOOST_SCOPED_ENUM(copy_option) option,  // See ticket #2925
-                    system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void copy_symlink(const path& existing_symlink, const path& new_symlink, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    bool create_directories(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    bool create_directory(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void create_directory_symlink(const path& to, const path& from,
-                                  system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void create_hard_link(const path& to, const path& from, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void create_symlink(const path& to, const path& from, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    path current_path(system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void current_path(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    bool equivalent(const path& p1, const path& p2, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    ndnboost::uintmax_t file_size(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    ndnboost::uintmax_t hard_link_count(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    std::time_t last_write_time(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void last_write_time(const path& p, const std::time_t new_time,
-                         system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void permissions(const path& p, perms prms, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    path read_symlink(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-      // For standardization, if the committee doesn't like "remove", consider "eliminate"
-    bool remove(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    ndnboost::uintmax_t remove_all(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void rename(const path& old_p, const path& new_p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    void resize_file(const path& p, uintmax_t size, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    space_info space(const path& p, system::error_code* ec=0); 
-    NDNBOOST_FILESYSTEM_DECL
-    path system_complete(const path& p, system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    path temp_directory_path(system::error_code* ec=0);
-    NDNBOOST_FILESYSTEM_DECL
-    path unique_path(const path& p, system::error_code* ec=0);
-  }  // namespace detail
-
-//--------------------------------------------------------------------------------------//
-//                                                                                      //
-//                             status query functions                                   //
-//                                                                                      //
-//--------------------------------------------------------------------------------------//
-
-  inline
-  file_status status(const path& p)    {return detail::status(p);}
-  inline 
-  file_status status(const path& p, system::error_code& ec)
-                                       {return detail::status(p, &ec);}
-  inline 
-  file_status symlink_status(const path& p) {return detail::symlink_status(p);}
-  inline
-  file_status symlink_status(const path& p, system::error_code& ec)
-                                       {return detail::symlink_status(p, &ec);}
-  inline 
-  bool exists(const path& p)           {return exists(detail::status(p));}
-  inline 
-  bool exists(const path& p, system::error_code& ec)
-                                       {return exists(detail::status(p, &ec));}
-  inline 
-  bool is_directory(const path& p)     {return is_directory(detail::status(p));}
-  inline 
-  bool is_directory(const path& p, system::error_code& ec)
-                                       {return is_directory(detail::status(p, &ec));}
-  inline 
-  bool is_regular_file(const path& p)  {return is_regular_file(detail::status(p));}
-  inline 
-  bool is_regular_file(const path& p, system::error_code& ec)
-                                       {return is_regular_file(detail::status(p, &ec));}
-  inline 
-  bool is_other(const path& p)         {return is_other(detail::status(p));}
-  inline 
-  bool is_other(const path& p, system::error_code& ec)
-                                       {return is_other(detail::status(p, &ec));}
-  inline
-  bool is_symlink(const path& p)       {return is_symlink(detail::symlink_status(p));}
-  inline 
-  bool is_symlink(const path& p, system::error_code& ec)
-                                       {return is_symlink(detail::symlink_status(p, &ec));}
-# ifndef NDNBOOST_FILESYSTEM_NO_DEPRECATED
-  inline
-  bool is_regular(const path& p)       {return is_regular(detail::status(p));}
-  inline
-  bool is_regular(const path& p, system::error_code& ec)
-                                       {return is_regular(detail::status(p, &ec));}
-# endif
-
-  inline
-  bool is_empty(const path& p)         {return detail::is_empty(p);}
-  inline
-  bool is_empty(const path& p, system::error_code& ec)
-                                       {return detail::is_empty(p, &ec);}
-
-//--------------------------------------------------------------------------------------//
-//                                                                                      //
-//                             operational functions                                    //
-//                  in alphabetical order, unless otherwise noted                       //
-//                                                                                      //
-//--------------------------------------------------------------------------------------//
- 
-  //  forward declarations
-  path current_path();  // fwd declaration
-  path initial_path();
-
-  NDNBOOST_FILESYSTEM_DECL
-  path absolute(const path& p, const path& base=current_path());
-  //  If base.is_absolute(), throws nothing. Thus no need for ec argument
-
-  inline
-  path canonical(const path& p, const path& base=current_path())
-                                       {return detail::canonical(p, base);}
-  inline
-  path canonical(const path& p, system::error_code& ec)
-                                       {return detail::canonical(p, current_path(), &ec);}
-  inline
-  path canonical(const path& p, const path& base, system::error_code& ec)
-                                       {return detail::canonical(p, base, &ec);}
-
-# ifndef NDNBOOST_FILESYSTEM_NO_DEPRECATED
-  inline
-  path complete(const path& p)
-  {
-    return absolute(p, initial_path());
-  }
-
-  inline
-  path complete(const path& p, const path& base)
-  {
-    return absolute(p, base);
-  }
-# endif
-
-  inline
-  void copy(const path& from, const path& to) {detail::copy(from, to);}
-
-  inline
-  void copy(const path& from, const path& to, system::error_code& ec) 
-                                       {detail::copy(from, to, &ec);}
-  inline
-  void copy_directory(const path& from, const path& to)
-                                       {detail::copy_directory(from, to);}
-  inline
-  void copy_directory(const path& from, const path& to, system::error_code& ec)
-                                       {detail::copy_directory(from, to, &ec);}
-  inline
-  void copy_file(const path& from, const path& to,   // See ticket #2925
-                 NDNBOOST_SCOPED_ENUM(copy_option) option)
-                                       {detail::copy_file(from, to, option);}
-  inline
-  void copy_file(const path& from, const path& to)
-                                       {detail::copy_file(from, to, copy_option::fail_if_exists);}
-  inline
-  void copy_file(const path& from, const path& to,   // See ticket #2925
-                 NDNBOOST_SCOPED_ENUM(copy_option) option, system::error_code& ec)
-                                       {detail::copy_file(from, to, option, &ec);}
-  inline
-  void copy_file(const path& from, const path& to, system::error_code& ec)
-                                       {detail::copy_file(from, to, copy_option::fail_if_exists, &ec);}
-  inline
-  void copy_symlink(const path& existing_symlink, const path& new_symlink) {detail::copy_symlink(existing_symlink, new_symlink);}
-
-  inline
-  void copy_symlink(const path& existing_symlink, const path& new_symlink, system::error_code& ec)
-                                       {detail::copy_symlink(existing_symlink, new_symlink, &ec);}
-  inline
-  bool create_directories(const path& p) {return detail::create_directories(p);}
-
-  inline
-  bool create_directories(const path& p, system::error_code& ec)
-                                       {return detail::create_directories(p, &ec);}
-  inline
-  bool create_directory(const path& p) {return detail::create_directory(p);}
-
-  inline
-  bool create_directory(const path& p, system::error_code& ec)
-                                       {return detail::create_directory(p, &ec);}
-  inline
-  void create_directory_symlink(const path& to, const path& from)
-                                       {detail::create_directory_symlink(to, from);}
-  inline
-  void create_directory_symlink(const path& to, const path& from, system::error_code& ec)
-                                       {detail::create_directory_symlink(to, from, &ec);}
-  inline
-  void create_hard_link(const path& to, const path& new_hard_link) {detail::create_hard_link(to, new_hard_link);}
-
-  inline
-  void create_hard_link(const path& to, const path& new_hard_link, system::error_code& ec)
-                                       {detail::create_hard_link(to, new_hard_link, &ec);}
-  inline
-  void create_symlink(const path& to, const path& new_symlink) {detail::create_symlink(to, new_symlink);}
-
-  inline
-  void create_symlink(const path& to, const path& new_symlink, system::error_code& ec)
-                                       {detail::create_symlink(to, new_symlink, &ec);}
-  inline
-  path current_path()                  {return detail::current_path();}
-
-  inline
-  path current_path(system::error_code& ec) {return detail::current_path(&ec);}
-
-  inline
-  void current_path(const path& p)     {detail::current_path(p);}
-
-  inline
-  void current_path(const path& p, system::error_code& ec) {detail::current_path(p, &ec);}
-
-  inline
-  bool equivalent(const path& p1, const path& p2) {return detail::equivalent(p1, p2);}
-
-  inline
-  bool equivalent(const path& p1, const path& p2, system::error_code& ec)
-                                       {return detail::equivalent(p1, p2, &ec);}
-  inline
-  ndnboost::uintmax_t file_size(const path& p) {return detail::file_size(p);}
-
-  inline
-  ndnboost::uintmax_t file_size(const path& p, system::error_code& ec)
-                                       {return detail::file_size(p, &ec);}
-  inline
-  ndnboost::uintmax_t hard_link_count(const path& p) {return detail::hard_link_count(p);}
-
-  inline
-  ndnboost::uintmax_t hard_link_count(const path& p, system::error_code& ec)
-                                       {return detail::hard_link_count(p, &ec);}
-  inline
-  path initial_path()                  {return detail::initial_path();}
-
-  inline
-  path initial_path(system::error_code& ec) {return detail::initial_path(&ec);}
-
-  template <class Path>
-  path initial_path() {return initial_path();}
-  template <class Path>
-  path initial_path(system::error_code& ec) {return detail::initial_path(&ec);}
-
-  inline
-  std::time_t last_write_time(const path& p) {return detail::last_write_time(p);}
-
-  inline
-  std::time_t last_write_time(const path& p, system::error_code& ec)
-                                       {return detail::last_write_time(p, &ec);}
-  inline
-  void last_write_time(const path& p, const std::time_t new_time)
-                                       {detail::last_write_time(p, new_time);}
-  inline
-  void last_write_time(const path& p, const std::time_t new_time, system::error_code& ec)
-                                       {detail::last_write_time(p, new_time, &ec);}
-  inline
-  void permissions(const path& p, perms prms)
-                                       {detail::permissions(p, prms);}
-  inline
-  void permissions(const path& p, perms prms, system::error_code& ec)
-                                       {detail::permissions(p, prms, &ec);}
-
-  inline
-  path read_symlink(const path& p)     {return detail::read_symlink(p);}
-
-  inline
-  path read_symlink(const path& p, system::error_code& ec)
-                                       {return detail::read_symlink(p, &ec);}
-  inline
-    // For standardization, if the committee doesn't like "remove", consider "eliminate"
-  bool remove(const path& p)           {return detail::remove(p);}
-
-  inline
-  bool remove(const path& p, system::error_code& ec) {return detail::remove(p, &ec);}
-
-  inline
-  ndnboost::uintmax_t remove_all(const path& p) {return detail::remove_all(p);}
-    
-  inline
-  ndnboost::uintmax_t remove_all(const path& p, system::error_code& ec)
-                                       {return detail::remove_all(p, &ec);}
-  inline
-  void rename(const path& old_p, const path& new_p) {detail::rename(old_p, new_p);}
-
-  inline
-  void rename(const path& old_p, const path& new_p, system::error_code& ec)
-                                       {detail::rename(old_p, new_p, &ec);}
-  inline  // name suggested by Scott McMurray
-  void resize_file(const path& p, uintmax_t size) {detail::resize_file(p, size);}
-
-  inline
-  void resize_file(const path& p, uintmax_t size, system::error_code& ec)
-                                       {detail::resize_file(p, size, &ec);}
-  inline
-  space_info space(const path& p)      {return detail::space(p);} 
-
-  inline
-  space_info space(const path& p, system::error_code& ec) {return detail::space(p, &ec);} 
-
-# ifndef NDNBOOST_FILESYSTEM_NO_DEPRECATED
-  inline bool symbolic_link_exists(const path& p)
-                                       { return is_symlink(symlink_status(p)); }
-# endif
-
-  inline
-  path system_complete(const path& p)  {return detail::system_complete(p);}
-
-  inline
-  path system_complete(const path& p, system::error_code& ec)
-                                       {return detail::system_complete(p, &ec);}
-  inline
-  path temp_directory_path()           {return detail::temp_directory_path();}
-
-  inline
-  path temp_directory_path(system::error_code& ec) 
-                                       {return detail::temp_directory_path(&ec);}
-  inline
-  path unique_path(const path& p="%%%%-%%%%-%%%%-%%%%")
-                                       { return detail::unique_path(p); }
-  inline
-  path unique_path(const path& p, system::error_code& ec)
-                                       { return detail::unique_path(p, &ec); }
-
-//--------------------------------------------------------------------------------------//
-//                                                                                      //
-//                                 directory_entry                                      //
-//                                                                                      //
-//--------------------------------------------------------------------------------------//
-
-//  GCC has a problem with a member function named path within a namespace or 
-//  sub-namespace that also has a class named path. The workaround is to always
-//  fully qualify the name path when it refers to the class name.
-
-class NDNBOOST_FILESYSTEM_DECL directory_entry
-{
-public:
-
-  // compiler generated copy constructor, copy assignment, and destructor apply
-
-  directory_entry() {}
-  explicit directory_entry(const ndnboost::filesystem::path& p,
-    file_status st = file_status(), file_status symlink_st=file_status())
-    : m_path(p), m_status(st), m_symlink_status(symlink_st)
-    {}
-
-  void assign(const ndnboost::filesystem::path& p,
-    file_status st = file_status(), file_status symlink_st = file_status())
-    { m_path = p; m_status = st; m_symlink_status = symlink_st; }
-
-  void replace_filename(const ndnboost::filesystem::path& p,
-    file_status st = file_status(), file_status symlink_st = file_status())
-  {
-    m_path.remove_filename();
-    m_path /= p;
-    m_status = st;
-    m_symlink_status = symlink_st;
-  }
-
-# ifndef NDNBOOST_FILESYSTEM_NO_DEPRECATED
-  void replace_leaf(const ndnboost::filesystem::path& p,
-    file_status st, file_status symlink_st)
-      { replace_filename(p, st, symlink_st); }
-# endif
-
-  const ndnboost::filesystem::path&  path() const               {return m_path;}
-  file_status   status() const                               {return m_get_status();}
-  file_status   status(system::error_code& ec) const         {return m_get_status(&ec);}
-  file_status   symlink_status() const                       {return m_get_symlink_status();}
-  file_status   symlink_status(system::error_code& ec) const {return m_get_symlink_status(&ec);}
-
-  bool operator==(const directory_entry& rhs) {return m_path == rhs.m_path;} 
-  bool operator!=(const directory_entry& rhs) {return m_path != rhs.m_path;} 
-  bool operator< (const directory_entry& rhs) {return m_path < rhs.m_path;} 
-  bool operator<=(const directory_entry& rhs) {return m_path <= rhs.m_path;} 
-  bool operator> (const directory_entry& rhs) {return m_path > rhs.m_path;} 
-  bool operator>=(const directory_entry& rhs) {return m_path >= rhs.m_path;} 
-
-private:
-  ndnboost::filesystem::path   m_path;
-  mutable file_status       m_status;           // stat()-like
-  mutable file_status       m_symlink_status;   // lstat()-like
-
-  file_status m_get_status(system::error_code* ec=0) const;
-  file_status m_get_symlink_status(system::error_code* ec=0) const;
-}; // directory_entry
-
-//--------------------------------------------------------------------------------------//
-//                                                                                      //
-//                            directory_iterator helpers                                //
-//                                                                                      //
-//--------------------------------------------------------------------------------------//
-
-class directory_iterator;
-
-namespace detail
-{
-  NDNBOOST_FILESYSTEM_DECL
-    system::error_code dir_itr_close(// never throws()
-    void *& handle
-#   if     defined(NDNBOOST_POSIX_API)
-    , void *& buffer
-#   endif
-  ); 
-
-  struct dir_itr_imp
-  {
-    directory_entry  dir_entry;
-    void*            handle;
-
-#   ifdef NDNBOOST_POSIX_API
-    void*            buffer;  // see dir_itr_increment implementation
-#   endif
-
-    dir_itr_imp() : handle(0)
-#   ifdef NDNBOOST_POSIX_API
-      , buffer(0)
-#   endif
-    {}
-
-    ~dir_itr_imp() // never throws
-    {
-      dir_itr_close(handle
-#       if defined(NDNBOOST_POSIX_API)
-         , buffer
-#       endif
-    );
-    }
-  };
-
-  // see path::iterator: comment below
-  NDNBOOST_FILESYSTEM_DECL void directory_iterator_construct(directory_iterator& it,
-    const path& p, system::error_code* ec);
-  NDNBOOST_FILESYSTEM_DECL void directory_iterator_increment(directory_iterator& it,
-    system::error_code* ec);
-
-}  // namespace detail
-
-//--------------------------------------------------------------------------------------//
-//                                                                                      //
-//                                directory_iterator                                    //
-//                                                                                      //
-//--------------------------------------------------------------------------------------//
-
-  class directory_iterator
-    : public ndnboost::iterator_facade< directory_iterator,
-                                     directory_entry,
-                                     ndnboost::single_pass_traversal_tag >
-  {
-  public:
-
-    directory_iterator(){}  // creates the "end" iterator
-
-    // iterator_facade derived classes don't seem to like implementations in
-    // separate translation unit dll's, so forward to detail functions
-    explicit directory_iterator(const path& p)
-        : m_imp(new detail::dir_itr_imp)
-          { detail::directory_iterator_construct(*this, p, 0); }
-
-    directory_iterator(const path& p, system::error_code& ec)
-        : m_imp(new detail::dir_itr_imp)
-          { detail::directory_iterator_construct(*this, p, &ec); }
-
-   ~directory_iterator() {} // never throws
-
-    directory_iterator& increment(system::error_code& ec)
-    { 
-      detail::directory_iterator_increment(*this, &ec);
-      return *this;
-    }
-
-  private:
-    friend struct detail::dir_itr_imp;
-    friend NDNBOOST_FILESYSTEM_DECL void detail::directory_iterator_construct(directory_iterator& it,
-      const path& p, system::error_code* ec);
-    friend NDNBOOST_FILESYSTEM_DECL void detail::directory_iterator_increment(directory_iterator& it,
-      system::error_code* ec);
-
-    // shared_ptr provides shallow-copy semantics required for InputIterators.
-    // m_imp.get()==0 indicates the end iterator.
-    ndnboost::shared_ptr< detail::dir_itr_imp >  m_imp;
-
-    friend class ndnboost::iterator_core_access;
-
-    ndnboost::iterator_facade<
-      directory_iterator,
-      directory_entry,
-      ndnboost::single_pass_traversal_tag >::reference dereference() const 
-    {
-      NDNBOOST_ASSERT_MSG(m_imp.get(), "attempt to dereference end iterator");
-      return m_imp->dir_entry;
-    }
-
-    void increment() { detail::directory_iterator_increment(*this, 0); }
-
-    bool equal(const directory_iterator& rhs) const
-      { return m_imp == rhs.m_imp; }
-  };
-
-//--------------------------------------------------------------------------------------//
-//                                                                                      //
-//                      recursive_directory_iterator helpers                            //
-//                                                                                      //
-//--------------------------------------------------------------------------------------//
-
-  NDNBOOST_SCOPED_ENUM_START(symlink_option)
-  {
-    none,
-    no_recurse = none,         // don't follow directory symlinks (default behavior)
-    recurse,                   // follow directory symlinks
-    _detail_no_push = recurse << 1  // internal use only
-  };
-  NDNBOOST_SCOPED_ENUM_END
-
-  NDNBOOST_BITMASK(NDNBOOST_SCOPED_ENUM(symlink_option))
-
-  namespace detail
-  {
-    struct recur_dir_itr_imp
-    {
-      typedef directory_iterator element_type;
-      std::stack< element_type, std::vector< element_type > > m_stack;
-      int  m_level;
-      NDNBOOST_SCOPED_ENUM(symlink_option) m_options;
-
-      recur_dir_itr_imp() : m_level(0), m_options(symlink_option::none) {}
-
-      void increment(system::error_code* ec);  // ec == 0 means throw on error
-
-      void pop();
-
-    };
-
-    //  Implementation is inline to avoid dynamic linking difficulties with m_stack:
-    //  Microsoft warning C4251, m_stack needs to have dll-interface to be used by
-    //  clients of struct 'ndnboost::filesystem::detail::recur_dir_itr_imp'
-
-    inline
-    void recur_dir_itr_imp::increment(system::error_code* ec)
-    // ec == 0 means throw on error
-    {
-      if ((m_options & symlink_option::_detail_no_push) == symlink_option::_detail_no_push)
-        m_options &= ~symlink_option::_detail_no_push;
-
-      else
-      {
-        // Logic for following predicate was contributed by Daniel Aarno to handle cyclic
-        // symlinks correctly and efficiently, fixing ticket #5652.
-        //   if (((m_options & symlink_option::recurse) == symlink_option::recurse
-        //         || !is_symlink(m_stack.top()->symlink_status()))
-        //       && is_directory(m_stack.top()->status())) ...
-        // The predicate code has since been rewritten to pass error_code arguments,
-        // per ticket #5653.
-        bool or_pred = (m_options & symlink_option::recurse) == symlink_option::recurse
-                       || (ec == 0 ? !is_symlink(m_stack.top()->symlink_status())
-                                   : !is_symlink(m_stack.top()->symlink_status(*ec)));
-        if (ec != 0 && *ec)
-          return;
-        bool and_pred = or_pred && (ec == 0 ? is_directory(m_stack.top()->status())
-                                            : is_directory(m_stack.top()->status(*ec)));
-        if (ec != 0 && *ec)
-          return;
-
-        if (and_pred)
-        {
-          if (ec == 0)
-            m_stack.push(directory_iterator(m_stack.top()->path()));
-          else
-          {
-            m_stack.push(directory_iterator(m_stack.top()->path(), *ec));
-            if (*ec)
-              return;
-          }
-          if (m_stack.top() != directory_iterator())
-          {
-            ++m_level;
-            return;
-          }
-          m_stack.pop();
-        }
-      }
-
-      while (!m_stack.empty() && ++m_stack.top() == directory_iterator())
-      {
-        m_stack.pop();
-        --m_level;
-      }
-    }
-
-    inline
-    void recur_dir_itr_imp::pop()
-    {
-      NDNBOOST_ASSERT_MSG(m_level > 0,
-        "pop() on recursive_directory_iterator with level < 1");
-
-      do
-      {
-        m_stack.pop();
-        --m_level;
-      }
-      while (!m_stack.empty() && ++m_stack.top() == directory_iterator());
-    }
-  } // namespace detail
-
-//--------------------------------------------------------------------------------------//
-//                                                                                      //
-//                           recursive_directory_iterator                               //
-//                                                                                      //
-//--------------------------------------------------------------------------------------//
-
-  class recursive_directory_iterator
-    : public ndnboost::iterator_facade<
-        recursive_directory_iterator,
-        directory_entry,
-        ndnboost::single_pass_traversal_tag >
-  {
-  public:
-
-    recursive_directory_iterator(){}  // creates the "end" iterator
-
-    explicit recursive_directory_iterator(const path& dir_path,
-      NDNBOOST_SCOPED_ENUM(symlink_option) opt = symlink_option::none)
-      : m_imp(new detail::recur_dir_itr_imp)
-    {
-      m_imp->m_options = opt;
-      m_imp->m_stack.push(directory_iterator(dir_path));
-      if (m_imp->m_stack.top() == directory_iterator())
-        { m_imp.reset (); }
-    }
-
-    recursive_directory_iterator(const path& dir_path,
-      NDNBOOST_SCOPED_ENUM(symlink_option) opt,
-      system::error_code & ec)
-    : m_imp(new detail::recur_dir_itr_imp)
-    {
-      m_imp->m_options = opt;
-      m_imp->m_stack.push(directory_iterator(dir_path, ec));
-      if (m_imp->m_stack.top() == directory_iterator())
-        { m_imp.reset (); }
-    }
-
-    recursive_directory_iterator(const path& dir_path,
-      system::error_code & ec)
-    : m_imp(new detail::recur_dir_itr_imp)
-    {
-      m_imp->m_options = symlink_option::none;
-      m_imp->m_stack.push(directory_iterator(dir_path, ec));
-      if (m_imp->m_stack.top() == directory_iterator())
-        { m_imp.reset (); }
-    }
-
-    recursive_directory_iterator& increment(system::error_code& ec)
-    {
-      NDNBOOST_ASSERT_MSG(m_imp.get(),
-        "increment() on end recursive_directory_iterator");
-      m_imp->increment(&ec);
-      if (m_imp->m_stack.empty())
-        m_imp.reset(); // done, so make end iterator
-      return *this;
-    }
-
-    int level() const
-    { 
-      NDNBOOST_ASSERT_MSG(m_imp.get(),
-        "level() on end recursive_directory_iterator");
-      return m_imp->m_level;
-    }
-
-    bool no_push_pending() const
-    {
-      NDNBOOST_ASSERT_MSG(m_imp.get(),
-        "is_no_push_requested() on end recursive_directory_iterator");
-      return (m_imp->m_options & symlink_option::_detail_no_push)
-        == symlink_option::_detail_no_push;
-    }
-
-#   ifndef NDNBOOST_FILESYSTEM_NO_DEPRECATED
-    bool no_push_request() const { return no_push_pending(); }
-#   endif
-
-    void pop()
-    { 
-      NDNBOOST_ASSERT_MSG(m_imp.get(),
-        "pop() on end recursive_directory_iterator");
-      m_imp->pop();
-      if (m_imp->m_stack.empty()) m_imp.reset(); // done, so make end iterator
-    }
-
-    void no_push(bool value=true)
-    {
-      NDNBOOST_ASSERT_MSG(m_imp.get(),
-        "no_push() on end recursive_directory_iterator");
-      if (value)
-        m_imp->m_options |= symlink_option::_detail_no_push;
-      else
-        m_imp->m_options &= ~symlink_option::_detail_no_push;
-    }
-
-    file_status status() const
-    {
-      NDNBOOST_ASSERT_MSG(m_imp.get(),
-        "status() on end recursive_directory_iterator");
-      return m_imp->m_stack.top()->status();
-    }
-
-    file_status symlink_status() const
-    {
-      NDNBOOST_ASSERT_MSG(m_imp.get(),
-        "symlink_status() on end recursive_directory_iterator");
-      return m_imp->m_stack.top()->symlink_status();
-    }
-
-  private:
-
-    // shared_ptr provides shallow-copy semantics required for InputIterators.
-    // m_imp.get()==0 indicates the end iterator.
-    ndnboost::shared_ptr< detail::recur_dir_itr_imp >  m_imp;
-
-    friend class ndnboost::iterator_core_access;
-
-    ndnboost::iterator_facade< 
-      recursive_directory_iterator,
-      directory_entry,
-      ndnboost::single_pass_traversal_tag >::reference
-    dereference() const 
-    {
-      NDNBOOST_ASSERT_MSG(m_imp.get(),
-        "dereference of end recursive_directory_iterator");
-      return *m_imp->m_stack.top();
-    }
-
-    void increment()
-    { 
-      NDNBOOST_ASSERT_MSG(m_imp.get(),
-        "increment of end recursive_directory_iterator");
-      m_imp->increment(0);
-      if (m_imp->m_stack.empty())
-        m_imp.reset(); // done, so make end iterator
-    }
-
-    bool equal(const recursive_directory_iterator& rhs) const
-      { return m_imp == rhs.m_imp; }
-
-  };
-
-# if !defined(NDNBOOST_FILESYSTEM_NO_DEPRECATED)
-  typedef recursive_directory_iterator wrecursive_directory_iterator;
-# endif
-
-//--------------------------------------------------------------------------------------//
-//                                                                                      //
-//                            class filesystem_error                                    //
-//                                                                                      //
-//--------------------------------------------------------------------------------------//
-  
-  class NDNBOOST_SYMBOL_VISIBLE filesystem_error : public system::system_error
-  {
-  // see http://www.boost.org/more/error_handling.html for design rationale
-
-  // all functions are inline to avoid issues with crossing dll boundaries
-
-  public:
-    // compiler generates copy constructor and copy assignment
-
-    filesystem_error(
-      const std::string & what_arg, system::error_code ec)
-      : system::system_error(ec, what_arg)
-    {
-      try
-      {
-        m_imp_ptr.reset(new m_imp);
-      }
-      catch (...) { m_imp_ptr.reset(); }
-    }
-
-    filesystem_error(
-      const std::string & what_arg, const path& path1_arg,
-      system::error_code ec)
-      : system::system_error(ec, what_arg)
-    {
-      try
-      {
-        m_imp_ptr.reset(new m_imp);
-        m_imp_ptr->m_path1 = path1_arg;
-      }
-      catch (...) { m_imp_ptr.reset(); }
-    }
-    
-    filesystem_error(
-      const std::string & what_arg, const path& path1_arg,
-      const path& path2_arg, system::error_code ec)
-      : system::system_error(ec, what_arg)
-    {
-      try
-      {
-        m_imp_ptr.reset(new m_imp);
-        m_imp_ptr->m_path1 = path1_arg;
-        m_imp_ptr->m_path2 = path2_arg;
-      }
-      catch (...) { m_imp_ptr.reset(); }
-    }
-
-    ~filesystem_error() throw() {}
-
-    const path& path1() const
-    {
-      static const path empty_path;
-      return m_imp_ptr.get() ? m_imp_ptr->m_path1 : empty_path ;
-    }
-    const path& path2() const
-    {
-      static const path empty_path;
-      return m_imp_ptr.get() ? m_imp_ptr->m_path2 : empty_path ;
-    }
-
-    const char* what() const throw()
-    {
-      if (!m_imp_ptr.get())
-        return system::system_error::what();
-
-      try
-      {
-        if (m_imp_ptr->m_what.empty())
-        {
-          m_imp_ptr->m_what = system::system_error::what();
-          if (!m_imp_ptr->m_path1.empty())
-          {
-            m_imp_ptr->m_what += ": \"";
-            m_imp_ptr->m_what += m_imp_ptr->m_path1.string();
-            m_imp_ptr->m_what += "\"";
-          }
-          if (!m_imp_ptr->m_path2.empty())
-          {
-            m_imp_ptr->m_what += ", \"";
-            m_imp_ptr->m_what += m_imp_ptr->m_path2.string();
-            m_imp_ptr->m_what += "\"";
-          }
-        }
-        return m_imp_ptr->m_what.c_str();
-      }
-      catch (...)
-      {
-        return system::system_error::what();
-      }
-    }
-
-  private:
-    struct m_imp
-    {
-      path         m_path1; // may be empty()
-      path         m_path2; // may be empty()
-      std::string  m_what;  // not built until needed
-    };
-    ndnboost::shared_ptr<m_imp> m_imp_ptr;
-  };
-
-//  test helper  -----------------------------------------------------------------------//
-
-//  Not part of the documented interface since false positives are possible;
-//  there is no law that says that an OS that has large stat.st_size
-//  actually supports large file sizes.
-
-  namespace detail
-  {
-    NDNBOOST_FILESYSTEM_DECL bool possible_large_file_size_support();
-  }
-
-  } // namespace filesystem
-} // namespace ndnboost
-
-#include <ndnboost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-#endif // NDNBOOST_FILESYSTEM3_OPERATIONS_HPP
diff --git a/include/ndnboost/filesystem/path.hpp b/include/ndnboost/filesystem/path.hpp
deleted file mode 100644
index 8dee66f..0000000
--- a/include/ndnboost/filesystem/path.hpp
+++ /dev/null
@@ -1,758 +0,0 @@
-//  filesystem path.hpp  ---------------------------------------------------------------//
-
-//  Copyright Beman Dawes 2002-2005, 2009
-//  Copyright Vladimir Prus 2002
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-//  Library home page: http://www.boost.org/libs/filesystem
-
-//  path::stem(), extension(), and replace_extension() are based on
-//  basename(), extension(), and change_extension() from the original
-//  filesystem/convenience.hpp header by Vladimir Prus.
-
-#ifndef NDNBOOST_FILESYSTEM_PATH_HPP
-#define NDNBOOST_FILESYSTEM_PATH_HPP
-
-#include <ndnboost/config.hpp>
-
-# if defined( NDNBOOST_NO_STD_WSTRING )
-#   error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support
-# endif
-
-#include <ndnboost/filesystem/config.hpp>
-#include <ndnboost/filesystem/path_traits.hpp>  // includes <cwchar>
-#include <ndnboost/system/error_code.hpp>
-#include <ndnboost/system/system_error.hpp>
-#include <ndnboost/iterator/iterator_facade.hpp>
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/io/detail/quoted_manip.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/functional/hash_fwd.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <string>
-#include <iterator>
-#include <cstring>
-#include <iosfwd>
-#include <stdexcept>
-#include <cassert>
-#include <locale>
-#include <algorithm>
-
-#include <ndnboost/config/abi_prefix.hpp> // must be the last #include
-
-namespace ndnboost
-{
-namespace filesystem
-{
-  //------------------------------------------------------------------------------------//
-  //                                                                                    //
-  //                                    class path                                      //
-  //                                                                                    //
-  //------------------------------------------------------------------------------------//
-
-  class NDNBOOST_FILESYSTEM_DECL path
-  {
-  public:
-
-    //  value_type is the character type used by the operating system API to
-    //  represent paths.
-
-# ifdef NDNBOOST_WINDOWS_API
-    typedef wchar_t                        value_type;
-    NDNBOOST_STATIC_CONSTEXPR value_type      preferred_separator = L'\\';
-# else 
-    typedef char                           value_type;
-    NDNBOOST_STATIC_CONSTEXPR value_type      preferred_separator = '/';
-# endif
-    typedef std::basic_string<value_type>  string_type;  
-    typedef std::codecvt<wchar_t, char,
-                         std::mbstate_t>   codecvt_type;
-
-
-    //  ----- character encoding conversions -----
-
-    //  Following the principle of least astonishment, path input arguments
-    //  passed to or obtained from the operating system via objects of
-    //  class path behave as if they were directly passed to or
-    //  obtained from the O/S API, unless conversion is explicitly requested.
-    //
-    //  POSIX specfies that path strings are passed unchanged to and from the
-    //  API. Note that this is different from the POSIX command line utilities,
-    //  which convert according to a locale.
-    //
-    //  Thus for POSIX, char strings do not undergo conversion.  wchar_t strings
-    //  are converted to/from char using the path locale or, if a conversion
-    //  argument is given, using a conversion object modeled on
-    //  std::wstring_convert.
-    //
-    //  The path locale, which is global to the thread, can be changed by the
-    //  imbue() function. It is initialized to an implementation defined locale.
-    //  
-    //  For Windows, wchar_t strings do not undergo conversion. char strings
-    //  are converted using the "ANSI" or "OEM" code pages, as determined by
-    //  the AreFileApisANSI() function, or, if a conversion argument is given,
-    //  using a conversion object modeled on std::wstring_convert.
-    //
-    //  See m_pathname comments for further important rationale.
-
-    //  TODO: rules needed for operating systems that use / or .
-    //  differently, or format directory paths differently from file paths. 
-    //
-    //  **********************************************************************************
-    //
-    //  More work needed: How to handle an operating system that may have
-    //  slash characters or dot characters in valid filenames, either because
-    //  it doesn't follow the POSIX standard, or because it allows MBCS
-    //  filename encodings that may contain slash or dot characters. For
-    //  example, ISO/IEC 2022 (JIS) encoding which allows switching to
-    //  JIS x0208-1983 encoding. A valid filename in this set of encodings is
-    //  0x1B 0x24 0x42 [switch to X0208-1983] 0x24 0x2F [U+304F Kiragana letter KU]
-    //                                             ^^^^
-    //  Note that 0x2F is the ASCII slash character
-    //
-    //  **********************************************************************************
-
-    //  Supported source arguments: half-open iterator range, container, c-array,
-    //  and single pointer to null terminated string.
-
-    //  All source arguments except pointers to null terminated byte strings support
-    //  multi-byte character strings which may have embedded nulls. Embedded null
-    //  support is required for some Asian languages on Windows.
-
-    //  [defaults] "const codecvt_type& cvt=codecvt()" default arguments are not used
-    //  because some compilers, such as Microsoft prior to VC++ 10, do not handle defaults
-    //  correctly in templates.
-
-    //  -----  constructors  -----
-
-    path(){}                                          
-
-    path(const path& p) : m_pathname(p.m_pathname) {}
-
-    template <class Source>
-    path(Source const& source,
-      typename ndnboost::enable_if<path_traits::is_pathable<
-        typename ndnboost::decay<Source>::type> >::type* =0)
-    {
-      path_traits::dispatch(source, m_pathname, codecvt());
-    }
-
-    //  Overloads for the operating system API's native character type. Rationale:
-    //    - Avoids use of codecvt() for native value_type strings. This limits the
-    //      impact of locale("") initialization failures on POSIX systems to programs
-    //      that actually depend on locale(""). It further ensures that exceptions thrown
-    //      as a result of such failues occur after main() has started, so can be caught.
-    //      This is a partial resolution of tickets 4688, 5100, and 5289.
-    //    - A slight optimization for a common use case, particularly on POSIX since
-    //      value_type is char and that is the most common useage.
-    path(const value_type* s) : m_pathname(s) {}
-    path(const std::basic_string<value_type>& s) : m_pathname(s) {}
-
-    template <class Source>
-    path(Source const& source, const codecvt_type& cvt)
-    //  see [defaults] note above explaining why codecvt() default arguments are not used
-    {
-      path_traits::dispatch(source, m_pathname, cvt);
-    }
-
-    template <class InputIterator>
-    path(InputIterator begin, InputIterator end)
-    { 
-      if (begin != end)
-      {
-        std::basic_string<typename std::iterator_traits<InputIterator>::value_type>
-          s(begin, end);
-        path_traits::convert(s.c_str(), s.c_str()+s.size(), m_pathname, codecvt());
-      }
-    }
-
-    template <class InputIterator>
-    path(InputIterator begin, InputIterator end, const codecvt_type& cvt)
-    { 
-      if (begin != end)
-      {
-        std::basic_string<typename std::iterator_traits<InputIterator>::value_type>
-          s(begin, end);
-        path_traits::convert(s.c_str(), s.c_str()+s.size(), m_pathname, cvt);
-      }
-    }
-
-    //  -----  assignments  -----
-
-    path& operator=(const path& p)
-    {
-      m_pathname = p.m_pathname;
-      return *this;
-    }
-
-    path& operator=(const value_type* ptr)  // required in case ptr overlaps *this
-    {
-      m_pathname = ptr;
-      return *this;
-    }
-
-    template <class Source>
-      typename ndnboost::enable_if<path_traits::is_pathable<
-        typename ndnboost::decay<Source>::type>, path&>::type
-    operator=(Source const& source)
-    {
-      m_pathname.clear();
-      path_traits::dispatch(source, m_pathname, codecvt());
-      return *this;
-    }
-
-    path& assign(const value_type* ptr, const codecvt_type&)  // required in case ptr overlaps *this
-    {
-      m_pathname = ptr;
-      return *this;
-    }
-
-    template <class Source>
-    path& assign(Source const& source, const codecvt_type& cvt)
-    {
-      m_pathname.clear();
-      path_traits::dispatch(source, m_pathname, cvt);
-      return *this;
-    }
-
-    template <class InputIterator>
-    path& assign(InputIterator begin, InputIterator end)
-    {
-      return assign(begin, end, codecvt());
-    }
-
-    template <class InputIterator>
-    path& assign(InputIterator begin, InputIterator end, const codecvt_type& cvt)
-    { 
-      m_pathname.clear();
-      if (begin != end)
-      {
-        std::basic_string<typename std::iterator_traits<InputIterator>::value_type>
-          s(begin, end);
-        path_traits::convert(s.c_str(), s.c_str()+s.size(), m_pathname, cvt);
-      }
-      return *this;
-    }
-
-    //  -----  concatenation  -----
-
-    path& operator+=(const path& p)         {m_pathname += p.m_pathname; return *this;}
-    path& operator+=(const string_type& s)  {m_pathname += s; return *this;}
-    path& operator+=(const value_type* ptr) {m_pathname += ptr; return *this;}
-    path& operator+=(value_type c)          {m_pathname += c; return *this;}
-
-    template <class Source>
-      typename ndnboost::enable_if<path_traits::is_pathable<
-        typename ndnboost::decay<Source>::type>, path&>::type
-    operator+=(Source const& source)
-    {
-      return concat(source, codecvt());
-    }
-
-    template <class CharT>
-      typename ndnboost::enable_if<is_integral<CharT>, path&>::type
-    operator+=(CharT c)
-    {
-      CharT tmp[2];
-      tmp[0] = c;
-      tmp[1] = 0;
-      return concat(tmp, codecvt());
-    }
-
-    template <class Source>
-    path& concat(Source const& source, const codecvt_type& cvt)
-    {
-      path_traits::dispatch(source, m_pathname, cvt);
-      return *this;
-    }
-
-    template <class InputIterator>
-    path& concat(InputIterator begin, InputIterator end)
-    { 
-      return concat(begin, end, codecvt());
-    }
-
-    template <class InputIterator>
-    path& concat(InputIterator begin, InputIterator end, const codecvt_type& cvt)
-    { 
-      if (begin == end)
-        return *this;
-      std::basic_string<typename std::iterator_traits<InputIterator>::value_type>
-        s(begin, end);
-      path_traits::convert(s.c_str(), s.c_str()+s.size(), m_pathname, cvt);
-      return *this;
-    }
-
-    //  -----  appends  -----
-
-    //  if a separator is added, it is the preferred separator for the platform;
-    //  slash for POSIX, backslash for Windows
-
-    path& operator/=(const path& p);
-
-    path& operator/=(const value_type* ptr);
-
-    template <class Source>
-      typename ndnboost::enable_if<path_traits::is_pathable<
-        typename ndnboost::decay<Source>::type>, path&>::type
-    operator/=(Source const& source)
-    {
-      return append(source, codecvt());
-    }
-
-    path& append(const value_type* ptr, const codecvt_type&)  // required in case ptr overlaps *this
-    {
-      this->operator/=(ptr);
-      return *this;
-    }
-
-    template <class Source>
-    path& append(Source const& source, const codecvt_type& cvt);
-
-    template <class InputIterator>
-    path& append(InputIterator begin, InputIterator end)
-    { 
-      return append(begin, end, codecvt());
-    }
-
-    template <class InputIterator>
-    path& append(InputIterator begin, InputIterator end, const codecvt_type& cvt);
-
-    //  -----  modifiers  -----
-
-    void   clear()             { m_pathname.clear(); }
-    path&  make_preferred()
-#   ifdef NDNBOOST_POSIX_API
-      { return *this; }  // POSIX no effect
-#   else // NDNBOOST_WINDOWS_API
-      ;  // change slashes to backslashes
-#   endif
-    path&  remove_filename();
-    path&  replace_extension(const path& new_extension = path());
-    void   swap(path& rhs)     { m_pathname.swap(rhs.m_pathname); }
-
-    //  -----  observers  -----
-  
-    //  For operating systems that format file paths differently than directory
-    //  paths, return values from observers are formatted as file names unless there
-    //  is a trailing separator, in which case returns are formatted as directory
-    //  paths. POSIX and Windows make no such distinction.
-
-    //  Implementations are permitted to return const values or const references.
-
-    //  The string or path returned by an observer are specified as being formatted
-    //  as "native" or "generic".
-    //
-    //  For POSIX, these are all the same format; slashes and backslashes are as input and
-    //  are not modified.
-    //
-    //  For Windows,   native:    as input; slashes and backslashes are not modified;
-    //                            this is the format of the internally stored string.
-    //                 generic:   backslashes are converted to slashes
-
-    //  -----  native format observers  -----
-
-    const string_type&  native() const { return m_pathname; }          // Throws: nothing
-    const value_type*   c_str() const  { return m_pathname.c_str(); }  // Throws: nothing
-
-    template <class String>
-    String string() const;
-
-    template <class String>
-    String string(const codecvt_type& cvt) const;
-
-#   ifdef NDNBOOST_WINDOWS_API
-    const std::string string() const { return string(codecvt()); } 
-    const std::string string(const codecvt_type& cvt) const
-    { 
-      std::string tmp;
-      if (!m_pathname.empty())
-        path_traits::convert(&*m_pathname.begin(), &*m_pathname.begin()+m_pathname.size(),
-          tmp, cvt);
-      return tmp;
-    }
-    
-    //  string_type is std::wstring, so there is no conversion
-    const std::wstring&  wstring() const { return m_pathname; }
-    const std::wstring&  wstring(const codecvt_type&) const { return m_pathname; }
-
-#   else   // NDNBOOST_POSIX_API
-    //  string_type is std::string, so there is no conversion
-    const std::string&  string() const { return m_pathname; }
-    const std::string&  string(const codecvt_type&) const { return m_pathname; }
-
-    const std::wstring  wstring() const { return wstring(codecvt()); }
-    const std::wstring  wstring(const codecvt_type& cvt) const
-    { 
-      std::wstring tmp;
-      if (!m_pathname.empty())
-        path_traits::convert(&*m_pathname.begin(), &*m_pathname.begin()+m_pathname.size(),
-          tmp, cvt);
-      return tmp;
-    }
-
-#   endif
-
-    //  -----  generic format observers  -----
-
-    template <class String>
-    String generic_string() const;
-
-    template <class String>
-    String generic_string(const codecvt_type& cvt) const;
-
-#   ifdef NDNBOOST_WINDOWS_API
-    const std::string   generic_string() const { return generic_string(codecvt()); } 
-    const std::string   generic_string(const codecvt_type& cvt) const; 
-    const std::wstring  generic_wstring() const;
-    const std::wstring  generic_wstring(const codecvt_type&) const { return generic_wstring(); };
-
-#   else // NDNBOOST_POSIX_API
-    //  On POSIX-like systems, the generic format is the same as the native format
-    const std::string&  generic_string() const  { return m_pathname; }
-    const std::string&  generic_string(const codecvt_type&) const  { return m_pathname; }
-    const std::wstring  generic_wstring() const { return wstring(codecvt()); }
-    const std::wstring  generic_wstring(const codecvt_type& cvt) const { return wstring(cvt); }
-
-#   endif
-
-    //  -----  compare  -----
-
-    int compare(const path& p) const NDNBOOST_NOEXCEPT;  // generic, lexicographical
-    int compare(const std::string& s) const { return compare(path(s)); }
-    int compare(const value_type* s) const  { return compare(path(s)); }
-
-    //  -----  decomposition  -----
-
-    path  root_path() const; 
-    path  root_name() const;         // returns 0 or 1 element path
-                                     // even on POSIX, root_name() is non-empty() for network paths
-    path  root_directory() const;    // returns 0 or 1 element path
-    path  relative_path() const;
-    path  parent_path() const;
-    path  filename() const;          // returns 0 or 1 element path
-    path  stem() const;              // returns 0 or 1 element path
-    path  extension() const;         // returns 0 or 1 element path
-
-    //  -----  query  -----
-
-    bool empty() const               { return m_pathname.empty(); } // name consistent with std containers
-    bool has_root_path() const       { return has_root_directory() || has_root_name(); }
-    bool has_root_name() const       { return !root_name().empty(); }
-    bool has_root_directory() const  { return !root_directory().empty(); }
-    bool has_relative_path() const   { return !relative_path().empty(); }
-    bool has_parent_path() const     { return !parent_path().empty(); }
-    bool has_filename() const        { return !m_pathname.empty(); }
-    bool has_stem() const            { return !stem().empty(); }
-    bool has_extension() const       { return !extension().empty(); }
-    bool is_absolute() const
-    {
-#     ifdef NDNBOOST_WINDOWS_API
-      return has_root_name() && has_root_directory();
-#     else
-      return has_root_directory();
-#     endif
-    }
-    bool is_relative() const         { return !is_absolute(); } 
-
-    //  -----  iterators  -----
-
-    class iterator;
-    typedef iterator const_iterator;
-
-    iterator begin() const;
-    iterator end() const;
-
-    //  -----  static member functions  -----
-
-    static std::locale  imbue(const std::locale& loc);
-    static const        codecvt_type& codecvt();
-
-    //  -----  deprecated functions  -----
-
-# if defined(NDNBOOST_FILESYSTEM_DEPRECATED) && defined(NDNBOOST_FILESYSTEM_NO_DEPRECATED)
-#   error both NDNBOOST_FILESYSTEM_DEPRECATED and NDNBOOST_FILESYSTEM_NO_DEPRECATED are defined
-# endif
-
-# if !defined(NDNBOOST_FILESYSTEM_NO_DEPRECATED)
-    //  recently deprecated functions supplied by default
-    path&  normalize()              { return m_normalize(); }
-    path&  remove_leaf()            { return remove_filename(); }
-    path   leaf() const             { return filename(); }
-    path   branch_path() const      { return parent_path(); }
-    bool   has_leaf() const         { return !m_pathname.empty(); }
-    bool   has_branch_path() const  { return !parent_path().empty(); }
-    bool   is_complete() const      { return is_absolute(); }
-# endif
-
-# if defined(NDNBOOST_FILESYSTEM_DEPRECATED)
-    //  deprecated functions with enough signature or semantic changes that they are
-    //  not supplied by default 
-    const std::string file_string() const               { return string(); }
-    const std::string directory_string() const          { return string(); }
-    const std::string native_file_string() const        { return string(); }
-    const std::string native_directory_string() const   { return string(); }
-    const string_type external_file_string() const      { return native(); }
-    const string_type external_directory_string() const { return native(); }
-
-    //  older functions no longer supported
-    //typedef bool (*name_check)(const std::string & name);
-    //basic_path(const string_type& str, name_check) { operator/=(str); }
-    //basic_path(const typename string_type::value_type* s, name_check)
-    //  { operator/=(s);}
-    //static bool default_name_check_writable() { return false; } 
-    //static void default_name_check(name_check) {}
-    //static name_check default_name_check() { return 0; }
-    //basic_path& canonize();
-# endif
-
-//--------------------------------------------------------------------------------------//
-//                            class path private members                                //
-//--------------------------------------------------------------------------------------//
-
-  private:
-#   if defined(_MSC_VER)
-#     pragma warning(push) // Save warning settings
-#     pragma warning(disable : 4251) // disable warning: class 'std::basic_string<_Elem,_Traits,_Ax>'
-#   endif                            // needs to have dll-interface...
-/*
-      m_pathname has the type, encoding, and format required by the native
-      operating system. Thus for POSIX and Windows there is no conversion for
-      passing m_pathname.c_str() to the O/S API or when obtaining a path from the
-      O/S API. POSIX encoding is unspecified other than for dot and slash
-      characters; POSIX just treats paths as a sequence of bytes. Windows
-      encoding is UCS-2 or UTF-16 depending on the version.
-*/
-    string_type  m_pathname;  // Windows: as input; backslashes NOT converted to slashes,
-                              // slashes NOT converted to backslashes
-#   if defined(_MSC_VER)
-#     pragma warning(pop) // restore warning settings.
-#   endif 
-
-    string_type::size_type m_append_separator_if_needed();
-    //  Returns: If separator is to be appended, m_pathname.size() before append. Otherwise 0.
-    //  Note: An append is never performed if size()==0, so a returned 0 is unambiguous.
-
-    void m_erase_redundant_separator(string_type::size_type sep_pos);
-    string_type::size_type m_parent_path_end() const;
-
-    path& m_normalize();
-
-    // Was qualified; como433beta8 reports:
-    //    warning #427-D: qualified name is not allowed in member declaration 
-    friend class iterator;
-    friend bool operator<(const path& lhs, const path& rhs);
-
-    // see path::iterator::increment/decrement comment below
-    static void m_path_iterator_increment(path::iterator & it);
-    static void m_path_iterator_decrement(path::iterator & it);
-
-  };  // class path
-
-  namespace detail
-  {
-    NDNBOOST_FILESYSTEM_DECL
-      int lex_compare(path::iterator first1, path::iterator last1,
-        path::iterator first2, path::iterator last2);
-  }
-
-# ifndef NDNBOOST_FILESYSTEM_NO_DEPRECATED
-  typedef path wpath;
-# endif
-
-  //------------------------------------------------------------------------------------//
-  //                             class path::iterator                                   //
-  //------------------------------------------------------------------------------------//
- 
-  class path::iterator
-    : public ndnboost::iterator_facade<
-      path::iterator,
-      path const,
-      ndnboost::bidirectional_traversal_tag >
-  {
-  private:
-    friend class ndnboost::iterator_core_access;
-    friend class ndnboost::filesystem::path;
-    friend void m_path_iterator_increment(path::iterator & it);
-    friend void m_path_iterator_decrement(path::iterator & it);
-
-    const path& dereference() const { return m_element; }
-
-    bool equal(const iterator & rhs) const
-    {
-      return m_path_ptr == rhs.m_path_ptr && m_pos == rhs.m_pos;
-    }
-
-    // iterator_facade derived classes don't seem to like implementations in
-    // separate translation unit dll's, so forward to class path static members
-    void increment() { m_path_iterator_increment(*this); }
-    void decrement() { m_path_iterator_decrement(*this); }
-
-    path                    m_element;   // current element
-    const path*             m_path_ptr;  // path being iterated over
-    string_type::size_type  m_pos;       // position of m_element in
-                                         // m_path_ptr->m_pathname.
-                                         // if m_element is implicit dot, m_pos is the
-                                         // position of the last separator in the path.
-                                         // end() iterator is indicated by 
-                                         // m_pos == m_path_ptr->m_pathname.size()
-  }; // path::iterator
-
-  //------------------------------------------------------------------------------------//
-  //                                                                                    //
-  //                              non-member functions                                  //
-  //                                                                                    //
-  //------------------------------------------------------------------------------------//
-
-  //  std::lexicographical_compare would infinately recurse because path iterators
-  //  yield paths, so provide a path aware version
-  inline bool lexicographical_compare(path::iterator first1, path::iterator last1,
-    path::iterator first2, path::iterator last2)
-    { return detail::lex_compare(first1, last1, first2, last2) < 0; }
-  
-  inline bool operator==(const path& lhs, const path& rhs)              {return lhs.compare(rhs) == 0;}
-  inline bool operator==(const path& lhs, const path::string_type& rhs) {return lhs.compare(rhs) == 0;} 
-  inline bool operator==(const path::string_type& lhs, const path& rhs) {return rhs.compare(lhs) == 0;}
-  inline bool operator==(const path& lhs, const path::value_type* rhs)  {return lhs.compare(rhs) == 0;}
-  inline bool operator==(const path::value_type* lhs, const path& rhs)  {return rhs.compare(lhs) == 0;}
-  
-  inline bool operator!=(const path& lhs, const path& rhs)              {return lhs.compare(rhs) != 0;}
-  inline bool operator!=(const path& lhs, const path::string_type& rhs) {return lhs.compare(rhs) != 0;} 
-  inline bool operator!=(const path::string_type& lhs, const path& rhs) {return rhs.compare(lhs) != 0;}
-  inline bool operator!=(const path& lhs, const path::value_type* rhs)  {return lhs.compare(rhs) != 0;}
-  inline bool operator!=(const path::value_type* lhs, const path& rhs)  {return rhs.compare(lhs) != 0;}
-
-  // TODO: why do == and != have additional overloads, but the others don't?
-
-  inline bool operator<(const path& lhs, const path& rhs)  {return lhs.compare(rhs) < 0;}
-  inline bool operator<=(const path& lhs, const path& rhs) {return !(rhs < lhs);}
-  inline bool operator> (const path& lhs, const path& rhs) {return rhs < lhs;}
-  inline bool operator>=(const path& lhs, const path& rhs) {return !(lhs < rhs);}
-
-  inline std::size_t hash_value(const path& x)
-  {
-# ifdef NDNBOOST_WINDOWS_API
-    std::size_t seed = 0;
-    for(const path::value_type* it = x.c_str(); *it; ++it)
-      hash_combine(seed, *it == '/' ? L'\\' : *it);
-    return seed;
-# else   // NDNBOOST_POSIX_API
-    return hash_range(x.native().begin(), x.native().end());
-# endif
-  }
-
-  inline void swap(path& lhs, path& rhs)                   { lhs.swap(rhs); }
-
-  inline path operator/(const path& lhs, const path& rhs)  { return path(lhs) /= rhs; }
-
-  //  inserters and extractors
-  //    use ndnboost::io::quoted() to handle spaces in paths
-  //    use '&' as escape character to ease use for Windows paths
-
-  template <class Char, class Traits>
-  inline std::basic_ostream<Char, Traits>&
-  operator<<(std::basic_ostream<Char, Traits>& os, const path& p)
-  {
-    return os
-      << ndnboost::io::quoted(p.template string<std::basic_string<Char> >(), static_cast<Char>('&'));
-  }
-  
-  template <class Char, class Traits>
-  inline std::basic_istream<Char, Traits>&
-  operator>>(std::basic_istream<Char, Traits>& is, path& p)
-  {
-    std::basic_string<Char> str;
-    is >> ndnboost::io::quoted(str, static_cast<Char>('&'));
-    p = str;
-    return is;
-  }
-  
-  //  name_checks
-
-  //  These functions are holdovers from version 1. It isn't clear they have much
-  //  usefulness, or how to generalize them for later versions.
-
-  NDNBOOST_FILESYSTEM_DECL bool portable_posix_name(const std::string & name);
-  NDNBOOST_FILESYSTEM_DECL bool windows_name(const std::string & name);
-  NDNBOOST_FILESYSTEM_DECL bool portable_name(const std::string & name);
-  NDNBOOST_FILESYSTEM_DECL bool portable_directory_name(const std::string & name);
-  NDNBOOST_FILESYSTEM_DECL bool portable_file_name(const std::string & name);
-  NDNBOOST_FILESYSTEM_DECL bool native(const std::string & name);
- 
-//--------------------------------------------------------------------------------------//
-//                     class path member template implementation                        //
-//--------------------------------------------------------------------------------------//
-
-  template <class InputIterator>
-  path& path::append(InputIterator begin, InputIterator end, const codecvt_type& cvt)
-  { 
-    if (begin == end)
-      return *this;
-    string_type::size_type sep_pos(m_append_separator_if_needed());
-    std::basic_string<typename std::iterator_traits<InputIterator>::value_type>
-      s(begin, end);
-    path_traits::convert(s.c_str(), s.c_str()+s.size(), m_pathname, cvt);
-    if (sep_pos)
-      m_erase_redundant_separator(sep_pos);
-    return *this;
-  }
-
-  template <class Source>
-  path& path::append(Source const& source, const codecvt_type& cvt)
-  {
-    if (path_traits::empty(source))
-      return *this;
-    string_type::size_type sep_pos(m_append_separator_if_needed());
-    path_traits::dispatch(source, m_pathname, cvt);
-    if (sep_pos)
-      m_erase_redundant_separator(sep_pos);
-    return *this;
-  }
-
-//--------------------------------------------------------------------------------------//
-//                     class path member template specializations                       //
-//--------------------------------------------------------------------------------------//
-
-  template <> inline
-  std::string path::string<std::string>() const
-    { return string(); }
-
-  template <> inline
-  std::wstring path::string<std::wstring>() const
-    { return wstring(); }
-
-  template <> inline
-  std::string path::string<std::string>(const codecvt_type& cvt) const
-    { return string(cvt); }
-
-  template <> inline
-  std::wstring path::string<std::wstring>(const codecvt_type& cvt) const
-    { return wstring(cvt); }
-
-  template <> inline
-  std::string path::generic_string<std::string>() const
-    { return generic_string(); }
-
-  template <> inline
-  std::wstring path::generic_string<std::wstring>() const
-    { return generic_wstring(); }
-
-  template <> inline
-  std::string path::generic_string<std::string>(const codecvt_type& cvt) const
-    { return generic_string(cvt); }
-
-  template <> inline
-  std::wstring path::generic_string<std::wstring>(const codecvt_type& cvt) const
-    { return generic_wstring(cvt); }
-
-
-}  // namespace filesystem
-}  // namespace ndnboost
-
-//----------------------------------------------------------------------------//
-
-#include <ndnboost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-
-#endif  // NDNBOOST_FILESYSTEM_PATH_HPP
diff --git a/include/ndnboost/filesystem/path_traits.hpp b/include/ndnboost/filesystem/path_traits.hpp
deleted file mode 100644
index 34e13a9..0000000
--- a/include/ndnboost/filesystem/path_traits.hpp
+++ /dev/null
@@ -1,235 +0,0 @@
-//  filesystem path_traits.hpp  --------------------------------------------------------//
-
-//  Copyright Beman Dawes 2009
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-//  Library home page: http://www.boost.org/libs/filesystem
-
-#ifndef NDNBOOST_FILESYSTEM_PATH_TRAITS_HPP
-#define NDNBOOST_FILESYSTEM_PATH_TRAITS_HPP
-
-#include <ndnboost/config.hpp>
-
-# if defined( NDNBOOST_NO_STD_WSTRING )
-#   error Configuration not supported: Boost.Filesystem V3 and later requires std::wstring support
-# endif
-
-#include <ndnboost/filesystem/config.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-#include <ndnboost/type_traits/decay.hpp>
-#include <ndnboost/system/error_code.hpp>
-#include <cwchar>  // for mbstate_t
-#include <string>
-#include <vector>
-#include <list>
-#include <iterator>
-#include <locale>
-#include <ndnboost/assert.hpp>
-// #include <iostream>   //**** comment me out ****
-
-#include <ndnboost/config/abi_prefix.hpp> // must be the last #include
-
-namespace ndnboost { namespace filesystem {
-
-  NDNBOOST_FILESYSTEM_DECL const system::error_category& codecvt_error_category();
-  //  uses std::codecvt_base::result used for error codes:
-  //
-  //    ok:       Conversion successful.
-  //    partial:  Not all source characters converted; one or more additional source
-  //              characters are needed to produce the final target character, or the
-  //              size of the target intermediate buffer was too small to hold the result.
-  //    error:    A character in the source could not be converted to the target encoding.
-  //    noconv:   The source and target characters have the same type and encoding, so no
-  //              conversion was necessary.
-
-  class directory_entry;
-  
-namespace path_traits {
- 
-  typedef std::codecvt<wchar_t, char, std::mbstate_t> codecvt_type;
-
-  //  is_pathable type trait; allows disabling over-agressive class path member templates
-
-  template <class T>
-  struct is_pathable { static const bool value = false; };
-
-  template<> struct is_pathable<char*>                  { static const bool value = true; };
-  template<> struct is_pathable<const char*>            { static const bool value = true; };
-  template<> struct is_pathable<wchar_t*>               { static const bool value = true; };
-  template<> struct is_pathable<const wchar_t*>         { static const bool value = true; };
-  template<> struct is_pathable<std::string>            { static const bool value = true; };
-  template<> struct is_pathable<std::wstring>           { static const bool value = true; };
-  template<> struct is_pathable<std::vector<char> >     { static const bool value = true; };
-  template<> struct is_pathable<std::vector<wchar_t> >  { static const bool value = true; };
-  template<> struct is_pathable<std::list<char> >       { static const bool value = true; };
-  template<> struct is_pathable<std::list<wchar_t> >    { static const bool value = true; };
-  template<> struct is_pathable<directory_entry>        { static const bool value = true; };
-
-  //  Pathable empty
-
-  template <class Container> inline
-    // disable_if aids broken compilers (IBM, old GCC, etc.) and is harmless for
-    // conforming compilers. Replace by plain "bool" at some future date (2012?) 
-    typename ndnboost::disable_if<ndnboost::is_array<Container>, bool>::type
-      empty(const Container & c)
-        { return c.begin() == c.end(); }
-
-  template <class T> inline
-    bool empty(T * const & c_str)
-  {
-    NDNBOOST_ASSERT(c_str);
-    return !*c_str;
-  }
-
-  template <typename T, size_t N> inline
-     bool empty(T (&x)[N])
-       { return !x[0]; }
-
-  // value types differ  ---------------------------------------------------------------//
-  //
-  //   A from_end argument of 0 is less efficient than a known end, so use only if needed
-  
-  NDNBOOST_FILESYSTEM_DECL
-  void convert(const char* from,
-                const char* from_end,    // 0 for null terminated MBCS
-                std::wstring & to,
-                const codecvt_type& cvt);
-
-  NDNBOOST_FILESYSTEM_DECL
-  void convert(const wchar_t* from,
-                const wchar_t* from_end,  // 0 for null terminated MBCS
-                std::string & to,
-                const codecvt_type& cvt);
-
-  inline 
-  void convert(const char* from,
-                std::wstring & to,
-                const codecvt_type& cvt)
-  {
-    NDNBOOST_ASSERT(from);
-    convert(from, 0, to, cvt);
-  }
-
-  inline 
-  void convert(const wchar_t* from,
-                std::string & to,
-                const codecvt_type& cvt)
-  {
-    NDNBOOST_ASSERT(from);
-    convert(from, 0, to, cvt);
-  }
-
-  // value types same  -----------------------------------------------------------------//
-
-  // char
-
-  inline 
-  void convert(const char* from, const char* from_end, std::string & to,
-    const codecvt_type&)
-  {
-    NDNBOOST_ASSERT(from);
-    NDNBOOST_ASSERT(from_end);
-    to.append(from, from_end);
-  }
-
-  inline 
-  void convert(const char* from,
-                std::string & to,
-                const codecvt_type&)
-  {
-    NDNBOOST_ASSERT(from);
-    to += from;
-  }
-
-  // wchar_t
-
-  inline 
-  void convert(const wchar_t* from, const wchar_t* from_end, std::wstring & to,
-    const codecvt_type&)
-  {
-    NDNBOOST_ASSERT(from);
-    NDNBOOST_ASSERT(from_end);
-    to.append(from, from_end);
-  }
-
-  inline 
-  void convert(const wchar_t* from,
-                std::wstring & to,
-                const codecvt_type&)
-  {
-    NDNBOOST_ASSERT(from);
-    to += from;
-  }
-
-  //  Source dispatch  -----------------------------------------------------------------//
-
-  //  contiguous containers
-  template <class U> inline
-    void dispatch(const std::string& c, U& to, const codecvt_type& cvt)
-  {
-    if (c.size())
-      convert(&*c.begin(), &*c.begin() + c.size(), to, cvt);
-  }
-  template <class U> inline
-    void dispatch(const std::wstring& c, U& to, const codecvt_type& cvt)
-  {
-    if (c.size())
-      convert(&*c.begin(), &*c.begin() + c.size(), to, cvt);
-  }
-  template <class U> inline
-    void dispatch(const std::vector<char>& c, U& to, const codecvt_type& cvt)
-  {
-    if (c.size())
-      convert(&*c.begin(), &*c.begin() + c.size(), to, cvt);
-  }
-  template <class U> inline
-    void dispatch(const std::vector<wchar_t>& c, U& to, const codecvt_type& cvt)
-  {
-    if (c.size())
-      convert(&*c.begin(), &*c.begin() + c.size(), to, cvt);
-  }
-
-  //  non-contiguous containers
-  template <class Container, class U> inline
-    // disable_if aids broken compilers (IBM, old GCC, etc.) and is harmless for
-    // conforming compilers. Replace by plain "void" at some future date (2012?) 
-    typename ndnboost::disable_if<ndnboost::is_array<Container>, void>::type
-      dispatch(const Container & c, U& to, const codecvt_type& cvt)
-  {
-    if (c.size())
-    {
-      std::basic_string<typename Container::value_type> s(c.begin(), c.end());
-      convert(s.c_str(), s.c_str()+s.size(), to, cvt);
-    }
-  }
-
-  //  c_str
-  template <class T, class U> inline
-  void dispatch(T * const & c_str, U& to, const codecvt_type& cvt)
-  {
-//    std::cout << "dispatch() const T *\n";
-    NDNBOOST_ASSERT(c_str);
-    convert(c_str, to, cvt);
-  }
-  
-  //  Note: there is no dispatch on C-style arrays because the array may
-  //  contain a string smaller than the array size. 
-
-  NDNBOOST_FILESYSTEM_DECL
-  void dispatch(const directory_entry & de,
-#                ifdef NDNBOOST_WINDOWS_API
-                   std::wstring & to,
-#                else   
-                   std::string & to,
-#                endif
-                 const codecvt_type&);
-
-
-}}} // namespace ndnboost::filesystem::path_traits
-
-#include <ndnboost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-
-#endif  // NDNBOOST_FILESYSTEM_PATH_TRAITS_HPP
diff --git a/include/ndnboost/function.hpp b/include/ndnboost/function.hpp
deleted file mode 100644
index ebb0926..0000000
--- a/include/ndnboost/function.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2001-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org/libs/function
-
-// William Kempf, Jesse Jones and Karl Nelson were all very helpful in the
-// design of this library.
-
-#include <functional> // unary_function, binary_function
-
-#include <ndnboost/preprocessor/iterate.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#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 NDNBOOST_WORKAROUND(__IBMCPP__, >= 500) && NDNBOOST_WORKAROUND(__IBMCPP__, < 800)
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 0
-#    include <ndnboost/function/function0.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 1
-#    include <ndnboost/function/function1.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 2
-#    include <ndnboost/function/function2.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 3
-#    include <ndnboost/function/function3.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 4
-#    include <ndnboost/function/function4.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 5
-#    include <ndnboost/function/function5.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 6
-#    include <ndnboost/function/function6.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 7
-#    include <ndnboost/function/function7.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 8
-#    include <ndnboost/function/function8.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 9
-#    include <ndnboost/function/function9.hpp>
-#  endif
-#  if NDNBOOST_FUNCTION_MAX_ARGS >= 10
-#    include <ndnboost/function/function10.hpp>
-#  endif
-#else
-// What is the '3' for?
-#  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
deleted file mode 100644
index 344f283..0000000
--- a/include/ndnboost/function/detail/function_iterate.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-# error Boost.Function - do not include this file!
-#endif
-
-#define NDNBOOST_FUNCTION_NUM_ARGS NDNBOOST_PP_ITERATION()
-#include <ndnboost/function/detail/maybe_include.hpp>
-#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
deleted file mode 100644
index 53dcf8f..0000000
--- a/include/ndnboost/function/detail/gen_maybe_include.pl
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Boost.Function library
-#
-# Copyright (C) 2001-2003 Douglas Gregor (gregod@cs.rpi.edu)
-#
-# Permission to copy, use, sell and distribute this software is granted
-# provided this copyright notice appears in all copies.
-# Permission to modify the code and to distribute modified code is granted
-# provided this copyright notice appears in all copies, and a notice
-# that the code was modified is included with the copyright notice.
-#
-# This software is provided "as is" without express or implied warranty,
-# and with no claim as to its suitability for any purpose.
-#
-# For more information, see http://www.boost.org
-use English;
-
-$max_args = $ARGV[0];
-
-open (OUT, ">maybe_include.hpp") or die("Cannot write to maybe_include.hpp");
-for($on_arg = 0; $on_arg <= $max_args; ++$on_arg) {
-    if ($on_arg == 0) {
-	print OUT "#if";
-    }
-    else {
-	print OUT "#elif";
-    }
-    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";
-}
-print OUT "#else\n";
-print OUT "#  error Cannot handle Boost.Function objects that accept more than $max_args arguments!\n";
-print OUT "#endif\n";
diff --git a/include/ndnboost/function/detail/maybe_include.hpp b/include/ndnboost/function/detail/maybe_include.hpp
deleted file mode 100644
index 90b998e..0000000
--- a/include/ndnboost/function/detail/maybe_include.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#if NDNBOOST_FUNCTION_NUM_ARGS == 0
-#  ifndef NDNBOOST_FUNCTION_0
-#    define NDNBOOST_FUNCTION_0
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 1
-#  ifndef NDNBOOST_FUNCTION_1
-#    define NDNBOOST_FUNCTION_1
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 2
-#  ifndef NDNBOOST_FUNCTION_2
-#    define NDNBOOST_FUNCTION_2
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 3
-#  ifndef NDNBOOST_FUNCTION_3
-#    define NDNBOOST_FUNCTION_3
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 4
-#  ifndef NDNBOOST_FUNCTION_4
-#    define NDNBOOST_FUNCTION_4
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 5
-#  ifndef NDNBOOST_FUNCTION_5
-#    define NDNBOOST_FUNCTION_5
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 6
-#  ifndef NDNBOOST_FUNCTION_6
-#    define NDNBOOST_FUNCTION_6
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 7
-#  ifndef NDNBOOST_FUNCTION_7
-#    define NDNBOOST_FUNCTION_7
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 8
-#  ifndef NDNBOOST_FUNCTION_8
-#    define NDNBOOST_FUNCTION_8
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 9
-#  ifndef NDNBOOST_FUNCTION_9
-#    define NDNBOOST_FUNCTION_9
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 10
-#  ifndef NDNBOOST_FUNCTION_10
-#    define NDNBOOST_FUNCTION_10
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 11
-#  ifndef NDNBOOST_FUNCTION_11
-#    define NDNBOOST_FUNCTION_11
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 12
-#  ifndef NDNBOOST_FUNCTION_12
-#    define NDNBOOST_FUNCTION_12
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 13
-#  ifndef NDNBOOST_FUNCTION_13
-#    define NDNBOOST_FUNCTION_13
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 14
-#  ifndef NDNBOOST_FUNCTION_14
-#    define NDNBOOST_FUNCTION_14
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 15
-#  ifndef NDNBOOST_FUNCTION_15
-#    define NDNBOOST_FUNCTION_15
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 16
-#  ifndef NDNBOOST_FUNCTION_16
-#    define NDNBOOST_FUNCTION_16
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 17
-#  ifndef NDNBOOST_FUNCTION_17
-#    define NDNBOOST_FUNCTION_17
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 18
-#  ifndef NDNBOOST_FUNCTION_18
-#    define NDNBOOST_FUNCTION_18
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 19
-#  ifndef NDNBOOST_FUNCTION_19
-#    define NDNBOOST_FUNCTION_19
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 20
-#  ifndef NDNBOOST_FUNCTION_20
-#    define NDNBOOST_FUNCTION_20
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 21
-#  ifndef NDNBOOST_FUNCTION_21
-#    define NDNBOOST_FUNCTION_21
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 22
-#  ifndef NDNBOOST_FUNCTION_22
-#    define NDNBOOST_FUNCTION_22
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 23
-#  ifndef NDNBOOST_FUNCTION_23
-#    define NDNBOOST_FUNCTION_23
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 24
-#  ifndef NDNBOOST_FUNCTION_24
-#    define NDNBOOST_FUNCTION_24
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 25
-#  ifndef NDNBOOST_FUNCTION_25
-#    define NDNBOOST_FUNCTION_25
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 26
-#  ifndef NDNBOOST_FUNCTION_26
-#    define NDNBOOST_FUNCTION_26
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 27
-#  ifndef NDNBOOST_FUNCTION_27
-#    define NDNBOOST_FUNCTION_27
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 28
-#  ifndef NDNBOOST_FUNCTION_28
-#    define NDNBOOST_FUNCTION_28
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 29
-#  ifndef NDNBOOST_FUNCTION_29
-#    define NDNBOOST_FUNCTION_29
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 30
-#  ifndef NDNBOOST_FUNCTION_30
-#    define NDNBOOST_FUNCTION_30
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 31
-#  ifndef NDNBOOST_FUNCTION_31
-#    define NDNBOOST_FUNCTION_31
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 32
-#  ifndef NDNBOOST_FUNCTION_32
-#    define NDNBOOST_FUNCTION_32
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 33
-#  ifndef NDNBOOST_FUNCTION_33
-#    define NDNBOOST_FUNCTION_33
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 34
-#  ifndef NDNBOOST_FUNCTION_34
-#    define NDNBOOST_FUNCTION_34
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 35
-#  ifndef NDNBOOST_FUNCTION_35
-#    define NDNBOOST_FUNCTION_35
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 36
-#  ifndef NDNBOOST_FUNCTION_36
-#    define NDNBOOST_FUNCTION_36
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 37
-#  ifndef NDNBOOST_FUNCTION_37
-#    define NDNBOOST_FUNCTION_37
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 38
-#  ifndef NDNBOOST_FUNCTION_38
-#    define NDNBOOST_FUNCTION_38
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 39
-#  ifndef NDNBOOST_FUNCTION_39
-#    define NDNBOOST_FUNCTION_39
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 40
-#  ifndef NDNBOOST_FUNCTION_40
-#    define NDNBOOST_FUNCTION_40
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 41
-#  ifndef NDNBOOST_FUNCTION_41
-#    define NDNBOOST_FUNCTION_41
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 42
-#  ifndef NDNBOOST_FUNCTION_42
-#    define NDNBOOST_FUNCTION_42
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 43
-#  ifndef NDNBOOST_FUNCTION_43
-#    define NDNBOOST_FUNCTION_43
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 44
-#  ifndef NDNBOOST_FUNCTION_44
-#    define NDNBOOST_FUNCTION_44
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 45
-#  ifndef NDNBOOST_FUNCTION_45
-#    define NDNBOOST_FUNCTION_45
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 46
-#  ifndef NDNBOOST_FUNCTION_46
-#    define NDNBOOST_FUNCTION_46
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 47
-#  ifndef NDNBOOST_FUNCTION_47
-#    define NDNBOOST_FUNCTION_47
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 48
-#  ifndef NDNBOOST_FUNCTION_48
-#    define NDNBOOST_FUNCTION_48
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 49
-#  ifndef NDNBOOST_FUNCTION_49
-#    define NDNBOOST_FUNCTION_49
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 50
-#  ifndef NDNBOOST_FUNCTION_50
-#    define NDNBOOST_FUNCTION_50
-#    include <ndnboost/function/function_template.hpp>
-#  endif
-#else
-#  error Cannot handle Boost.Function objects that accept more than 50 arguments!
-#endif
diff --git a/include/ndnboost/function/detail/prologue.hpp b/include/ndnboost/function/detail/prologue.hpp
deleted file mode 100644
index fac6e8e..0000000
--- a/include/ndnboost/function/detail/prologue.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#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
-#  include <ndnboost/throw_exception.hpp>
-#  include <ndnboost/config.hpp>
-#  include <ndnboost/function/function_base.hpp>
-#  include <ndnboost/mem_fn.hpp>
-#  include <ndnboost/type_traits/is_integral.hpp>
-#  include <ndnboost/preprocessor/enum.hpp>
-#  include <ndnboost/preprocessor/enum_params.hpp>
-#  include <ndnboost/preprocessor/cat.hpp>
-#  include <ndnboost/preprocessor/repeat.hpp>
-#  include <ndnboost/preprocessor/inc.hpp>
-#  include <ndnboost/type_traits/is_void.hpp>
-#endif // NDNBOOST_FUNCTION_PROLOGUE_HPP
diff --git a/include/ndnboost/function/function0.hpp b/include/ndnboost/function/function0.hpp
deleted file mode 100644
index ea15d62..0000000
--- a/include/ndnboost/function/function0.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 0
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function1.hpp b/include/ndnboost/function/function1.hpp
deleted file mode 100644
index bf4a605..0000000
--- a/include/ndnboost/function/function1.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 1
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function10.hpp b/include/ndnboost/function/function10.hpp
deleted file mode 100644
index fd0ee32..0000000
--- a/include/ndnboost/function/function10.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 10
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function2.hpp b/include/ndnboost/function/function2.hpp
deleted file mode 100644
index 603c2d0..0000000
--- a/include/ndnboost/function/function2.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 2
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function3.hpp b/include/ndnboost/function/function3.hpp
deleted file mode 100644
index 3ec62d5..0000000
--- a/include/ndnboost/function/function3.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 3
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function4.hpp b/include/ndnboost/function/function4.hpp
deleted file mode 100644
index e3a2be5..0000000
--- a/include/ndnboost/function/function4.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 4
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function5.hpp b/include/ndnboost/function/function5.hpp
deleted file mode 100644
index 3d53e5a..0000000
--- a/include/ndnboost/function/function5.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 5
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function6.hpp b/include/ndnboost/function/function6.hpp
deleted file mode 100644
index 12746ea..0000000
--- a/include/ndnboost/function/function6.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 6
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function7.hpp b/include/ndnboost/function/function7.hpp
deleted file mode 100644
index ed92ed2..0000000
--- a/include/ndnboost/function/function7.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 7
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function8.hpp b/include/ndnboost/function/function8.hpp
deleted file mode 100644
index 4817e51..0000000
--- a/include/ndnboost/function/function8.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 8
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function9.hpp b/include/ndnboost/function/function9.hpp
deleted file mode 100644
index a0cd21b..0000000
--- a/include/ndnboost/function/function9.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2002-2003. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#define NDNBOOST_FUNCTION_NUM_ARGS 9
-#include <ndnboost/function/detail/maybe_include.hpp>
-#undef NDNBOOST_FUNCTION_NUM_ARGS
diff --git a/include/ndnboost/function/function_base.hpp b/include/ndnboost/function/function_base.hpp
deleted file mode 100644
index f992eb3..0000000
--- a/include/ndnboost/function/function_base.hpp
+++ /dev/null
@@ -1,910 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2001-2006
-//  Copyright Emil Dotchevski 2007
-//  Use, modification and distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-#ifndef NDNBOOST_FUNCTION_BASE_HEADER
-#define NDNBOOST_FUNCTION_BASE_HEADER
-
-#include <stdexcept>
-#include <string>
-#include <memory>
-#include <new>
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/sp_typeinfo.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/integer.hpp>
-#include <ndnboost/type_traits/has_trivial_copy.hpp>
-#include <ndnboost/type_traits/has_trivial_destructor.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/type_traits/is_volatile.hpp>
-#include <ndnboost/type_traits/composite_traits.hpp>
-#include <ndnboost/type_traits/ice.hpp>
-#include <ndnboost/ref.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/type_traits/alignment_of.hpp>
-#ifndef NDNBOOST_NO_SFINAE
-#  include "ndnboost/utility/enable_if.hpp"
-#else
-#  include "ndnboost/mpl/bool.hpp"
-#endif
-#include <ndnboost/function_equal.hpp>
-#include <ndnboost/function/function_fwd.hpp>
-
-#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 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 NDNBOOST_FUNCTION_STD_NS
-#else
-#  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( 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 NDNBOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) \
-     (std::strcmp((X).name(),(Y).name()) == 0)
-# else
-#  define NDNBOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
-#endif
-
-#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 NDNBOOST_FUNCTION_TARGET_FIX(x)
-#endif // not MSVC
-
-#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 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
-#endif
-
-namespace ndnboost {
-  namespace detail {
-    namespace function {
-      class X;
-
-      /**
-       * A buffer used to store small function objects in
-       * ndnboost::function. It is a union containing function pointers,
-       * object pointers, and a structure that resembles a bound
-       * member function pointer.
-       */
-      union function_buffer
-      {
-        // For pointers to function objects
-        mutable void* obj_ptr;
-
-        // For pointers to std::type_info objects
-        struct type_t {
-          // (get_functor_type_tag, check_functor_type_tag).
-          const detail::sp_typeinfo* type;
-
-          // Whether the type is const-qualified.
-          bool const_qualified;
-          // Whether the type is volatile-qualified.
-          bool volatile_qualified;
-        } type;
-
-        // For function pointers of all kinds
-        mutable void (*func_ptr)();
-
-        // For bound member pointers
-        struct bound_memfunc_ptr_t {
-          void (X::*memfunc_ptr)(int);
-          void* obj_ptr;
-        } bound_memfunc_ptr;
-
-        // For references to function objects. We explicitly keep
-        // track of the cv-qualifiers on the object referenced.
-        struct obj_ref_t {
-          mutable void* obj_ptr;
-          bool is_const_qualified;
-          bool is_volatile_qualified;
-        } obj_ref;
-
-        // To relax aliasing constraints
-        mutable char data;
-      };
-
-      /**
-       * The unusable class is a placeholder for unused function arguments
-       * It is also completely unusable except that it constructable from
-       * anything. This helps compilers without partial specialization to
-       * handle Boost.Function objects returning void.
-       */
-      struct unusable
-      {
-        unusable() {}
-        template<typename T> unusable(const T&) {}
-      };
-
-      /* Determine the return type. This supports compilers that do not support
-       * void returns or partial specialization by silently changing the return
-       * type to "unusable".
-       */
-      template<typename T> struct function_return_type { typedef T type; };
-
-      template<>
-      struct function_return_type<void>
-      {
-        typedef unusable type;
-      };
-
-      // The operation type to perform on the given functor/function pointer
-      enum functor_manager_operation_type {
-        clone_functor_tag,
-        move_functor_tag,
-        destroy_functor_tag,
-        check_functor_type_tag,
-        get_functor_type_tag
-      };
-
-      // Tags used to decide between different types of functions
-      struct function_ptr_tag {};
-      struct function_obj_tag {};
-      struct member_ptr_tag {};
-      struct function_obj_ref_tag {};
-
-      template<typename F>
-      class get_function_tag
-      {
-        typedef typename mpl::if_c<(is_pointer<F>::value),
-                                   function_ptr_tag,
-                                   function_obj_tag>::type ptr_or_obj_tag;
-
-        typedef typename mpl::if_c<(is_member_pointer<F>::value),
-                                   member_ptr_tag,
-                                   ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag;
-
-        typedef typename mpl::if_c<(is_reference_wrapper<F>::value),
-                                   function_obj_ref_tag,
-                                   ptr_or_obj_or_mem_tag>::type or_ref_tag;
-
-      public:
-        typedef or_ref_tag type;
-      };
-
-      // The trivial manager does nothing but return the same pointer (if we
-      // are cloning) or return the null pointer (if we are deleting).
-      template<typename F>
-      struct reference_manager
-      {
-        static inline void
-        manage(const function_buffer& in_buffer, function_buffer& out_buffer, 
-               functor_manager_operation_type op)
-        {
-          switch (op) {
-          case clone_functor_tag: 
-            out_buffer.obj_ref = in_buffer.obj_ref;
-            return;
-
-          case move_functor_tag:
-            out_buffer.obj_ref = in_buffer.obj_ref;
-            in_buffer.obj_ref.obj_ptr = 0;
-            return;
-
-          case destroy_functor_tag:
-            out_buffer.obj_ref.obj_ptr = 0;
-            return;
-
-          case check_functor_type_tag:
-            {
-              const detail::sp_typeinfo& check_type 
-                = *out_buffer.type.type;
-
-              // Check whether we have the same type. We can add
-              // cv-qualifiers, but we can't take them away.
-              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
-                      || out_buffer.type.volatile_qualified))
-                out_buffer.obj_ptr = in_buffer.obj_ref.obj_ptr;
-              else
-                out_buffer.obj_ptr = 0;
-            }
-            return;
-
-          case get_functor_type_tag:
-            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;
-          }
-        }
-      };
-
-      /**
-       * Determine if ndnboost::function can use the small-object
-       * optimization with the function object type F.
-       */
-      template<typename F>
-      struct function_allows_small_object_optimization
-      {
-        NDNBOOST_STATIC_CONSTANT
-          (bool, 
-           value = ((sizeof(F) <= sizeof(function_buffer) &&
-                     (alignment_of<function_buffer>::value 
-                      % alignment_of<F>::value == 0))));
-      };
-
-      template <typename F,typename A>
-      struct functor_wrapper: public F, public A
-      {
-        functor_wrapper( F f, A a ):
-          F(f),
-          A(a)
-        {
-        }
-        
-        functor_wrapper(const functor_wrapper& f) :
-          F(static_cast<const F&>(f)),
-          A(static_cast<const A&>(f))
-        {
-        }
-      };
-
-      /**
-       * The functor_manager class contains a static function "manage" which
-       * can clone or destroy the given function/function object pointer.
-       */
-      template<typename Functor>
-      struct functor_manager_common
-      {
-        typedef Functor functor_type;
-
-        // Function pointers
-        static inline void
-        manage_ptr(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op)
-        {
-          if (op == clone_functor_tag)
-            out_buffer.func_ptr = in_buffer.func_ptr;
-          else if (op == move_functor_tag) {
-            out_buffer.func_ptr = in_buffer.func_ptr;
-            in_buffer.func_ptr = 0;
-          } else if (op == destroy_functor_tag)
-            out_buffer.func_ptr = 0;
-          else if (op == check_functor_type_tag) {
-            const detail::sp_typeinfo& check_type 
-              = *out_buffer.type.type;
-            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 = &NDNBOOST_SP_TYPEID(Functor);
-            out_buffer.type.const_qualified = false;
-            out_buffer.type.volatile_qualified = false;
-          }
-        }
-
-        // Function objects that fit in the small-object buffer.
-        static inline void
-        manage_small(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op)
-        {
-          if (op == clone_functor_tag || op == move_functor_tag) {
-            const functor_type* in_functor = 
-              reinterpret_cast<const functor_type*>(&in_buffer.data);
-            new (reinterpret_cast<void*>(&out_buffer.data)) functor_type(*in_functor);
-
-            if (op == move_functor_tag) {
-              functor_type* f = reinterpret_cast<functor_type*>(&in_buffer.data);
-              (void)f; // suppress warning about the value of f not being used (MSVC)
-              f->~Functor();
-            }
-          } else if (op == destroy_functor_tag) {
-            // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type.
-             functor_type* f = reinterpret_cast<functor_type*>(&out_buffer.data);
-             (void)f; // suppress warning about the value of f not being used (MSVC)
-             f->~Functor();
-          } else if (op == check_functor_type_tag) {
-            const detail::sp_typeinfo& check_type 
-              = *out_buffer.type.type;
-            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 = &NDNBOOST_SP_TYPEID(Functor);
-            out_buffer.type.const_qualified = false;
-            out_buffer.type.volatile_qualified = false;            
-          }
-        }
-      };
-
-      template<typename Functor>
-      struct functor_manager
-      {
-      private:
-        typedef Functor functor_type;
-
-        // Function pointers
-        static inline void
-        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op, function_ptr_tag)
-        {
-          functor_manager_common<Functor>::manage_ptr(in_buffer,out_buffer,op);
-        }
-
-        // Function objects that fit in the small-object buffer.
-        static inline void
-        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op, mpl::true_)
-        {
-          functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
-        }
-        
-        // Function objects that require heap allocation
-        static inline void
-        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op, mpl::false_)
-        {
-          if (op == clone_functor_tag) {
-            // Clone the functor
-            // GCC 2.95.3 gets the CV qualifiers wrong here, so we
-            // can't do the static_cast that we should do.
-            // jewillco: Changing this to static_cast because GCC 2.95.3 is
-            // obsolete.
-            const functor_type* f =
-              static_cast<const functor_type*>(in_buffer.obj_ptr);
-            functor_type* new_f = new functor_type(*f);
-            out_buffer.obj_ptr = new_f;
-          } else if (op == move_functor_tag) {
-            out_buffer.obj_ptr = in_buffer.obj_ptr;
-            in_buffer.obj_ptr = 0;
-          } else if (op == destroy_functor_tag) {
-            /* Cast from the void pointer to the functor pointer type */
-            functor_type* f =
-              static_cast<functor_type*>(out_buffer.obj_ptr);
-            delete f;
-            out_buffer.obj_ptr = 0;
-          } else if (op == check_functor_type_tag) {
-            const detail::sp_typeinfo& check_type
-              = *out_buffer.type.type;
-            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 = &NDNBOOST_SP_TYPEID(Functor);
-            out_buffer.type.const_qualified = false;
-            out_buffer.type.volatile_qualified = false;
-          }
-        }
-
-        // For function objects, we determine whether the function
-        // object can use the small-object optimization buffer or
-        // whether we need to allocate it on the heap.
-        static inline void
-        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op, function_obj_tag)
-        {
-          manager(in_buffer, out_buffer, op,
-                  mpl::bool_<(function_allows_small_object_optimization<functor_type>::value)>());
-        }
-
-        // For member pointers, we use the small-object optimization buffer.
-        static inline void
-        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op, member_ptr_tag)
-        {
-          manager(in_buffer, out_buffer, op, mpl::true_());
-        }
-
-      public:
-        /* Dispatch to an appropriate manager based on whether we have a
-           function pointer or a function object pointer. */
-        static inline void
-        manage(const function_buffer& in_buffer, function_buffer& out_buffer, 
-               functor_manager_operation_type op)
-        {
-          typedef typename get_function_tag<functor_type>::type tag_type;
-          switch (op) {
-          case get_functor_type_tag:
-            out_buffer.type.type = &NDNBOOST_SP_TYPEID(functor_type);
-            out_buffer.type.const_qualified = false;
-            out_buffer.type.volatile_qualified = false;
-            return;
-
-          default:
-            manager(in_buffer, out_buffer, op, tag_type());
-            return;
-          }
-        }
-      };
-
-      template<typename Functor, typename Allocator>
-      struct functor_manager_a
-      {
-      private:
-        typedef Functor functor_type;
-
-        // Function pointers
-        static inline void
-        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op, function_ptr_tag)
-        {
-          functor_manager_common<Functor>::manage_ptr(in_buffer,out_buffer,op);
-        }
-
-        // Function objects that fit in the small-object buffer.
-        static inline void
-        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op, mpl::true_)
-        {
-          functor_manager_common<Functor>::manage_small(in_buffer,out_buffer,op);
-        }
-        
-        // Function objects that require heap allocation
-        static inline void
-        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op, mpl::false_)
-        {
-          typedef functor_wrapper<Functor,Allocator> functor_wrapper_type;
-          typedef typename Allocator::template rebind<functor_wrapper_type>::other
-            wrapper_allocator_type;
-          typedef typename wrapper_allocator_type::pointer wrapper_allocator_pointer_type;
-
-          if (op == clone_functor_tag) {
-            // Clone the functor
-            // GCC 2.95.3 gets the CV qualifiers wrong here, so we
-            // can't do the static_cast that we should do.
-            const functor_wrapper_type* f =
-              static_cast<const functor_wrapper_type*>(in_buffer.obj_ptr);
-            wrapper_allocator_type wrapper_allocator(static_cast<Allocator const &>(*f));
-            wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1);
-            wrapper_allocator.construct(copy, *f);
-
-            // Get back to the original pointer type
-            functor_wrapper_type* new_f = static_cast<functor_wrapper_type*>(copy);
-            out_buffer.obj_ptr = new_f;
-          } else if (op == move_functor_tag) {
-            out_buffer.obj_ptr = in_buffer.obj_ptr;
-            in_buffer.obj_ptr = 0;
-          } else if (op == destroy_functor_tag) {
-            /* Cast from the void pointer to the functor_wrapper_type */
-            functor_wrapper_type* victim =
-              static_cast<functor_wrapper_type*>(in_buffer.obj_ptr);
-            wrapper_allocator_type wrapper_allocator(static_cast<Allocator const &>(*victim));
-            wrapper_allocator.destroy(victim);
-            wrapper_allocator.deallocate(victim,1);
-            out_buffer.obj_ptr = 0;
-          } else if (op == check_functor_type_tag) {
-            const detail::sp_typeinfo& check_type 
-              = *out_buffer.type.type;
-            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 = &NDNBOOST_SP_TYPEID(Functor);
-            out_buffer.type.const_qualified = false;
-            out_buffer.type.volatile_qualified = false;
-          }
-        }
-
-        // For function objects, we determine whether the function
-        // object can use the small-object optimization buffer or
-        // whether we need to allocate it on the heap.
-        static inline void
-        manager(const function_buffer& in_buffer, function_buffer& out_buffer, 
-                functor_manager_operation_type op, function_obj_tag)
-        {
-          manager(in_buffer, out_buffer, op,
-                  mpl::bool_<(function_allows_small_object_optimization<functor_type>::value)>());
-        }
-
-      public:
-        /* Dispatch to an appropriate manager based on whether we have a
-           function pointer or a function object pointer. */
-        static inline void
-        manage(const function_buffer& in_buffer, function_buffer& out_buffer, 
-               functor_manager_operation_type op)
-        {
-          typedef typename get_function_tag<functor_type>::type tag_type;
-          switch (op) {
-          case get_functor_type_tag:
-            out_buffer.type.type = &NDNBOOST_SP_TYPEID(functor_type);
-            out_buffer.type.const_qualified = false;
-            out_buffer.type.volatile_qualified = false;
-            return;
-
-          default:
-            manager(in_buffer, out_buffer, op, tag_type());
-            return;
-          }
-        }
-      };
-
-      // A type that is only used for comparisons against zero
-      struct useless_clear_type {};
-
-#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
-      // last parameter is mpl::bool_<true>). They are only necessary
-      // for compilers that don't support SFINAE.
-      template<typename Function, typename Functor>
-        bool
-        compare_equal(const Function& f, const Functor&, int, mpl::bool_<true>)
-        { return f.empty(); }
-
-      template<typename Function, typename Functor>
-        bool
-        compare_not_equal(const Function& f, const Functor&, int,
-                          mpl::bool_<true>)
-        { return !f.empty(); }
-
-      template<typename Function, typename Functor>
-        bool
-        compare_equal(const Function& f, const Functor& g, long,
-                      mpl::bool_<false>)
-        {
-          if (const Functor* fp = f.template target<Functor>())
-            return function_equal(*fp, g);
-          else return false;
-        }
-
-      template<typename Function, typename Functor>
-        bool
-        compare_equal(const Function& f, const reference_wrapper<Functor>& g,
-                      int, mpl::bool_<false>)
-        {
-          if (const Functor* fp = f.template target<Functor>())
-            return fp == g.get_pointer();
-          else return false;
-        }
-
-      template<typename Function, typename Functor>
-        bool
-        compare_not_equal(const Function& f, const Functor& g, long,
-                          mpl::bool_<false>)
-        {
-          if (const Functor* fp = f.template target<Functor>())
-            return !function_equal(*fp, g);
-          else return true;
-        }
-
-      template<typename Function, typename Functor>
-        bool
-        compare_not_equal(const Function& f,
-                          const reference_wrapper<Functor>& g, int,
-                          mpl::bool_<false>)
-        {
-          if (const Functor* fp = f.template target<Functor>())
-            return fp != g.get_pointer();
-          else return true;
-        }
-#endif // NDNBOOST_NO_SFINAE
-
-      /**
-       * Stores the "manager" portion of the vtable for a
-       * ndnboost::function object.
-       */
-      struct vtable_base
-      {
-        void (*manager)(const function_buffer& in_buffer, 
-                        function_buffer& out_buffer, 
-                        functor_manager_operation_type op);
-      };
-    } // end namespace function
-  } // end namespace detail
-
-/**
- * The function_base class contains the basic elements needed for the
- * function1, function2, function3, etc. classes. It is common to all
- * functions (and as such can be used to tell if we have one of the
- * functionN objects).
- */
-class function_base
-{
-public:
-  function_base() : vtable(0) { }
-
-  /** 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 NDNBOOST_SP_TYPEID(void)
-      if this is empty. */
-  const detail::sp_typeinfo& target_type() const
-  {
-    if (!vtable) return NDNBOOST_SP_TYPEID(void);
-
-    detail::function::function_buffer type;
-    get_vtable()->manager(functor, type, detail::function::get_functor_type_tag);
-    return *type.type.type;
-  }
-
-  template<typename Functor>
-    Functor* target()
-    {
-      if (!vtable) return 0;
-
-      detail::function::function_buffer type_result;
-      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, 
-                      detail::function::check_functor_type_tag);
-      return static_cast<Functor*>(type_result.obj_ptr);
-    }
-
-  template<typename Functor>
-#if defined(NDNBOOST_MSVC) && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    const Functor* target( Functor * = 0 ) const
-#else
-    const Functor* target() const
-#endif
-    {
-      if (!vtable) return 0;
-
-      detail::function::function_buffer type_result;
-      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, 
-                      detail::function::check_functor_type_tag);
-      // GCC 2.95.3 gets the CV qualifiers wrong here, so we
-      // can't do the static_cast that we should do.
-      return static_cast<const Functor*>(type_result.obj_ptr);
-    }
-
-  template<typename F>
-    bool contains(const F& f) const
-    {
-#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>())
-#endif
-      {
-        return function_equal(*fp, f);
-      } else {
-        return false;
-      }
-    }
-
-#if defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3
-  // GCC 3.3 and newer cannot copy with the global operator==, due to
-  // problems with instantiation of function return types before it
-  // has been verified that the argument types match up.
-  template<typename Functor>
-    NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
-    operator==(Functor g) const
-    {
-      if (const Functor* fp = target<Functor>())
-        return function_equal(*fp, g);
-      else return false;
-    }
-
-  template<typename Functor>
-    NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
-    operator!=(Functor g) const
-    {
-      if (const Functor* fp = target<Functor>())
-        return !function_equal(*fp, g);
-      else return true;
-    }
-#endif
-
-public: // should be protected, but GCC 2.95.3 will fail to allow access
-  detail::function::vtable_base* get_vtable() const {
-    return reinterpret_cast<detail::function::vtable_base*>(
-             reinterpret_cast<std::size_t>(vtable) & ~static_cast<std::size_t>(0x01));
-  }
-
-  bool has_trivial_copy_and_destroy() const {
-    return reinterpret_cast<std::size_t>(vtable) & 0x01;
-  }
-
-  detail::function::vtable_base* vtable;
-  mutable detail::function::function_buffer functor;
-};
-
-/**
- * The bad_function_call exception class is thrown when a ndnboost::function
- * object is invoked
- */
-class bad_function_call : public std::runtime_error
-{
-public:
-  bad_function_call() : std::runtime_error("call to empty ndnboost::function") {}
-};
-
-#ifndef NDNBOOST_NO_SFINAE
-inline bool operator==(const function_base& f,
-                       detail::function::useless_clear_type*)
-{
-  return f.empty();
-}
-
-inline bool operator!=(const function_base& f,
-                       detail::function::useless_clear_type*)
-{
-  return !f.empty();
-}
-
-inline bool operator==(detail::function::useless_clear_type*,
-                       const function_base& f)
-{
-  return f.empty();
-}
-
-inline bool operator!=(detail::function::useless_clear_type*,
-                       const function_base& f)
-{
-  return !f.empty();
-}
-#endif
-
-#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)
-  {
-    typedef mpl::bool_<(is_integral<Functor>::value)> integral;
-    return detail::function::compare_equal(f, g, 0, integral());
-  }
-
-template<typename Functor>
-  inline bool operator==(Functor g, const function_base& f)
-  {
-    typedef mpl::bool_<(is_integral<Functor>::value)> integral;
-    return detail::function::compare_equal(f, g, 0, integral());
-  }
-
-template<typename Functor>
-  inline bool operator!=(const function_base& f, Functor g)
-  {
-    typedef mpl::bool_<(is_integral<Functor>::value)> integral;
-    return detail::function::compare_not_equal(f, g, 0, integral());
-  }
-
-template<typename Functor>
-  inline bool operator!=(Functor g, const function_base& f)
-  {
-    typedef mpl::bool_<(is_integral<Functor>::value)> integral;
-    return detail::function::compare_not_equal(f, g, 0, integral());
-  }
-#else
-
-#  if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3)
-// Comparisons between ndnboost::function objects and arbitrary function
-// objects. GCC 3.3 and before has an obnoxious bug that prevents this
-// from working.
-template<typename Functor>
-  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
-  operator==(const function_base& f, Functor g)
-  {
-    if (const Functor* fp = f.template target<Functor>())
-      return function_equal(*fp, g);
-    else return false;
-  }
-
-template<typename Functor>
-  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
-  operator==(Functor g, const function_base& f)
-  {
-    if (const Functor* fp = f.template target<Functor>())
-      return function_equal(g, *fp);
-    else return false;
-  }
-
-template<typename Functor>
-  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
-  operator!=(const function_base& f, Functor g)
-  {
-    if (const Functor* fp = f.template target<Functor>())
-      return !function_equal(*fp, g);
-    else return true;
-  }
-
-template<typename Functor>
-  NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool)
-  operator!=(Functor g, const function_base& f)
-  {
-    if (const Functor* fp = f.template target<Functor>())
-      return !function_equal(g, *fp);
-    else return true;
-  }
-#  endif
-
-template<typename Functor>
-  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>())
-      return fp == g.get_pointer();
-    else return false;
-  }
-
-template<typename Functor>
-  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>())
-      return g.get_pointer() == fp;
-    else return false;
-  }
-
-template<typename Functor>
-  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>())
-      return fp != g.get_pointer();
-    else return true;
-  }
-
-template<typename Functor>
-  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>())
-      return g.get_pointer() != fp;
-    else return true;
-  }
-
-#endif // Compiler supporting SFINAE
-
-namespace detail {
-  namespace function {
-    inline bool has_empty_target(const function_base* f)
-    {
-      return f->empty();
-    }
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1310)
-    inline bool has_empty_target(const void*)
-    {
-      return false;
-    }
-#else
-    inline bool has_empty_target(...)
-    {
-      return false;
-    }
-#endif
-  } // end namespace function
-} // end namespace detail
-} // end namespace ndnboost
-
-#undef NDNBOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL
-#undef NDNBOOST_FUNCTION_COMPARE_TYPE_ID
-
-#if defined(NDNBOOST_MSVC)
-#   pragma warning( pop )
-#endif       
-
-#endif // NDNBOOST_FUNCTION_BASE_HEADER
diff --git a/include/ndnboost/function/function_fwd.hpp b/include/ndnboost/function/function_fwd.hpp
deleted file mode 100644
index 3ebc33c..0000000
--- a/include/ndnboost/function/function_fwd.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-// Boost.Function library
-//  Copyright (C) Douglas Gregor 2008
-//
-//  Use, modification and distribution is subject to 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)
-//
-// For more information, see http://www.boost.org
-#ifndef NDNBOOST_FUNCTION_FWD_HPP
-#define NDNBOOST_FUNCTION_FWD_HPP
-#include <ndnboost/config.hpp>
-
-#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.
-namespace ndnboost { namespace python { namespace objects {
-  class function;
-}}}
-#endif
-
-#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(NDNBOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
-  // Preferred syntax
-  template<typename Signature> class function;
-
-  template<typename Signature>
-  inline void swap(function<Signature>& f1, function<Signature>& f2)
-  {
-    f1.swap(f2);
-  }
-#endif // have partial specialization
-
-  // Portable syntax
-  template<typename R> class function0;
-  template<typename R, typename T1> class function1;
-  template<typename R, typename T1, typename T2> class function2;
-  template<typename R, typename T1, typename T2, typename T3> class function3;
-  template<typename R, typename T1, typename T2, typename T3, typename T4> 
-    class function4;
-  template<typename R, typename T1, typename T2, typename T3, typename T4,
-           typename T5> 
-    class function5;
-  template<typename R, typename T1, typename T2, typename T3, typename T4,
-           typename T5, typename T6> 
-    class function6;
-  template<typename R, typename T1, typename T2, typename T3, typename T4,
-           typename T5, typename T6, typename T7> 
-    class function7;
-  template<typename R, typename T1, typename T2, typename T3, typename T4,
-           typename T5, typename T6, typename T7, typename T8> 
-    class function8;
-  template<typename R, typename T1, typename T2, typename T3, typename T4,
-           typename T5, typename T6, typename T7, typename T8, typename T9> 
-    class function9;
-  template<typename R, typename T1, typename T2, typename T3, typename T4,
-           typename T5, typename T6, typename T7, typename T8, typename T9,
-           typename T10> 
-    class function10;
-}
-
-#endif
diff --git a/include/ndnboost/function/function_template.hpp b/include/ndnboost/function/function_template.hpp
deleted file mode 100644
index 11642e6..0000000
--- a/include/ndnboost/function/function_template.hpp
+++ /dev/null
@@ -1,1185 +0,0 @@
-// Boost.Function library
-
-//  Copyright Douglas Gregor 2001-2006
-//  Copyright Emil Dotchevski 2007
-//  Use, modification and distribution is subject to 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)
-
-// For more information, see http://www.boost.org
-
-// Note: this header is a header template and must NOT have multiple-inclusion
-// protection.
-#include <ndnboost/function/detail/prologue.hpp>
-#include <ndnboost/detail/no_exceptions_support.hpp>
-
-#if defined(NDNBOOST_MSVC)
-#   pragma warning( push )
-#   pragma warning( disable : 4127 ) // "conditional expression is constant"
-#endif       
-
-#define NDNBOOST_FUNCTION_TEMPLATE_PARMS NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_FUNCTION_NUM_ARGS, typename T)
-
-#define NDNBOOST_FUNCTION_TEMPLATE_ARGS NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_FUNCTION_NUM_ARGS, T)
-
-#define NDNBOOST_FUNCTION_PARM(J,I,D) NDNBOOST_PP_CAT(T,I) NDNBOOST_PP_CAT(a,I)
-
-#define NDNBOOST_FUNCTION_PARMS NDNBOOST_PP_ENUM(NDNBOOST_FUNCTION_NUM_ARGS,NDNBOOST_FUNCTION_PARM,NDNBOOST_PP_EMPTY)
-
-#define NDNBOOST_FUNCTION_ARGS NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_FUNCTION_NUM_ARGS, a)
-
-#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 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 NDNBOOST_FUNCTION_NUM_ARGS == 0
-#  define NDNBOOST_FUNCTION_COMMA
-#else
-#  define NDNBOOST_FUNCTION_COMMA ,
-#endif // NDNBOOST_FUNCTION_NUM_ARGS > 0
-
-// Class names used in this version of the code
-#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 NDNBOOST_NO_VOID_RETURNS
-#  define NDNBOOST_FUNCTION_VOID_RETURN_TYPE void
-#  define NDNBOOST_FUNCTION_RETURN(X) X
-#else
-#  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 {
-  namespace detail {
-    namespace function {
-      template<
-        typename FunctionPtr,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-        >
-      struct NDNBOOST_FUNCTION_FUNCTION_INVOKER
-      {
-        static R invoke(function_buffer& function_ptr NDNBOOST_FUNCTION_COMMA
-                        NDNBOOST_FUNCTION_PARMS)
-        {
-          FunctionPtr f = reinterpret_cast<FunctionPtr>(function_ptr.func_ptr);
-          return f(NDNBOOST_FUNCTION_ARGS);
-        }
-      };
-
-      template<
-        typename FunctionPtr,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-        >
-      struct NDNBOOST_FUNCTION_VOID_FUNCTION_INVOKER
-      {
-        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);
-          NDNBOOST_FUNCTION_RETURN(f(NDNBOOST_FUNCTION_ARGS));
-        }
-      };
-
-      template<
-        typename FunctionObj,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-      >
-      struct NDNBOOST_FUNCTION_FUNCTION_OBJ_INVOKER
-      {
-        static R invoke(function_buffer& function_obj_ptr NDNBOOST_FUNCTION_COMMA
-                        NDNBOOST_FUNCTION_PARMS)
-
-        {
-          FunctionObj* f;
-          if (function_allows_small_object_optimization<FunctionObj>::value)
-            f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
-          else
-            f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
-          return (*f)(NDNBOOST_FUNCTION_ARGS);
-        }
-      };
-
-      template<
-        typename FunctionObj,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-      >
-      struct NDNBOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
-      {
-        static NDNBOOST_FUNCTION_VOID_RETURN_TYPE
-        invoke(function_buffer& function_obj_ptr NDNBOOST_FUNCTION_COMMA
-               NDNBOOST_FUNCTION_PARMS)
-
-        {
-          FunctionObj* f;
-          if (function_allows_small_object_optimization<FunctionObj>::value)
-            f = reinterpret_cast<FunctionObj*>(&function_obj_ptr.data);
-          else
-            f = reinterpret_cast<FunctionObj*>(function_obj_ptr.obj_ptr);
-          NDNBOOST_FUNCTION_RETURN((*f)(NDNBOOST_FUNCTION_ARGS));
-        }
-      };
-
-      template<
-        typename FunctionObj,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-      >
-      struct NDNBOOST_FUNCTION_FUNCTION_REF_INVOKER
-      {
-        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)(NDNBOOST_FUNCTION_ARGS);
-        }
-      };
-
-      template<
-        typename FunctionObj,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-      >
-      struct NDNBOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER
-      {
-        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);
-          NDNBOOST_FUNCTION_RETURN((*f)(NDNBOOST_FUNCTION_ARGS));
-        }
-      };
-
-#if NDNBOOST_FUNCTION_NUM_ARGS > 0
-      /* Handle invocation of member pointers. */
-      template<
-        typename MemberPtr,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-      >
-      struct NDNBOOST_FUNCTION_MEMBER_INVOKER
-      {
-        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)(NDNBOOST_FUNCTION_ARGS);
-        }
-      };
-
-      template<
-        typename MemberPtr,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-      >
-      struct NDNBOOST_FUNCTION_VOID_MEMBER_INVOKER
-      {
-        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);
-          NDNBOOST_FUNCTION_RETURN(ndnboost::mem_fn(*f)(NDNBOOST_FUNCTION_ARGS));
-        }
-      };
-#endif
-
-      template<
-        typename FunctionPtr,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-      >
-      struct NDNBOOST_FUNCTION_GET_FUNCTION_INVOKER
-      {
-        typedef typename mpl::if_c<(is_void<R>::value),
-                            NDNBOOST_FUNCTION_VOID_FUNCTION_INVOKER<
-                            FunctionPtr,
-                            R NDNBOOST_FUNCTION_COMMA
-                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                          >,
-                          NDNBOOST_FUNCTION_FUNCTION_INVOKER<
-                            FunctionPtr,
-                            R NDNBOOST_FUNCTION_COMMA
-                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                          >
-                       >::type type;
-      };
-
-      template<
-        typename FunctionObj,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-       >
-      struct NDNBOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
-      {
-        typedef typename mpl::if_c<(is_void<R>::value),
-                            NDNBOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER<
-                            FunctionObj,
-                            R NDNBOOST_FUNCTION_COMMA
-                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                          >,
-                          NDNBOOST_FUNCTION_FUNCTION_OBJ_INVOKER<
-                            FunctionObj,
-                            R NDNBOOST_FUNCTION_COMMA
-                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                          >
-                       >::type type;
-      };
-
-      template<
-        typename FunctionObj,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-       >
-      struct NDNBOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
-      {
-        typedef typename mpl::if_c<(is_void<R>::value),
-                            NDNBOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER<
-                            FunctionObj,
-                            R NDNBOOST_FUNCTION_COMMA
-                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                          >,
-                          NDNBOOST_FUNCTION_FUNCTION_REF_INVOKER<
-                            FunctionObj,
-                            R NDNBOOST_FUNCTION_COMMA
-                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                          >
-                       >::type type;
-      };
-
-#if NDNBOOST_FUNCTION_NUM_ARGS > 0
-      /* Retrieve the appropriate invoker for a member pointer.  */
-      template<
-        typename MemberPtr,
-        typename R NDNBOOST_FUNCTION_COMMA
-        NDNBOOST_FUNCTION_TEMPLATE_PARMS
-       >
-      struct NDNBOOST_FUNCTION_GET_MEMBER_INVOKER
-      {
-        typedef typename mpl::if_c<(is_void<R>::value),
-                            NDNBOOST_FUNCTION_VOID_MEMBER_INVOKER<
-                            MemberPtr,
-                            R NDNBOOST_FUNCTION_COMMA
-                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                          >,
-                          NDNBOOST_FUNCTION_MEMBER_INVOKER<
-                            MemberPtr,
-                            R NDNBOOST_FUNCTION_COMMA
-                            NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                          >
-                       >::type type;
-      };
-#endif
-
-      /* Given the tag returned by get_function_tag, retrieve the
-         actual invoker that will be used for the given function
-         object. 
-
-         Each specialization contains an "apply" nested class template
-         that accepts the function object, return type, function
-         argument types, and allocator. The resulting "apply" class
-         contains two typedefs, "invoker_type" and "manager_type",
-         which correspond to the invoker and manager types. */
-      template<typename Tag>
-      struct NDNBOOST_FUNCTION_GET_INVOKER { };
-
-      /* Retrieve the invoker for a function pointer. */
-      template<>
-      struct NDNBOOST_FUNCTION_GET_INVOKER<function_ptr_tag>
-      {
-        template<typename FunctionPtr,
-                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
-        struct apply
-        {
-          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_INVOKER<
-                             FunctionPtr,
-                             R NDNBOOST_FUNCTION_COMMA
-                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                           >::type
-            invoker_type;
-
-          typedef functor_manager<FunctionPtr> manager_type;
-        };
-
-        template<typename FunctionPtr,
-                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS,
-                 typename Allocator>
-        struct apply_a
-        {
-          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_INVOKER<
-                             FunctionPtr,
-                             R NDNBOOST_FUNCTION_COMMA
-                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                           >::type
-            invoker_type;
-
-          typedef functor_manager<FunctionPtr> manager_type;
-        };
-      };
-
-#if NDNBOOST_FUNCTION_NUM_ARGS > 0
-      /* Retrieve the invoker for a member pointer. */
-      template<>
-      struct NDNBOOST_FUNCTION_GET_INVOKER<member_ptr_tag>
-      {
-        template<typename MemberPtr,
-                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
-        struct apply
-        {
-          typedef typename NDNBOOST_FUNCTION_GET_MEMBER_INVOKER<
-                             MemberPtr,
-                             R NDNBOOST_FUNCTION_COMMA
-                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                           >::type
-            invoker_type;
-
-          typedef functor_manager<MemberPtr> manager_type;
-        };
-
-        template<typename MemberPtr,
-                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS,
-                 typename Allocator>
-        struct apply_a
-        {
-          typedef typename NDNBOOST_FUNCTION_GET_MEMBER_INVOKER<
-                             MemberPtr,
-                             R NDNBOOST_FUNCTION_COMMA
-                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                           >::type
-            invoker_type;
-
-          typedef functor_manager<MemberPtr> manager_type;
-        };
-      };
-#endif
-
-      /* Retrieve the invoker for a function object. */
-      template<>
-      struct NDNBOOST_FUNCTION_GET_INVOKER<function_obj_tag>
-      {
-        template<typename FunctionObj,
-                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
-        struct apply
-        {
-          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
-                             FunctionObj,
-                             R NDNBOOST_FUNCTION_COMMA
-                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                           >::type
-            invoker_type;
-
-          typedef functor_manager<FunctionObj> manager_type;
-        };
-
-        template<typename FunctionObj,
-                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS,
-                 typename Allocator>
-        struct apply_a
-        {
-          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
-                             FunctionObj,
-                             R NDNBOOST_FUNCTION_COMMA
-                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                           >::type
-            invoker_type;
-
-          typedef functor_manager_a<FunctionObj, Allocator> manager_type;
-        };
-      };
-
-      /* Retrieve the invoker for a reference to a function object. */
-      template<>
-      struct NDNBOOST_FUNCTION_GET_INVOKER<function_obj_ref_tag>
-      {
-        template<typename RefWrapper,
-                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
-        struct apply
-        {
-          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
-                             typename RefWrapper::type,
-                             R NDNBOOST_FUNCTION_COMMA
-                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                           >::type
-            invoker_type;
-
-          typedef reference_manager<typename RefWrapper::type> manager_type;
-        };
-
-        template<typename RefWrapper,
-                 typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS,
-                 typename Allocator>
-        struct apply_a
-        {
-          typedef typename NDNBOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
-                             typename RefWrapper::type,
-                             R NDNBOOST_FUNCTION_COMMA
-                             NDNBOOST_FUNCTION_TEMPLATE_ARGS
-                           >::type
-            invoker_type;
-
-          typedef reference_manager<typename RefWrapper::type> manager_type;
-        };
-      };
-
-
-      /**
-       * vtable for a specific ndnboost::function instance. This
-       * structure must be an aggregate so that we can use static
-       * initialization in ndnboost::function's assign_to and assign_to_a
-       * members. It therefore cannot have any constructors,
-       * destructors, base classes, etc.
-       */
-      template<typename R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_PARMS>
-      struct NDNBOOST_FUNCTION_VTABLE
-      {
-#ifndef NDNBOOST_NO_VOID_RETURNS
-        typedef R         result_type;
-#else
-        typedef typename function_return_type<R>::type result_type;
-#endif // NDNBOOST_NO_VOID_RETURNS
-
-        typedef result_type (*invoker_type)(function_buffer&
-                                            NDNBOOST_FUNCTION_COMMA
-                                            NDNBOOST_FUNCTION_TEMPLATE_ARGS);
-
-        template<typename F>
-        bool assign_to(F f, function_buffer& functor) const
-        {
-          typedef typename get_function_tag<F>::type tag;
-          return assign_to(f, functor, tag());
-        }
-        template<typename F,typename Allocator>
-        bool assign_to_a(F f, function_buffer& functor, Allocator a) const
-        {
-          typedef typename get_function_tag<F>::type tag;
-          return assign_to_a(f, functor, a, tag());
-        }
-
-        void clear(function_buffer& functor) const
-        {
-          if (base.manager)
-            base.manager(functor, functor, destroy_functor_tag);
-        }
-
-      private:
-        // Function pointers
-        template<typename FunctionPtr>
-        bool 
-        assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) const
-        {
-          this->clear(functor);
-          if (f) {
-            // should be a reinterpret cast, but some compilers insist
-            // on giving cv-qualifiers to free functions
-            functor.func_ptr = reinterpret_cast<void (*)()>(f);
-            return true;
-          } else {
-            return false;
-          }
-        }
-        template<typename FunctionPtr,typename Allocator>
-        bool 
-        assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const
-        {
-          return assign_to(f,functor,function_ptr_tag());
-        }
-
-        // Member pointers
-#if NDNBOOST_FUNCTION_NUM_ARGS > 0
-        template<typename MemberPtr>
-        bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const
-        {
-          // DPG TBD: Add explicit support for member function
-          // objects, so we invoke through mem_fn() but we retain the
-          // right target_type() values.
-          if (f) {
-            this->assign_to(ndnboost::mem_fn(f), functor);
-            return true;
-          } else {
-            return false;
-          }
-        }
-        template<typename MemberPtr,typename Allocator>
-        bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const
-        {
-          // DPG TBD: Add explicit support for member function
-          // objects, so we invoke through mem_fn() but we retain the
-          // right target_type() values.
-          if (f) {
-            this->assign_to_a(ndnboost::mem_fn(f), functor, a);
-            return true;
-          } else {
-            return false;
-          }
-        }
-#endif // NDNBOOST_FUNCTION_NUM_ARGS > 0
-
-        // Function objects
-        // Assign to a function object using the small object optimization
-        template<typename FunctionObj>
-        void 
-        assign_functor(FunctionObj f, function_buffer& functor, mpl::true_) const
-        {
-          new (reinterpret_cast<void*>(&functor.data)) FunctionObj(f);
-        }
-        template<typename FunctionObj,typename Allocator>
-        void 
-        assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, mpl::true_) const
-        {
-          assign_functor(f,functor,mpl::true_());
-        }
-
-        // Assign to a function object allocated on the heap.
-        template<typename FunctionObj>
-        void 
-        assign_functor(FunctionObj f, function_buffer& functor, mpl::false_) const
-        {
-          functor.obj_ptr = new FunctionObj(f);
-        }
-        template<typename FunctionObj,typename Allocator>
-        void 
-        assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, mpl::false_) const
-        {
-          typedef functor_wrapper<FunctionObj,Allocator> functor_wrapper_type;
-          typedef typename Allocator::template rebind<functor_wrapper_type>::other
-            wrapper_allocator_type;
-          typedef typename wrapper_allocator_type::pointer wrapper_allocator_pointer_type;
-          wrapper_allocator_type wrapper_allocator(a);
-          wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1);
-          wrapper_allocator.construct(copy, functor_wrapper_type(f,a));
-          functor_wrapper_type* new_f = static_cast<functor_wrapper_type*>(copy);
-          functor.obj_ptr = new_f;
-        }
-
-        template<typename FunctionObj>
-        bool 
-        assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) const
-        {
-          if (!ndnboost::detail::function::has_empty_target(ndnboost::addressof(f))) {
-            assign_functor(f, functor, 
-                           mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
-            return true;
-          } else {
-            return false;
-          }
-        }
-        template<typename FunctionObj,typename Allocator>
-        bool 
-        assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) const
-        {
-          if (!ndnboost::detail::function::has_empty_target(ndnboost::addressof(f))) {
-            assign_functor_a(f, functor, a,
-                           mpl::bool_<(function_allows_small_object_optimization<FunctionObj>::value)>());
-            return true;
-          } else {
-            return false;
-          }
-        }
-
-        // Reference to a function object
-        template<typename FunctionObj>
-        bool 
-        assign_to(const reference_wrapper<FunctionObj>& f, 
-                  function_buffer& functor, function_obj_ref_tag) const
-        {
-          functor.obj_ref.obj_ptr = (void *)(f.get_pointer());
-          functor.obj_ref.is_const_qualified = is_const<FunctionObj>::value;
-          functor.obj_ref.is_volatile_qualified = is_volatile<FunctionObj>::value;
-          return true;
-        }
-        template<typename FunctionObj,typename Allocator>
-        bool 
-        assign_to_a(const reference_wrapper<FunctionObj>& f, 
-                  function_buffer& functor, Allocator, function_obj_ref_tag) const
-        {
-          return assign_to(f,functor,function_obj_ref_tag());
-        }
-
-      public:
-        vtable_base base;
-        invoker_type invoker;
-      };
-    } // end namespace function
-  } // end namespace detail
-
-  template<
-    typename R NDNBOOST_FUNCTION_COMMA
-    NDNBOOST_FUNCTION_TEMPLATE_PARMS
-  >
-  class NDNBOOST_FUNCTION_FUNCTION : public function_base
-
-#if NDNBOOST_FUNCTION_NUM_ARGS == 1
-
-    , public std::unary_function<T0,R>
-
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 2
-
-    , public std::binary_function<T0,T1,R>
-
-#endif
-
-  {
-  public:
-#ifndef NDNBOOST_NO_VOID_RETURNS
-    typedef R         result_type;
-#else
-    typedef  typename ndnboost::detail::function::function_return_type<R>::type
-      result_type;
-#endif // NDNBOOST_NO_VOID_RETURNS
-
-  private:
-    typedef ndnboost::detail::function::NDNBOOST_FUNCTION_VTABLE<
-              R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_ARGS>
-      vtable_type;
-
-    vtable_type* get_vtable() const {
-      return reinterpret_cast<vtable_type*>(
-               reinterpret_cast<std::size_t>(vtable) & ~static_cast<std::size_t>(0x01));
-    }
-
-    struct clear_type {};
-
-  public:
-    NDNBOOST_STATIC_CONSTANT(int, args = NDNBOOST_FUNCTION_NUM_ARGS);
-
-    // add signature for ndnboost::lambda
-    template<typename Args>
-    struct sig
-    {
-      typedef result_type type;
-    };
-
-#if NDNBOOST_FUNCTION_NUM_ARGS == 1
-    typedef T0 argument_type;
-#elif NDNBOOST_FUNCTION_NUM_ARGS == 2
-    typedef T0 first_argument_type;
-    typedef T1 second_argument_type;
-#endif
-
-    NDNBOOST_STATIC_CONSTANT(int, arity = NDNBOOST_FUNCTION_NUM_ARGS);
-    NDNBOOST_FUNCTION_ARG_TYPES
-
-    typedef NDNBOOST_FUNCTION_FUNCTION self_type;
-
-    NDNBOOST_FUNCTION_FUNCTION() : function_base() { }
-
-    // MSVC chokes if the following two constructors are collapsed into
-    // one with a default parameter.
-    template<typename Functor>
-    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 // NDNBOOST_NO_SFINAE
-                            ) :
-      function_base()
-    {
-      this->assign_to(f);
-    }
-    template<typename Functor,typename Allocator>
-    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 // NDNBOOST_NO_SFINAE
-                            ) :
-      function_base()
-    {
-      this->assign_to_a(f,a);
-    }
-
-#ifndef NDNBOOST_NO_SFINAE
-    NDNBOOST_FUNCTION_FUNCTION(clear_type*) : function_base() { }
-#else
-    NDNBOOST_FUNCTION_FUNCTION(int zero) : function_base()
-    {
-      NDNBOOST_ASSERT(zero == 0);
-    }
-#endif
-
-    NDNBOOST_FUNCTION_FUNCTION(const NDNBOOST_FUNCTION_FUNCTION& f) : function_base()
-    {
-      this->assign_to_own(f);
-    }
-    
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-    NDNBOOST_FUNCTION_FUNCTION(NDNBOOST_FUNCTION_FUNCTION&& f) : function_base()
-    {
-      this->move_assign(f);
-    }
-#endif
-    
-    ~NDNBOOST_FUNCTION_FUNCTION() { clear(); }
-
-    result_type operator()(NDNBOOST_FUNCTION_PARMS) const
-    {
-      if (this->empty())
-        ndnboost::throw_exception(bad_function_call());
-
-      return get_vtable()->invoker
-               (this->functor NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_ARGS);
-    }
-
-    // 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 NDNBOOST_FUNCTION_FUNCTION as the type of the temporary to
-    // construct.
-    template<typename Functor>
-#ifndef NDNBOOST_NO_SFINAE
-    typename enable_if_c<
-               (ndnboost::type_traits::ice_not<
-                 (is_integral<Functor>::value)>::value),
-               NDNBOOST_FUNCTION_FUNCTION&>::type
-#else
-    NDNBOOST_FUNCTION_FUNCTION&
-#endif
-    operator=(Functor NDNBOOST_FUNCTION_TARGET_FIX(const &) f)
-    {
-      this->clear();
-      NDNBOOST_TRY  {
-        this->assign_to(f);
-      } NDNBOOST_CATCH (...) {
-        vtable = 0;
-        NDNBOOST_RETHROW;
-      }
-      NDNBOOST_CATCH_END
-      return *this;
-    }
-    template<typename Functor,typename Allocator>
-    void assign(Functor NDNBOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a)
-    {
-      this->clear();
-      NDNBOOST_TRY{
-        this->assign_to_a(f,a);
-      } NDNBOOST_CATCH (...) {
-        vtable = 0;
-        NDNBOOST_RETHROW;
-      }
-      NDNBOOST_CATCH_END
-    }
-
-#ifndef NDNBOOST_NO_SFINAE
-    NDNBOOST_FUNCTION_FUNCTION& operator=(clear_type*)
-    {
-      this->clear();
-      return *this;
-    }
-#else
-    NDNBOOST_FUNCTION_FUNCTION& operator=(int zero)
-    {
-      NDNBOOST_ASSERT(zero == 0);
-      this->clear();
-      return *this;
-    }
-#endif
-
-    // Assignment from another NDNBOOST_FUNCTION_FUNCTION
-    NDNBOOST_FUNCTION_FUNCTION& operator=(const NDNBOOST_FUNCTION_FUNCTION& f)
-    {
-      if (&f == this)
-        return *this;
-
-      this->clear();
-      NDNBOOST_TRY {
-        this->assign_to_own(f);
-      } NDNBOOST_CATCH (...) {
-        vtable = 0;
-        NDNBOOST_RETHROW;
-      }
-      NDNBOOST_CATCH_END
-      return *this;
-    }
-    
-#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();
-      NDNBOOST_TRY {
-        this->move_assign(f);
-      } NDNBOOST_CATCH (...) {
-        vtable = 0;
-        NDNBOOST_RETHROW;
-      }
-      NDNBOOST_CATCH_END
-      return *this;
-    }
-#endif
-
-    void swap(NDNBOOST_FUNCTION_FUNCTION& other)
-    {
-      if (&other == this)
-        return;
-
-      NDNBOOST_FUNCTION_FUNCTION tmp;
-      tmp.move_assign(*this);
-      this->move_assign(other);
-      other.move_assign(tmp);
-    }
-
-    // Clear out a target, if there is one
-    void clear()
-    {
-      if (vtable) {
-        if (!this->has_trivial_copy_and_destroy())
-          get_vtable()->clear(this->functor);
-        vtable = 0;
-      }
-    }
-
-#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
-  private:
-    struct dummy {
-      void nonnull() {}
-    };
-
-    typedef void (dummy::*safe_bool)();
-
-  public:
-    operator safe_bool () const
-      { return (this->empty())? 0 : &dummy::nonnull; }
-
-    bool operator!() const
-      { return this->empty(); }
-#endif
-
-  private:
-    void assign_to_own(const NDNBOOST_FUNCTION_FUNCTION& f)
-    {
-      if (!f.empty()) {
-        this->vtable = f.vtable;
-        if (this->has_trivial_copy_and_destroy())
-          this->functor = f.functor;
-        else
-          get_vtable()->base.manager(f.functor, this->functor,
-                                     ndnboost::detail::function::clone_functor_tag);
-      }
-    }
-
-    template<typename Functor>
-    void assign_to(Functor f)
-    {
-      using detail::function::vtable_base;
-
-      typedef typename detail::function::get_function_tag<Functor>::type tag;
-      typedef detail::function::NDNBOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
-      typedef typename get_invoker::
-                         template apply<Functor, R NDNBOOST_FUNCTION_COMMA 
-                        NDNBOOST_FUNCTION_TEMPLATE_ARGS>
-        handler_type;
-      
-      typedef typename handler_type::invoker_type invoker_type;
-      typedef typename handler_type::manager_type manager_type;
-
-      // Note: it is extremely important that this initialization use
-      // static initialization. Otherwise, we will have a race
-      // condition here in multi-threaded code. See
-      // http://thread.gmane.org/gmane.comp.lib.boost.devel/164902/.
-      static const vtable_type stored_vtable = 
-        { { &manager_type::manage }, &invoker_type::invoke };
-
-      if (stored_vtable.assign_to(f, functor)) {
-        std::size_t value = reinterpret_cast<std::size_t>(&stored_vtable.base);
-        if (ndnboost::has_trivial_copy_constructor<Functor>::value &&
-            ndnboost::has_trivial_destructor<Functor>::value &&
-            detail::function::function_allows_small_object_optimization<Functor>::value)
-          value |= static_cast<size_t>(0x01);
-        vtable = reinterpret_cast<detail::function::vtable_base *>(value);
-      } else 
-        vtable = 0;
-    }
-
-    template<typename Functor,typename Allocator>
-    void assign_to_a(Functor f,Allocator a)
-    {
-      using detail::function::vtable_base;
-
-      typedef typename detail::function::get_function_tag<Functor>::type tag;
-      typedef detail::function::NDNBOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
-      typedef typename get_invoker::
-                         template apply_a<Functor, R NDNBOOST_FUNCTION_COMMA 
-                         NDNBOOST_FUNCTION_TEMPLATE_ARGS,
-                         Allocator>
-        handler_type;
-      
-      typedef typename handler_type::invoker_type invoker_type;
-      typedef typename handler_type::manager_type manager_type;
-
-      // Note: it is extremely important that this initialization use
-      // static initialization. Otherwise, we will have a race
-      // condition here in multi-threaded code. See
-      // http://thread.gmane.org/gmane.comp.lib.boost.devel/164902/.
-      static const vtable_type stored_vtable =
-        { { &manager_type::manage }, &invoker_type::invoke };
-
-      if (stored_vtable.assign_to_a(f, functor, a)) { 
-        std::size_t value = reinterpret_cast<std::size_t>(&stored_vtable.base);
-        if (ndnboost::has_trivial_copy_constructor<Functor>::value &&
-            ndnboost::has_trivial_destructor<Functor>::value &&
-            detail::function::function_allows_small_object_optimization<Functor>::value)
-          value |= static_cast<std::size_t>(0x01);
-        vtable = reinterpret_cast<detail::function::vtable_base *>(value);
-      } else 
-        vtable = 0;
-    }
-
-    // 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(NDNBOOST_FUNCTION_FUNCTION& f) 
-    { 
-      if (&f == this)
-        return;
-
-      NDNBOOST_TRY {
-        if (!f.empty()) {
-          this->vtable = f.vtable;
-          if (this->has_trivial_copy_and_destroy())
-            this->functor = f.functor;
-          else
-            get_vtable()->base.manager(f.functor, this->functor,
-                                     ndnboost::detail::function::move_functor_tag);
-          f.vtable = 0;
-        } else {
-          clear();
-        }
-      } NDNBOOST_CATCH (...) {
-        vtable = 0;
-        NDNBOOST_RETHROW;
-      }
-      NDNBOOST_CATCH_END
-    }
-  };
-
-  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,
-                   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 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(NDNBOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
-
-#if NDNBOOST_FUNCTION_NUM_ARGS == 0
-#define NDNBOOST_FUNCTION_PARTIAL_SPEC R (void)
-#else
-#define NDNBOOST_FUNCTION_PARTIAL_SPEC R (NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_FUNCTION_NUM_ARGS,T))
-#endif
-
-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 NDNBOOST_FUNCTION_FUNCTION<R NDNBOOST_FUNCTION_COMMA NDNBOOST_FUNCTION_TEMPLATE_ARGS> base_type;
-  typedef function self_type;
-
-  struct clear_type {};
-
-public:
-
-  function() : base_type() {}
-
-  template<typename Functor>
-  function(Functor f
-#ifndef NDNBOOST_NO_SFINAE
-           ,typename enable_if_c<
-                            (ndnboost::type_traits::ice_not<
-                          (is_integral<Functor>::value)>::value),
-                       int>::type = 0
-#endif
-           ) :
-    base_type(f)
-  {
-  }
-  template<typename Functor,typename Allocator>
-  function(Functor 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
-           ) :
-    base_type(f,a)
-  {
-  }
-
-#ifndef NDNBOOST_NO_SFINAE
-  function(clear_type*) : base_type() {}
-#endif
-
-  function(const self_type& f) : base_type(static_cast<const base_type&>(f)){}
-
-  function(const base_type& f) : base_type(static_cast<const base_type&>(f)){}
-
-#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)){}
-#endif
-  
-  self_type& operator=(const self_type& f)
-  {
-    self_type(f).swap(*this);
-    return *this;
-  }
-
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-  self_type& operator=(self_type&& f)
-  {
-    self_type(static_cast<self_type&&>(f)).swap(*this);
-    return *this;
-  }
-#endif  
-
-  template<typename Functor>
-#ifndef NDNBOOST_NO_SFINAE
-  typename enable_if_c<
-                            (ndnboost::type_traits::ice_not<
-                         (is_integral<Functor>::value)>::value),
-                      self_type&>::type
-#else
-  self_type&
-#endif
-  operator=(Functor f)
-  {
-    self_type(f).swap(*this);
-    return *this;
-  }
-
-#ifndef NDNBOOST_NO_SFINAE
-  self_type& operator=(clear_type*)
-  {
-    this->clear();
-    return *this;
-  }
-#endif
-
-  self_type& operator=(const base_type& f)
-  {
-    self_type(f).swap(*this);
-    return *this;
-  }
-  
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-  self_type& operator=(base_type&& f)
-  {
-    self_type(static_cast<base_type&&>(f)).swap(*this);
-    return *this;
-  }
-#endif 
-};
-
-#undef NDNBOOST_FUNCTION_PARTIAL_SPEC
-#endif // have partial specialization
-
-} // end namespace ndnboost
-
-// Cleanup after ourselves...
-#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(NDNBOOST_MSVC)
-#   pragma warning( pop )
-#endif       
diff --git a/include/ndnboost/function/function_typeof.hpp b/include/ndnboost/function/function_typeof.hpp
deleted file mode 100644
index 3dc0744..0000000
--- a/include/ndnboost/function/function_typeof.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-// Boost.Function library - Typeof support
-//  Copyright (C) Douglas Gregor 2008
-//
-//  Use, modification and distribution is subject to 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)
-//
-// For more information, see http://www.boost.org
-#ifndef NDNBOOST_FUNCTION_TYPEOF_HPP
-#define NDNBOOST_FUNCTION_TYPEOF_HPP
-#include <ndnboost/function/function_fwd.hpp>
-#include <ndnboost/typeof/typeof.hpp>
-
-#include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-NDNBOOST_TYPEOF_REGISTER_TYPE(ndnboost::bad_function_call)
-
-#if !defined(NDNBOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX)
-NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function, (typename))
-#endif
-
-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))
-NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function4, 
-  (typename)(typename)(typename)(typename)(typename))
-NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function5, 
-  (typename)(typename)(typename)(typename)(typename)(typename))
-NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function6, 
-  (typename)(typename)(typename)(typename)(typename)(typename)(typename))
-NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function7, 
-  (typename)(typename)(typename)(typename)(typename)(typename)(typename)
-  (typename))
-NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function8, 
-  (typename)(typename)(typename)(typename)(typename)(typename)(typename)
-  (typename)(typename))
-NDNBOOST_TYPEOF_REGISTER_TEMPLATE(ndnboost::function9, 
-  (typename)(typename)(typename)(typename)(typename)(typename)(typename)
-  (typename)(typename)(typename))
-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
deleted file mode 100644
index c3f4401..0000000
--- a/include/ndnboost/function/gen_function_N.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Boost.Function library
-#
-# Copyright Douglas Gregor 2001-2003. Use, modification and
-# distribution is subject to 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)
-#
-# For more information, see http://www.boost.org
-use English;
-
-if ($#ARGV < 0) {
-  print "Usage: perl gen_function_N <number of arguments>\n";
-  exit;
-}
-
-
-$totalNumArgs = $ARGV[0];
-for ($numArgs = 0; $numArgs <= $totalNumArgs; ++$numArgs) {
-  open OUT, ">function$numArgs.hpp";
-  print OUT "#define NDNBOOST_FUNCTION_NUM_ARGS $numArgs\n";
-  print OUT "#include <ndnboost/function/detail/maybe_include.hpp>\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
deleted file mode 100644
index 43e612c..0000000
--- a/include/ndnboost/function_equal.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright Douglas Gregor 2004.
-//  Copyright 2005 Peter Dimov
-
-//  Use, modification and distribution is subject to
-//  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)
-
-// For more information, see http://www.boost.org
-#ifndef NDNBOOST_FUNCTION_EQUAL_HPP
-#define NDNBOOST_FUNCTION_EQUAL_HPP
-
-namespace ndnboost {
-
-template<typename F, typename G>
-  bool function_equal_impl(const F& f, const G& g, long)
-  { return f == g; }
-
-// function_equal_impl needs to be unqualified to pick
-// user overloads on two-phase compilers
-
-template<typename F, typename G>
-  bool function_equal(const F& f, const G& g)
-  { return function_equal_impl(f, g, 0); }
-
-} // end namespace ndnboost
-
-#endif // NDNBOOST_FUNCTION_EQUAL_HPP
diff --git a/include/ndnboost/function_types/components.hpp b/include/ndnboost/function_types/components.hpp
deleted file mode 100644
index 6fec107..0000000
--- a/include/ndnboost/function_types/components.hpp
+++ /dev/null
@@ -1,431 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#ifndef NDNBOOST_FT_COMPONENTS_HPP_INCLUDED
-#define NDNBOOST_FT_COMPONENTS_HPP_INCLUDED
-
-#include <cstddef>
-
-#include <ndnboost/config.hpp>
-
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/type_traits/detail/template_arity_spec.hpp>
-
-#include <ndnboost/type_traits/integral_constant.hpp>
-
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/integral_c.hpp>
-#include <ndnboost/mpl/vector/vector0.hpp>
-
-#if NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x565)
-#   include <ndnboost/type_traits/remove_cv.hpp>
-
-#   include <ndnboost/mpl/identity.hpp>
-#   include <ndnboost/mpl/bitand.hpp>
-#   include <ndnboost/mpl/vector/vector10.hpp>
-#   include <ndnboost/mpl/front.hpp>
-#   include <ndnboost/mpl/begin.hpp>
-#   include <ndnboost/mpl/advance.hpp>
-#   include <ndnboost/mpl/iterator_range.hpp>
-#   include <ndnboost/mpl/joint_view.hpp>
-#   include <ndnboost/mpl/equal_to.hpp>
-#   include <ndnboost/mpl/copy.hpp>
-#   include <ndnboost/mpl/front_inserter.hpp>
-
-#   include <ndnboost/function_types/detail/classifier.hpp>
-#endif
-
-#ifndef NDNBOOST_FT_NO_CV_FUNC_SUPPORT
-#   include <ndnboost/mpl/remove.hpp>
-#endif
-
-#include <ndnboost/function_types/config/config.hpp>
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   if   NDNBOOST_FT_MAX_ARITY < 10
-#     include <ndnboost/mpl/vector/vector10.hpp>
-#   elif NDNBOOST_FT_MAX_ARITY < 20
-#     include <ndnboost/mpl/vector/vector20.hpp>
-#   elif NDNBOOST_FT_MAX_ARITY < 30
-#     include <ndnboost/mpl/vector/vector30.hpp>
-#   elif NDNBOOST_FT_MAX_ARITY < 40
-#     include <ndnboost/mpl/vector/vector40.hpp>
-#   elif NDNBOOST_FT_MAX_ARITY < 50
-#     include <ndnboost/mpl/vector/vector50.hpp>
-#   endif
-#else
-#   include <ndnboost/function_types/detail/classifier.hpp>
-#endif
-
-#include <ndnboost/function_types/detail/class_transform.hpp>
-#include <ndnboost/function_types/property_tags.hpp>
-
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-namespace ndnboost 
-{ 
-  namespace function_types 
-  {
-
-    using mpl::placeholders::_;
-
-    template< typename T, typename ClassTypeTransform = add_reference<_> > 
-    struct components;
-
-    namespace detail 
-    {
-      template<typename T, typename L> struct components_impl;
-#if NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x565)
-      template<typename T, typename OrigT, typename L> struct components_bcc;
-#endif
-    }
-
-    template<typename T, typename ClassTypeTransform> 
-    struct components
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x565)
-      : detail::components_impl<T, ClassTypeTransform>
-#else
-      : detail::components_bcc<typename remove_cv<T>::type,T,
-            ClassTypeTransform>
-#endif
-    { 
-      typedef components<T,ClassTypeTransform> type;
-
-      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,components,(T,ClassTypeTransform))
-    };
-
-// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-  namespace detail {
-
-    struct components_mpl_sequence_tag; 
-
-    struct components_non_func_base
-    {
-      typedef mpl::vector0<> types;
-      typedef void function_arity;
-
-      typedef detail::constant<0> bits;
-      typedef detail::constant<0> mask;
-
-      typedef components_mpl_sequence_tag tag;
-    };
-
-    template
-    < typename Components
-    , typename IfTagged
-    , typename ThenTag
-    , typename DefaultBase = components_non_func_base
-    >
-    struct retagged_if
-      : mpl::if_
-        < detail::represents_impl<Components, IfTagged>
-        , detail::changed_tag<Components,IfTagged,ThenTag>
-        , DefaultBase
-        >::type
-    { };
-
-    // We detect plain function types and function references as function 
-    // pointers by recursive instantiation of components_impl. 
-    // The third specialization of components_impl makes sure the recursion 
-    // terminates (when adding pointers).
-    template<typename T, typename L>
-    struct components_impl
-      : detail::retagged_if
-        < detail::components_impl<T*,L>
-        , pointer_tag, /* --> */ function_tag >
-    { };
-    template<typename T, typename L>
-    struct components_impl<T&, L>
-      : detail::retagged_if
-        < detail::components_impl<T*,L>
-        , pointer_tag, /* --> */ reference_tag >
-    { };
-
-#if !NDNBOOST_FT_NO_CV_FUNC_SUPPORT
-    // Retry the type with a member pointer attached to detect cv functions
-    class a_class;
-
-    template<typename Base, typename T, typename L>
-    struct cv_func_base
-      : detail::retagged_if<Base,member_pointer_tag,function_tag>
-    {
-      typedef typename
-        mpl::remove
-          < typename Base::types
-          , typename detail::class_transform<a_class,L>::type>::type
-      types;
-    };
-
-    template<typename T, typename L>
-    struct components_impl<T*, L>
-      : mpl::if_
-        < detail::represents_impl< detail::components_impl<T a_class::*, L>
-                                 , member_pointer_tag >
-        , detail::cv_func_base< detail::components_impl<T a_class::*, L>, T, L>
-        , components_non_func_base
-        >::type
-    { };
-
-    template<typename T, typename L>
-    struct components_impl<T a_class::*, L>
-      : components_non_func_base
-    { };
-#else
-    template<typename T, typename L>
-    struct components_impl<T*, L>
-      : components_non_func_base
-    { }; 
-#endif
-
-    template<typename T, typename L>
-    struct components_impl<T* const, L> 
-      : components_impl<T*,L>
-    { };
-
-    template<typename T, typename L>
-    struct components_impl<T* volatile, L> 
-      : components_impl<T*,L>
-    { };
-
-    template<typename T, typename L>
-    struct components_impl<T* const volatile, L> 
-      : components_impl<T*,L>
-    { };
-
-    template<typename T, typename L>
-    struct components_impl<T const, L> 
-      : components_impl<T,L>
-    { };
-
-    template<typename T, typename L>
-    struct components_impl<T volatile, L> 
-      : components_impl<T,L>
-    { };
-
-    template<typename T, typename L>
-    struct components_impl<T const volatile, L> 
-      : components_impl<T,L>
-    { };
-
-
-    template<typename T, class C>
-    struct member_obj_ptr_result
-    { typedef T & type; };
-
-    template<typename T, class C>
-    struct member_obj_ptr_result<T, C const>
-    { typedef T const & type; };
-
-    template<typename T, class C>
-    struct member_obj_ptr_result<T, C volatile>
-    { typedef T volatile & type; };
-
-    template<typename T, class C>
-    struct member_obj_ptr_result<T, C const volatile>
-    { typedef T const volatile & type; };
-
-    template<typename T, class C>
-    struct member_obj_ptr_result<T &, C>
-    { typedef T & type; };
-
-    template<typename T, class C>
-    struct member_obj_ptr_result<T &, C const>
-    { typedef T & type; };
-
-    template<typename T, class C>
-    struct member_obj_ptr_result<T &, C volatile>
-    { typedef T & type; };
-
-    template<typename T, class C>
-    struct member_obj_ptr_result<T &, C const volatile>
-    { typedef T & type; };
-
-    template<typename T, class C, typename L>
-    struct member_obj_ptr_components
-      : member_object_pointer_base
-    {
-      typedef function_types::components<T C::*, L> type;
-      typedef components_mpl_sequence_tag tag;
-
-      typedef mpl::integral_c<std::size_t,1> function_arity;
-
-      typedef mpl::vector2< typename detail::member_obj_ptr_result<T,C>::type,
-          typename detail::class_transform<C,L>::type > types;
-    };
-
-#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>
-      : member_obj_ptr_components<T,C,L>
-    { };
-
-#else  
-#   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. 
-    template<typename T, typename C, typename L>
-    struct components_impl<T C::*, L>
-      : detail::retagged_if
-        < detail::components_impl<typename ndnboost::remove_cv<T>::type *, L>
-        , pointer_tag, /* --> */ member_function_pointer_tag
-        , member_obj_ptr_components<T,C,L> >
-    { };
-
-    // BCC lets us test the cv-qualification of a function type by template 
-    // partial specialization - so we use this bug feature to find out the 
-    // member function's cv-qualification (unfortunately there are some 
-    // invisible modifiers that impose some limitations on these types even if
-    // 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]; NDNBOOST_STATIC_CONSTANT(std::size_t, value = 1); };
-    template<typename T> struct encode_cv<T const *>
-    { typedef char (& type)[2]; NDNBOOST_STATIC_CONSTANT(std::size_t, value = 2); };
-    template<typename T> struct encode_cv<T volatile *>
-    { 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]; 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 
-    // of the function type).
-    template<typename T, typename C>
-    typename encode_cv<T *>::type mfp_cv_tester(T C::*);
-
-    template<typename T> struct encode_mfp_cv
-    { 
-      NDNBOOST_STATIC_CONSTANT(std::size_t, value = 
-          sizeof(detail::mfp_cv_tester((T)0L))); 
-    };
-
-    // Associate bits with the CV codes above.
-    template<std::size_t> struct cv_tag_mfp_impl;
-
-    template<typename T> struct cv_tag_mfp
-      : detail::cv_tag_mfp_impl
-        < ::ndnboost::function_types::detail::encode_mfp_cv<T>::value >
-    { };
-
-    template<> struct cv_tag_mfp_impl<1> : non_cv              { };
-    template<> struct cv_tag_mfp_impl<2> : const_non_volatile  { };
-    template<> struct cv_tag_mfp_impl<3> : volatile_non_const  { };
-    template<> struct cv_tag_mfp_impl<4> : cv_qualified        { };
-
-    // Metafunction to decode the cv code and apply it to a type.
-    // We add a pointer, because otherwise cv-qualifiers won't stick (another bug).
-    template<typename T, std::size_t CV> struct decode_cv;
-
-    template<typename T> struct decode_cv<T,1> : mpl::identity<T *>          {};
-    template<typename T> struct decode_cv<T,2> : mpl::identity<T const *>    {};
-    template<typename T> struct decode_cv<T,3> : mpl::identity<T volatile *> {};
-    template<typename T> struct decode_cv<T,4> 
-                                         : mpl::identity<T const volatile *> {};
-
-    // The class type transformation comes after adding cv-qualifiers. We have
-    // wrap it to remove the pointer added in decode_cv_impl.
-    template<typename T, typename L> struct bcc_class_transform_impl;
-    template<typename T, typename L> struct bcc_class_transform_impl<T *, L>
-      : class_transform<T,L> 
-    { };
-
-    template<typename T, typename D, typename L> struct bcc_class_transform 
-      : bcc_class_transform_impl
-        < typename decode_cv
-          < T
-          , ::ndnboost::function_types::detail::encode_mfp_cv<D>::value 
-          >::type
-        , L
-        > 
-    { };
-
-    // After extracting the member pointee from the type the class type is still
-    // in the type (somewhere -- you won't see with RTTI, that is) and that type
-    // is flagged unusable and *not* identical to the nonmember function type.
-    // We can, however, decompose this type via components_impl but surprisingly
-    // a pointer to the const qualified class type pops up again as the first 
-    // parameter type. 
-    // We have to replace this type with the properly cv-qualified and 
-    // transformed class type, integrate the cv qualification into the bits.
-    template<typename Base, typename MFP, typename OrigT, typename L>
-    struct mfp_components;
-
-
-    template<typename Base, typename T, typename C, typename OrigT, typename L>
-    struct mfp_components<Base,T C::*,OrigT,L> 
-    {
-    private:
-      typedef typename mpl::front<typename Base::types>::type result_type;
-      typedef typename detail::bcc_class_transform<C,OrigT,L>::type class_type;
-
-      typedef mpl::vector2<result_type, class_type> result_and_class_type;
-
-      typedef typename 
-        mpl::advance
-        < typename mpl::begin<typename Base::types>::type
-        , typename mpl::if_
-          < mpl::equal_to< typename detail::classifier<OrigT>::function_arity
-                         , typename Base::function_arity >
-          , mpl::integral_c<int,2> , mpl::integral_c<int,1> 
-          >::type
-        >::type
-      from;
-      typedef typename mpl::end<typename Base::types>::type to;
-
-      typedef mpl::iterator_range<from,to> param_types;
-
-      typedef mpl::joint_view< result_and_class_type, param_types> types_view;
-    public:
-
-      typedef typename 
-        mpl::reverse_copy<types_view, mpl::front_inserter< mpl::vector0<> > >::type 
-      types;
-
-      typedef typename 
-        function_types::tag< Base, detail::cv_tag_mfp<OrigT> >::bits 
-      bits;
-
-      typedef typename Base::mask mask;
-
-      typedef typename detail::classifier<OrigT>::function_arity function_arity;
-
-      typedef components_mpl_sequence_tag tag;
-    };
-
-    // Now put it all together: detect cv-qualification of function types and do
-    // the weird transformations above for member function pointers.
-    template<typename T, typename OrigT, typename L>
-    struct components_bcc
-      : mpl::if_
-        < detail::represents_impl< detail::components_impl<T,L>
-                                 , member_function_pointer_tag>
-        , detail::mfp_components<detail::components_impl<T,L>,T,OrigT,L>
-        , detail::components_impl<T,L>
-        >::type
-    { };
-
-#endif // end of BORLAND WORKAROUND
-
-#define NDNBOOST_FT_al_path ndnboost/function_types/detail/components_impl
-#include <ndnboost/function_types/detail/pp_loop.hpp>
-
-  } } // namespace function_types::detail
-
-  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::components)
-
-} // namespace ::boost
-
-#include <ndnboost/function_types/detail/components_as_mpl_sequence.hpp>
-#include <ndnboost/function_types/detail/retag_default_cc.hpp>
-
-#endif
-
diff --git a/include/ndnboost/function_types/config/cc_names.hpp b/include/ndnboost/function_types/config/cc_names.hpp
deleted file mode 100644
index 8620a0a..0000000
--- a/include/ndnboost/function_types/config/cc_names.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#ifndef NDNBOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
-#define NDNBOOST_FT_CONFIG_CC_NAMES_HPP_INCLUDED
-
-#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 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 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
deleted file mode 100644
index 87170a1..0000000
--- a/include/ndnboost/function_types/config/compiler.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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(NDNBOOST_MSVC)
-
-#   if NDNBOOST_MSVC < 1310
-#     error "unsupported compiler version"
-#   endif
-
-#   ifdef NDNBOOST_FT_AUTODETECT_CALLING_CONVENTIONS
-
-      // enable clrcall calling covention (call to .NET managed code) when
-      // compiling with /clr 
-#     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 NDNBOOST_FT_COMMON_X86_CCs callable_builtin
-#       if NDNBOOST_MSVC < 1400
-          // version 7.1 is missing a keyword to specify the thiscall cc ...
-#         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| NDNBOOST_FT_CONFIG_OK.")
-#         endif
-#         endif
-#       else 
-          // ...introduced in version 8
-#         ifndef NDNBOOST_FT_CC_THISCALL
-#         define NDNBOOST_FT_CC_THISCALL non_variadic|member|callable_builtin
-#         endif
-#       endif
-#     endif
-#   endif
-
-#elif defined(__GNUC__) && !defined(NDNBOOST_INTEL_LINUX)
-
-#   if __GNUC__ < 3
-#     error "unsupported compiler version"
-#   endif
-
-#   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 NDNBOOST_WORKAROUND(__GNUC__,NDNBOOST_TESTED_AT(4))
-#         ifndef NDNBOOST_FT_CC_IMPLICIT 
-#         define NDNBOOST_FT_CC_IMPLICIT member|callable_builtin
-#         endif
-#         define NDNBOOST_FT_COMMON_X86_CCs non_member|callable_builtin
-#       else
-#         define NDNBOOST_FT_COMMON_X86_CCs callable_builtin
-#       endif
-#     else
-#       ifndef NDNBOOST_FT_CC_IMPLICIT
-#       define NDNBOOST_FT_CC_IMPLICIT callable_builtin
-#       endif
-#     endif
-#   endif
-
-#   if (defined(NDNBOOST_FT_CC_CDECL) || defined(NDNBOOST_FT_COMMON_X86_CCs)) \
-        && !defined(__cdecl)
-#     define __cdecl __attribute__((__cdecl__))
-#   endif
-#   if (defined(NDNBOOST_FT_CC_STDCALL) || defined(NDNBOOST_FT_COMMON_X86_CCs)) \
-        && !defined(__stdcall)
-#     define __stdcall __attribute__((__stdcall__))
-#   endif
-#   if (defined(NDNBOOST_FT_CC_FASTCALL) || defined(NDNBOOST_FT_COMMON_X86_CCs)) \
-        && !defined(__fastcall)
-#     define __fastcall __attribute__((__fastcall__))
-#   endif
-
-#elif defined(__BORLANDC__)
-
-#   if __BORLANDC__ < 0x550
-#     error "unsupported compiler version"
-#   elif __BORLANDC__ > 0x565
-#     pragma message("WARNING: library untested with this compiler version")
-#   endif
-
-#   ifdef NDNBOOST_FT_AUTODETECT_CALLING_CONVENTIONS
-#     define NDNBOOST_FT_COMMON_X86_CCs callable_builtin
-#   endif
-
-    // syntactic specialities of cc specifier
-#   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 NDNBOOST_FT_CC_IMPLICIT callable_builtin
-#endif
-
-
-#endif
-
diff --git a/include/ndnboost/function_types/config/config.hpp b/include/ndnboost/function_types/config/config.hpp
deleted file mode 100644
index 5e85532..0000000
--- a/include/ndnboost/function_types/config/config.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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 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 NDNBOOST_FT_COMMON_X86_CCs
-#   ifndef NDNBOOST_FT_CC_CDECL
-#   define NDNBOOST_FT_CC_CDECL NDNBOOST_FT_COMMON_X86_CCs
-#   endif
-#   ifndef NDNBOOST_FT_CC_STDCALL
-#   define NDNBOOST_FT_CC_STDCALL non_variadic|NDNBOOST_FT_COMMON_X86_CCs
-#   endif
-#   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 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 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 NDNBOOST_FT_NO_CV_FUNC_SUPPORT
-#define NDNBOOST_FT_NO_CV_FUNC_SUPPORT 1
-#endif
-
-// full preprocessing implies preprocessing of the ccs
-#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
deleted file mode 100644
index d2964d6..0000000
--- a/include/ndnboost/function_types/detail/class_transform.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/mpl/placeholders.hpp>
-
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/add_pointer.hpp>
-#include <ndnboost/type_traits/add_reference.hpp>
-
-namespace ndnboost { namespace function_types { namespace detail {
-
-using mpl::placeholders::_;
-
-// Transformation metafunction for the class type of member function pointers.
-template<typename T, typename L>
-struct class_transform
-{ typedef typename mpl::apply1<L,T>::type type; };
-
-
-#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).
-
-template<typename T> struct class_transform< T, mpl::identity<_> >
-{ typedef T type; };
-
-template<typename T> struct class_transform< T, add_reference<_> > 
-{ typedef T & type; };
-
-template<typename T> struct class_transform< T, add_pointer<_> >
-{ typedef T * type; };
-
-template<typename T> struct class_transform< T, remove_cv<_> >
-{ typedef typename ndnboost::remove_cv<T>::type type; };
-
-template<typename T> struct class_transform< T, add_reference< remove_cv<_> > >
-{ typedef typename ndnboost::remove_cv<T>::type & type; };
-
-template<typename T> struct class_transform< T, add_pointer< remove_cv<_> > >
-{ typedef typename ndnboost::remove_cv<T>::type * type; };
-
-template<typename T, typename U> struct class_transform< T, mpl::always<U> >
-{ typedef U type; };
-#endif
-
-
-} } } // namespace ::ndnboost::function_types::detail
-
-#endif
-
diff --git a/include/ndnboost/function_types/detail/classifier.hpp b/include/ndnboost/function_types/detail/classifier.hpp
deleted file mode 100644
index f6ebd25..0000000
--- a/include/ndnboost/function_types/detail/classifier.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#ifndef NDNBOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
-#define NDNBOOST_FT_DETAIL_CLASSIFIER_HPP_INCLUDED
-
-#include <ndnboost/type.hpp>
-#include <ndnboost/config.hpp>
-#include <ndnboost/type_traits/config.hpp>
-#include <ndnboost/type_traits/is_reference.hpp>
-#include <ndnboost/type_traits/add_reference.hpp>
-
-#include <ndnboost/function_types/config/config.hpp>
-#include <ndnboost/function_types/property_tags.hpp>
-
-namespace ndnboost { namespace function_types { namespace detail {
-
-template<typename T> struct classifier;
-
-template<std::size_t S> struct char_array { typedef char (&type)[S]; };
-
-template<bits_t Flags, bits_t CCID, std::size_t Arity> struct encode_charr
-{
-  typedef typename char_array<
-    ::ndnboost::function_types::detail::encode_charr_impl<Flags,CCID,Arity>::value 
-  >::type type;
-};
-
-char NDNBOOST_TT_DECL classifier_impl(...);
-
-#define NDNBOOST_FT_variations NDNBOOST_FT_function|NDNBOOST_FT_pointer|\
-                            NDNBOOST_FT_member_pointer
-
-#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 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 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 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;
-
-  NDNBOOST_STATIC_CONSTANT(bits_t,value = (bits_t)sizeof(
-    ndnboost::function_types::detail::classifier_impl(& tester) 
-  )-1);
-};
-
-template<typename T> struct classifier
-{
-  typedef detail::constant<
-    ::ndnboost::function_types::detail::decode_bits<
-      ::ndnboost::function_types::detail::classifier_bits<T>::value
-    >::tag_bits > 
-  bits;
-
-  typedef detail::full_mask mask;
- 
-  typedef detail::constant<
-    ::ndnboost::function_types::detail::decode_bits<
-      ::ndnboost::function_types::detail::classifier_bits<T>::value
-    >::arity > 
-  function_arity;
-};
-
-
-
-} } } // namespace ::ndnboost::function_types::detail
-
-#endif
-
diff --git a/include/ndnboost/function_types/detail/classifier_impl/arity10_0.hpp b/include/ndnboost/function_types/detail/classifier_impl/arity10_0.hpp
deleted file mode 100644
index 7d177a2..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity10_0.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index 627ec51..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity10_1.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index 3641eec..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity20_0.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index cd799e5..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity20_1.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index ce9f2b3..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity30_0.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index 70c7836..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity30_1.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index b5d946c..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity40_0.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index d24e336..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity40_1.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index 2f3b8f4..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity50_0.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index 57d33df..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/arity50_1.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index 10c2ec4..0000000
--- a/include/ndnboost/function_types/detail/classifier_impl/master.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-#if NDNBOOST_FT_ARITY_LOOP_PREFIX
-
-#   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 NDNBOOST_FT_type_name
-
-#elif NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
-
-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 NDNBOOST_FT_ARITY_LOOP_SUFFIX
-
-#   undef NDNBOOST_FT_type_name
-
-#else
-#   error "attempt to use arity loop master file without loop"
-#endif
-
diff --git a/include/ndnboost/function_types/detail/components_as_mpl_sequence.hpp b/include/ndnboost/function_types/detail/components_as_mpl_sequence.hpp
deleted file mode 100644
index c9c2af0..0000000
--- a/include/ndnboost/function_types/detail/components_as_mpl_sequence.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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>
-#include <ndnboost/mpl/front_fwd.hpp>
-#include <ndnboost/mpl/back_fwd.hpp>
-#include <ndnboost/mpl/at_fwd.hpp>
-#include <ndnboost/mpl/begin_end_fwd.hpp>
-#include <ndnboost/mpl/clear_fwd.hpp>
-#include <ndnboost/mpl/push_front_fwd.hpp>
-#include <ndnboost/mpl/pop_front_fwd.hpp>
-#include <ndnboost/mpl/push_back_fwd.hpp>
-#include <ndnboost/mpl/pop_back_fwd.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<> struct size_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S > struct apply
-    : mpl::size <typename S::types>
-  { };
-};
-template<> struct empty_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S > struct apply
-    : mpl::empty <typename S::types>
-  { };
-};
-template<> struct front_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S > struct apply
-    : mpl::front <typename S::types>
-  { };
-};
-template<> struct back_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S > struct apply
-    : mpl::back <typename S::types>
-  { };
-};
-template<> struct at_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S, typename N > struct apply
-    : mpl::at <typename S::types, N >
-  { };
-};
-template<> struct begin_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S > struct apply
-    : mpl::begin <typename S::types>
-  { };
-};
-template<> struct end_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S > struct apply
-    : mpl::end <typename S::types>
-  { };
-};
-template<> struct clear_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S >
-  struct apply
-    : S
-  {
-    typedef apply type;
-    typedef typename mpl::clear< typename S::types >::type types;
-  };
-};
-template<>
-struct push_front_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S, typename T >
-  struct apply
-    : S
-  { 
-    typedef apply type;
-    typedef typename mpl::push_front< typename S::types, T >::type types;
-  };
-};
-template<>
-struct pop_front_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S >
-  struct apply
-    : S
-  {
-    typedef apply type;
-    typedef typename mpl::pop_front< typename S::types >::type types; 
-  };
-};
-template<>
-struct push_back_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S, typename T >
-  struct apply
-    : S
-  {
-    typedef apply type;
-    typedef typename mpl::push_back< typename S::types, T >::type types; 
-  };
-};
-template<>
-struct pop_back_impl
-< function_types::detail::components_mpl_sequence_tag >
-{
-  template< typename S >
-  struct apply
-    : S
-  {
-    typedef apply type;
-    typedef typename mpl::pop_back< typename S::types >::type types; 
-  };
-};
-
-} } // namespace ::ndnboost::mpl
-
-#endif
-
diff --git a/include/ndnboost/function_types/detail/components_impl/arity10_0.hpp b/include/ndnboost/function_types/detail/components_impl/arity10_0.hpp
deleted file mode 100644
index ec7993d..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity10_0.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (NDNBOOST_FT_nullary_param NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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 NDNBOOST_FT_nullary_param > types;
-};
-template< typename R , typename T0, typename L>
-struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index 8b8968a..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity10_1.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) ( NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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 NDNBOOST_FT_cv, L> ::type > types;
-};
-template< typename R , typename T0 , typename T1, typename L>
-struct components_impl<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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 NDNBOOST_FT_cv, L> ::type , T1 > types;
-};
-template< typename R , typename T0 , typename T1 , typename T2, typename 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<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 NDNBOOST_FT_cv, L> ::type , T1 , T2 > types;
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3, typename 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<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 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<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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 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<NDNBOOST_FT_syntax(NDNBOOST_FT_cc, NDNBOOST_PP_EMPTY) (T1 , T2 , T3 , T4 , T5 NDNBOOST_FT_ell) NDNBOOST_FT_cv, L>
-{
-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 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<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<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 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<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<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 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<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<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 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<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<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 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
deleted file mode 100644
index ba530de..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity20_0.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index 836763a..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity20_1.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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
deleted file mode 100644
index f44979c..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity30_0.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index bcc393f..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity30_1.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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
deleted file mode 100644
index 64850a8..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity40_0.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index 5f7f49e..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity40_1.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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
deleted file mode 100644
index 769f6b4..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity50_0.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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
deleted file mode 100644
index d37a56f..0000000
--- a/include/ndnboost/function_types/detail/components_impl/arity50_1.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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<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<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 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
deleted file mode 100644
index caaf63e..0000000
--- a/include/ndnboost/function_types/detail/components_impl/master.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-#if   NDNBOOST_FT_ARITY_LOOP_PREFIX
-
-#   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>
-#     include <ndnboost/preprocessor/arithmetic/dec.hpp>
-#     include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-#   endif
-
-#   define NDNBOOST_FT_type_name
-
-#   if !NDNBOOST_FT_mfp
-
-#     define NDNBOOST_FT_types \
-          R NDNBOOST_PP_COMMA_IF(NDNBOOST_FT_arity) NDNBOOST_FT_params(NDNBOOST_PP_EMPTY)
-#   else
-
-#     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 NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
-
-template< NDNBOOST_FT_tplargs(NDNBOOST_PP_IDENTITY(typename)), typename L>
-struct components_impl<NDNBOOST_FT_type, L>
-{
-  typedef encode_bits<NDNBOOST_FT_flags,NDNBOOST_FT_cc_id> bits;
-  typedef constant<NDNBOOST_FT_full_mask> mask;
-
-  typedef function_types::components<NDNBOOST_FT_type, L> type;
-  typedef components_mpl_sequence_tag tag;
-
-  typedef mpl::integral_c<std::size_t,NDNBOOST_FT_arity> function_arity;
-
-  typedef NDNBOOST_PP_CAT(mpl::vector,NDNBOOST_FT_n)< NDNBOOST_FT_types > types;
-};
-
-#elif NDNBOOST_FT_ARITY_LOOP_SUFFIX
-
-#   undef NDNBOOST_FT_types
-#   undef NDNBOOST_FT_type_name
-
-#else
-#   error "attempt to use arity loop master file without loop"
-#endif
-
diff --git a/include/ndnboost/function_types/detail/cv_traits.hpp b/include/ndnboost/function_types/detail/cv_traits.hpp
deleted file mode 100644
index 60e7bf1..0000000
--- a/include/ndnboost/function_types/detail/cv_traits.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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(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>
-#endif
-
-#include <ndnboost/function_types/property_tags.hpp>
-
-namespace ndnboost { namespace function_types { namespace detail {
-
-#if ! (defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    || NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x582))
-
-template<typename T> struct cv_traits 
-{ typedef non_cv tag; typedef T type; };
-template<typename T> struct cv_traits<T &>     
-{ typedef non_cv tag; typedef T type; };
-template<typename T> struct cv_traits<T *>    
-{ typedef non_cv tag; typedef T type; };
-template<typename T> struct cv_traits<T * const> 
-{ typedef non_cv tag; typedef T type; };
-template<typename T> struct cv_traits<T * volatile> 
-{ typedef non_cv tag; typedef T type; };
-template<typename T> struct cv_traits<T * const volatile> 
-{ typedef non_cv tag; typedef T type; };
-
-template<typename T> struct cv_traits<T const> 
-{ typedef const_non_volatile tag; typedef T type; };
-template<typename T> struct cv_traits<T const &>
-{ typedef const_non_volatile tag; typedef T type; };
-template<typename T> struct cv_traits<T const *> 
-{ typedef const_non_volatile tag; typedef T type; };
-template<typename T> struct cv_traits<T const * const> 
-{ typedef const_non_volatile tag; typedef T type; };
-template<typename T> struct cv_traits<T const * volatile> 
-{ typedef const_non_volatile tag; typedef T type; };
-template<typename T> struct cv_traits<T const * const volatile> 
-{ typedef const_non_volatile tag; typedef T type; };
-
-template<typename T> struct cv_traits<T volatile>  
-{ typedef volatile_non_const tag; typedef T type; };
-template<typename T> struct cv_traits<T volatile &>  
-{ typedef volatile_non_const tag; typedef T type; };
-template<typename T> struct cv_traits<T volatile *> 
-{ typedef volatile_non_const tag; typedef T type; };
-template<typename T> struct cv_traits<T volatile * const> 
-{ typedef volatile_non_const tag; typedef T type; };
-template<typename T> struct cv_traits<T volatile * volatile> 
-{ typedef volatile_non_const tag; typedef T type; };
-template<typename T> struct cv_traits<T volatile * const volatile> 
-{ typedef volatile_non_const tag; typedef T type; };
-
-template<typename T> struct cv_traits<T const volatile>   
-{ typedef cv_qualified tag; typedef T type; };
-template<typename T> struct cv_traits<T const volatile &>
-{ typedef cv_qualified tag; typedef T type; };
-template<typename T> struct cv_traits<T const volatile *>
-{ typedef cv_qualified tag; typedef T type; };
-template<typename T> struct cv_traits<T const volatile * const>
-{ typedef cv_qualified tag; typedef T type; };
-template<typename T> struct cv_traits<T const volatile * volatile>
-{ typedef cv_qualified tag; typedef T type; };
-template<typename T> struct cv_traits<T const volatile * const volatile>
-{ typedef cv_qualified tag; typedef T type; };
-
-#else
-template<std::size_t> struct cv_tag_impl;
-
-template<> struct cv_tag_impl<1> { typedef non_cv type;};
-template<> struct cv_tag_impl<2> { typedef const_non_volatile type; };
-template<> struct cv_tag_impl<3> { typedef volatile_non_const type; };
-template<> struct cv_tag_impl<4> { typedef cv_qualified type; };
-
-typedef char (& case_1)[1];
-typedef char (& case_2)[2];
-typedef char (& case_3)[3];
-typedef char (& case_4)[4];
-
-template<typename T> case_1 switch_cv(T *);
-template<typename T> case_2 switch_cv(T const *);
-template<typename T> case_3 switch_cv(T volatile *);
-template<typename T> case_4 switch_cv(T const volatile *);
-
-template<typename T> T                * ref_to_ptr(T &);
-template<typename T> T const          * ref_to_ptr(T const &);
-template<typename T> T volatile       * ref_to_ptr(T volatile &);
-template<typename T> T const volatile * ref_to_ptr(T const volatile &);
-
-template<typename T> T                * ref_to_ptr(T * const volatile &);
-
-template<typename T>
-struct cv_code
-{
-  static T _t;
-  NDNBOOST_STATIC_CONSTANT(std::size_t, value = 
-      sizeof(::ndnboost::function_types::detail::switch_cv(
-         ::ndnboost::function_types::detail::ref_to_ptr(_t) ) ));
-};
-
-template<typename T> struct cv_traits 
-{
-  typedef typename ndnboost::function_types::detail::cv_tag_impl< 
-    ::ndnboost::function_types::detail::cv_code<T>::value >::type
-  tag;
-
-  // may require Boost.TypeTraits broken compiler specializations
-  // to work
-  typedef typename ndnboost::remove_cv<
-              typename ndnboost::remove_pointer<
-                  typename ndnboost::remove_reference<T>::type 
-              >::type 
-          >::type type; 
-};
-#endif
-
-} } } // namespace ndnboost::function_types::detail
-
-#endif
- 
diff --git a/include/ndnboost/function_types/detail/encoding/aliases_def.hpp b/include/ndnboost/function_types/detail/encoding/aliases_def.hpp
deleted file mode 100644
index 34164d4..0000000
--- a/include/ndnboost/function_types/detail/encoding/aliases_def.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusions
-
-#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/aliases_undef.hpp b/include/ndnboost/function_types/detail/encoding/aliases_undef.hpp
deleted file mode 100644
index 1d4e577..0000000
--- a/include/ndnboost/function_types/detail/encoding/aliases_undef.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusions
-
-#undef callable_builtin
-#undef member
-#undef non_member
-#undef variadic
-#undef non_variadic
-
diff --git a/include/ndnboost/function_types/detail/encoding/def.hpp b/include/ndnboost/function_types/detail/encoding/def.hpp
deleted file mode 100644
index f733447..0000000
--- a/include/ndnboost/function_types/detail/encoding/def.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusions
-
-// Type encoding:
-//
-// bit 0: callable builtin
-// bit 1: non member
-// bit 2: naked function
-// bit 3: pointer
-// bit 4: reference
-// bit 5: member pointer
-// bit 6: member function pointer
-// bit 7: member object pointer
-
-#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 NDNBOOST_FT_variadic                             0x00000100
-#define NDNBOOST_FT_non_variadic                         0x00000200
-#define NDNBOOST_FT_variadic_mask                        0x00000300
-
-#define NDNBOOST_FT_const                                0x00000400
-#define NDNBOOST_FT_volatile                             0x00000800
-
-#define NDNBOOST_FT_default_cc                           0x00008000
-#define NDNBOOST_FT_cc_mask                              0x00ff8000
-
-#define NDNBOOST_FT_kind_mask                            0x000000fc 
-
-#define NDNBOOST_FT_flags_mask                           0x00000fff
-#define NDNBOOST_FT_full_mask                            0x00ff0fff
-
-#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
deleted file mode 100644
index 5f12327..0000000
--- a/include/ndnboost/function_types/detail/encoding/undef.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-#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 NDNBOOST_FT_variadic
-#undef NDNBOOST_FT_non_variadic
-#undef NDNBOOST_FT_variadic_mask
-
-#undef NDNBOOST_FT_const
-#undef NDNBOOST_FT_volatile
-
-#undef NDNBOOST_FT_default_cc
-#undef NDNBOOST_FT_cc_mask
-
-#undef NDNBOOST_FT_flags_mask
-#undef NDNBOOST_FT_full_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
deleted file mode 100644
index 62b591e..0000000
--- a/include/ndnboost/function_types/detail/pp_arity_loop.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-#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:  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 NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
-
-#   define NDNBOOST_FT_AL_PREPROCESSED \
-        NDNBOOST_FT_AL_FILE(NDNBOOST_FT_al_path,NDNBOOST_FT_FROM_ARITY,NDNBOOST_FT_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(NDNBOOST_FT_PREPROCESSING_MODE)
-
-#     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 NDNBOOST_FT_FROM_ARITY
-#       include NDNBOOST_FT_AL_PREPROCESSED
-#     endif
-
-#   elif !defined(NDNBOOST_FT_FROM_ARITY) // single pass preprocessing
-#     define NDNBOOST_FT_FROM_ARITY 0
-
-#   elif NDNBOOST_FT_FROM_ARITY > 0       // arity20 includes arity10
-NDNBOOST_PP_EXPAND(#) include NDNBOOST_FT_AL_PREPROCESSED
-#   endif
-
-#   undef NDNBOOST_FT_AL_PREPROCESSED
-
-#   undef NDNBOOST_FT_AL_FILE
-#   undef NDNBOOST_FT_AL_FILE_I
-
-#   if NDNBOOST_FT_MAX_ARITY > NDNBOOST_FT_FROM_ARITY
-
-#     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>
-#         include <ndnboost/preprocessor/arithmetic/inc.hpp>
-#         include <ndnboost/preprocessor/facilities/empty.hpp>
-#         include <ndnboost/preprocessor/facilities/expand.hpp>
-#         include <ndnboost/preprocessor/iteration/iterate.hpp>
-#         include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#         include <ndnboost/preprocessor/repetition/enum_shifted_params.hpp>
-#         include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp>
-#     endif
-
-#     define NDNBOOST_FT_AL_INCLUDE_FILE <NDNBOOST_FT_al_path/master.hpp>
-
-#     define NDNBOOST_FT_ARITY_LOOP_PREFIX 1
-#     include NDNBOOST_FT_AL_INCLUDE_FILE
-#     undef  NDNBOOST_FT_ARITY_LOOP_PREFIX
-
-#     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 NDNBOOST_FT_arity NDNBOOST_PP_ITERATION()
-#     define NDNBOOST_FT_n     NDNBOOST_PP_INC(NDNBOOST_FT_arity)
-
-#     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 NDNBOOST_FT_tplargs(prefx) \
-          prefx() R NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_FT_arity,prefx() T)
-
-#     if !NDNBOOST_FT_mfp
-
-#       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 NDNBOOST_FT_params(prefx) \
-            NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_FT_arity,prefx() T)
-
-#     endif
-
-#     if !NDNBOOST_FT_FROM_ARITY 
-#       define NDNBOOST_PP_ITERATION_LIMITS (NDNBOOST_FT_mfp, NDNBOOST_FT_MAX_ARITY)
-#     else
-#       define NDNBOOST_PP_ITERATION_LIMITS \
-            (NDNBOOST_FT_FROM_ARITY+1, NDNBOOST_FT_MAX_ARITY)
-#     endif
-
-#     define NDNBOOST_FT_ARITY_LOOP_IS_ITERATING 1
-#     include NDNBOOST_PP_ITERATE()
-#     undef  NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
-
-#     undef NDNBOOST_FT_arity
-#     undef NDNBOOST_FT_params
-#     undef NDNBOOST_FT_tplargs
-#     undef NDNBOOST_FT_type
-
-#     define NDNBOOST_FT_ARITY_LOOP_SUFFIX 1
-#     include NDNBOOST_FT_AL_INCLUDE_FILE
-#     undef  NDNBOOST_FT_ARITY_LOOP_SUFFIX
-
-#     undef NDNBOOST_FT_AL_INCLUDE_FILE
-#   endif
-
-#   undef NDNBOOST_FT_FROM_ARITY
-
-#else
-#   error "attempt to nest arity loops"
-#endif
-
diff --git a/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp b/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp
deleted file mode 100644
index d800e0d..0000000
--- a/include/ndnboost/function_types/detail/pp_cc_loop/master.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusions
-
-#ifdef __WAVE__
-// this file has been generated from the master.hpp file in the same directory
-#   pragma wave option(preserve: 0)
-#endif
-
-
-#if !NDNBOOST_PP_IS_ITERATING
-
-#   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>
-#     include <ndnboost/preprocessor/seq/size.hpp>
-#     include <ndnboost/preprocessor/seq/elem.hpp>
-#     include <ndnboost/preprocessor/tuple/elem.hpp>
-#     include <ndnboost/preprocessor/iteration/iterate.hpp>
-#     include <ndnboost/preprocessor/facilities/expand.hpp>
-#     include <ndnboost/preprocessor/arithmetic/inc.hpp>
-#   endif
-
-#   include <ndnboost/function_types/detail/encoding/def.hpp>
-#   include <ndnboost/function_types/detail/encoding/aliases_def.hpp>
-
-#   define  NDNBOOST_PP_FILENAME_1 \
-        <ndnboost/function_types/detail/pp_cc_loop/master.hpp>
-#   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 _()
-NDNBOOST_PP_EXPAND(#)   include NDNBOOST_FT_cc_file
-#undef _
-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 NDNBOOST_FT_config_valid
-#   endif
-
-#   include <ndnboost/function_types/detail/encoding/aliases_undef.hpp>
-#   include <ndnboost/function_types/detail/encoding/undef.hpp>
-
-#elif NDNBOOST_FT_CC_PREPROCESSING
-
-#   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 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 NDNBOOST_FT_cond NDNBOOST_PP_CAT(NDNBOOST_FT_CC_,NDNBOOST_FT_cc_pp_name)
-
-#   if NDNBOOST_FT_cond
-#     define NDNBOOST_FT_config_valid 1
-#     include NDNBOOST_FT_cc_file
-#   endif
-
-#   undef NDNBOOST_FT_cond
-
-#   undef NDNBOOST_FT_cc_pp_name
-#   undef NDNBOOST_FT_cc_name
-#   undef NDNBOOST_FT_cc
-
-#   undef NDNBOOST_FT_cc_id
-#   undef NDNBOOST_FT_cc_inf
-
-#else // if generating preprocessed file
-NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_cc_id NDNBOOST_PP_INC(NDNBOOST_PP_ITERATION())
-
-#   define NDNBOOST_FT_cc_inf \
-        NDNBOOST_PP_SEQ_ELEM(NDNBOOST_PP_ITERATION(),NDNBOOST_FT_CC_NAMES_SEQ)
-
-#   define NDNBOOST_FT_cc_pp_name NDNBOOST_PP_TUPLE_ELEM(3,0,NDNBOOST_FT_cc_inf)
-
-#   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 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 NDNBOOST_FT_cc_pp_name
-#   undef NDNBOOST_FT_cc_inf
-
-NDNBOOST_PP_EXPAND(#) if NDNBOOST_FT_cond
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_config_valid 1
-#define _()
-NDNBOOST_PP_EXPAND(#)   include NDNBOOST_FT_cc_file
-#undef _
-NDNBOOST_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
-
-#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
deleted file mode 100644
index 391ec1a..0000000
--- a/include/ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 1b6e7ba..0000000
--- a/include/ndnboost/function_types/detail/pp_loop.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusions
-
-#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>
-#endif
-
-#include <ndnboost/function_types/detail/encoding/def.hpp>
-#include <ndnboost/function_types/detail/encoding/aliases_def.hpp>
-
-#if defined(NDNBOOST_FT_PREPROCESSING_MODE)
-#   define NDNBOOST_FT_loop <ndnboost/function_types/detail/pp_cc_loop/master.hpp>
-#else
-#   define NDNBOOST_FT_loop \
-        <ndnboost/function_types/detail/pp_cc_loop/preprocessed.hpp>
-#endif
-
-#if defined(NDNBOOST_FT_al_path)
-
-#   define NDNBOOST_FT_cc_file \
-        <ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp>
-#   define NDNBOOST_FT_variate_file \
-        <ndnboost/function_types/detail/pp_arity_loop.hpp>
-
-#   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 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 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 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 NDNBOOST_FT_loop
-
-#   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 NDNBOOST_FT_variations
-#   undef NDNBOOST_FT_variate_file
-#   undef NDNBOOST_FT_cc_file
-#   undef NDNBOOST_FT_al_path
-
-#elif defined(NDNBOOST_FT_cc_file)
-
-#   include NDNBOOST_FT_loop
-#   undef NDNBOOST_FT_cc_file
-
-#else
-
-#   error "argument missing"
-
-#endif
-
-#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
deleted file mode 100644
index 292a5bd..0000000
--- a/include/ndnboost/function_types/detail/pp_retag_default_cc/master.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is guarded externally
-
-#ifdef __WAVE__
-// this file has been generated from the master.hpp file in the same directory
-#   pragma wave option(preserve: 0)
-#endif
-
-#if !defined(NDNBOOST_PP_VALUE)
-#   include <ndnboost/preprocessor/slot/slot.hpp>
-#   include <ndnboost/preprocessor/iteration/self.hpp>
-
-#   include <ndnboost/function_types/detail/encoding/def.hpp>
-#   include <ndnboost/function_types/detail/encoding/aliases_def.hpp>
-
-namespace ndnboost { namespace function_types {
-
-namespace detail
-{
-  template<class Tag, class RefTag> struct selector_bits
-  {
-#   define  NDNBOOST_PP_VALUE non_member|member|non_variadic|variadic
-#   include NDNBOOST_PP_ASSIGN_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))
-    ));
-  };
-
-  template<bits_t SelectorBits> struct default_cc_tag; 
-  
-  template<class Tag, class RefTag> struct retag_default_cc
-    : detail::compound_tag
-      < Tag, detail::default_cc_tag< 
-          ::ndnboost::function_types::detail::selector_bits<Tag,RefTag>::value > >
-  { };
-
-  template<bits_t SelectorBits> struct default_cc_tag
-  {
-    typedef null_tag::bits bits;
-    typedef null_tag::mask mask;
-  };
-
-  class test_class;
-  typedef constant<NDNBOOST_FT_cc_mask> cc_mask_constant;
-
-#   define NDNBOOST_FT_self \
-      <ndnboost/function_types/detail/pp_retag_default_cc/master.hpp>
-
-#   define  default_cc_ NDNBOOST_FT_default_cc
-
-#   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  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  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  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 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(NDNBOOST_PP_VALUE)
-
-#   include NDNBOOST_PP_ASSIGN_SLOT(1)
-
-  template<> struct default_cc_tag<NDNBOOST_PP_SLOT(1)> 
-  {
-    typedef NDNBOOST_FT_tester;
-    typedef mpl::bitand_<components<tester>::bits,cc_mask_constant> bits;
-    typedef cc_mask_constant mask;
-  };
-
-#   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
deleted file mode 100644
index 8a2b7e9..0000000
--- a/include/ndnboost/function_types/detail/pp_retag_default_cc/preprocessed.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is guarded externally
-
-// this file has been generated from the master.hpp file in the same directory
-namespace ndnboost { namespace function_types {
-namespace detail
-{
-template<class Tag, class RefTag> struct selector_bits
-{
-NDNBOOST_STATIC_CONSTANT(bits_t, value = (
-(::ndnboost::function_types::detail::bits<Tag> ::value & 0x00008000) 
-| (::ndnboost::function_types::detail::bits<RefTag> ::value & 802)
-));
-};
-template<bits_t SelectorBits> struct default_cc_tag; 
-template<class Tag, class RefTag> struct retag_default_cc
-: detail::compound_tag
-< Tag, detail::default_cc_tag< 
-::ndnboost::function_types::detail::selector_bits<Tag,RefTag> ::value > >
-{ };
-template<bits_t SelectorBits> struct default_cc_tag
-{
-typedef null_tag::bits bits;
-typedef null_tag::mask mask;
-};
-class test_class;
-typedef constant<0x00ff8000> cc_mask_constant;
-template< > struct default_cc_tag<33282> 
-{
-typedef void ( *tester)();
-typedef mpl::bitand_<components<tester> ::bits,cc_mask_constant> bits;
-typedef cc_mask_constant mask;
-};
-template< > struct default_cc_tag<33026> 
-{
-typedef void ( *tester)( ... );
-typedef mpl::bitand_<components<tester> ::bits,cc_mask_constant> bits;
-typedef cc_mask_constant mask;
-};
-template< > struct default_cc_tag<33312> 
-{
-typedef void (test_class:: *tester)();
-typedef mpl::bitand_<components<tester> ::bits,cc_mask_constant> bits;
-typedef cc_mask_constant mask;
-};
-template< > struct default_cc_tag<33056> 
-{
-typedef void (test_class:: *tester)( ... );
-typedef mpl::bitand_<components<tester> ::bits,cc_mask_constant> bits;
-typedef cc_mask_constant mask;
-};
-} } } 
diff --git a/include/ndnboost/function_types/detail/pp_tags/cc_tag.hpp b/include/ndnboost/function_types/detail/pp_tags/cc_tag.hpp
deleted file mode 100644
index 5b80a07..0000000
--- a/include/ndnboost/function_types/detail/pp_tags/cc_tag.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusions
-
-  struct NDNBOOST_FT_cc_name
-  {
-    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
deleted file mode 100644
index 5e86342..0000000
--- a/include/ndnboost/function_types/detail/pp_tags/master.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is guarded externally
-
-#ifdef __WAVE__
-// this file has been generated from the master.hpp file in the same directory
-#   pragma wave option(preserve: 0)
-#endif
-
-#if !defined(NDNBOOST_FT_PREPROCESSING_MODE) || defined(NDNBOOST_FT_CONFIG_HPP_INCLUDED)
-#   error "this file used with two-pass preprocessing, only"
-#endif
-
-#include <ndnboost/preprocessor/slot/slot.hpp>
-#include <ndnboost/function_types/detail/encoding/def.hpp>
-
-namespace ndnboost { namespace function_types {
-
-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,NDNBOOST_FT_const>                     non_const;
-typedef detail::property_tag<NDNBOOST_FT_const,NDNBOOST_FT_const>        const_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<NDNBOOST_FT_default_cc,NDNBOOST_FT_cc_mask> default_cc;
-
-#define NDNBOOST_PP_VALUE NDNBOOST_FT_const|NDNBOOST_FT_volatile 
-#include NDNBOOST_PP_ASSIGN_SLOT(1)
-
-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<NDNBOOST_FT_full_mask> full_mask;
-
-  template <bits_t Flags, bits_t CCID> struct encode_bits_impl
-  {
-    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
-  {
-    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
-  {
-    NDNBOOST_STATIC_CONSTANT(bits_t, flags = Bits & NDNBOOST_FT_flags_mask);
-
-    NDNBOOST_STATIC_CONSTANT(bits_t, cc_id = 
-      ( (Bits & NDNBOOST_FT_full_mask) / NDNBOOST_FT_default_cc) >> 1 
-    );
-
-    NDNBOOST_STATIC_CONSTANT(bits_t, tag_bits = (Bits & NDNBOOST_FT_full_mask));
-
-    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
-  {
-    NDNBOOST_STATIC_CONSTANT(bool, match =
-      RHS_bits == (LHS_bits & RHS_mask & (RHS_bits |~NDNBOOST_FT_type_mask))
-    );
-
-    NDNBOOST_STATIC_CONSTANT(bits_t, combined_bits = 
-      (LHS_bits & ~RHS_mask) | RHS_bits
-    );
-
-    NDNBOOST_STATIC_CONSTANT(bits_t, combined_mask =
-      LHS_mask | RHS_mask
-    );
-
-    NDNBOOST_STATIC_CONSTANT(bits_t, extracted_bits =
-      LHS_bits & RHS_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 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< NDNBOOST_PP_SLOT(1) , NDNBOOST_PP_SLOT(2) > nv_dcc_func;
-
-#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< NDNBOOST_PP_SLOT(1) , NDNBOOST_PP_SLOT(2) > nv_dcc_mfp;
-
-} // namespace detail
-
-} } // namespace ::ndnboost::function_types
-
diff --git a/include/ndnboost/function_types/detail/pp_tags/preprocessed.hpp b/include/ndnboost/function_types/detail/pp_tags/preprocessed.hpp
deleted file mode 100644
index f449959..0000000
--- a/include/ndnboost/function_types/detail/pp_tags/preprocessed.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is guarded externally
-
-// this file has been generated from the master.hpp file in the same directory
-namespace ndnboost { namespace function_types {
-typedef detail::property_tag<0x00000200,0x00000300> non_variadic;
-typedef detail::property_tag<0x00000100,0x00000300> variadic;
-typedef detail::property_tag<0,0x00000400> non_const;
-typedef detail::property_tag<0x00000400,0x00000400> const_qualified;
-typedef detail::property_tag<0,0x00000800> non_volatile;
-typedef detail::property_tag<0x00000800,0x00000800> volatile_qualified; 
-typedef detail::property_tag<0x00008000,0x00ff8000> default_cc;
-typedef detail::property_tag<0 , 3072> non_cv;
-typedef detail::property_tag<0x00000400 , 3072> const_non_volatile;
-typedef detail::property_tag<0x00000800, 3072> volatile_non_const;
-typedef detail::property_tag<3072 , 3072> cv_qualified;
-namespace detail {
-typedef constant<0x00ff0fff> full_mask;
-template <bits_t Flags, bits_t CCID> struct encode_bits_impl
-{
-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
-{
-NDNBOOST_STATIC_CONSTANT(std::size_t, value = (std::size_t)(1+
-Flags | (0x00008000 * CCID) << 1 | Arity << 24
-));
-};
-template <bits_t Bits> struct decode_bits
-{
-NDNBOOST_STATIC_CONSTANT(bits_t, flags = Bits & 0x00000fff);
-NDNBOOST_STATIC_CONSTANT(bits_t, cc_id = 
-( (Bits & 0x00ff0fff) / 0x00008000) >> 1 
-);
-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
-{
-NDNBOOST_STATIC_CONSTANT(bool, match =
-RHS_bits == (LHS_bits & RHS_mask & (RHS_bits | ~0x000000ff))
-);
-NDNBOOST_STATIC_CONSTANT(bits_t, combined_bits = 
-(LHS_bits & ~RHS_mask) | RHS_bits
-);
-NDNBOOST_STATIC_CONSTANT(bits_t, combined_mask =
-LHS_mask | RHS_mask
-);
-NDNBOOST_STATIC_CONSTANT(bits_t, extracted_bits =
-LHS_bits & RHS_mask
-);
-};
-typedef property_tag<0x00000001,0x000000ff> callable_builtin_tag;
-typedef property_tag<0x00000003,0x000000ff> nonmember_callable_builtin_tag;
-typedef property_tag<0x00000007,0x000000ff> function_tag;
-typedef property_tag<0x00000013,0x000000ff> reference_tag;
-typedef property_tag<0x0000000b,0x000000ff> pointer_tag;
-typedef property_tag<0x00000061,0x000000ff> member_function_pointer_tag;
-typedef property_tag<0x000000a3,0x000000ff> member_object_pointer_tag;
-typedef property_tag<0x000002a3,0x00ff0fff> member_object_pointer_base;
-typedef property_tag<0x00000020,0x000000ff> member_pointer_tag;
-typedef property_tag< 33287 , 16745471 > nv_dcc_func;
-typedef property_tag< 33377 , 16745471 > nv_dcc_mfp;
-} 
-} } 
diff --git a/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp b/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp
deleted file mode 100644
index 880a518..0000000
--- a/include/ndnboost/function_types/detail/pp_variate_loop/master.hpp
+++ /dev/null
@@ -1,152 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#ifdef __WAVE__
-// this file has been generated from the master.hpp file in the same directory
-#   pragma wave option(preserve: 0)
-#endif
-
-#if !defined(NDNBOOST_FT_PREPROCESSING_MODE)
-#   error "this file is only for two-pass preprocessing"
-#endif
-
-#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>
-
-NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_mfp 0
-NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function
-
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_function|NDNBOOST_FT_variadic
-#   include __FILE__
-
-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  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_const
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_volatile
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_volatile
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_function|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_function|NDNBOOST_FT_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
-#   include __FILE__
-NDNBOOST_PP_EXPAND(#) endif
-
-
-NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
-NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_pointer
-
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_pointer|NDNBOOST_FT_non_variadic
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_pointer|NDNBOOST_FT_variadic
-#   include __FILE__
-
-NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
-NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_function_reference
-
-#   define NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_reference|NDNBOOST_FT_non_variadic
-#   include __FILE__
-#   define NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_reference|NDNBOOST_FT_variadic
-#   include __FILE__
-
-NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
-NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_mfp
-
-NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_mfp 1
-NDNBOOST_PP_EXPAND(#) define NDNBOOST_FT_syntax NDNBOOST_FT_type_member_function_pointer
-
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_const
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_volatile
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_volatile
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_non_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
-#   include __FILE__
-#   define  NDNBOOST_PP_VALUE \
-      NDNBOOST_FT_member_function_pointer|NDNBOOST_FT_variadic|NDNBOOST_FT_const|NDNBOOST_FT_volatile
-#   include __FILE__
-
-NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_syntax
-NDNBOOST_PP_EXPAND(#) undef  NDNBOOST_FT_mfp
-
-#   include <ndnboost/function_types/detail/encoding/undef.hpp>
-#else 
-
-#   include NDNBOOST_PP_ASSIGN_SLOT(1)
-
-#   define  NDNBOOST_PP_VALUE NDNBOOST_PP_SLOT(1) & NDNBOOST_FT_kind_mask
-#   include NDNBOOST_PP_ASSIGN_SLOT(2)
-
-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 ( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_variadic) )
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_ell ...
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_nullary_param
-#   else
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_ell
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_nullary_param NDNBOOST_FT_NULLARY_PARAM
-#   endif
-
-#   if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_volatile) )
-#     if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_const) )
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv 
-#     else
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv const
-#     endif
-#   else
-#     if !( NDNBOOST_PP_SLOT(1) & (NDNBOOST_FT_const) )
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv volatile
-#     else
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_cv const volatile
-#     endif
-#   endif
-NDNBOOST_PP_EXPAND(#)   define NDNBOOST_FT_flags NDNBOOST_PP_SLOT(1)
-NDNBOOST_PP_EXPAND(#)   include NDNBOOST_FT_variate_file
-
-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
deleted file mode 100644
index 83cc0c6..0000000
--- a/include/ndnboost/function_types/detail/pp_variate_loop/preprocessed.hpp
+++ /dev/null
@@ -1,283 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// this file has been generated from the master.hpp file in the same directory
-# 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 & (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 !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 & (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 & (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 & (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 & (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 & (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 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 & (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 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 & (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 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 & (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 & (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 & (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 & (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 & (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 & (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 & (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 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
deleted file mode 100644
index a5549cc..0000000
--- a/include/ndnboost/function_types/detail/retag_default_cc.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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(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>
-#endif
-
-#endif
-
diff --git a/include/ndnboost/function_types/detail/synthesize.hpp b/include/ndnboost/function_types/detail/synthesize.hpp
deleted file mode 100644
index aba6ff3..0000000
--- a/include/ndnboost/function_types/detail/synthesize.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#ifndef NDNBOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
-#define NDNBOOST_FT_DETAIL_SYNTHESIZE_HPP_INCLUDED
-
-#include <cstddef>
-
-#include <ndnboost/mpl/at.hpp>
-#include <ndnboost/mpl/size.hpp>
-
-#include <ndnboost/function_types/config/config.hpp>
-#include <ndnboost/function_types/property_tags.hpp>
-#include <ndnboost/function_types/detail/cv_traits.hpp>
-#include <ndnboost/function_types/detail/retag_default_cc.hpp>
-
-namespace ndnboost { namespace function_types { namespace detail {
-
-template<bits_t Flags, bits_t CCID, std::size_t Size>
-struct synthesize_impl_o
-{
-  template<typename Seq> struct synthesize_impl_i { };
-};
-
-template<typename Seq, bits_t Bits>
-struct synthesize_impl
-  : detail::synthesize_impl_o
-    < ::ndnboost::function_types::detail::decode_bits<Bits>::flags
-    , ::ndnboost::function_types::detail::decode_bits<Bits>::cc_id
-    , ::ndnboost::mpl::size<Seq>::value
-    >
-    ::template synthesize_impl_i<Seq>
-{ };
-
-template<typename Seq, typename Tag>
-struct synthesize_func
-  : detail::synthesize_impl
-    < Seq
-    , ::ndnboost::function_types::detail::bits
-      < detail::retag_default_cc
-        < function_types::tag<nv_dcc_func, Tag> > 
-      >::value 
-    >
-{ };
-
-template<typename Seq, typename Tag>
-struct synthesize_mfp
-  : detail::synthesize_impl
-    < Seq 
-    , ::ndnboost::function_types::detail::bits
-      < detail::retag_default_cc
-        < function_types::tag
-          < typename detail::cv_traits< typename mpl::at_c<Seq,1>::type >::tag
-          , nv_dcc_mfp, Tag
-        > >
-      >::value
-    >
-{ };
-
-template<typename S, typename R = typename mpl::at_c<S,0>::type,
-    typename C = typename mpl::at_c<S,1>::type>
-struct synthesize_mop
-{
-  typedef R C::* type;
-};
-
-#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
-
-#endif
-
diff --git a/include/ndnboost/function_types/detail/synthesize_impl/arity10_0.hpp b/include/ndnboost/function_types/detail/synthesize_impl/arity10_0.hpp
deleted file mode 100644
index 54db3be..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity10_0.hpp
+++ /dev/null
@@ -1,334 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,0)
-{
-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< 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::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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,1)
-{
-typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
-};
-template< > 
-struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 2 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-public:
-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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,2)
-{
-typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
-};
-template< > 
-struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 3 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-public:
-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
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,3)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 4 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,4)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 5 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,5)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 6 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,6)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 7 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,7)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 8 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,8)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 9 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,9)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 10 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,10)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 11 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index 8ebb2c8..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity10_1.hpp
+++ /dev/null
@@ -1,326 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,1)
-{
-typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) ( NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
-};
-template< > 
-struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 2 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-public:
-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
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,2)
-{
-typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
-};
-template< > 
-struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 3 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,3)
-{
-typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T1 , T2 NDNBOOST_FT_ell) NDNBOOST_FT_cv ;
-};
-template< > 
-struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 4 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,4)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 5 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,5)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 6 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,6)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 7 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,7)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 8 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,8)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 9 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,9)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 10 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,10)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 11 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index 0ad2a0f..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity20_0.hpp
+++ /dev/null
@@ -1,517 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 12 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-> ::type type;
-};
-};
-template< typename R , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 13 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 14 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 15 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 16 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 17 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 18 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 19 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 20 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 21 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index 9776c83..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity20_1.hpp
+++ /dev/null
@@ -1,527 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 12 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-> ::type type;
-};
-};
-template< typename R , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 13 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 14 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 15 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 16 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 17 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 18 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 19 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 20 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 21 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index a4838fd..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity30_0.hpp
+++ /dev/null
@@ -1,717 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,21)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 22 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,22)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 23 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,23)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 24 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,24)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 25 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,25)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 26 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,26)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 27 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,27)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 28 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,28)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 29 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,29)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 30 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,30)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 31 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index f5829d6..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity30_1.hpp
+++ /dev/null
@@ -1,727 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,21)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 22 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,22)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 23 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,23)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 24 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,24)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 25 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,25)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 26 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,26)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 27 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,27)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 28 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,28)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 29 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,29)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 30 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,30)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 31 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index 6ff1c3f..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity40_0.hpp
+++ /dev/null
@@ -1,917 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,31)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 32 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,32)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 33 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,33)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 34 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,34)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 35 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,35)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 36 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,36)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 37 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,37)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 38 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,38)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 39 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,39)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 40 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,40)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 41 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index 9585f58..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity40_1.hpp
+++ /dev/null
@@ -1,927 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,31)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 32 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,32)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 33 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,33)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 34 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,34)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 35 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,35)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 36 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,36)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 37 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,37)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 38 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,38)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 39 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,39)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 40 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,40)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 41 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index d29b6b5..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity50_0.hpp
+++ /dev/null
@@ -1,1117 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,41)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 42 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,42)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 43 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,43)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 44 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,44)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 45 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,45)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 46 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,46)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 47 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,47)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 48 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-typedef typename mpl::next< iter_46 > ::type iter_47;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-, typename mpl::deref< iter_47 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,48)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 49 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-typedef typename mpl::next< iter_46 > ::type iter_47;
-typedef typename mpl::next< iter_47 > ::type iter_48;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-, typename mpl::deref< iter_47 > ::type
-, typename mpl::deref< iter_48 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,49)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 50 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-typedef typename mpl::next< iter_46 > ::type iter_47;
-typedef typename mpl::next< iter_47 > ::type iter_48;
-typedef typename mpl::next< iter_48 > ::type iter_49;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-, typename mpl::deref< iter_47 > ::type
-, typename mpl::deref< iter_48 > ::type
-, typename mpl::deref< iter_49 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,50)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 51 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-typedef typename mpl::next< iter_46 > ::type iter_47;
-typedef typename mpl::next< iter_47 > ::type iter_48;
-typedef typename mpl::next< iter_48 > ::type iter_49;
-typedef typename mpl::next< iter_49 > ::type iter_50;
-public:
-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
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-, typename mpl::deref< iter_47 > ::type
-, typename mpl::deref< iter_48 > ::type
-, typename mpl::deref< iter_49 > ::type
-, typename mpl::deref< iter_50 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index 35e73d0..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/arity50_1.hpp
+++ /dev/null
@@ -1,1127 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-// 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 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,41)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 42 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,42)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 43 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,43)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 44 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,44)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 45 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,45)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 46 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,46)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 47 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,47)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 48 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-typedef typename mpl::next< iter_46 > ::type iter_47;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-, typename mpl::deref< iter_47 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,48)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 49 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-typedef typename mpl::next< iter_46 > ::type iter_47;
-typedef typename mpl::next< iter_47 > ::type iter_48;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-, typename mpl::deref< iter_47 > ::type
-, typename mpl::deref< iter_48 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,49)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 50 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-typedef typename mpl::next< iter_46 > ::type iter_47;
-typedef typename mpl::next< iter_47 > ::type iter_48;
-typedef typename mpl::next< iter_48 > ::type iter_49;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-, typename mpl::deref< iter_47 > ::type
-, typename mpl::deref< iter_48 > ::type
-, typename mpl::deref< iter_49 > ::type
-> ::type type;
-};
-};
-template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename 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 NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,50)
-{
-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< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 51 > 
-{ 
-template<typename S> struct synthesize_impl_i
-{
-private:
-typedef typename mpl::begin<S> ::type iter_0;
-typedef typename mpl::next< iter_0 > ::type iter_1;
-typedef typename mpl::next< iter_1 > ::type iter_2;
-typedef typename mpl::next< iter_2 > ::type iter_3;
-typedef typename mpl::next< iter_3 > ::type iter_4;
-typedef typename mpl::next< iter_4 > ::type iter_5;
-typedef typename mpl::next< iter_5 > ::type iter_6;
-typedef typename mpl::next< iter_6 > ::type iter_7;
-typedef typename mpl::next< iter_7 > ::type iter_8;
-typedef typename mpl::next< iter_8 > ::type iter_9;
-typedef typename mpl::next< iter_9 > ::type iter_10;
-typedef typename mpl::next< iter_10 > ::type iter_11;
-typedef typename mpl::next< iter_11 > ::type iter_12;
-typedef typename mpl::next< iter_12 > ::type iter_13;
-typedef typename mpl::next< iter_13 > ::type iter_14;
-typedef typename mpl::next< iter_14 > ::type iter_15;
-typedef typename mpl::next< iter_15 > ::type iter_16;
-typedef typename mpl::next< iter_16 > ::type iter_17;
-typedef typename mpl::next< iter_17 > ::type iter_18;
-typedef typename mpl::next< iter_18 > ::type iter_19;
-typedef typename mpl::next< iter_19 > ::type iter_20;
-typedef typename mpl::next< iter_20 > ::type iter_21;
-typedef typename mpl::next< iter_21 > ::type iter_22;
-typedef typename mpl::next< iter_22 > ::type iter_23;
-typedef typename mpl::next< iter_23 > ::type iter_24;
-typedef typename mpl::next< iter_24 > ::type iter_25;
-typedef typename mpl::next< iter_25 > ::type iter_26;
-typedef typename mpl::next< iter_26 > ::type iter_27;
-typedef typename mpl::next< iter_27 > ::type iter_28;
-typedef typename mpl::next< iter_28 > ::type iter_29;
-typedef typename mpl::next< iter_29 > ::type iter_30;
-typedef typename mpl::next< iter_30 > ::type iter_31;
-typedef typename mpl::next< iter_31 > ::type iter_32;
-typedef typename mpl::next< iter_32 > ::type iter_33;
-typedef typename mpl::next< iter_33 > ::type iter_34;
-typedef typename mpl::next< iter_34 > ::type iter_35;
-typedef typename mpl::next< iter_35 > ::type iter_36;
-typedef typename mpl::next< iter_36 > ::type iter_37;
-typedef typename mpl::next< iter_37 > ::type iter_38;
-typedef typename mpl::next< iter_38 > ::type iter_39;
-typedef typename mpl::next< iter_39 > ::type iter_40;
-typedef typename mpl::next< iter_40 > ::type iter_41;
-typedef typename mpl::next< iter_41 > ::type iter_42;
-typedef typename mpl::next< iter_42 > ::type iter_43;
-typedef typename mpl::next< iter_43 > ::type iter_44;
-typedef typename mpl::next< iter_44 > ::type iter_45;
-typedef typename mpl::next< iter_45 > ::type iter_46;
-typedef typename mpl::next< iter_46 > ::type iter_47;
-typedef typename mpl::next< iter_47 > ::type iter_48;
-typedef typename mpl::next< iter_48 > ::type iter_49;
-typedef typename mpl::next< iter_49 > ::type iter_50;
-public:
-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
-, typename mpl::deref< iter_2 > ::type
-, typename mpl::deref< iter_3 > ::type
-, typename mpl::deref< iter_4 > ::type
-, typename mpl::deref< iter_5 > ::type
-, typename mpl::deref< iter_6 > ::type
-, typename mpl::deref< iter_7 > ::type
-, typename mpl::deref< iter_8 > ::type
-, typename mpl::deref< iter_9 > ::type
-, typename mpl::deref< iter_10 > ::type
-, typename mpl::deref< iter_11 > ::type
-, typename mpl::deref< iter_12 > ::type
-, typename mpl::deref< iter_13 > ::type
-, typename mpl::deref< iter_14 > ::type
-, typename mpl::deref< iter_15 > ::type
-, typename mpl::deref< iter_16 > ::type
-, typename mpl::deref< iter_17 > ::type
-, typename mpl::deref< iter_18 > ::type
-, typename mpl::deref< iter_19 > ::type
-, typename mpl::deref< iter_20 > ::type
-, typename mpl::deref< iter_21 > ::type
-, typename mpl::deref< iter_22 > ::type
-, typename mpl::deref< iter_23 > ::type
-, typename mpl::deref< iter_24 > ::type
-, typename mpl::deref< iter_25 > ::type
-, typename mpl::deref< iter_26 > ::type
-, typename mpl::deref< iter_27 > ::type
-, typename mpl::deref< iter_28 > ::type
-, typename mpl::deref< iter_29 > ::type
-, typename mpl::deref< iter_30 > ::type
-, typename mpl::deref< iter_31 > ::type
-, typename mpl::deref< iter_32 > ::type
-, typename mpl::deref< iter_33 > ::type
-, typename mpl::deref< iter_34 > ::type
-, typename mpl::deref< iter_35 > ::type
-, typename mpl::deref< iter_36 > ::type
-, typename mpl::deref< iter_37 > ::type
-, typename mpl::deref< iter_38 > ::type
-, typename mpl::deref< iter_39 > ::type
-, typename mpl::deref< iter_40 > ::type
-, typename mpl::deref< iter_41 > ::type
-, typename mpl::deref< iter_42 > ::type
-, typename mpl::deref< iter_43 > ::type
-, typename mpl::deref< iter_44 > ::type
-, typename mpl::deref< iter_45 > ::type
-, typename mpl::deref< iter_46 > ::type
-, typename mpl::deref< iter_47 > ::type
-, typename mpl::deref< iter_48 > ::type
-, typename mpl::deref< iter_49 > ::type
-, typename mpl::deref< iter_50 > ::type
-> ::type type;
-};
-};
-# 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
deleted file mode 100644
index d08b9cb..0000000
--- a/include/ndnboost/function_types/detail/synthesize_impl/master.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-// no include guards, this file is intended for multiple inclusion
-
-#if   NDNBOOST_FT_ARITY_LOOP_PREFIX
-
-#   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>
-#     include <ndnboost/preprocessor/facilities/empty.hpp>
-#     include <ndnboost/preprocessor/facilities/identity.hpp>
-#   endif
-
-#   define NDNBOOST_FT_type_name type
-
-#   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
-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 NDNBOOST_FT_iter(i) NDNBOOST_PP_CAT(iter_,i)
-
-#elif NDNBOOST_FT_ARITY_LOOP_IS_ITERATING
-
-template< NDNBOOST_FT_tplargs(NDNBOOST_PP_IDENTITY(typename)) >
-struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,NDNBOOST_FT_arity)
-{
-  typedef NDNBOOST_FT_type ;
-};
-
-template<> 
-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 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::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< NDNBOOST_FT_iter(1) >::type >::type
-#   endif
-#   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 NDNBOOST_FT_ARITY_LOOP_SUFFIX
-
-#   ifdef NDNBOOST_FT_flags
-#     undef NDNBOOST_FT_make_type
-#     undef NDNBOOST_FT_make_type_impl
-#   else
-NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_make_type
-NDNBOOST_PP_EXPAND(#) undef NDNBOOST_FT_make_type_impl
-#   endif
-#   undef NDNBOOST_FT_iter
-#   undef NDNBOOST_FT_type_name
-
-#else
-#   error "attempt to use arity loop master file without loop"
-#endif
-
diff --git a/include/ndnboost/function_types/detail/to_sequence.hpp b/include/ndnboost/function_types/detail/to_sequence.hpp
deleted file mode 100644
index 7b57ed4..0000000
--- a/include/ndnboost/function_types/detail/to_sequence.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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>
-#include <ndnboost/mpl/is_sequence.hpp>
-#include <ndnboost/mpl/placeholders.hpp>
-#include <ndnboost/type_traits/add_reference.hpp>
-
-#include <ndnboost/function_types/is_callable_builtin.hpp>
-
-namespace ndnboost { namespace function_types { namespace detail {
-
-// wrap first arguments in components, if callable builtin type
-template<typename T>
-struct to_sequence
-{
-  typedef typename
-   mpl::eval_if
-   < is_callable_builtin<T>
-   , to_sequence< components<T> >
-   , mpl::identity< T >
-   >::type
-  type;
-};
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-// reduce template instantiations, if possible
-template<typename T, typename U>
-struct to_sequence< components<T,U> > 
-{
-  typedef typename components<T,U>::types type;
-};
-#endif
-
-} } } // namespace ::ndnboost::function_types::detail
-
-#endif
-
diff --git a/include/ndnboost/function_types/function_type.hpp b/include/ndnboost/function_types/function_type.hpp
deleted file mode 100644
index 3746214..0000000
--- a/include/ndnboost/function_types/function_type.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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>
-
-namespace ndnboost 
-{ 
-  namespace function_types 
-  {
-    template<typename Types, typename Tag = null_tag> struct function_type
-      : detail::synthesize_func<typename detail::to_sequence<Types>::type, Tag>
-    {
-      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,function_type,(Types,Tag))
-    };
-  }
-  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
deleted file mode 100644
index a2b2247..0000000
--- a/include/ndnboost/function_types/is_callable_builtin.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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>
-
-#include <ndnboost/function_types/components.hpp>
-
-namespace ndnboost 
-{ 
-  namespace function_types 
-  {
-    template< typename T, typename Tag = null_tag > 
-    struct is_callable_builtin
-      : function_types::represents
-        < function_types::components<T>
-        , function_types::tag<Tag, detail::callable_builtin_tag> 
-        >
-    { 
-      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_callable_builtin,(T,Tag))
-    };
-  }
-  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
deleted file mode 100644
index 1e76215..0000000
--- a/include/ndnboost/function_types/is_function.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-//------------------------------------------------------------------------------
-
-#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>
-
-#include <ndnboost/function_types/components.hpp>
-
-namespace ndnboost 
-{ 
-  namespace function_types 
-  {
-    template< typename T, typename Tag = null_tag > 
-    struct is_function
-      : function_types::represents
-        < function_types::components<T>
-        , function_types::tag<Tag ,detail::function_tag> 
-        >
-    { 
-      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function,(T,Tag))
-    };
-  }
-  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
deleted file mode 100644
index ddff50c..0000000
--- a/include/ndnboost/function_types/is_function_pointer.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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>
-
-#include <ndnboost/function_types/components.hpp>
-
-namespace ndnboost 
-{ 
-  namespace function_types 
-  {
-    template< typename T, typename Tag = null_tag > 
-    struct is_function_pointer
-      : function_types::represents
-        < function_types::components<T>
-        , function_types::tag<Tag ,detail::pointer_tag> 
-        >
-    { 
-      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_pointer,(T,Tag))
-    };
-  }
-  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
deleted file mode 100644
index 7350283..0000000
--- a/include/ndnboost/function_types/is_function_reference.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#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>
-
-#include <ndnboost/function_types/components.hpp>
-
-namespace ndnboost 
-{ 
-  namespace function_types 
-  {
-    template< typename T, typename Tag = null_tag > 
-    struct is_function_reference
-      : function_types::represents
-        < function_types::components<T>
-        , function_types::tag<Tag ,detail::reference_tag> >
-    { 
-      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_reference,(T,Tag))
-    };
-  }
-  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
deleted file mode 100644
index a604ce4..0000000
--- a/include/ndnboost/function_types/parameter_types.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#ifndef NDNBOOST_FT_PARAMETER_TYPES_HPP_INCLUDED
-#define NDNBOOST_FT_PARAMETER_TYPES_HPP_INCLUDED
-
-#include <ndnboost/blank.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/type_traits/detail/template_arity_spec.hpp>
-
-#include <ndnboost/mpl/pop_front.hpp>
-
-#include <ndnboost/function_types/is_callable_builtin.hpp>
-#include <ndnboost/function_types/components.hpp>
-
-namespace ndnboost 
-{ 
-  namespace function_types 
-  {
-    using mpl::placeholders::_;
- 
-    template< typename T, typename ClassTypeTransform = add_reference<_> >
-    struct parameter_types;
-
-    namespace detail
-    {
-      template<typename T, typename ClassTypeTransform> 
-      struct parameter_types_impl
-        : mpl::pop_front
-          < typename function_types::components<T,ClassTypeTransform>::types 
-          >::type
-      { };
-    }
-
-    template<typename T, typename ClassTypeTransform> struct parameter_types
-      : mpl::if_
-        < function_types::is_callable_builtin<T>
-        , detail::parameter_types_impl<T,ClassTypeTransform>, ndnboost::blank
-        >::type
-    {
-      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,parameter_types,(T,ClassTypeTransform)) 
-    };
-  }
-  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
deleted file mode 100644
index 2662fcc..0000000
--- a/include/ndnboost/function_types/property_tags.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#ifndef NDNBOOST_FT_DETAIL_TAGS_HPP_INCLUDED
-#define NDNBOOST_FT_DETAIL_TAGS_HPP_INCLUDED
-
-#include <cstddef>
-
-#include <ndnboost/type_traits/integral_constant.hpp>
-#include <ndnboost/mpl/bitxor.hpp>
-
-
-namespace ndnboost { namespace function_types { 
-
-namespace detail 
-{
-  typedef long bits_t;
-
-  template<bits_t Value> struct constant 
-    : ndnboost::integral_constant<bits_t,Value> 
-  { };
-
-  template<bits_t Bits, bits_t Mask> struct property_tag 
-  {
-    typedef constant<Bits> bits;
-    typedef constant<Mask> mask;
-  };
-
-  template<typename T> struct bits : T::bits { };
-  template<typename T> struct mask : T::mask { };
-
-  // forward declaration, defined in pp_tags
-  template<bits_t Bits, bits_t CCID> struct encode_bits_impl; 
-
-  // forward declaration, defined in pp_tags
-  template<bits_t LHS_bits, bits_t LHS_mask, 
-           bits_t RHS_bits, bits_t RHS_mask> 
-  struct tag_ice;
- 
-  // forward declaration, defined in retag_default_cc 
-  template<class Tag, class RegTag = Tag> struct retag_default_cc; 
- 
-  template<bits_t Bits, bits_t CCID> struct encode_bits
-    : constant< 
-        ::ndnboost::function_types::detail::encode_bits_impl<Bits,CCID>::value 
-      >
-  { };
-
-  template<class LHS, class RHS> struct compound_tag
-  {
-    typedef constant<
-      ::ndnboost::function_types::detail::tag_ice
-        < ::ndnboost::function_types::detail::bits<LHS>::value
-        , ::ndnboost::function_types::detail::mask<LHS>::value
-        , ::ndnboost::function_types::detail::bits<RHS>::value
-        , ::ndnboost::function_types::detail::mask<RHS>::value
-        >::combined_bits 
-    > bits;
-
-    typedef constant< 
-      ::ndnboost::function_types::detail::tag_ice
-        < ::ndnboost::function_types::detail::bits<LHS>::value
-        , ::ndnboost::function_types::detail::mask<LHS>::value
-        , ::ndnboost::function_types::detail::bits<RHS>::value
-        , ::ndnboost::function_types::detail::mask<RHS>::value
-        >::combined_mask 
-    > mask; 
-  };
-
-  template <class Base, class PropOld, class PropNew>
-  struct changed_tag
-    : Base
-  {
-    typedef mpl::bitxor_
-        <typename Base::bits, typename PropOld::bits, typename PropNew::bits>
-    bits;
-  };
-
-  template<class Tag, class QueryTag> struct represents_impl
-    : ndnboost::integral_constant<bool,
-        ::ndnboost::function_types::detail::tag_ice
-          < ::ndnboost::function_types::detail::bits<Tag>::value
-          , ::ndnboost::function_types::detail::mask<Tag>::value
-          , ::ndnboost::function_types::detail::bits<QueryTag>::value
-          , ::ndnboost::function_types::detail::mask<QueryTag>::value
-          >::match
-      >
-  { };
-
-} // namespace detail
-
-typedef detail::property_tag<0,0> null_tag;
-
-template<class Tag1, class Tag2, class Tag3 = null_tag, class Tag4 = null_tag>
-struct tag
-  : detail::compound_tag< detail::compound_tag<Tag1,Tag2>, 
-        detail::compound_tag<Tag3,Tag4> >
-{ };
-
-#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>
-{ };
-template<class Tag1, class Tag2> struct tag<Tag1,Tag2,null_tag,null_tag>
-  : detail::compound_tag<Tag1,Tag2>
-{ };
-template<class Tag1> struct tag<Tag1,null_tag,null_tag,null_tag>
-  : Tag1
-{ };
-#endif
-
-
-template<class Tag, class QueryTag> struct represents
-  : detail::represents_impl<Tag, detail::retag_default_cc<QueryTag,Tag> >
-{ };
-
-
-template<class Tag, class QueryTag> struct extract
-{ 
-  typedef detail::constant<
-    ::ndnboost::function_types::detail::tag_ice
-      < ::ndnboost::function_types::detail::bits<Tag>::value
-      , ::ndnboost::function_types::detail::mask<Tag>::value
-      , ::ndnboost::function_types::detail::bits<QueryTag>::value
-      , ::ndnboost::function_types::detail::mask<QueryTag>::value
-      >::extracted_bits 
-  > bits;
-
-  typedef detail::constant< 
-    ::ndnboost::function_types::detail::mask<QueryTag>::value
-  > mask; 
-};
-
-} } // namespace ::ndnboost::function_types
-
-#include <ndnboost/function_types/detail/pp_tags/preprocessed.hpp>
-
-namespace ndnboost { namespace function_types {
-#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
-
-#endif
-
diff --git a/include/ndnboost/function_types/result_type.hpp b/include/ndnboost/function_types/result_type.hpp
deleted file mode 100644
index 22fb10f..0000000
--- a/include/ndnboost/function_types/result_type.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-
-// (C) Copyright Tobias Schwinger
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-//------------------------------------------------------------------------------
-
-#ifndef NDNBOOST_FT_RESULT_TYPE_HPP_INCLUDED
-#define NDNBOOST_FT_RESULT_TYPE_HPP_INCLUDED
-
-#include <ndnboost/blank.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/type_traits/detail/template_arity_spec.hpp>
-
-#include <ndnboost/mpl/at.hpp>
-
-#include <ndnboost/function_types/is_callable_builtin.hpp>
-#include <ndnboost/function_types/components.hpp>
-
-namespace ndnboost 
-{ 
-  namespace function_types 
-  {
-    template< typename T > struct result_type;
-
-    namespace detail
-    {
-      template<typename T> struct result_type_impl
-        : mpl::at_c
-          < typename function_types::components<T>::types, 0 >
-      { };
-    }
-
-    template<typename T> struct result_type
-      : mpl::if_
-        < function_types::is_callable_builtin<T>
-        , detail::result_type_impl<T>, ndnboost::blank
-        >::type
-    { 
-      NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,result_type,(T)) 
-    };
-  }
-  NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::result_type)
-}
-
-#endif
-
diff --git a/include/ndnboost/functional.hpp b/include/ndnboost/functional.hpp
deleted file mode 100644
index b14457d..0000000
--- a/include/ndnboost/functional.hpp
+++ /dev/null
@@ -1,548 +0,0 @@
-// ------------------------------------------------------------------------------
-// Copyright (c) 2000 Cadenza New Zealand Ltd
-// Distributed under the Boost Software License, Version 1.0. (See accompany-
-// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-// ------------------------------------------------------------------------------
-// Boost functional.hpp header file
-// See http://www.boost.org/libs/functional for documentation.
-// ------------------------------------------------------------------------------
-// $Id: functional.hpp 36246 2006-12-02 14:17:26Z andreas_huber69 $
-// ------------------------------------------------------------------------------
-
-#ifndef NDNBOOST_FUNCTIONAL_HPP
-#define NDNBOOST_FUNCTIONAL_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/call_traits.hpp>
-#include <functional>
-
-namespace ndnboost
-{
-#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 
-    // deduced.
-    //
-    // In addition to the standard types defined in unary_function and 
-    // binary_function, we add
-    //
-    // - function_type, the type of the function or function object itself.
-    //
-    // - param_type, the type that should be used for passing the function or
-    //   function object as an argument.
-    // --------------------------------------------------------------------------
-    namespace detail
-    {
-        template <class Operation>
-        struct unary_traits_imp;
-        
-        template <class Operation>
-        struct unary_traits_imp<Operation*>
-        {
-            typedef Operation                         function_type;
-            typedef const function_type &             param_type;
-            typedef typename Operation::result_type   result_type;
-            typedef typename Operation::argument_type argument_type;
-        };
-
-        template <class R, class A>
-        struct unary_traits_imp<R(*)(A)>
-        {
-            typedef R (*function_type)(A);
-            typedef R (*param_type)(A);
-            typedef R result_type;
-            typedef A argument_type;
-        };
-
-        template <class Operation>
-        struct binary_traits_imp;
-
-        template <class Operation>
-        struct binary_traits_imp<Operation*>
-        {
-            typedef Operation                                function_type;
-            typedef const function_type &                    param_type;
-            typedef typename Operation::result_type          result_type;
-            typedef typename Operation::first_argument_type  first_argument_type;
-            typedef typename Operation::second_argument_type second_argument_type;
-        };
-        
-        template <class R, class A1, class A2>
-        struct binary_traits_imp<R(*)(A1,A2)>
-        {
-            typedef R (*function_type)(A1,A2);
-            typedef R (*param_type)(A1,A2);
-            typedef R result_type;
-            typedef A1 first_argument_type;
-            typedef A2 second_argument_type;
-        };
-    } // namespace detail
-    
-    template <class Operation>
-    struct unary_traits
-    {
-        typedef typename detail::unary_traits_imp<Operation*>::function_type function_type;
-        typedef typename detail::unary_traits_imp<Operation*>::param_type    param_type;
-        typedef typename detail::unary_traits_imp<Operation*>::result_type   result_type;
-        typedef typename detail::unary_traits_imp<Operation*>::argument_type argument_type;
-    }; 
-
-    template <class R, class A>
-    struct unary_traits<R(*)(A)>
-    {
-        typedef R (*function_type)(A);
-        typedef R (*param_type)(A);
-        typedef R result_type;
-        typedef A argument_type;
-    };
-
-    template <class Operation>
-    struct binary_traits
-    {
-        typedef typename detail::binary_traits_imp<Operation*>::function_type        function_type;
-        typedef typename detail::binary_traits_imp<Operation*>::param_type           param_type;
-        typedef typename detail::binary_traits_imp<Operation*>::result_type          result_type;
-        typedef typename detail::binary_traits_imp<Operation*>::first_argument_type  first_argument_type;
-        typedef typename detail::binary_traits_imp<Operation*>::second_argument_type second_argument_type;
-    };
-    
-    template <class R, class A1, class A2>
-    struct binary_traits<R(*)(A1,A2)>
-    {
-        typedef R (*function_type)(A1,A2);
-        typedef R (*param_type)(A1,A2);
-        typedef R result_type;
-        typedef A1 first_argument_type;
-        typedef A2 second_argument_type;
-    };
-#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.
-    // --------------------------------------------------------------------------
-
-    template <class Operation>
-    struct unary_traits
-    {
-        typedef Operation                         function_type;
-        typedef const Operation&                  param_type;
-        typedef typename Operation::result_type   result_type;
-        typedef typename Operation::argument_type argument_type;
-    }; 
-    
-    template <class Operation>
-    struct binary_traits
-    {
-        typedef Operation                                function_type;
-        typedef const Operation &                        param_type;
-        typedef typename Operation::result_type          result_type;
-        typedef typename Operation::first_argument_type  first_argument_type;
-        typedef typename Operation::second_argument_type second_argument_type;
-    };    
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-    
-    // --------------------------------------------------------------------------
-    // unary_negate, not1
-    // --------------------------------------------------------------------------
-    template <class Predicate>
-    class unary_negate
-        : public std::unary_function<typename unary_traits<Predicate>::argument_type,bool>
-    {
-      public:
-        explicit unary_negate(typename unary_traits<Predicate>::param_type x)
-            :
-            pred(x)
-        {}
-        bool operator()(typename call_traits<typename unary_traits<Predicate>::argument_type>::param_type x) const
-        {
-            return !pred(x);
-        }
-      private:
-        typename unary_traits<Predicate>::function_type pred;
-    };
-
-    template <class Predicate>
-    unary_negate<Predicate> not1(const Predicate &pred)
-    {
-        // The cast is to placate Borland C++Builder in certain circumstances.
-        // I don't think it should be necessary.
-        return unary_negate<Predicate>((typename unary_traits<Predicate>::param_type)pred);
-    }
-
-    template <class Predicate>
-    unary_negate<Predicate> not1(Predicate &pred)
-    {
-        return unary_negate<Predicate>(pred);
-    }
-
-    // --------------------------------------------------------------------------
-    // binary_negate, not2
-    // --------------------------------------------------------------------------
-    template <class Predicate>
-    class binary_negate
-        : public std::binary_function<typename binary_traits<Predicate>::first_argument_type,
-                                      typename binary_traits<Predicate>::second_argument_type,
-                                      bool>
-    {
-      public:
-        explicit binary_negate(typename binary_traits<Predicate>::param_type x)
-            :
-            pred(x)
-        {}
-        bool operator()(typename call_traits<typename binary_traits<Predicate>::first_argument_type>::param_type x,
-                        typename call_traits<typename binary_traits<Predicate>::second_argument_type>::param_type y) const
-        {
-            return !pred(x,y);
-        }
-      private:
-        typename binary_traits<Predicate>::function_type pred;
-    };
-
-    template <class Predicate>
-    binary_negate<Predicate> not2(const Predicate &pred)
-    {
-        // The cast is to placate Borland C++Builder in certain circumstances.
-        // I don't think it should be necessary.
-        return binary_negate<Predicate>((typename binary_traits<Predicate>::param_type)pred);
-    }
-
-    template <class Predicate>
-    binary_negate<Predicate> not2(Predicate &pred)
-    {
-        return binary_negate<Predicate>(pred);
-    }
-        
-    // --------------------------------------------------------------------------
-    // binder1st, bind1st
-    // --------------------------------------------------------------------------
-    template <class Operation>
-    class binder1st
-        : public std::unary_function<typename binary_traits<Operation>::second_argument_type,
-                                     typename binary_traits<Operation>::result_type>
-    {       
-      public:
-        binder1st(typename binary_traits<Operation>::param_type x,
-                  typename call_traits<typename binary_traits<Operation>::first_argument_type>::param_type y)
-            :
-            op(x), value(y)
-        {}
-        
-        typename binary_traits<Operation>::result_type
-        operator()(typename call_traits<typename binary_traits<Operation>::second_argument_type>::param_type x) const
-        {
-            return op(value, x);
-        }
-        
-      protected:
-        typename binary_traits<Operation>::function_type op;
-        typename binary_traits<Operation>::first_argument_type value;
-    };
-
-    template <class Operation>
-    inline binder1st<Operation> bind1st(const Operation &op,
-                                        typename call_traits<
-                                                    typename binary_traits<Operation>::first_argument_type
-                                        >::param_type x)
-    {
-        // The cast is to placate Borland C++Builder in certain circumstances.
-        // I don't think it should be necessary.
-        return binder1st<Operation>((typename binary_traits<Operation>::param_type)op, x);
-    }
-
-    template <class Operation>
-    inline binder1st<Operation> bind1st(Operation &op,
-                                        typename call_traits<
-                                                    typename binary_traits<Operation>::first_argument_type
-                                        >::param_type x)
-    {
-        return binder1st<Operation>(op, x);
-    }
-
-    // --------------------------------------------------------------------------
-    // binder2nd, bind2nd
-    // --------------------------------------------------------------------------
-    template <class Operation>
-    class binder2nd
-        : public std::unary_function<typename binary_traits<Operation>::first_argument_type,
-                                     typename binary_traits<Operation>::result_type>
-    {
-      public:
-        binder2nd(typename binary_traits<Operation>::param_type x,
-                  typename call_traits<typename binary_traits<Operation>::second_argument_type>::param_type y)
-            :
-            op(x), value(y)
-        {}
-        
-        typename binary_traits<Operation>::result_type
-        operator()(typename call_traits<typename binary_traits<Operation>::first_argument_type>::param_type x) const
-        {
-            return op(x, value);
-        }               
-        
-      protected:
-        typename binary_traits<Operation>::function_type op;
-        typename binary_traits<Operation>::second_argument_type value;
-    };
-
-    template <class Operation>
-    inline binder2nd<Operation> bind2nd(const Operation &op,
-                                        typename call_traits<
-                                                    typename binary_traits<Operation>::second_argument_type
-                                        >::param_type x)
-    {
-        // The cast is to placate Borland C++Builder in certain circumstances.
-        // I don't think it should be necessary.
-        return binder2nd<Operation>((typename binary_traits<Operation>::param_type)op, x);
-    }
-
-    template <class Operation>
-    inline binder2nd<Operation> bind2nd(Operation &op,
-                                        typename call_traits<
-                                                    typename binary_traits<Operation>::second_argument_type
-                                        >::param_type x)
-    {
-        return binder2nd<Operation>(op, x);
-    }
-
-    // --------------------------------------------------------------------------
-    // mem_fun, etc
-    // --------------------------------------------------------------------------
-    template <class S, class T>
-    class mem_fun_t : public std::unary_function<T*, S>
-    {
-      public:
-        explicit mem_fun_t(S (T::*p)())
-            :
-            ptr(p)
-        {}
-        S operator()(T* p) const
-        {
-            return (p->*ptr)();
-        }
-      private:
-        S (T::*ptr)();
-    };
-
-    template <class S, class T, class A>
-    class mem_fun1_t : public std::binary_function<T*, A, S>
-    {
-      public:   
-        explicit mem_fun1_t(S (T::*p)(A))
-            :
-            ptr(p)
-        {}
-        S operator()(T* p, typename call_traits<A>::param_type x) const
-        {
-            return (p->*ptr)(x);
-        }
-      private:
-        S (T::*ptr)(A);
-    };
-
-    template <class S, class T>
-    class const_mem_fun_t : public std::unary_function<const T*, S>
-    {
-      public:
-        explicit const_mem_fun_t(S (T::*p)() const)
-            :
-            ptr(p)
-        {}
-        S operator()(const T* p) const
-        {
-            return (p->*ptr)();
-        }
-      private:
-        S (T::*ptr)() const;        
-    };
-
-    template <class S, class T, class A>
-    class const_mem_fun1_t : public std::binary_function<const T*, A, S>
-    {
-      public:
-        explicit const_mem_fun1_t(S (T::*p)(A) const)
-            :
-            ptr(p)
-        {}
-        S operator()(const T* p, typename call_traits<A>::param_type x) const
-        {
-            return (p->*ptr)(x);
-        }
-      private:
-        S (T::*ptr)(A) const;
-    };
-    
-    template<class S, class T>
-    inline mem_fun_t<S,T> mem_fun(S (T::*f)())
-    {
-        return mem_fun_t<S,T>(f);
-    }
-    
-    template<class S, class T, class A>
-    inline mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A))
-    {
-        return mem_fun1_t<S,T,A>(f);
-    }
-
-#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)
-    {
-        return const_mem_fun_t<S,T>(f);
-    }
-    
-    template<class S, class T, class A>
-    inline const_mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A) const)
-    {
-        return const_mem_fun1_t<S,T,A>(f);
-    }
-#endif // NDNBOOST_NO_POINTER_TO_MEMBER_CONST
-
-    // --------------------------------------------------------------------------
-    // mem_fun_ref, etc
-    // --------------------------------------------------------------------------
-    template <class S, class T>
-    class mem_fun_ref_t : public std::unary_function<T&, S>
-    {
-      public:
-        explicit mem_fun_ref_t(S (T::*p)())
-            :
-            ptr(p)
-        {}
-        S operator()(T& p) const
-        {
-            return (p.*ptr)();
-        }
-      private:
-        S (T::*ptr)();
-    };
-
-    template <class S, class T, class A>
-    class mem_fun1_ref_t : public std::binary_function<T&, A, S>
-    {
-      public:
-        explicit mem_fun1_ref_t(S (T::*p)(A))
-            :
-            ptr(p)
-        {}
-        S operator()(T& p, typename call_traits<A>::param_type x) const
-        {
-            return (p.*ptr)(x);
-        }
-      private:
-        S (T::*ptr)(A);
-    };
-    
-    template <class S, class T>
-    class const_mem_fun_ref_t : public std::unary_function<const T&, S>
-    {
-      public:
-        explicit const_mem_fun_ref_t(S (T::*p)() const)
-            :
-            ptr(p)
-        {}
-        
-        S operator()(const T &p) const
-        {
-            return (p.*ptr)();
-        }
-      private:
-        S (T::*ptr)() const;
-    };
-
-    template <class S, class T, class A>
-    class const_mem_fun1_ref_t : public std::binary_function<const T&, A, S>
-    {
-      public:
-        explicit const_mem_fun1_ref_t(S (T::*p)(A) const)
-            :
-            ptr(p)
-        {}
-
-        S operator()(const T& p, typename call_traits<A>::param_type x) const
-        {
-            return (p.*ptr)(x);
-        }
-      private:
-        S (T::*ptr)(A) const;
-    };
-    
-    template<class S, class T>
-    inline mem_fun_ref_t<S,T> mem_fun_ref(S (T::*f)())
-    {
-        return mem_fun_ref_t<S,T>(f);
-    }
-
-    template<class S, class T, class A>
-    inline mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A))
-    {
-        return mem_fun1_ref_t<S,T,A>(f);
-    }
-
-#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)
-    {
-        return const_mem_fun_ref_t<S,T>(f);
-    }
-
-    template<class S, class T, class A>
-    inline const_mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A) const)
-    {
-        return const_mem_fun1_ref_t<S,T,A>(f);
-    }   
-#endif // NDNBOOST_NO_POINTER_TO_MEMBER_CONST
-
-    // --------------------------------------------------------------------------
-    // ptr_fun
-    // --------------------------------------------------------------------------
-    template <class Arg, class Result>
-    class pointer_to_unary_function : public std::unary_function<Arg,Result>
-    {
-      public:
-        explicit pointer_to_unary_function(Result (*f)(Arg))
-            :
-            func(f)
-        {}
-
-        Result operator()(typename call_traits<Arg>::param_type x) const
-        {
-            return func(x);
-        }
-        
-      private:
-        Result (*func)(Arg);
-    };
-
-    template <class Arg, class Result>
-    inline pointer_to_unary_function<Arg,Result> ptr_fun(Result (*f)(Arg))
-    {
-        return pointer_to_unary_function<Arg,Result>(f);
-    }
-
-    template <class Arg1, class Arg2, class Result>
-    class pointer_to_binary_function : public std::binary_function<Arg1,Arg2,Result>
-    {
-      public:
-        explicit pointer_to_binary_function(Result (*f)(Arg1, Arg2))
-            :
-            func(f)
-        {}
-        
-        Result operator()(typename call_traits<Arg1>::param_type x, typename call_traits<Arg2>::param_type y) const
-        {
-            return func(x,y);
-        }
-        
-      private:
-        Result (*func)(Arg1, Arg2);
-    };
-
-    template <class Arg1, class Arg2, class Result>
-    inline pointer_to_binary_function<Arg1,Arg2,Result> ptr_fun(Result (*f)(Arg1, Arg2))
-    {
-        return pointer_to_binary_function<Arg1,Arg2,Result>(f);
-    }
-} // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/functional/hash.hpp b/include/ndnboost/functional/hash.hpp
deleted file mode 100644
index bcc68bc..0000000
--- a/include/ndnboost/functional/hash.hpp
+++ /dev/null
@@ -1,7 +0,0 @@
-
-// Copyright 2005-2009 Daniel James.
-// 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)
-
-#include <ndnboost/functional/hash/hash.hpp>
-
diff --git a/include/ndnboost/functional/hash/detail/float_functions.hpp b/include/ndnboost/functional/hash/detail/float_functions.hpp
deleted file mode 100644
index 131ab62..0000000
--- a/include/ndnboost/functional/hash/detail/float_functions.hpp
+++ /dev/null
@@ -1,336 +0,0 @@
-
-// Copyright 2005-2009 Daniel James.
-// 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)
-
-#if !defined(NDNBOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP)
-#define NDNBOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/config/no_tr1/cmath.hpp>
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-// Set NDNBOOST_HASH_CONFORMANT_FLOATS to 1 for libraries known to have
-// sufficiently good floating point support to not require any
-// workarounds.
-//
-// When set to 0, the library tries to automatically
-// use the best available implementation. This normally works well, but
-// breaks when ambiguities are created by odd namespacing of the functions.
-//
-// Note that if this is set to 0, the library should still take full
-// advantage of the platform's floating point support.
-
-#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-#   define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#elif defined(__LIBCOMO__)
-#   define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
-// Rogue Wave library:
-#   define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#elif defined(_LIBCPP_VERSION)
-// libc++
-#   define NDNBOOST_HASH_CONFORMANT_FLOATS 1
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
-// GNU libstdc++ 3
-#   if defined(__GNUC__) && __GNUC__ >= 4
-#       define NDNBOOST_HASH_CONFORMANT_FLOATS 1
-#   else
-#       define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#   endif
-#elif defined(__STL_CONFIG_H)
-// generic SGI STL
-#   define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#elif defined(__MSL_CPP__)
-// MSL standard lib:
-#   define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#elif defined(__IBMCPP__)
-// VACPP std lib (probably conformant for much earlier version).
-#   if __IBMCPP__ >= 1210
-#       define NDNBOOST_HASH_CONFORMANT_FLOATS 1
-#   else
-#       define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#   endif
-#elif defined(MSIPL_COMPILE_H)
-// Modena C++ standard library
-#   define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
-// Dinkumware Library (this has to appear after any possible replacement libraries):
-#   if _CPPLIB_VER >= 405
-#       define NDNBOOST_HASH_CONFORMANT_FLOATS 1
-#   else
-#       define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#   endif
-#else
-#   define NDNBOOST_HASH_CONFORMANT_FLOATS 0
-#endif
-
-#if NDNBOOST_HASH_CONFORMANT_FLOATS
-
-// The standard library is known to be compliant, so don't use the
-// configuration mechanism.
-
-namespace ndnboost {
-    namespace hash_detail {
-        template <typename Float>
-        struct call_ldexp {
-            typedef Float float_type;
-            inline Float operator()(Float x, int y) const {
-                return std::ldexp(x, y);
-            }
-        };
-
-        template <typename Float>
-        struct call_frexp {
-            typedef Float float_type;
-            inline Float operator()(Float x, int* y) const {
-                return std::frexp(x, y);
-            }
-        };
-
-        template <typename Float>
-        struct select_hash_type
-        {
-            typedef Float type;
-        };
-    }
-}
-
-#else // NDNBOOST_HASH_CONFORMANT_FLOATS == 0
-
-// The C++ standard requires that the C float functions are overloarded
-// for float, double and long double in the std namespace, but some of the older
-// library implementations don't support this. On some that don't, the C99
-// float functions (frexpf, frexpl, etc.) are available.
-//
-// The following tries to automatically detect which are available.
-
-namespace ndnboost {
-    namespace hash_detail {
-
-        // Returned by dummy versions of the float functions.
-    
-        struct not_found {
-            // Implicitly convertible to float and long double in order to avoid
-            // a compile error when the dummy float functions are used.
-
-            inline operator float() const { return 0; }
-            inline operator long double() const { return 0; }
-        };
-          
-        // A type for detecting the return type of functions.
-
-        template <typename T> struct is;
-        template <> struct is<float> { char x[10]; };
-        template <> struct is<double> { char x[20]; };
-        template <> struct is<long double> { char x[30]; };
-        template <> struct is<ndnboost::hash_detail::not_found> { char x[40]; };
-            
-        // Used to convert the return type of a function to a type for sizeof.
-
-        template <typename T> is<T> float_type(T);
-
-        // call_ldexp
-        //
-        // This will get specialized for float and long double
-        
-        template <typename Float> struct call_ldexp
-        {
-            typedef double float_type;
-            
-            inline double operator()(double a, int b) const
-            {
-                using namespace std;
-                return ldexp(a, b);
-            }
-        };
-
-        // call_frexp
-        //
-        // This will get specialized for float and long double
-
-        template <typename Float> struct call_frexp
-        {
-            typedef double float_type;
-            
-            inline double operator()(double a, int* b) const
-            {
-                using namespace std;
-                return frexp(a, b);
-            }
-        };
-    }
-}
-            
-// A namespace for dummy functions to detect when the actual function we want
-// isn't available. ldexpl, ldexpf etc. might be added tby the macros below.
-//
-// AFAICT these have to be outside of the boost namespace, as if they're in
-// the boost namespace they'll always be preferable to any other function
-// (since the arguments are built in types, ADL can't be used).
-
-namespace ndnboost_hash_detect_float_functions {
-    template <class Float> ndnboost::hash_detail::not_found ldexp(Float, int);
-    template <class Float> ndnboost::hash_detail::not_found frexp(Float, int*);    
-}
-
-// Macros for generating specializations of call_ldexp and call_frexp.
-//
-// check_cpp and check_c99 check if the C++ or C99 functions are available.
-//
-// Then the call_* functions select an appropriate implementation.
-//
-// I used c99_func in a few places just to get a unique name.
-//
-// Important: when using 'using namespace' at namespace level, include as
-// little as possible in that namespace, as Visual C++ has an odd bug which
-// can cause the namespace to be imported at the global level. This seems to
-// happen mainly when there's a template in the same namesapce.
-
-#define NDNBOOST_HASH_CALL_FLOAT_FUNC(cpp_func, c99_func, type1, type2)    \
-namespace ndnboost_hash_detect_float_functions {                           \
-    template <class Float>                                              \
-    ndnboost::hash_detail::not_found c99_func(Float, type2);               \
-}                                                                       \
-                                                                        \
-namespace ndnboost {                                                       \
-    namespace hash_detail {                                             \
-        namespace c99_func##_detect {                                   \
-            using namespace std;                                        \
-            using namespace ndnboost_hash_detect_float_functions;          \
-                                                                        \
-            struct check {                                              \
-                static type1 x;                                         \
-                static type2 y;                                         \
-                NDNBOOST_STATIC_CONSTANT(bool, cpp =                       \
-                    sizeof(float_type(cpp_func(x,y)))                   \
-                        == sizeof(is<type1>));                          \
-                NDNBOOST_STATIC_CONSTANT(bool, c99 =                       \
-                    sizeof(float_type(c99_func(x,y)))                   \
-                        == sizeof(is<type1>));                          \
-            };                                                          \
-        }                                                               \
-                                                                        \
-        template <bool x>                                               \
-        struct call_c99_##c99_func :                                    \
-            ndnboost::hash_detail::call_##cpp_func<double> {};             \
-                                                                        \
-        template <>                                                     \
-        struct call_c99_##c99_func<true> {                              \
-            typedef type1 float_type;                                   \
-                                                                        \
-            template <typename T>                                       \
-            inline type1 operator()(type1 a, T b)  const                \
-            {                                                           \
-                using namespace std;                                    \
-                return c99_func(a, b);                                  \
-            }                                                           \
-        };                                                              \
-                                                                        \
-        template <bool x>                                               \
-        struct call_cpp_##c99_func :                                    \
-            call_c99_##c99_func<                                        \
-                ::ndnboost::hash_detail::c99_func##_detect::check::c99     \
-            > {};                                                       \
-                                                                        \
-        template <>                                                     \
-        struct call_cpp_##c99_func<true> {                              \
-            typedef type1 float_type;                                   \
-                                                                        \
-            template <typename T>                                       \
-            inline type1 operator()(type1 a, T b)  const                \
-            {                                                           \
-                using namespace std;                                    \
-                return cpp_func(a, b);                                  \
-            }                                                           \
-        };                                                              \
-                                                                        \
-        template <>                                                     \
-        struct call_##cpp_func<type1> :                                 \
-            call_cpp_##c99_func<                                        \
-                ::ndnboost::hash_detail::c99_func##_detect::check::cpp     \
-            > {};                                                       \
-    }                                                                   \
-}
-
-#define NDNBOOST_HASH_CALL_FLOAT_MACRO(cpp_func, c99_func, type1, type2)   \
-namespace ndnboost {                                                       \
-    namespace hash_detail {                                             \
-                                                                        \
-        template <>                                                     \
-        struct call_##cpp_func<type1> {                                 \
-            typedef type1 float_type;                                   \
-            inline type1 operator()(type1 x, type2 y) const {           \
-                return c99_func(x, y);                                  \
-            }                                                           \
-        };                                                              \
-    }                                                                   \
-}
-
-#if defined(ldexpf)
-NDNBOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpf, float, int)
-#else
-NDNBOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpf, float, int)
-#endif
-
-#if defined(ldexpl)
-NDNBOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpl, long double, int)
-#else
-NDNBOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpl, long double, int)
-#endif
-
-#if defined(frexpf)
-NDNBOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpf, float, int*)
-#else
-NDNBOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpf, float, int*)
-#endif
-
-#if defined(frexpl)
-NDNBOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpl, long double, int*)
-#else
-NDNBOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpl, long double, int*)
-#endif
-
-#undef NDNBOOST_HASH_CALL_FLOAT_MACRO
-#undef NDNBOOST_HASH_CALL_FLOAT_FUNC
-
-
-namespace ndnboost
-{
-    namespace hash_detail
-    {
-        template <typename Float1, typename Float2>
-        struct select_hash_type_impl {
-            typedef double type;
-        };
-
-        template <>
-        struct select_hash_type_impl<float, float> {
-            typedef float type;
-        };
-
-        template <>
-        struct select_hash_type_impl<long double, long double> {
-            typedef long double type;
-        };
-
-
-        // select_hash_type
-        //
-        // If there is support for a particular floating point type, use that
-        // otherwise use double (there's always support for double).
-             
-        template <typename Float>
-        struct select_hash_type : select_hash_type_impl<
-                NDNBOOST_DEDUCED_TYPENAME call_ldexp<Float>::float_type,
-                NDNBOOST_DEDUCED_TYPENAME call_frexp<Float>::float_type
-            > {};            
-    }
-}
-
-#endif // NDNBOOST_HASH_CONFORMANT_FLOATS
-
-#endif
diff --git a/include/ndnboost/functional/hash/detail/hash_float.hpp b/include/ndnboost/functional/hash/detail/hash_float.hpp
deleted file mode 100644
index 76873ae..0000000
--- a/include/ndnboost/functional/hash/detail/hash_float.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-
-// Copyright 2005-2012 Daniel James.
-// 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)
-
-#if !defined(NDNBOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER)
-#define NDNBOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/functional/hash/detail/float_functions.hpp>
-#include <ndnboost/functional/hash/detail/limits.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/integer/static_log2.hpp>
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/limits.hpp>
-#include <cstring>
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(push)
-#if NDNBOOST_MSVC >= 1400
-#pragma warning(disable:6294) // Ill-defined for-loop: initial condition does
-                              // not satisfy test. Loop body not executed
-#endif
-#endif
-
-// Can we use fpclassify?
-
-// STLport
-#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-#define NDNBOOST_HASH_USE_FPCLASSIFY 0
-
-// GNU libstdc++ 3
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
-#  if (defined(__USE_ISOC99) || defined(_GLIBCXX_USE_C99_MATH)) && \
-      !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))
-#    define NDNBOOST_HASH_USE_FPCLASSIFY 1
-#  else
-#    define NDNBOOST_HASH_USE_FPCLASSIFY 0
-#  endif
-
-// Everything else
-#else
-#  define NDNBOOST_HASH_USE_FPCLASSIFY 0
-#endif
-
-namespace ndnboost
-{
-    namespace hash_detail
-    {
-        inline void hash_float_combine(std::size_t& seed, std::size_t value)
-        {
-            seed ^= value + (seed<<6) + (seed>>2);
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Binary hash function
-        //
-        // Only used for floats with known iec559 floats, and certain values in
-        // numeric_limits
-
-        inline std::size_t hash_binary(char* ptr, std::size_t length)
-        {
-            std::size_t seed = 0;
-
-            if (length >= sizeof(std::size_t)) {
-                seed = *(std::size_t*) ptr;
-                length -= sizeof(std::size_t);
-                ptr += sizeof(std::size_t);
-
-                while(length >= sizeof(std::size_t)) {
-                    std::size_t buffer = 0;
-                    std::memcpy(&buffer, ptr, sizeof(std::size_t));
-                    hash_float_combine(seed, buffer);
-                    length -= sizeof(std::size_t);
-                    ptr += sizeof(std::size_t);
-                }
-            }
-
-            if (length > 0) {
-                std::size_t buffer = 0;
-                std::memcpy(&buffer, ptr, length);
-                hash_float_combine(seed, buffer);
-            }
-
-            return seed;
-        }
-
-        template <typename Float>
-        inline std::size_t float_hash_impl(Float v,
-            NDNBOOST_DEDUCED_TYPENAME ndnboost::enable_if_c<
-                std::numeric_limits<Float>::is_iec559 &&
-                std::numeric_limits<Float>::digits == 24 &&
-                std::numeric_limits<Float>::radix == 2 &&
-                std::numeric_limits<Float>::max_exponent == 128,
-                int>::type
-            )
-        {
-            return hash_binary((char*) &v, 4);
-        }
-
-
-        template <typename Float>
-        inline std::size_t float_hash_impl(Float v,
-            NDNBOOST_DEDUCED_TYPENAME ndnboost::enable_if_c<
-                std::numeric_limits<Float>::is_iec559 &&
-                std::numeric_limits<Float>::digits == 53 &&
-                std::numeric_limits<Float>::radix == 2 &&
-                std::numeric_limits<Float>::max_exponent == 1024,
-                int>::type
-            )
-        {
-            return hash_binary((char*) &v, 8);
-        }
-
-        template <typename Float>
-        inline std::size_t float_hash_impl(Float v,
-            NDNBOOST_DEDUCED_TYPENAME ndnboost::enable_if_c<
-                std::numeric_limits<Float>::is_iec559 &&
-                std::numeric_limits<Float>::digits == 64 &&
-                std::numeric_limits<Float>::radix == 2 &&
-                std::numeric_limits<Float>::max_exponent == 16384,
-                int>::type
-            )
-        {
-            return hash_binary((char*) &v, 10);
-        }
-
-        template <typename Float>
-        inline std::size_t float_hash_impl(Float v,
-            NDNBOOST_DEDUCED_TYPENAME ndnboost::enable_if_c<
-                std::numeric_limits<Float>::is_iec559 &&
-                std::numeric_limits<Float>::digits == 113 &&
-                std::numeric_limits<Float>::radix == 2 &&
-                std::numeric_limits<Float>::max_exponent == 16384,
-                int>::type
-            )
-        {
-            return hash_binary((char*) &v, 16);
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Portable hash function
-        //
-        // Used as a fallback when the binary hash function isn't supported.
-
-        template <class T>
-        inline std::size_t float_hash_impl2(T v)
-        {
-            ndnboost::hash_detail::call_frexp<T> frexp;
-            ndnboost::hash_detail::call_ldexp<T> ldexp;
-
-            int exp = 0;
-
-            v = frexp(v, &exp);
-
-            // A postive value is easier to hash, so combine the
-            // sign with the exponent and use the absolute value.
-            if(v < 0) {
-                v = -v;
-                exp += limits<T>::max_exponent -
-                    limits<T>::min_exponent;
-            }
-
-            v = ldexp(v, limits<std::size_t>::digits);
-            std::size_t seed = static_cast<std::size_t>(v);
-            v -= static_cast<T>(seed);
-
-            // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1;
-            std::size_t const length
-                = (limits<T>::digits *
-                        ndnboost::static_log2<limits<T>::radix>::value
-                        + limits<std::size_t>::digits - 1)
-                / limits<std::size_t>::digits;
-
-            for(std::size_t i = 0; i != length; ++i)
-            {
-                v = ldexp(v, limits<std::size_t>::digits);
-                std::size_t part = static_cast<std::size_t>(v);
-                v -= static_cast<T>(part);
-                hash_float_combine(seed, part);
-            }
-
-            hash_float_combine(seed, exp);
-
-            return seed;
-        }
-
-#if !defined(NDNBOOST_HASH_DETAIL_TEST_WITHOUT_GENERIC)
-        template <class T>
-        inline std::size_t float_hash_impl(T v, ...)
-        {
-            typedef NDNBOOST_DEDUCED_TYPENAME select_hash_type<T>::type type;
-            return float_hash_impl2(static_cast<type>(v));
-        }
-#endif
-    }
-}
-
-#if NDNBOOST_HASH_USE_FPCLASSIFY
-
-#include <ndnboost/config/no_tr1/cmath.hpp>
-
-namespace ndnboost
-{
-    namespace hash_detail
-    {
-        template <class T>
-        inline std::size_t float_hash_value(T v)
-        {
-#if defined(fpclassify)
-            switch (fpclassify(v))
-#elif NDNBOOST_HASH_CONFORMANT_FLOATS
-            switch (std::fpclassify(v))
-#else
-            using namespace std;
-            switch (fpclassify(v))
-#endif
-            {
-            case FP_ZERO:
-                return 0;
-            case FP_INFINITE:
-                return (std::size_t)(v > 0 ? -1 : -2);
-            case FP_NAN:
-                return (std::size_t)(-3);
-            case FP_NORMAL:
-            case FP_SUBNORMAL:
-                return float_hash_impl(v, 0);
-            default:
-                NDNBOOST_ASSERT(0);
-                return 0;
-            }
-        }
-    }
-}
-
-#else // !NDNBOOST_HASH_USE_FPCLASSIFY
-
-namespace ndnboost
-{
-    namespace hash_detail
-    {
-        template <class T>
-        inline bool is_zero(T v)
-        {
-#if !defined(__GNUC__)
-            return v == 0;
-#else
-            // GCC's '-Wfloat-equal' will complain about comparing
-            // v to 0, but because it disables warnings for system
-            // headers it won't complain if you use std::equal_to to
-            // compare with 0. Resulting in this silliness:
-            return std::equal_to<T>()(v, 0);
-#endif
-        }
-
-        template <class T>
-        inline std::size_t float_hash_value(T v)
-        {
-            return ndnboost::hash_detail::is_zero(v) ? 0 : float_hash_impl(v, 0);
-        }
-    }
-}
-
-#endif // NDNBOOST_HASH_USE_FPCLASSIFY
-
-#undef NDNBOOST_HASH_USE_FPCLASSIFY
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/include/ndnboost/functional/hash/detail/limits.hpp b/include/ndnboost/functional/hash/detail/limits.hpp
deleted file mode 100644
index f25b3be..0000000
--- a/include/ndnboost/functional/hash/detail/limits.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-
-// Copyright 2005-2009 Daniel James.
-// 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)
-//
-// On some platforms std::limits gives incorrect values for long double.
-// This tries to work around them.
-
-#if !defined(NDNBOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER)
-#define NDNBOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/limits.hpp>
-
-// On OpenBSD, numeric_limits is not reliable for long doubles, but
-// the macros defined in <float.h> are and support long double when STLport
-// doesn't.
-
-#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE)
-#include <float.h>
-#endif
-
-namespace ndnboost
-{
-    namespace hash_detail
-    {
-        template <class T>
-        struct limits : std::numeric_limits<T> {};
-
-#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE)
-        template <>
-        struct limits<long double>
-             : std::numeric_limits<long double>
-        {
-            static long double epsilon() {
-                return LDBL_EPSILON;
-            }
-
-            static long double (max)() {
-                return LDBL_MAX;
-            }
-
-            static long double (min)() {
-                return LDBL_MIN;
-            }
-
-            NDNBOOST_STATIC_CONSTANT(int, digits = LDBL_MANT_DIG);
-            NDNBOOST_STATIC_CONSTANT(int, max_exponent = LDBL_MAX_EXP);
-            NDNBOOST_STATIC_CONSTANT(int, min_exponent = LDBL_MIN_EXP);
-#if defined(_STLP_NO_LONG_DOUBLE)
-            NDNBOOST_STATIC_CONSTANT(int, radix = FLT_RADIX);
-#endif
-        };
-#endif // __OpenBSD__
-    }
-}
-
-#endif
diff --git a/include/ndnboost/functional/hash/extensions.hpp b/include/ndnboost/functional/hash/extensions.hpp
deleted file mode 100644
index b079137..0000000
--- a/include/ndnboost/functional/hash/extensions.hpp
+++ /dev/null
@@ -1,379 +0,0 @@
-
-// Copyright 2005-2009 Daniel James.
-// 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)
-
-//  Based on Peter Dimov's proposal
-//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf
-//  issue 6.18. 
-
-// This implements the extensions to the standard.
-// It's undocumented, so you shouldn't use it....
-
-#if !defined(NDNBOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP)
-#define NDNBOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP
-
-#include <ndnboost/functional/hash/hash.hpp>
-#include <ndnboost/detail/container_fwd.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/preprocessor/repetition/repeat_from_to.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_ARRAY)
-#   include <array>
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
-#   include <tuple>
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_MEMORY)
-#   include <memory>
-#endif
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#if defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-#include <ndnboost/type_traits/is_array.hpp>
-#endif
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-#include <ndnboost/type_traits/is_const.hpp>
-#endif
-
-namespace ndnboost
-{
-    template <class A, class B>
-    std::size_t hash_value(std::pair<A, B> const&);
-    template <class T, class A>
-    std::size_t hash_value(std::vector<T, A> const&);
-    template <class T, class A>
-    std::size_t hash_value(std::list<T, A> const& v);
-    template <class T, class A>
-    std::size_t hash_value(std::deque<T, A> const& v);
-    template <class K, class C, class A>
-    std::size_t hash_value(std::set<K, C, A> const& v);
-    template <class K, class C, class A>
-    std::size_t hash_value(std::multiset<K, C, A> const& v);
-    template <class K, class T, class C, class A>
-    std::size_t hash_value(std::map<K, T, C, A> const& v);
-    template <class K, class T, class C, class A>
-    std::size_t hash_value(std::multimap<K, T, C, A> const& v);
-
-    template <class T>
-    std::size_t hash_value(std::complex<T> const&);
-
-    template <class A, class B>
-    std::size_t hash_value(std::pair<A, B> const& v)
-    {
-        std::size_t seed = 0;
-        ndnboost::hash_combine(seed, v.first);
-        ndnboost::hash_combine(seed, v.second);
-        return seed;
-    }
-
-    template <class T, class A>
-    std::size_t hash_value(std::vector<T, A> const& v)
-    {
-        return ndnboost::hash_range(v.begin(), v.end());
-    }
-
-    template <class T, class A>
-    std::size_t hash_value(std::list<T, A> const& v)
-    {
-        return ndnboost::hash_range(v.begin(), v.end());
-    }
-
-    template <class T, class A>
-    std::size_t hash_value(std::deque<T, A> const& v)
-    {
-        return ndnboost::hash_range(v.begin(), v.end());
-    }
-
-    template <class K, class C, class A>
-    std::size_t hash_value(std::set<K, C, A> const& v)
-    {
-        return ndnboost::hash_range(v.begin(), v.end());
-    }
-
-    template <class K, class C, class A>
-    std::size_t hash_value(std::multiset<K, C, A> const& v)
-    {
-        return ndnboost::hash_range(v.begin(), v.end());
-    }
-
-    template <class K, class T, class C, class A>
-    std::size_t hash_value(std::map<K, T, C, A> const& v)
-    {
-        return ndnboost::hash_range(v.begin(), v.end());
-    }
-
-    template <class K, class T, class C, class A>
-    std::size_t hash_value(std::multimap<K, T, C, A> const& v)
-    {
-        return ndnboost::hash_range(v.begin(), v.end());
-    }
-
-    template <class T>
-    std::size_t hash_value(std::complex<T> const& v)
-    {
-        ndnboost::hash<T> hasher;
-        std::size_t seed = hasher(v.imag());
-        seed ^= hasher(v.real()) + (seed<<6) + (seed>>2);
-        return seed;
-    }
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_ARRAY)
-    template <class T, std::size_t N>
-    std::size_t hash_value(std::array<T, N> const& v)
-    {
-        return ndnboost::hash_range(v.begin(), v.end());
-    }
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
-    namespace hash_detail {
-        template <std::size_t I, typename T>
-        inline typename ndnboost::enable_if_c<(I == std::tuple_size<T>::value),
-                void>::type
-            hash_combine_tuple(std::size_t&, T const&)
-        {
-        }
-
-        template <std::size_t I, typename T>
-        inline typename ndnboost::enable_if_c<(I < std::tuple_size<T>::value),
-                void>::type
-            hash_combine_tuple(std::size_t& seed, T const& v)
-        {
-            ndnboost::hash_combine(seed, std::get<I>(v));
-            ndnboost::hash_detail::hash_combine_tuple<I + 1>(seed, v);
-        }
-
-        template <typename T>
-        inline std::size_t hash_tuple(T const& v)
-        {
-            std::size_t seed = 0;
-            ndnboost::hash_detail::hash_combine_tuple<0>(seed, v);
-            return seed;
-        }
-    }
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-    template <typename... T>
-    inline std::size_t hash_value(std::tuple<T...> const& v)
-    {
-        return ndnboost::hash_detail::hash_tuple(v);
-    }
-#else
-
-    inline std::size_t hash_value(std::tuple<> const& v)
-    {
-        return ndnboost::hash_detail::hash_tuple(v);
-    }
-
-#   define NDNBOOST_HASH_TUPLE_F(z, n, _)                                      \
-    template<                                                               \
-        NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                            \
-    >                                                                       \
-    inline std::size_t hash_value(std::tuple<                               \
-        NDNBOOST_PP_ENUM_PARAMS_Z(z, n, A)                                     \
-    > const& v)                                                             \
-    {                                                                       \
-        return ndnboost::hash_detail::hash_tuple(v);                           \
-    }
-
-    NDNBOOST_PP_REPEAT_FROM_TO(1, 11, NDNBOOST_HASH_TUPLE_F, _)
-#   undef NDNBOOST_HASH_TUPLE_F
-#endif
-
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_SMART_PTR)
-    template <typename T>
-    inline std::size_t hash_value(std::shared_ptr<T> const& x) {
-        return ndnboost::hash_value(x.get());
-    }
-
-    template <typename T, typename Deleter>
-    inline std::size_t hash_value(std::unique_ptr<T, Deleter> const& x) {
-        return ndnboost::hash_value(x.get());
-    }
-#endif
-
-    //
-    // call_hash_impl
-    //
-
-    // On compilers without function template ordering, this deals with arrays.
-
-#if defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-    namespace hash_detail
-    {
-        template <bool IsArray>
-        struct call_hash_impl
-        {
-            template <class T>
-            struct inner
-            {
-                static std::size_t call(T const& v)
-                {
-                    using namespace ndnboost;
-                    return hash_value(v);
-                }
-            };
-        };
-
-        template <>
-        struct call_hash_impl<true>
-        {
-            template <class Array>
-            struct inner
-            {
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-                static std::size_t call(Array const& v)
-#else
-                static std::size_t call(Array& v)
-#endif
-                {
-                    const int size = sizeof(v) / sizeof(*v);
-                    return ndnboost::hash_range(v, v + size);
-                }
-            };
-        };
-
-        template <class T>
-        struct call_hash
-            : public call_hash_impl<ndnboost::is_array<T>::value>
-                ::NDNBOOST_NESTED_TEMPLATE inner<T>
-        {
-        };
-    }
-#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-    //
-    // ndnboost::hash
-    //
-
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-    template <class T> struct hash
-        : std::unary_function<T, std::size_t>
-    {
-#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-        std::size_t operator()(T const& val) const
-        {
-            return hash_value(val);
-        }
-#else
-        std::size_t operator()(T const& val) const
-        {
-            return hash_detail::call_hash<T>::call(val);
-        }
-#endif
-    };
-
-#if NDNBOOST_WORKAROUND(__DMC__, <= 0x848)
-    template <class T, unsigned int n> struct hash<T[n]>
-        : std::unary_function<T[n], std::size_t>
-    {
-        std::size_t operator()(const T* val) const
-        {
-            return ndnboost::hash_range(val, val+n);
-        }
-    };
-#endif
-
-#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-    // On compilers without partial specialization, ndnboost::hash<T>
-    // has already been declared to deal with pointers, so just
-    // need to supply the non-pointer version of hash_impl.
-
-    namespace hash_detail
-    {
-        template <bool IsPointer>
-        struct hash_impl;
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-
-        template <>
-        struct hash_impl<false>
-        {
-            template <class T>
-            struct inner
-                : std::unary_function<T, std::size_t>
-            {
-#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-                std::size_t operator()(T const& val) const
-                {
-                    return hash_value(val);
-                }
-#else
-                std::size_t operator()(T const& val) const
-                {
-                    return hash_detail::call_hash<T>::call(val);
-                }
-#endif
-            };
-        };
-
-#else // Visual C++ 6.5
-
-        // Visual C++ 6.5 has problems with nested member functions and
-        // applying const to const types in templates. So we get this:
-
-        template <bool IsConst>
-        struct hash_impl_msvc
-        {
-            template <class T>
-            struct inner
-                : public std::unary_function<T, std::size_t>
-            {
-                std::size_t operator()(T const& val) const
-                {
-                    return hash_detail::call_hash<T const>::call(val);
-                }
-
-                std::size_t operator()(T& val) const
-                {
-                    return hash_detail::call_hash<T>::call(val);
-                }
-            };
-        };
-
-        template <>
-        struct hash_impl_msvc<true>
-        {
-            template <class T>
-            struct inner
-                : public std::unary_function<T, std::size_t>
-            {
-                std::size_t operator()(T& val) const
-                {
-                    return hash_detail::call_hash<T>::call(val);
-                }
-            };
-        };
-        
-        template <class T>
-        struct hash_impl_msvc2
-            : public hash_impl_msvc<ndnboost::is_const<T>::value>
-                    ::NDNBOOST_NESTED_TEMPLATE inner<T> {};
-        
-        template <>
-        struct hash_impl<false>
-        {
-            template <class T>
-            struct inner : public hash_impl_msvc2<T> {};
-        };
-
-#endif // Visual C++ 6.5
-    }
-#endif  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-}
-
-#endif
diff --git a/include/ndnboost/functional/hash/hash.hpp b/include/ndnboost/functional/hash/hash.hpp
deleted file mode 100644
index 7428567..0000000
--- a/include/ndnboost/functional/hash/hash.hpp
+++ /dev/null
@@ -1,530 +0,0 @@
-
-// Copyright 2005-2009 Daniel James.
-// 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)
-
-//  Based on Peter Dimov's proposal
-//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf
-//  issue 6.18. 
-
-#if !defined(NDNBOOST_FUNCTIONAL_HASH_HASH_HPP)
-#define NDNBOOST_FUNCTIONAL_HASH_HASH_HPP
-
-#include <ndnboost/functional/hash/hash_fwd.hpp>
-#include <functional>
-#include <ndnboost/functional/hash/detail/hash_float.hpp>
-#include <string>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/type_traits/is_enum.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-
-#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#include <ndnboost/type_traits/is_pointer.hpp>
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TYPEINDEX)
-#include <typeindex>
-#endif
-
-#if NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-#define NDNBOOST_HASH_CHAR_TRAITS string_char_traits
-#else
-#define NDNBOOST_HASH_CHAR_TRAITS char_traits
-#endif
-
-namespace ndnboost
-{
-    namespace hash_detail
-    {
-        struct enable_hash_value { typedef std::size_t type; };
-
-        template <typename T> struct basic_numbers {};
-        template <typename T> struct long_numbers;
-        template <typename T> struct ulong_numbers;
-        template <typename T> struct float_numbers {};
-
-        template <> struct basic_numbers<bool> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct basic_numbers<char> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct basic_numbers<unsigned char> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct basic_numbers<signed char> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct basic_numbers<short> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct basic_numbers<unsigned short> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct basic_numbers<int> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct basic_numbers<unsigned int> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct basic_numbers<long> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct basic_numbers<unsigned long> :
-            ndnboost::hash_detail::enable_hash_value {};
-
-#if !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
-        template <> struct basic_numbers<wchar_t> :
-            ndnboost::hash_detail::enable_hash_value {};
-#endif
-
-        // long_numbers is defined like this to allow for separate
-        // specialization for long_long and int128_type, in case
-        // they conflict.
-        template <typename T> struct long_numbers2 {};
-        template <typename T> struct ulong_numbers2 {};
-        template <typename T> struct long_numbers : long_numbers2<T> {};
-        template <typename T> struct ulong_numbers : ulong_numbers2<T> {};
-
-#if !defined(NDNBOOST_NO_LONG_LONG)
-        template <> struct long_numbers<ndnboost::long_long_type> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct ulong_numbers<ndnboost::ulong_long_type> :
-            ndnboost::hash_detail::enable_hash_value {};
-#endif
-
-#if defined(NDNBOOST_HAS_INT128)
-        template <> struct long_numbers2<ndnboost::int128_type> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct ulong_numbers2<ndnboost::uint128_type> :
-            ndnboost::hash_detail::enable_hash_value {};
-#endif
-
-        template <> struct float_numbers<float> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct float_numbers<double> :
-            ndnboost::hash_detail::enable_hash_value {};
-        template <> struct float_numbers<long double> :
-            ndnboost::hash_detail::enable_hash_value {};
-    }
-
-    template <typename T>
-    typename ndnboost::hash_detail::basic_numbers<T>::type hash_value(T);
-    template <typename T>
-    typename ndnboost::hash_detail::long_numbers<T>::type hash_value(T);
-    template <typename T>
-    typename ndnboost::hash_detail::ulong_numbers<T>::type hash_value(T);
-
-    template <typename T>
-    typename ndnboost::enable_if<ndnboost::is_enum<T>, std::size_t>::type
-        hash_value(T);
-
-#if !NDNBOOST_WORKAROUND(__DMC__, <= 0x848)
-    template <class T> std::size_t hash_value(T* const&);
-#else
-    template <class T> std::size_t hash_value(T*);
-#endif
-
-#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-    template< class T, unsigned N >
-    std::size_t hash_value(const T (&x)[N]);
-
-    template< class T, unsigned N >
-    std::size_t hash_value(T (&x)[N]);
-#endif
-
-    template <class Ch, class A>
-    std::size_t hash_value(
-        std::basic_string<Ch, std::NDNBOOST_HASH_CHAR_TRAITS<Ch>, A> const&);
-
-    template <typename T>
-    typename ndnboost::hash_detail::float_numbers<T>::type hash_value(T);
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TYPEINDEX)
-    std::size_t hash_value(std::type_index);
-#endif
-
-    // Implementation
-
-    namespace hash_detail
-    {
-        template <class T>
-        inline std::size_t hash_value_signed(T val)
-        {
-             const int size_t_bits = std::numeric_limits<std::size_t>::digits;
-             // ceiling(std::numeric_limits<T>::digits / size_t_bits) - 1
-             const int length = (std::numeric_limits<T>::digits - 1)
-                 / size_t_bits;
-
-             std::size_t seed = 0;
-             T positive = val < 0 ? -1 - val : val;
-
-             // Hopefully, this loop can be unrolled.
-             for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits)
-             {
-                 seed ^= (std::size_t) (positive >> i) + (seed<<6) + (seed>>2);
-             }
-             seed ^= (std::size_t) val + (seed<<6) + (seed>>2);
-
-             return seed;
-        }
-
-        template <class T>
-        inline std::size_t hash_value_unsigned(T val)
-        {
-             const int size_t_bits = std::numeric_limits<std::size_t>::digits;
-             // ceiling(std::numeric_limits<T>::digits / size_t_bits) - 1
-             const int length = (std::numeric_limits<T>::digits - 1)
-                 / size_t_bits;
-
-             std::size_t seed = 0;
-
-             // Hopefully, this loop can be unrolled.
-             for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits)
-             {
-                 seed ^= (std::size_t) (val >> i) + (seed<<6) + (seed>>2);
-             }
-             seed ^= (std::size_t) val + (seed<<6) + (seed>>2);
-
-             return seed;
-        }
-    }
-
-    template <typename T>
-    typename ndnboost::hash_detail::basic_numbers<T>::type hash_value(T v)
-    {
-        return static_cast<std::size_t>(v);
-    }
-
-    template <typename T>
-    typename ndnboost::hash_detail::long_numbers<T>::type hash_value(T v)
-    {
-        return hash_detail::hash_value_signed(v);
-    }
-
-    template <typename T>
-    typename ndnboost::hash_detail::ulong_numbers<T>::type hash_value(T v)
-    {
-        return hash_detail::hash_value_unsigned(v);
-    }
-
-    template <typename T>
-    typename ndnboost::enable_if<ndnboost::is_enum<T>, std::size_t>::type
-        hash_value(T v)
-    {
-        return static_cast<std::size_t>(v);
-    }
-
-    // Implementation by Alberto Barbati and Dave Harris.
-#if !NDNBOOST_WORKAROUND(__DMC__, <= 0x848)
-    template <class T> std::size_t hash_value(T* const& v)
-#else
-    template <class T> std::size_t hash_value(T* v)
-#endif
-    {
-#if defined(__VMS) && __INITIAL_POINTER_SIZE == 64
-    // for some reason ptrdiff_t on OpenVMS compiler with
-    // 64 bit is not 64 bit !!!
-        std::size_t x = static_cast<std::size_t>(
-           reinterpret_cast<long long int>(v));
-#else
-        std::size_t x = static_cast<std::size_t>(
-           reinterpret_cast<std::ptrdiff_t>(v));
-#endif
-        return x + (x >> 3);
-    }
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(push)
-#if NDNBOOST_MSVC <= 1400
-#pragma warning(disable:4267) // 'argument' : conversion from 'size_t' to
-                              // 'unsigned int', possible loss of data
-                              // A misguided attempt to detect 64-bit
-                              // incompatability.
-#endif
-#endif
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    template <class T>
-    inline void hash_combine(std::size_t& seed, T& v)
-#else
-    template <class T>
-    inline void hash_combine(std::size_t& seed, T const& v)
-#endif
-    {
-        ndnboost::hash<T> hasher;
-        seed ^= hasher(v) + 0x9e3779b9 + (seed<<6) + (seed>>2);
-    }
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(pop)
-#endif
-
-    template <class It>
-    inline std::size_t hash_range(It first, It last)
-    {
-        std::size_t seed = 0;
-
-        for(; first != last; ++first)
-        {
-            hash_combine(seed, *first);
-        }
-
-        return seed;
-    }
-
-    template <class It>
-    inline void hash_range(std::size_t& seed, It first, It last)
-    {
-        for(; first != last; ++first)
-        {
-            hash_combine(seed, *first);
-        }
-    }
-
-#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
-    template <class T>
-    inline std::size_t hash_range(T* first, T* last)
-    {
-        std::size_t seed = 0;
-
-        for(; first != last; ++first)
-        {
-            ndnboost::hash<T> hasher;
-            seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2);
-        }
-
-        return seed;
-    }
-
-    template <class T>
-    inline void hash_range(std::size_t& seed, T* first, T* last)
-    {
-        for(; first != last; ++first)
-        {
-            ndnboost::hash<T> hasher;
-            seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2);
-        }
-    }
-#endif
-
-#if !defined(NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-    template< class T, unsigned N >
-    inline std::size_t hash_value(const T (&x)[N])
-    {
-        return hash_range(x, x + N);
-    }
-
-    template< class T, unsigned N >
-    inline std::size_t hash_value(T (&x)[N])
-    {
-        return hash_range(x, x + N);
-    }
-#endif
-
-    template <class Ch, class A>
-    inline std::size_t hash_value(
-        std::basic_string<Ch, std::NDNBOOST_HASH_CHAR_TRAITS<Ch>, A> const& v)
-    {
-        return hash_range(v.begin(), v.end());
-    }
-
-    template <typename T>
-    typename ndnboost::hash_detail::float_numbers<T>::type hash_value(T v)
-    {
-        return ndnboost::hash_detail::float_hash_value(v);
-    }
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TYPEINDEX)
-    inline std::size_t hash_value(std::type_index v)
-    {
-        return v.hash_code();
-    }
-#endif
-
-    //
-    // ndnboost::hash
-    //
-    
-    // Define the specializations required by the standard. The general purpose
-    // ndnboost::hash is defined later in extensions.hpp if
-    // NDNBOOST_HASH_NO_EXTENSIONS is not defined.
-    
-    // NDNBOOST_HASH_SPECIALIZE - define a specialization for a type which is
-    // passed by copy.
-    //
-    // NDNBOOST_HASH_SPECIALIZE_REF - define a specialization for a type which is
-    // passed by copy.
-    //
-    // These are undefined later.
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-#define NDNBOOST_HASH_SPECIALIZE(type) \
-    template <> struct hash<type> \
-         : public std::unary_function<type, std::size_t> \
-    { \
-        std::size_t operator()(type v) const \
-        { \
-            return ndnboost::hash_value(v); \
-        } \
-    };
-
-#define NDNBOOST_HASH_SPECIALIZE_REF(type) \
-    template <> struct hash<type> \
-         : public std::unary_function<type, std::size_t> \
-    { \
-        std::size_t operator()(type const& v) const \
-        { \
-            return ndnboost::hash_value(v); \
-        } \
-    };
-#else
-#define NDNBOOST_HASH_SPECIALIZE(type) \
-    template <> struct hash<type> \
-         : public std::unary_function<type, std::size_t> \
-    { \
-        std::size_t operator()(type v) const \
-        { \
-            return ndnboost::hash_value(v); \
-        } \
-    }; \
-    \
-    template <> struct hash<const type> \
-         : public std::unary_function<const type, std::size_t> \
-    { \
-        std::size_t operator()(const type v) const \
-        { \
-            return ndnboost::hash_value(v); \
-        } \
-    };
-
-#define NDNBOOST_HASH_SPECIALIZE_REF(type) \
-    template <> struct hash<type> \
-         : public std::unary_function<type, std::size_t> \
-    { \
-        std::size_t operator()(type const& v) const \
-        { \
-            return ndnboost::hash_value(v); \
-        } \
-    }; \
-    \
-    template <> struct hash<const type> \
-         : public std::unary_function<const type, std::size_t> \
-    { \
-        std::size_t operator()(type const& v) const \
-        { \
-            return ndnboost::hash_value(v); \
-        } \
-    };
-#endif
-
-    NDNBOOST_HASH_SPECIALIZE(bool)
-    NDNBOOST_HASH_SPECIALIZE(char)
-    NDNBOOST_HASH_SPECIALIZE(signed char)
-    NDNBOOST_HASH_SPECIALIZE(unsigned char)
-#if !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
-    NDNBOOST_HASH_SPECIALIZE(wchar_t)
-#endif
-    NDNBOOST_HASH_SPECIALIZE(short)
-    NDNBOOST_HASH_SPECIALIZE(unsigned short)
-    NDNBOOST_HASH_SPECIALIZE(int)
-    NDNBOOST_HASH_SPECIALIZE(unsigned int)
-    NDNBOOST_HASH_SPECIALIZE(long)
-    NDNBOOST_HASH_SPECIALIZE(unsigned long)
-
-    NDNBOOST_HASH_SPECIALIZE(float)
-    NDNBOOST_HASH_SPECIALIZE(double)
-    NDNBOOST_HASH_SPECIALIZE(long double)
-
-    NDNBOOST_HASH_SPECIALIZE_REF(std::string)
-#if !defined(NDNBOOST_NO_STD_WSTRING)
-    NDNBOOST_HASH_SPECIALIZE_REF(std::wstring)
-#endif
-
-#if !defined(NDNBOOST_NO_LONG_LONG)
-    NDNBOOST_HASH_SPECIALIZE(ndnboost::long_long_type)
-    NDNBOOST_HASH_SPECIALIZE(ndnboost::ulong_long_type)
-#endif
-
-#if defined(NDNBOOST_HAS_INT128)
-    NDNBOOST_HASH_SPECIALIZE(ndnboost::int128_type)
-    NDNBOOST_HASH_SPECIALIZE(ndnboost::uint128_type)
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TYPEINDEX)
-    NDNBOOST_HASH_SPECIALIZE(std::type_index)
-#endif
-
-#undef NDNBOOST_HASH_SPECIALIZE
-#undef NDNBOOST_HASH_SPECIALIZE_REF
-
-// Specializing ndnboost::hash for pointers.
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-    template <class T>
-    struct hash<T*>
-        : public std::unary_function<T*, std::size_t>
-    {
-        std::size_t operator()(T* v) const
-        {
-#if !NDNBOOST_WORKAROUND(__SUNPRO_CC, <= 0x590)
-            return ndnboost::hash_value(v);
-#else
-            std::size_t x = static_cast<std::size_t>(
-                reinterpret_cast<std::ptrdiff_t>(v));
-
-            return x + (x >> 3);
-#endif
-        }
-    };
-
-#else
-
-    // For compilers without partial specialization, we define a
-    // ndnboost::hash for all remaining types. But hash_impl is only defined
-    // for pointers in 'extensions.hpp' - so when NDNBOOST_HASH_NO_EXTENSIONS
-    // is defined there will still be a compile error for types not supported
-    // in the standard.
-
-    namespace hash_detail
-    {
-        template <bool IsPointer>
-        struct hash_impl;
-
-        template <>
-        struct hash_impl<true>
-        {
-            template <class T>
-            struct inner
-                : public std::unary_function<T, std::size_t>
-            {
-                std::size_t operator()(T val) const
-                {
-#if !NDNBOOST_WORKAROUND(__SUNPRO_CC, <= 590)
-                    return ndnboost::hash_value(val);
-#else
-                    std::size_t x = static_cast<std::size_t>(
-                        reinterpret_cast<std::ptrdiff_t>(val));
-
-                    return x + (x >> 3);
-#endif
-                }
-            };
-        };
-    }
-
-    template <class T> struct hash
-        : public ndnboost::hash_detail::hash_impl<ndnboost::is_pointer<T>::value>
-            ::NDNBOOST_NESTED_TEMPLATE inner<T>
-    {
-    };
-
-#endif
-}
-
-#undef NDNBOOST_HASH_CHAR_TRAITS
-
-#endif // NDNBOOST_FUNCTIONAL_HASH_HASH_HPP
-
-// Include this outside of the include guards in case the file is included
-// twice - once with NDNBOOST_HASH_NO_EXTENSIONS defined, and then with it
-// undefined.
-
-#if !defined(NDNBOOST_HASH_NO_EXTENSIONS) \
-    && !defined(NDNBOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP)
-#include <ndnboost/functional/hash/extensions.hpp>
-#endif
diff --git a/include/ndnboost/functional/hash/hash_fwd.hpp b/include/ndnboost/functional/hash/hash_fwd.hpp
deleted file mode 100644
index 10d2715..0000000
--- a/include/ndnboost/functional/hash/hash_fwd.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright 2005-2009 Daniel James.
-// 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)
-
-//  Based on Peter Dimov's proposal
-//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf
-//  issue 6.18. 
-
-#if !defined(NDNBOOST_FUNCTIONAL_HASH_FWD_HPP)
-#define NDNBOOST_FUNCTIONAL_HASH_FWD_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>
-#include <cstddef>
-#include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost
-{
-    template <class T> struct hash;
-
-#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);
-#endif
-
-    template <class It> std::size_t hash_range(It, It);
-    template <class It> void hash_range(std::size_t&, It, It);
-
-#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
-}
-
-#endif
diff --git a/include/ndnboost/functional/hash_fwd.hpp b/include/ndnboost/functional/hash_fwd.hpp
deleted file mode 100644
index db93d0b..0000000
--- a/include/ndnboost/functional/hash_fwd.hpp
+++ /dev/null
@@ -1,7 +0,0 @@
-
-// Copyright 2005-2009 Daniel James.
-// 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)
-
-#include <ndnboost/functional/hash/hash_fwd.hpp>
-
diff --git a/include/ndnboost/get_pointer.hpp b/include/ndnboost/get_pointer.hpp
deleted file mode 100644
index 34443c3..0000000
--- a/include/ndnboost/get_pointer.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright Peter Dimov and David Abrahams 2002.
-// 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 GET_POINTER_NDNBOOST_DWA20021219_HPP
-#define GET_POINTER_NDNBOOST_DWA20021219_HPP
-
-#include <ndnboost/config.hpp>
-
-// In order to avoid circular dependencies with Boost.TR1
-// we make sure that our include of <memory> doesn't try to
-// pull in the TR1 headers: that's why we use this header 
-// rather than including <memory> directly:
-#include <ndnboost/config/no_tr1/memory.hpp>  // std::auto_ptr
-
-namespace ndnboost { 
-
-// get_pointer(p) extracts a ->* capable pointer from p
-
-template<class T> T * get_pointer(T * p)
-{
-    return p;
-}
-
-// get_pointer(shared_ptr<T> const & p) has been moved to shared_ptr.hpp
-
-template<class T> T * get_pointer(std::auto_ptr<T> const& p)
-{
-    return p.get();
-}
-
-#if !defined( NDNBOOST_NO_CXX11_SMART_PTR )
-
-template<class T> T * get_pointer( std::unique_ptr<T> const& p )
-{
-    return p.get();
-}
-
-template<class T> T * get_pointer( std::shared_ptr<T> const& p )
-{
-    return p.get();
-}
-
-#endif
-
-} // namespace ndnboost
-
-#endif // GET_POINTER_NDNBOOST_DWA20021219_HPP
diff --git a/include/ndnboost/indirect_reference.hpp b/include/ndnboost/indirect_reference.hpp
deleted file mode 100644
index c68b2f8..0000000
--- a/include/ndnboost/indirect_reference.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef INDIRECT_REFERENCE_NDNBOOST_DWA200415_HPP
-# define INDIRECT_REFERENCE_NDNBOOST_DWA200415_HPP
-
-//
-// Copyright David Abrahams 2004. Use, modification and distribution is
-// subject to 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)
-//
-// typename indirect_reference<P>::type provides the type of *p.
-//
-// http://www.boost.org/libs/iterator/doc/pointee.html
-//
-
-# include <ndnboost/detail/is_incrementable.hpp>
-# include <ndnboost/iterator/iterator_traits.hpp>
-# include <ndnboost/type_traits/remove_cv.hpp>
-# include <ndnboost/mpl/eval_if.hpp>
-# include <ndnboost/pointee.hpp>
-
-namespace ndnboost { 
-
-namespace detail
-{
-  template <class P>
-  struct smart_ptr_reference
-  {
-      typedef typename ndnboost::pointee<P>::type& type;
-  };
-}
-
-template <class P>
-struct indirect_reference
-  : mpl::eval_if<
-        detail::is_incrementable<P>
-      , iterator_reference<P>
-      , detail::smart_ptr_reference<P>
-    >
-{
-};
-  
-} // namespace ndnboost
-
-#endif // INDIRECT_REFERENCE_NDNBOOST_DWA200415_HPP
diff --git a/include/ndnboost/integer.hpp b/include/ndnboost/integer.hpp
deleted file mode 100644
index b49c459..0000000
--- a/include/ndnboost/integer.hpp
+++ /dev/null
@@ -1,261 +0,0 @@
-//  boost integer.hpp header file  -------------------------------------------//
-
-//  Copyright Beman Dawes and Daryle Walker 1999.  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)
-
-//  See http://www.boost.org/libs/integer for documentation.
-
-//  Revision History
-//   22 Sep 01  Added value-based integer templates. (Daryle Walker)
-//   01 Apr 01  Modified to use new <ndnboost/limits.hpp> header. (John Maddock)
-//   30 Jul 00  Add typename syntax fix (Jens Maurer)
-//   28 Aug 99  Initial version
-
-#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 NDNBOOST_NO_INTEGRAL_INT64_T
-#include <ndnboost/static_assert.hpp>
-
-//
-// We simply cannot include this header on gcc without getting copious warnings of the kind:
-//
-// ndnboost/integer.hpp:77:30: warning: use of C99 long long integer constant
-//
-// And yet there is no other reasonable implementation, so we declare this a system header
-// to suppress these warnings.
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#pragma GCC system_header
-#endif
-
-namespace ndnboost
-{
-
-  //  Helper templates  ------------------------------------------------------//
-
-  //  fast integers from least integers
-  //  int_fast_t<> works correctly for unsigned too, in spite of the name.
-  template< typename LeastInt >
-  struct int_fast_t 
-  { 
-     typedef LeastInt fast; 
-     typedef fast     type;
-  }; // imps may specialize
-
-  namespace detail{
-
-  //  convert category to type 
-  template< int Category > struct int_least_helper {}; // default is empty
-  template< int Category > struct uint_least_helper {}; // default is empty
-
-  //  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 NDNBOOST_HAS_LONG_LONG
-  template<> struct int_least_helper<1> { typedef ndnboost::long_long_type least; };
-#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 NDNBOOST_HAS_LONG_LONG
-  template<> struct uint_least_helper<1> { typedef ndnboost::ulong_long_type least; };
-#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; };
-  template<> struct uint_least_helper<3> { typedef unsigned int least; };
-  template<> struct uint_least_helper<4> { typedef unsigned short least; };
-  template<> struct uint_least_helper<5> { typedef unsigned char least; };
-
-  template <int Bits>
-  struct exact_signed_base_helper{};
-  template <int Bits>
-  struct exact_unsigned_base_helper{};
-
-  template <> struct exact_signed_base_helper<sizeof(signed char)* CHAR_BIT> { typedef signed char exact; };
-  template <> struct exact_unsigned_base_helper<sizeof(unsigned char)* CHAR_BIT> { typedef unsigned char exact; };
-#if USHRT_MAX != UCHAR_MAX
-  template <> struct exact_signed_base_helper<sizeof(short)* CHAR_BIT> { typedef short exact; };
-  template <> struct exact_unsigned_base_helper<sizeof(unsigned short)* CHAR_BIT> { typedef unsigned short exact; };
-#endif
-#if UINT_MAX != USHRT_MAX
-  template <> struct exact_signed_base_helper<sizeof(int)* CHAR_BIT> { typedef int exact; };
-  template <> struct exact_unsigned_base_helper<sizeof(unsigned int)* CHAR_BIT> { typedef unsigned int exact; };
-#endif
-#if ULONG_MAX != UINT_MAX
-  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(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)) ||\
-    (defined(_ULLONG_MAX) && (_ULLONG_MAX != ULONG_MAX)))
-  template <> struct exact_signed_base_helper<sizeof(ndnboost::long_long_type)* CHAR_BIT> { typedef ndnboost::long_long_type exact; };
-  template <> struct exact_unsigned_base_helper<sizeof(ndnboost::ulong_long_type)* CHAR_BIT> { typedef ndnboost::ulong_long_type exact; };
-#endif
-
-
-  } // namespace detail
-
-  //  integer templates specifying number of bits  ---------------------------//
-
-  //  signed
-  template< int Bits >   // bits (including sign) required
-  struct int_t : public detail::exact_signed_base_helper<Bits>
-  {
-      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 NDNBOOST_HAS_LONG_LONG
-          (Bits <= (int)(sizeof(ndnboost::long_long_type) * CHAR_BIT)) +
-#else
-           1 +
-#endif
-          (Bits-1 <= ::std::numeric_limits<long>::digits) +
-          (Bits-1 <= ::std::numeric_limits<int>::digits) +
-          (Bits-1 <= ::std::numeric_limits<short>::digits) +
-          (Bits-1 <= ::std::numeric_limits<signed char>::digits)
-        >::least  least;
-      typedef typename int_fast_t<least>::type  fast;
-  };
-
-  //  unsigned
-  template< int Bits >   // bits required
-  struct uint_t : public detail::exact_unsigned_base_helper<Bits>
-  {
-     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(NDNBOOST_NO_INTEGRAL_INT64_T)
-     // It's really not clear why this workaround should be needed... shrug I guess!  JM
-     NDNBOOST_STATIC_CONSTANT(int, s = 
-           6 +
-          (Bits <= ::std::numeric_limits<unsigned long>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned int>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned short>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned char>::digits));
-     typedef typename detail::int_least_helper< ::ndnboost::uint_t<Bits>::s>::least least;
-#else
-      typedef typename detail::uint_least_helper
-        < 
-#ifdef NDNBOOST_HAS_LONG_LONG
-          (Bits <= (int)(sizeof(ndnboost::long_long_type) * CHAR_BIT)) +
-#else
-           1 +
-#endif
-          (Bits <= ::std::numeric_limits<unsigned long>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned int>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned short>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned char>::digits)
-        >::least  least;
-#endif
-      typedef typename int_fast_t<least>::type  fast;
-      // int_fast_t<> works correctly for unsigned too, in spite of the name.
-  };
-
-  //  integer templates specifying extreme value  ----------------------------//
-
-  //  signed
-#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 
-  {
-      typedef typename detail::int_least_helper
-        <
-#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
-          (MaxValue <= ::ndnboost::integer_traits<ndnboost::long_long_type>::const_max) +
-#else
-           1 +
-#endif
-          (MaxValue <= ::ndnboost::integer_traits<long>::const_max) +
-          (MaxValue <= ::ndnboost::integer_traits<int>::const_max) +
-          (MaxValue <= ::ndnboost::integer_traits<short>::const_max) +
-          (MaxValue <= ::ndnboost::integer_traits<signed char>::const_max)
-        >::least  least;
-      typedef typename int_fast_t<least>::type  fast;
-  };
-
-#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 
-  {
-      typedef typename detail::int_least_helper
-        <
-#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
-          (MinValue >= ::ndnboost::integer_traits<ndnboost::long_long_type>::const_min) +
-#else
-           1 +
-#endif
-          (MinValue >= ::ndnboost::integer_traits<long>::const_min) +
-          (MinValue >= ::ndnboost::integer_traits<int>::const_min) +
-          (MinValue >= ::ndnboost::integer_traits<short>::const_min) +
-          (MinValue >= ::ndnboost::integer_traits<signed char>::const_min)
-        >::least  least;
-      typedef typename int_fast_t<least>::type  fast;
-  };
-
-  //  unsigned
-#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
-#endif
-  struct uint_value_t 
-  {
-#if (defined(__BORLANDC__) || defined(__CODEGEAR__))
-     // It's really not clear why this workaround should be needed... shrug I guess!  JM
-#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 // 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) +
-          (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::uint_least_helper< ::ndnboost::uint_value_t<MaxValue>::which>::least least;
-#endif // NDNBOOST_NO_INTEGRAL_INT64_T
-#else
-      typedef typename detail::uint_least_helper
-        < 
-#if !defined(NDNBOOST_NO_INTEGRAL_INT64_T) && defined(NDNBOOST_HAS_LONG_LONG)
-          (MaxValue <= ::ndnboost::integer_traits<ndnboost::ulong_long_type>::const_max) +
-#else
-           1 +
-#endif
-          (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)
-        >::least  least;
-#endif
-      typedef typename int_fast_t<least>::type  fast;
-  };
-
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_INTEGER_HPP
diff --git a/include/ndnboost/integer/integer_mask.hpp b/include/ndnboost/integer/integer_mask.hpp
deleted file mode 100644
index 9583ea6..0000000
--- a/include/ndnboost/integer/integer_mask.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//  Boost integer/integer_mask.hpp header file  ------------------------------//
-
-//  (C) Copyright Daryle Walker 2001.
-//  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)
-
-//  See http://www.boost.org for updates, documentation, and revision history. 
-
-#ifndef NDNBOOST_INTEGER_INTEGER_MASK_HPP
-#define NDNBOOST_INTEGER_INTEGER_MASK_HPP
-
-#include <ndnboost/integer_fwd.hpp>  // self include
-
-#include <ndnboost/config.hpp>   // for NDNBOOST_STATIC_CONSTANT
-#include <ndnboost/integer.hpp>  // for ndnboost::uint_t
-
-#include <climits>  // for UCHAR_MAX, etc.
-#include <cstddef>  // for std::size_t
-
-#include <ndnboost/limits.hpp>  // for std::numeric_limits
-
-//
-// We simply cannot include this header on gcc without getting copious warnings of the kind:
-//
-// ndnboost/integer/integer_mask.hpp:93:35: warning: use of C99 long long integer constant
-//
-// And yet there is no other reasonable implementation, so we declare this a system header
-// to suppress these warnings.
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#pragma GCC system_header
-#endif
-
-namespace ndnboost
-{
-
-
-//  Specified single-bit mask class declaration  -----------------------------//
-//  (Lowest bit starts counting at 0.)
-
-template < std::size_t Bit >
-struct high_bit_mask_t
-{
-    typedef typename uint_t<(Bit + 1)>::least  least;
-    typedef typename uint_t<(Bit + 1)>::fast   fast;
-
-    NDNBOOST_STATIC_CONSTANT( least, high_bit = (least( 1u ) << Bit) );
-    NDNBOOST_STATIC_CONSTANT( fast, high_bit_fast = (fast( 1u ) << Bit) );
-
-    NDNBOOST_STATIC_CONSTANT( std::size_t, bit_position = Bit );
-
-};  // ndnboost::high_bit_mask_t
-
-
-//  Specified bit-block mask class declaration  ------------------------------//
-//  Makes masks for the lowest N bits
-//  (Specializations are needed when N fills up a type.)
-
-template < std::size_t Bits >
-struct low_bits_mask_t
-{
-    typedef typename uint_t<Bits>::least  least;
-    typedef typename uint_t<Bits>::fast   fast;
-
-    NDNBOOST_STATIC_CONSTANT( least, sig_bits = (~( ~(least( 0u )) << Bits )) );
-    NDNBOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );
-
-    NDNBOOST_STATIC_CONSTANT( std::size_t, bit_count = Bits );
-
-};  // ndnboost::low_bits_mask_t
-
-
-#define NDNBOOST_LOW_BITS_MASK_SPECIALIZE( Type )                                  \
-  template <  >  struct low_bits_mask_t< std::numeric_limits<Type>::digits >  { \
-      typedef std::numeric_limits<Type>           limits_type;                  \
-      typedef uint_t<limits_type::digits>::least  least;                        \
-      typedef uint_t<limits_type::digits>::fast   fast;                         \
-      NDNBOOST_STATIC_CONSTANT( least, sig_bits = (~( least(0u) )) );              \
-      NDNBOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );            \
-      NDNBOOST_STATIC_CONSTANT( std::size_t, bit_count = limits_type::digits );    \
-  }
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4245)  // 'initializing' : conversion from 'int' to 'const ndnboost::low_bits_mask_t<8>::least', signed/unsigned mismatch
-#endif
-
-NDNBOOST_LOW_BITS_MASK_SPECIALIZE( unsigned char );
-
-#if USHRT_MAX > UCHAR_MAX
-NDNBOOST_LOW_BITS_MASK_SPECIALIZE( unsigned short );
-#endif
-
-#if UINT_MAX > USHRT_MAX
-NDNBOOST_LOW_BITS_MASK_SPECIALIZE( unsigned int );
-#endif
-
-#if ULONG_MAX > UINT_MAX
-NDNBOOST_LOW_BITS_MASK_SPECIALIZE( unsigned long );
-#endif
-
-#if defined(NDNBOOST_HAS_LONG_LONG)
-    #if ((defined(ULLONG_MAX) && (ULLONG_MAX > ULONG_MAX)) ||\
-        (defined(ULONG_LONG_MAX) && (ULONG_LONG_MAX > ULONG_MAX)) ||\
-        (defined(ULONGLONG_MAX) && (ULONGLONG_MAX > ULONG_MAX)) ||\
-        (defined(_ULLONG_MAX) && (_ULLONG_MAX > ULONG_MAX)))
-    NDNBOOST_LOW_BITS_MASK_SPECIALIZE( ndnboost::ulong_long_type );
-    #endif
-#elif defined(NDNBOOST_HAS_MS_INT64)
-    #if 18446744073709551615ui64 > ULONG_MAX
-    NDNBOOST_LOW_BITS_MASK_SPECIALIZE( unsigned __int64 );
-    #endif
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#undef NDNBOOST_LOW_BITS_MASK_SPECIALIZE
-
-
-}  // namespace ndnboost
-
-
-#endif  // NDNBOOST_INTEGER_INTEGER_MASK_HPP
diff --git a/include/ndnboost/integer/static_log2.hpp b/include/ndnboost/integer/static_log2.hpp
deleted file mode 100644
index 5140f37..0000000
--- a/include/ndnboost/integer/static_log2.hpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// -------------- Boost static_log2.hpp header file  ----------------------- //
-//
-//                 Copyright (C) 2001 Daryle Walker.
-//                 Copyright (C) 2003 Vesa Karvonen.
-//                 Copyright (C) 2003 Gennaro Prota.
-//
-//     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)
-//
-//         ---------------------------------------------------
-//       See http://www.boost.org/libs/integer for documentation.
-// ------------------------------------------------------------------------- //
-
-
-#ifndef NDNBOOST_INTEGER_STATIC_LOG2_HPP
-#define NDNBOOST_INTEGER_STATIC_LOG2_HPP
-
-#include "ndnboost/integer_fwd.hpp" // for ndnboost::intmax_t
-
-namespace ndnboost {
-
- namespace detail {
-
-     namespace static_log2_impl {
-
-     // choose_initial_n<>
-     //
-     // Recursively doubles its integer argument, until it
-     // becomes >= of the "width" (C99, 6.2.6.2p4) of
-     // static_log2_argument_type.
-     //
-     // Used to get the maximum power of two less then the width.
-     //
-     // Example: if on your platform argument_type has 48 value
-     //          bits it yields n=32.
-     //
-     // It's easy to prove that, starting from such a value
-     // of n, the core algorithm works correctly for any width
-     // of static_log2_argument_type and that recursion always
-     // terminates with x = 1 and n = 0 (see the algorithm's
-     // invariant).
-
-     typedef ndnboost::static_log2_argument_type argument_type;
-     typedef ndnboost::static_log2_result_type result_type;
-
-     template <result_type n>
-     struct choose_initial_n {
-
-         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
-         );
-
-     };
-
-     template <>
-     struct choose_initial_n<0> {
-         NDNBOOST_STATIC_CONSTANT(result_type, value = 0);
-     };
-
-
-
-     // start computing from n_zero - must be a power of two
-     const result_type n_zero = 16;
-     const result_type initial_n = choose_initial_n<n_zero>::value;
-
-     // static_log2_impl<>
-     //
-     // * Invariant:
-     //                 2n
-     //  1 <= x && x < 2    at the start of each recursion
-     //                     (see also choose_initial_n<>)
-     //
-     // * Type requirements:
-     //
-     //   argument_type maybe any unsigned type with at least n_zero + 1
-     //   value bits. (Note: If larger types will be standardized -e.g.
-     //   unsigned long long- then the argument_type typedef can be
-     //   changed without affecting the rest of the code.)
-     //
-
-     template <argument_type x, result_type n = initial_n>
-     struct static_log2_impl {
-
-         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)
-         );
-
-     };
-
-     template <>
-     struct static_log2_impl<1, 0> {
-        NDNBOOST_STATIC_CONSTANT(result_type, value = 0);
-     };
-
-     }
- } // detail
-
-
-
- // --------------------------------------
- // static_log2<x>
- // ----------------------------------------
-
- template <static_log2_argument_type x>
- struct static_log2 {
-
-     NDNBOOST_STATIC_CONSTANT(
-         static_log2_result_type,
-         value = detail::static_log2_impl::static_log2_impl<x>::value
-     );
-
- };
-
-
- template <>
- struct static_log2<0> { };
-
-}
-
-
-
-#endif // include guard
diff --git a/include/ndnboost/integer_fwd.hpp b/include/ndnboost/integer_fwd.hpp
deleted file mode 100644
index 16c6e65..0000000
--- a/include/ndnboost/integer_fwd.hpp
+++ /dev/null
@@ -1,164 +0,0 @@
-//  Boost integer_fwd.hpp header file  ---------------------------------------//
-
-//  (C) Copyright Dave Abrahams and Daryle Walker 2001. 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)
-
-//  See http://www.boost.org/libs/integer for documentation.
-
-#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 NDNBOOST_NO_INTRINSIC_WCHAR_T
-#include <ndnboost/limits.hpp>  // for std::numeric_limits
-#include <ndnboost/cstdint.hpp>  // For intmax_t
-
-
-namespace ndnboost
-{
-
-#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;
-     typedef unsigned long static_min_max_unsigned_type;
-#else
-     typedef ndnboost::uintmax_t static_min_max_unsigned_type;
-     typedef ndnboost::intmax_t  static_min_max_signed_type;
-     typedef ndnboost::uintmax_t static_log2_argument_type;
-     typedef int              static_log2_result_type;
-#endif
-
-//  From <ndnboost/cstdint.hpp>  ------------------------------------------------//
-
-// Only has typedefs or using statements, with #conditionals
-
-
-//  From <ndnboost/integer_traits.hpp>  -----------------------------------------//
-
-template < class T >
-    class integer_traits;
-
-template <  >
-    class integer_traits< bool >;
-
-template <  >
-    class integer_traits< char >;
-
-template <  >
-    class integer_traits< signed char >;
-
-template <  >
-    class integer_traits< unsigned char >;
-
-#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
-template <  >
-    class integer_traits< wchar_t >;
-#endif
-
-template <  >
-    class integer_traits< short >;
-
-template <  >
-    class integer_traits< unsigned short >;
-
-template <  >
-    class integer_traits< int >;
-
-template <  >
-    class integer_traits< unsigned int >;
-
-template <  >
-    class integer_traits< long >;
-
-template <  >
-    class integer_traits< unsigned 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(NDNBOOST_NO_INTEGRAL_INT64_T) && !defined(NDNBOOST_NO_INT64_T) && defined(NDNBOOST_HAS_MS_INT64)
-template <  >
-class integer_traits<__int64>;
-
-template <  >
-class integer_traits<unsigned __int64>;
-#endif
-
-
-//  From <ndnboost/integer.hpp>  ------------------------------------------------//
-
-template < typename LeastInt >
-    struct int_fast_t;
-
-template< int Bits >
-    struct int_t;
-
-template< int Bits >
-    struct uint_t;
-
-#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(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(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
-#endif
-    struct uint_value_t;
-
-
-//  From <ndnboost/integer/integer_mask.hpp>  -----------------------------------//
-
-template < std::size_t Bit >
-    struct high_bit_mask_t;
-
-template < std::size_t Bits >
-    struct low_bits_mask_t;
-
-template <  >
-    struct low_bits_mask_t< ::std::numeric_limits<unsigned char>::digits >;
-
-//  From <ndnboost/integer/static_log2.hpp>  ------------------------------------//
-
-template <static_log2_argument_type Value >
-    struct static_log2;
-
-template <> struct static_log2<0u>;
-
-
-//  From <ndnboost/integer/static_min_max.hpp>  ---------------------------------//
-
-template <static_min_max_signed_type Value1, static_min_max_signed_type Value2>
-    struct static_signed_min;
-
-template <static_min_max_signed_type Value1, static_min_max_signed_type Value2>
-    struct static_signed_max;
-
-template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
-    struct static_unsigned_min;
-
-template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
-    struct static_unsigned_max;
-
-}  // namespace ndnboost
-
-
-#endif  // NDNBOOST_INTEGER_FWD_HPP
diff --git a/include/ndnboost/integer_traits.hpp b/include/ndnboost/integer_traits.hpp
deleted file mode 100644
index f8a6afd..0000000
--- a/include/ndnboost/integer_traits.hpp
+++ /dev/null
@@ -1,261 +0,0 @@
-/* boost integer_traits.hpp header file
- *
- * Copyright Jens Maurer 2000
- * 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)
- *
- * $Id: integer_traits.hpp 83381 2013-03-09 22:55:05Z eric_niebler $
- *
- * Idea by Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers
- */
-
-//  See http://www.boost.org/libs/integer for documentation.
-
-
-#ifndef NDNBOOST_INTEGER_TRAITS_HPP
-#define NDNBOOST_INTEGER_TRAITS_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/limits.hpp>
-
-// These are an implementation detail and not part of the interface
-#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(NDNBOOST_NO_INTRINSIC_WCHAR_T) && (!defined(NDNBOOST_NO_CWCHAR) || defined(sun) || defined(__sun) || defined(__QNX__))
-#include <wchar.h>
-#endif
-
-//
-// We simply cannot include this header on gcc without getting copious warnings of the kind:
-//
-// ../../../boost/integer_traits.hpp:164:66: warning: use of C99 long long integer constant
-//
-// And yet there is no other reasonable implementation, so we declare this a system header
-// to suppress these warnings.
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#pragma GCC system_header
-#endif
-
-namespace ndnboost {
-template<class T>
-class integer_traits : public std::numeric_limits<T>
-{
-public:
-  NDNBOOST_STATIC_CONSTANT(bool, is_integral = false);
-};
-
-namespace detail {
-template<class T, T min_val, T max_val>
-class integer_traits_base
-{
-public:
-  NDNBOOST_STATIC_CONSTANT(bool, is_integral = true);
-  NDNBOOST_STATIC_CONSTANT(T, const_min = min_val);
-  NDNBOOST_STATIC_CONSTANT(T, const_max = max_val);
-};
-
-#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;
-
-template<class T, T min_val, T max_val>
-const T integer_traits_base<T, min_val, max_val>::const_min;
-
-template<class T, T min_val, T max_val>
-const T integer_traits_base<T, min_val, max_val>::const_max;
-#endif
-
-} // namespace detail
-
-template<>
-class integer_traits<bool>
-  : public std::numeric_limits<bool>,
-    public detail::integer_traits_base<bool, false, true>
-{ };
-
-template<>
-class integer_traits<char>
-  : public std::numeric_limits<char>,
-    public detail::integer_traits_base<char, CHAR_MIN, CHAR_MAX>
-{ };
-
-template<>
-class integer_traits<signed char>
-  : public std::numeric_limits<signed char>,
-    public detail::integer_traits_base<signed char, SCHAR_MIN, SCHAR_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned char>
-  : public std::numeric_limits<unsigned char>,
-    public detail::integer_traits_base<unsigned char, 0, UCHAR_MAX>
-{ };
-
-#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
-template<>
-class integer_traits<wchar_t>
-  : public std::numeric_limits<wchar_t>,
-    // Don't trust WCHAR_MIN and WCHAR_MAX with Mac OS X's native
-    // library: they are wrong!
-#if defined(WCHAR_MIN) && defined(WCHAR_MAX) && !defined(__APPLE__)
-    public detail::integer_traits_base<wchar_t, WCHAR_MIN, WCHAR_MAX>
-#elif defined(__BORLANDC__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__BEOS__) && defined(__GNUC__))
-    // No WCHAR_MIN and WCHAR_MAX, whar_t is short and unsigned:
-    public detail::integer_traits_base<wchar_t, 0, 0xffff>
-#elif (defined(__sgi) && (!defined(__SGI_STL_PORT) || __SGI_STL_PORT < 0x400))\
-    || (defined __APPLE__)\
-    || (defined(__OpenBSD__) && defined(__GNUC__))\
-    || (defined(__NetBSD__) && defined(__GNUC__))\
-    || (defined(__FreeBSD__) && defined(__GNUC__))\
-    || (defined(__DragonFly__) && defined(__GNUC__))\
-    || (defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 3) && !defined(__SGI_STL_PORT))
-    // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as int.
-    //  - SGI MIPSpro with native library
-    //  - gcc 3.x on HP-UX
-    //  - Mac OS X with native library
-    //  - gcc on FreeBSD, OpenBSD and NetBSD
-    public detail::integer_traits_base<wchar_t, INT_MIN, INT_MAX>
-#elif defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 2) && !defined(__SGI_STL_PORT)
-    // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as unsigned int.
-    //  - gcc 2.95.x on HP-UX
-    // (also, std::numeric_limits<wchar_t> appears to return the wrong values).
-    public detail::integer_traits_base<wchar_t, 0, UINT_MAX>
-#else
-#error No WCHAR_MIN and WCHAR_MAX present, please adjust integer_traits<> for your compiler.
-#endif
-{ };
-#endif // NDNBOOST_NO_INTRINSIC_WCHAR_T
-
-template<>
-class integer_traits<short>
-  : public std::numeric_limits<short>,
-    public detail::integer_traits_base<short, SHRT_MIN, SHRT_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned short>
-  : public std::numeric_limits<unsigned short>,
-    public detail::integer_traits_base<unsigned short, 0, USHRT_MAX>
-{ };
-
-template<>
-class integer_traits<int>
-  : public std::numeric_limits<int>,
-    public detail::integer_traits_base<int, INT_MIN, INT_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned int>
-  : public std::numeric_limits<unsigned int>,
-    public detail::integer_traits_base<unsigned int, 0, UINT_MAX>
-{ };
-
-template<>
-class integer_traits<long>
-  : public std::numeric_limits<long>,
-    public detail::integer_traits_base<long, LONG_MIN, LONG_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned long>
-  : public std::numeric_limits<unsigned long>,
-    public detail::integer_traits_base<unsigned long, 0, ULONG_MAX>
-{ };
-
-#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>
-  : public std::numeric_limits< ::ndnboost::long_long_type>,
-    public detail::integer_traits_base< ::ndnboost::long_long_type, LLONG_MIN, LLONG_MAX>
-{ };
-
-template<>
-class integer_traits< ::ndnboost::ulong_long_type>
-  : public std::numeric_limits< ::ndnboost::ulong_long_type>,
-    public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, ULLONG_MAX>
-{ };
-
-#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>{ };
-template<>
-class integer_traits< ::ndnboost::ulong_long_type>
-  : public std::numeric_limits< ::ndnboost::ulong_long_type>,
-    public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, ULONG_LONG_MAX>
-{ };
-
-#elif defined(ULONGLONG_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, LONGLONG_MIN, LONGLONG_MAX>
-{ };
-
-template<>
-class integer_traits< ::ndnboost::ulong_long_type>
-  : public std::numeric_limits< ::ndnboost::ulong_long_type>,
-    public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, ULONGLONG_MAX>
-{ };
-
-#elif defined(_LLONG_MAX) && defined(_C2) && 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, -_LLONG_MAX - _C2, _LLONG_MAX>
-{ };
-
-template<>
-class integer_traits< ::ndnboost::ulong_long_type>
-  : public std::numeric_limits< ::ndnboost::ulong_long_type>,
-    public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, _ULLONG_MAX>
-{ };
-
-#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):
-//
-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, (1LL << (sizeof(::ndnboost::long_long_type) * CHAR_BIT - 1)), ~(1LL << (sizeof(::ndnboost::long_long_type) * CHAR_BIT - 1))>
-{ };
-
-template<>
-class integer_traits< ::ndnboost::ulong_long_type>
-  : public std::numeric_limits< ::ndnboost::ulong_long_type>,
-    public detail::integer_traits_base< ::ndnboost::ulong_long_type, 0, ~0uLL>
-{ };
-
-#elif defined(NDNBOOST_HAS_MS_INT64)
-
-template<>
-class integer_traits< __int64>
-  : public std::numeric_limits< __int64>,
-    public detail::integer_traits_base< __int64, _I64_MIN, _I64_MAX>
-{ };
-
-template<>
-class integer_traits< unsigned __int64>
-  : public std::numeric_limits< unsigned __int64>,
-    public detail::integer_traits_base< unsigned __int64, 0, _UI64_MAX>
-{ };
-
-#endif
-#endif
-
-} // namespace ndnboost
-
-#endif /* NDNBOOST_INTEGER_TRAITS_HPP */
-
-
-
diff --git a/include/ndnboost/intrusive/detail/config_begin.hpp b/include/ndnboost/intrusive/detail/config_begin.hpp
deleted file mode 100644
index 4e7ce04..0000000
--- a/include/ndnboost/intrusive/detail/config_begin.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga  2006-2012
-//
-// 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)
-//
-// See http://www.boost.org/libs/intrusive for documentation.
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef NDNBOOST_INTRUSIVE_CONFIG_INCLUDED
-#define NDNBOOST_INTRUSIVE_CONFIG_INCLUDED
-#include <ndnboost/config.hpp>
-#endif
-
-#ifdef NDNBOOST_MSVC
-
-   #pragma warning (push)
-   //
-   //'function' : resolved overload was found by argument-dependent lookup
-   //A function found by argument-dependent lookup (Koenig lookup) was eventually
-   //chosen by overload resolution.
-   //
-   //In Visual C++ .NET and earlier compilers, a different function would have
-   //been called. To pick the original function, use an explicitly qualified name.
-   //
-
-   //warning C4275: non dll-interface class 'x' used as base for
-   //dll-interface class 'Y'
-   #pragma warning (disable : 4275)
-   //warning C4251: 'x' : class 'y' needs to have dll-interface to
-   //be used by clients of class 'z'
-   #pragma warning (disable : 4251)
-   #pragma warning (disable : 4675)
-   #pragma warning (disable : 4996)
-   #pragma warning (disable : 4503)
-   #pragma warning (disable : 4284) // odd return type for operator->
-   #pragma warning (disable : 4244) // possible loss of data
-   #pragma warning (disable : 4521) ////Disable "multiple copy constructors specified"
-   #pragma warning (disable : 4522)
-   #pragma warning (disable : 4146)
-   #pragma warning (disable : 4267) //conversion from 'X' to 'Y', possible loss of data
-   #pragma warning (disable : 4127) //conditional expression is constant
-   #pragma warning (disable : 4706) //assignment within conditional expression
-   #pragma warning (disable : 4541) //'typeid' used on polymorphic type 'ndnboost::exception' with /GR-
-   #pragma warning (disable : 4512) //'typeid' used on polymorphic type 'ndnboost::exception' with /GR-
-#endif
-
-//#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
deleted file mode 100644
index 6aa1214..0000000
--- a/include/ndnboost/intrusive/detail/config_end.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga  2006-2012
-//
-// 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)
-//
-// See http://www.boost.org/libs/intrusive for documentation.
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#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
deleted file mode 100644
index 56da5b9..0000000
--- a/include/ndnboost/intrusive/detail/has_member_function_callable_with.hpp
+++ /dev/null
@@ -1,357 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2011-2012. 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)
-//
-// See http://www.boost.org/libs/intrusive for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-// sample.h
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-   #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>
-      #include <ndnboost/intrusive/detail/preprocessor.hpp>
-      #include <ndnboost/intrusive/detail/mpl.hpp>
-      #include <ndnboost/static_assert.hpp>
-      #include <ndnboost/move/move.hpp>
-
-      //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 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 {
-
-      struct dont_care
-      {
-         dont_care(...);
-      };
-
-      struct private_type
-      {
-         static private_type p;
-         private_type const &operator,(int) const;
-      };
-
-      typedef char yes_type;            // sizeof(yes_type) == 1
-      struct no_type{ char dummy[2]; }; // sizeof(no_type)  == 2
-
-      template<typename T>
-      no_type is_private_type(T const &);
-      yes_type is_private_type(private_type const &);
-
-      }  //boost_intrusive_has_member_function_callable_with
-
-      #include <ndnboost/intrusive/detail/config_end.hpp>
-
-   #endif   //NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_DETAILS_INCLUDED
-
-#else //!NDNBOOST_PP_IS_ITERATING
-
-   #ifndef  NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
-   #error "NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME not defined!"
-   #endif
-
-   #ifndef  NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
-   #error "NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN not defined!"
-   #endif
-
-   #ifndef  NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
-   #error "NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END not defined!"
-   #endif
-
-   #if NDNBOOST_PP_ITERATION_START() != 0
-   #error "NDNBOOST_PP_ITERATION_START() must be zero (0)"
-   #endif
-
-   #if NDNBOOST_PP_ITERATION() == 0
-
-      NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
-
-      template <typename Type>
-      class NDNBOOST_PP_CAT(has_member_function_named_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
-      {
-         struct BaseMixin
-         {
-            void NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME();
-         };
-
-         struct Base : public ::ndnboost::intrusive::detail::remove_cv<Type>::type, public BaseMixin { Base(); };
-         template <typename T, T t> class Helper{};
-
-         template <typename U>
-         static ndnboost_intrusive_has_member_function_callable_with::no_type  deduce
-            (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:
-         static const bool value =
-            sizeof(ndnboost_intrusive_has_member_function_callable_with::yes_type) == sizeof(deduce((Base*)(0)));
-      };
-
-      #if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
-
-         template<typename Fun, bool HasFunc
-                  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 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;
-         };
-         //!
-
-         #if !defined(_MSC_VER) || (_MSC_VER < 1600)
-
-            #if defined(NDNBOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED)
-
-            template<typename Fun>
-            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(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>().
-                           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;
-               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 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;
-               NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
-            };
-
-            template<typename Fun>
-            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 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(...);
-
-               static const bool value = sizeof(Test< Fun >(0))
-                                    == sizeof(ndnboost_intrusive_has_member_function_callable_with::yes_type);
-            };
-            #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 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>().NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME()
-                              , ndnboost_intrusive_has_member_function_callable_with::yes_type())
-                  Test(Fun*);
-
-               template<class U>
-               static ndnboost_intrusive_has_member_function_callable_with::no_type Test(...);
-
-               static const bool value = sizeof(Test<Fun>(0))
-                                    == sizeof(ndnboost_intrusive_has_member_function_callable_with::yes_type);
-            };
-         #endif   //#if !defined(_MSC_VER) || (_MSC_VER < 1600)
-
-      #else   //#if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
-
-         template<typename Fun, bool HasFunc, class ...Args>
-         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 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;
-         };
-
-         //Special case for 0 args
-         template< class F
-               , std::size_t N =
-                     sizeof((ndnboost::move_detail::declval<F>().
-                        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;
-            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 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;
-            NDNBOOST_PP_CAT(zeroarg_checker_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)(int);
-         };
-
-         template<typename Fun>
-         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 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(...);
-
-            static const bool value = sizeof(Test< Fun >(0))
-                                 == sizeof(ndnboost_intrusive_has_member_function_callable_with::yes_type);
-         };
-
-         template<typename Fun, class ...DontCares>
-         struct NDNBOOST_PP_CAT( funwrap_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME )
-            : Fun
-         {
-            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
-               NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
-                  ( DontCares...)  const;
-         };
-
-         template<typename Fun, class ...Args>
-         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>
-            struct make_dontcare
-            {
-               typedef ndnboost_intrusive_has_member_function_callable_with::dont_care type;
-            };
-
-            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 >().
-                                          NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
-                                             ( ::ndnboost::move_detail::declval<Args>()... ), 0) )
-                                             )
-                                       );
-         };
-
-         template<typename Fun, class ...Args>
-         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
-               , Args... >
-         {};
-
-      #endif   //#if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
-
-      NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
-
-   #else   //NDNBOOST_PP_ITERATION() == 0
-
-      #if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
-
-         NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
-
-         template<typename Fun>
-         struct NDNBOOST_PP_CAT( NDNBOOST_PP_CAT(funwrap, NDNBOOST_PP_ITERATION())
-                           , NDNBOOST_PP_CAT(_, NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME))
-            : Fun
-         {
-            NDNBOOST_PP_CAT( NDNBOOST_PP_CAT(funwrap, NDNBOOST_PP_ITERATION())
-                        , NDNBOOST_PP_CAT(_, 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
-               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 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
-            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 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>().
-                              NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME
-                                 ( NDNBOOST_PP_ENUM( NDNBOOST_PP_ITERATION(), NDNBOOST_INTRUSIVE_PP_DECLVAL, _) ), 0
-                           )
-                        )
-                     )
-            );
-         };
-
-         NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
-      #endif   //#if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
-
-   #endif   //NDNBOOST_PP_ITERATION() == 0
-
-   #if NDNBOOST_PP_ITERATION() == NDNBOOST_PP_ITERATION_FINISH()
-
-      #if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
-
-         NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEGIN
-
-         template<typename Fun
-                  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) >
-         {};
-
-         NDNBOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END
-
-      #endif //#if !defined(NDNBOOST_INTRUSIVE_PERFECT_FORWARDING)
-
-      #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 NDNBOOST_PP_ITERATION() == NDNBOOST_PP_ITERATION_FINISH()
-
-#endif   //!NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/intrusive/detail/memory_util.hpp b/include/ndnboost/intrusive/detail/memory_util.hpp
deleted file mode 100644
index 4d88ef9..0000000
--- a/include/ndnboost/intrusive/detail/memory_util.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Pablo Halpern 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)
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2011-2012. 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)
-//
-// See http://www.boost.org/libs/intrusive for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef NDNBOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP
-#define NDNBOOST_INTRUSIVE_ALLOCATOR_MEMORY_UTIL_HPP
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-#  pragma once
-#endif
-
-#include <ndnboost/intrusive/detail/config_begin.hpp>
-#include <ndnboost/intrusive/detail/workaround.hpp>
-#include <ndnboost/intrusive/detail/mpl.hpp>
-#include <ndnboost/intrusive/detail/preprocessor.hpp>
-
-namespace ndnboost {
-namespace intrusive {
-namespace detail {
-
-template <typename T>
-inline T* addressof(T& obj)
-{
-   return static_cast<T*>
-      (static_cast<void*>
-         (const_cast<char*>
-            (&reinterpret_cast<const char&>(obj))
-         )
-      );
-}
-
-template <typename T> struct unvoid { typedef T type; };
-template <> struct unvoid<void> { struct type { }; };
-template <> struct unvoid<const void> { struct type { }; };
-
-template <typename T>
-struct LowPriorityConversion
-{
-    // Convertible from T with user-defined-conversion rank.
-    LowPriorityConversion(const T&) { }
-};
-
-// Infrastructure for providing a default type for T::TNAME if absent.
-#define NDNBOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(TNAME)              \
-   template <typename T, typename DefaultType>                             \
-   struct boost_intrusive_default_type_ ## TNAME                           \
-   {                                                                       \
-      template <typename X>                                                \
-      static char test(int, typename X::TNAME*);                           \
-                                                                           \
-      template <typename X>                                                \
-      static int test(ndnboost::intrusive::detail::                           \
-         LowPriorityConversion<int>, void*);                               \
-                                                                           \
-      struct DefaultWrap { typedef DefaultType TNAME; };                   \
-                                                                           \
-      static const bool value = (1 == sizeof(test<T>(0, 0)));              \
-                                                                           \
-      typedef typename                                                     \
-         ::ndnboost::intrusive::detail::if_c                                  \
-            <value, T, DefaultWrap>::type::TNAME type;                     \
-   };                                                                      \
-                                                                           \
-   template <typename T, typename DefaultType>                             \
-   struct boost_intrusive_eval_default_type_ ## TNAME                      \
-   {                                                                       \
-      template <typename X>                                                \
-      static char test(int, typename X::TNAME*);                           \
-                                                                           \
-      template <typename X>                                                \
-      static int test(ndnboost::intrusive::detail::                           \
-         LowPriorityConversion<int>, void*);                               \
-                                                                           \
-      struct DefaultWrap                                                   \
-      { typedef typename DefaultType::type TNAME; };                       \
-                                                                           \
-      static const bool value = (1 == sizeof(test<T>(0, 0)));              \
-                                                                           \
-      typedef typename                                                     \
-         ::ndnboost::intrusive::detail::eval_if_c                             \
-            < value                                                        \
-            , ::ndnboost::intrusive::detail::identity<T>                      \
-            , ::ndnboost::intrusive::detail::identity<DefaultWrap>            \
-            >::type::TNAME type;                                           \
-   };                                                                      \
-//
-
-#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 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                          \
-//
-
-}}}   //namespace ndnboost::intrusive::detail
-
-#include <ndnboost/intrusive/detail/has_member_function_callable_with.hpp>
-
-#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 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 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 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 {
-
-NDNBOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(element_type)
-NDNBOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type)
-
-//////////////////////
-//struct first_param
-//////////////////////
-
-template <typename T> struct first_param
-{  typedef void type;   };
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-
-   template <template <typename, typename...> class TemplateClass, typename T, typename... Args>
-   struct first_param< TemplateClass<T, Args...> >
-   {
-      typedef T type;
-   };
-
-#else //C++03 compilers
-
-   #define NDNBOOST_PP_LOCAL_MACRO(n)                                                  \
-   template < template <typename                                                    \
-               NDNBOOST_PP_ENUM_TRAILING(n, NDNBOOST_INTRUSIVE_PP_IDENTITY, typename) >   \
-            class TemplateClass                                                     \
-            , typename T NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>                 \
-   struct first_param                                                               \
-      < TemplateClass<T NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, P)> >                      \
-   {                                                                                \
-      typedef T type;                                                               \
-   };                                                                               \
-   //
-   #define NDNBOOST_PP_LOCAL_LIMITS (0, NDNBOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS)
-   #include NDNBOOST_PP_LOCAL_ITERATE()
-
-#endif   //!defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-
-///////////////////////////
-//struct type_rebind_mode
-///////////////////////////
-template <typename Ptr, typename T>
-struct type_has_rebind
-{
-   template <typename X>
-   #if !defined (__SUNPRO_CC)
-   static char test(int, typename X::template rebind<T>*);
-   #else
-   static char test(int, typename X::rebind<T>*);
-   #endif
-
-   template <typename X>
-   static int test(ndnboost::intrusive::detail::LowPriorityConversion<int>, void*);
-
-   static const bool value = (1 == sizeof(test<Ptr>(0, 0)));
-};
-
-template <typename Ptr, typename T>
-struct type_has_rebind_other
-{
-   template <typename X>
-   #if !defined (__SUNPRO_CC)
-   static char test(int, typename X::template rebind<T>::other*);
-   #else
-   static char test(int, typename X::rebind<T>::other*);
-   #endif
-
-   template <typename X>
-   static int test(ndnboost::intrusive::detail::LowPriorityConversion<int>, void*);
-
-   static const bool value = (1 == sizeof(test<Ptr>(0, 0)));
-};
-
-template <typename Ptr, typename T>
-struct type_rebind_mode
-{
-   static const unsigned int rebind =       (unsigned int)type_has_rebind<Ptr, T>::value;
-   static const unsigned int rebind_other = (unsigned int)type_has_rebind_other<Ptr, T>::value;
-   static const unsigned int mode =         rebind + rebind*rebind_other;
-};
-
-////////////////////////
-//struct type_rebinder
-////////////////////////
-template <typename Ptr, typename U, unsigned int RebindMode = type_rebind_mode<Ptr, U>::mode>
-struct type_rebinder;
-
-// Implementation of pointer_traits<Ptr>::rebind if Ptr has
-// its own rebind::other type (C++03)
-template <typename Ptr, typename U>
-struct type_rebinder< Ptr, U, 2u >
-{
-   typedef typename Ptr::template rebind<U>::other type;
-};
-
-// Implementation of pointer_traits<Ptr>::rebind if Ptr has
-// its own rebind template.
-template <typename Ptr, typename U>
-struct type_rebinder< Ptr, U, 1u >
-{
-   typedef typename Ptr::template rebind<U> type;
-};
-
-// Specialization of pointer_traits<Ptr>::rebind if Ptr does not
-// have its own rebind template but has a the form Ptr<class T,
-// 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(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 >
-{
-   typedef Ptr<U, Tn...> type;
-};
-
-//Needed for non-conforming compilers like GCC 4.3
-template <template <class> class Ptr, typename T, class U>
-struct type_rebinder<Ptr<T>, U, 0u >
-{
-   typedef Ptr<U> type;
-};
-
-#else //C++03 compilers
-
-#define NDNBOOST_PP_LOCAL_MACRO(n)                                                  \
-template < template <typename                                                    \
-            NDNBOOST_PP_ENUM_TRAILING(n, NDNBOOST_INTRUSIVE_PP_IDENTITY, typename) >   \
-           class Ptr                                                             \
-         , typename T NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)                  \
-         , class U>                                                              \
-struct type_rebinder                                                             \
-   < Ptr<T NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, P)>, U, 0u >                         \
-{                                                                                \
-   typedef Ptr<U NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, P)> type;                      \
-};                                                                               \
-//
-#define NDNBOOST_PP_LOCAL_LIMITS (0, NDNBOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS)
-#include NDNBOOST_PP_LOCAL_ITERATE()
-
-#endif   //!defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-
-}  //namespace detail {
-}  //namespace intrusive {
-}  //namespace ndnboost {
-
-#include <ndnboost/intrusive/detail/config_end.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
deleted file mode 100644
index cfe340c..0000000
--- a/include/ndnboost/intrusive/detail/mpl.hpp
+++ /dev/null
@@ -1,383 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga  2006-2012
-//
-// 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)
-//
-// See http://www.boost.org/libs/intrusive for documentation.
-//
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef NDNBOOST_INTRUSIVE_DETAIL_MPL_HPP
-#define NDNBOOST_INTRUSIVE_DETAIL_MPL_HPP
-
-#include <ndnboost/intrusive/detail/config_begin.hpp>
-#include <cstddef>
-
-namespace ndnboost {
-namespace intrusive {
-namespace detail {
-
-typedef char one;
-struct two {one _[2];};
-
-template< bool C_ >
-struct bool_
-{
-   static const bool value = C_;
-};
-
-typedef bool_<true>        true_;
-typedef bool_<false>       false_;
-
-typedef true_  true_type;
-typedef false_ false_type;
-
-typedef char yes_type;
-struct no_type
-{
-   char padding[8];
-};
-
-template <bool B, class T = void>
-struct enable_if_c {
-  typedef T type;
-};
-
-template <class T>
-struct enable_if_c<false, T> {};
-
-template <class Cond, class T = void>
-struct enable_if : public enable_if_c<Cond::value, T>{};
-
-template<class F, class Param>
-struct apply
-{
-   typedef typename F::template apply<Param>::type type;
-};
-
-template <class T, class U>
-class is_convertible
-{
-   typedef char true_t;
-   class false_t { char dummy[2]; };
-   static true_t dispatch(U);
-   static false_t dispatch(...);
-   static const T &trigger();
-   public:
-   static const bool value = sizeof(dispatch(trigger())) == sizeof(true_t);
-};
-
-template<
-      bool C
-    , typename T1
-    , typename T2
-    >
-struct if_c
-{
-    typedef T1 type;
-};
-
-template<
-      typename T1
-    , typename T2
-    >
-struct if_c<false,T1,T2>
-{
-    typedef T2 type;
-};
-
-template<
-      typename C
-    , typename T1
-    , typename T2
-    >
-struct if_
-{
-   typedef typename if_c<0 != C::value, T1, T2>::type type;
-};
-
-template<
-      bool C
-    , typename F1
-    , typename F2
-    >
-struct eval_if_c
-    : if_c<C,F1,F2>::type
-{};
-
-template<
-      typename C
-    , typename T1
-    , typename T2
-    >
-struct eval_if
-    : if_<C,T1,T2>::type
-{};
-
-// identity is an extension: it is not part of the standard.
-template <class T>
-struct identity
-{
-   typedef T type;
-};
-
-#if defined(NDNBOOST_MSVC) || defined(__BORLANDC_)
-#define NDNBOOST_INTRUSIVE_TT_DECL __cdecl
-#else
-#define NDNBOOST_INTRUSIVE_TT_DECL
-#endif
-
-#if defined(_MSC_EXTENSIONS) && !defined(__BORLAND__) && !defined(_WIN64) && !defined(UNDER_CE)
-#define NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
-#endif
-
-template <typename T>
-struct is_unary_or_binary_function_impl
-{  static const bool value = false; };
-
-// see boost ticket #4094
-// avoid duplicate definitions of is_unary_or_binary_function_impl
-#ifndef NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
-
-template <typename R>
-struct is_unary_or_binary_function_impl<R (*)()>
-{  static const bool value = true;  };
-
-template <typename R>
-struct is_unary_or_binary_function_impl<R (*)(...)>
-{  static const bool value = true;  };
-
-#else // NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
-
-template <typename R>
-struct is_unary_or_binary_function_impl<R (__stdcall*)()>
-{  static const bool value = true;  };
-
-#ifndef _MANAGED
-
-template <typename R>
-struct is_unary_or_binary_function_impl<R (__fastcall*)()>
-{  static const bool value = true;  };
-
-#endif
-
-template <typename R>
-struct is_unary_or_binary_function_impl<R (__cdecl*)()>
-{  static const bool value = true;  };
-
-template <typename R>
-struct is_unary_or_binary_function_impl<R (__cdecl*)(...)>
-{  static const bool value = true;  };
-
-#endif
-
-// see boost ticket #4094
-// avoid duplicate definitions of is_unary_or_binary_function_impl
-#ifndef NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
-
-template <typename R, class T0>
-struct is_unary_or_binary_function_impl<R (*)(T0)>
-{  static const bool value = true;  };
-
-template <typename R, class T0>
-struct is_unary_or_binary_function_impl<R (*)(T0...)>
-{  static const bool value = true;  };
-
-#else // NDNBOOST_INTRUSIVE_TT_TEST_MSC_FUNC_SIGS
-
-template <typename R, class T0>
-struct is_unary_or_binary_function_impl<R (__stdcall*)(T0)>
-{  static const bool value = true;  };
-
-#ifndef _MANAGED
-
-template <typename R, class T0>
-struct is_unary_or_binary_function_impl<R (__fastcall*)(T0)>
-{  static const bool value = true;  };
-
-#endif
-
-template <typename R, class T0>
-struct is_unary_or_binary_function_impl<R (__cdecl*)(T0)>
-{  static const bool value = true;  };
-
-template <typename R, class T0>
-struct is_unary_or_binary_function_impl<R (__cdecl*)(T0...)>
-{  static const bool value = true;  };
-
-#endif
-
-// see boost ticket #4094
-// avoid duplicate definitions of is_unary_or_binary_function_impl
-#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)>
-{  static const bool value = true;  };
-
-template <typename R, class T0, class T1>
-struct is_unary_or_binary_function_impl<R (*)(T0, T1...)>
-{  static const bool value = true;  };
-
-#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)>
-{  static const bool value = true;  };
-
-#ifndef _MANAGED
-
-template <typename R, class T0, class T1>
-struct is_unary_or_binary_function_impl<R (__fastcall*)(T0, T1)>
-{  static const bool value = true;  };
-
-#endif
-
-template <typename R, class T0, class T1>
-struct is_unary_or_binary_function_impl<R (__cdecl*)(T0, T1)>
-{  static const bool value = true;  };
-
-template <typename R, class T0, class T1>
-struct is_unary_or_binary_function_impl<R (__cdecl*)(T0, T1...)>
-{  static const bool value = true;  };
-#endif
-
-template <typename T>
-struct is_unary_or_binary_function_impl<T&>
-{  static const bool value = false; };
-
-template<typename T>
-struct is_unary_or_binary_function
-{  static const bool value = is_unary_or_binary_function_impl<T>::value;   };
-
-//ndnboost::alignment_of yields to 10K lines of preprocessed code, so we
-//need an alternative
-template <typename T> struct alignment_of;
-
-template <typename T>
-struct alignment_of_hack
-{
-    char c;
-    T t;
-    alignment_of_hack();
-};
-
-template <unsigned A, unsigned S>
-struct alignment_logic
-{
-   static const std::size_t value = A < S ? A : S;
-};
-
-template< typename T >
-struct alignment_of
-{
-   static const std::size_t value = alignment_logic
-            < sizeof(alignment_of_hack<T>) - sizeof(T)
-            , sizeof(T)
-            >::value;
-};
-
-template <typename T, typename U>
-struct is_same
-{
-   typedef char yes_type;
-   struct no_type
-   {
-      char padding[8];
-   };
-
-   template <typename V>
-   static yes_type is_same_tester(V*, V*);
-   static no_type is_same_tester(...);
-
-   static T *t;
-   static U *u;
-
-   static const bool value = sizeof(yes_type) == sizeof(is_same_tester(t,u));
-};
-
-template<typename T>
-struct add_const
-{  typedef const T type;   };
-
-template<typename T>
-struct remove_const
-{  typedef  T type;   };
-
-template<typename T>
-struct remove_const<const T>
-{  typedef T type;   };
-
-template<typename T>
-struct remove_cv
-{  typedef  T type;   };
-
-template<typename T>
-struct remove_cv<const T>
-{  typedef T type;   };
-
-template<typename T>
-struct remove_cv<const volatile T>
-{  typedef T type;   };
-
-template<typename T>
-struct remove_cv<volatile T>
-{  typedef T type;   };
-
-template<class T>
-struct remove_reference
-{
-   typedef T type;
-};
-
-template<class T>
-struct remove_reference<T&>
-{
-   typedef T type;
-};
-
-template<class Class>
-class is_empty_class
-{
-   template <typename T>
-   struct empty_helper_t1 : public T
-   {
-      empty_helper_t1();
-      int i[256];
-   };
-
-   struct empty_helper_t2
-   { int i[256]; };
-
-   public:
-   static const bool value = sizeof(empty_helper_t1<Class>) == sizeof(empty_helper_t2);
-};
-
-template<std::size_t S>
-struct ls_zeros
-{
-   static const std::size_t value = (S & std::size_t(1)) ? 0 : (1 + ls_zeros<(S>>1u)>::value);
-};
-
-template<>
-struct ls_zeros<0>
-{
-   static const std::size_t value = 0;
-};
-
-template<>
-struct ls_zeros<1>
-{
-   static const std::size_t value = 0;
-};
-
-} //namespace detail
-} //namespace intrusive
-} //namespace ndnboost
-
-#include <ndnboost/intrusive/detail/config_end.hpp>
-
-#endif //NDNBOOST_INTRUSIVE_DETAIL_MPL_HPP
diff --git a/include/ndnboost/intrusive/detail/preprocessor.hpp b/include/ndnboost/intrusive/detail/preprocessor.hpp
deleted file mode 100644
index cdf8a38..0000000
--- a/include/ndnboost/intrusive/detail/preprocessor.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2008-2012. 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)
-//
-// See http://www.boost.org/libs/intrusive for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef NDNBOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
-#define NDNBOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-#  pragma once
-#endif
-
-#include <ndnboost/intrusive/detail/config_begin.hpp>
-#include <ndnboost/intrusive/detail/workaround.hpp>
-
-#include <ndnboost/preprocessor/iteration/local.hpp>
-#include <ndnboost/preprocessor/punctuation/paren_if.hpp>
-#include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-#include <ndnboost/preprocessor/control/expr_if.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/repetition/enum.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_trailing.hpp>
-#include <ndnboost/preprocessor/repetition/enum_shifted_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_shifted.hpp>
-#include <ndnboost/preprocessor/repetition/repeat.hpp>
-#include <ndnboost/preprocessor/logical/not.hpp>
-#include <ndnboost/preprocessor/arithmetic/sub.hpp>
-#include <ndnboost/preprocessor/arithmetic/add.hpp>
-#include <ndnboost/preprocessor/iteration/iterate.hpp>
-
-#define NDNBOOST_INTRUSIVE_MAX_CONSTRUCTOR_PARAMETERS 10
-
-#define NDNBOOST_INTRUSIVE_PP_IDENTITY(z, n, data) data
-
-#define NDNBOOST_INTRUSIVE_PP_DECLVAL(z, n, data) \
-ndnboost::move_detail::declval< NDNBOOST_PP_CAT(P, n) >() \
-//!
-
-#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 NDNBOOST_INTRUSIVE_DETAIL_PREPROCESSOR_HPP
diff --git a/include/ndnboost/intrusive/detail/workaround.hpp b/include/ndnboost/intrusive/detail/workaround.hpp
deleted file mode 100644
index 4f73b1c..0000000
--- a/include/ndnboost/intrusive/detail/workaround.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2005-2012. 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)
-//
-// See http://www.boost.org/libs/interprocess for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef NDNBOOST_INTRUSIVE_DETAIL_WRKRND_HPP
-#define NDNBOOST_INTRUSIVE_DETAIL_WRKRND_HPP
-
-#include <ndnboost/intrusive/detail/config_begin.hpp>
-
-#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 NDNBOOST_INTRUSIVE_DETAIL_WRKRND_HPP
diff --git a/include/ndnboost/intrusive/pointer_traits.hpp b/include/ndnboost/intrusive/pointer_traits.hpp
deleted file mode 100644
index 3901ff8..0000000
--- a/include/ndnboost/intrusive/pointer_traits.hpp
+++ /dev/null
@@ -1,265 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Pablo Halpern 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)
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2011-2012. 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)
-//
-// See http://www.boost.org/libs/intrusive for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef NDNBOOST_INTRUSIVE_POINTER_TRAITS_HPP
-#define NDNBOOST_INTRUSIVE_POINTER_TRAITS_HPP
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-#  pragma once
-#endif
-
-#include <ndnboost/intrusive/detail/config_begin.hpp>
-#include <ndnboost/intrusive/detail/workaround.hpp>
-#include <ndnboost/intrusive/detail/memory_util.hpp>
-#include <ndnboost/type_traits/integral_constant.hpp>
-#include <cstddef>
-
-namespace ndnboost {
-namespace intrusive {
-
-//! pointer_traits is the implementation of C++11 std::pointer_traits class with some
-//! extensions like castings.
-//!
-//! pointer_traits supplies a uniform interface to certain attributes of pointer-like types.
-template <typename Ptr>
-struct pointer_traits
-{
-   #ifdef NDNBOOST_INTRUSIVE_DOXYGEN_INVOKED
-      //!The pointer type
-      //!queried by this pointer_traits instantiation
-      typedef Ptr             pointer;
-
-      //!Ptr::element_type if such a type exists; otherwise, T if Ptr is a class
-      //!template instantiation of the form SomePointer<T, Args>, where Args is zero or
-      //!more type arguments ; otherwise , the specialization is ill-formed.
-      typedef unspecified_type element_type;
-
-      //!Ptr::difference_type if such a type exists; otherwise,
-      //!std::ptrdiff_t.
-      typedef unspecified_type difference_type;
-
-      //!Ptr::rebind<U> if such a type exists; otherwise, SomePointer<U, Args> if Ptr is
-      //!a class template instantiation of the form SomePointer<T, Args>, where Args is zero or
-      //!more type arguments ; otherwise, the instantiation of rebind is ill-formed.
-      //!
-      //!For portable code for C++03 and C++11, <pre>typename rebind_pointer<U>::type</pre>
-      //!shall be used instead of rebind<U> to obtain a pointer to U.
-      template <class U> using rebind = unspecified;
-
-      //!Ptr::rebind<U> if such a type exists; otherwise, SomePointer<U, Args> if Ptr is
-      //!a class template instantiation of the form SomePointer<T, Args>, where Args is zero or
-      //!more type arguments ; otherwise, the instantiation of rebind is ill-formed.
-      //!
-      typedef element_type &reference;
-   #else
-      typedef Ptr                                                             pointer;
-      //
-      typedef NDNBOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT
-         ( ndnboost::intrusive::detail::, Ptr, element_type
-         , ndnboost::intrusive::detail::first_param<Ptr>)                        element_type;
-      //
-      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;
-      //
-      template <class U> struct rebind_pointer
-      {
-         typedef typename ndnboost::intrusive::detail::type_rebinder<Ptr, U>::type  type;
-      };
-
-      #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(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 &.
-   //!
-   //! <b>Returns</b>: A dereferenceable pointer to r obtained by calling Ptr::pointer_to(r).
-   //!   Non-standard extension: If such function does not exist, returns pointer(addressof(r));
-   static pointer pointer_to(reference r)
-   {
-      //Non-standard extension, it does not require Ptr::pointer_to. If not present
-      //tries to converts &r to pointer.
-      const bool value = ndnboost::intrusive::detail::
-         has_member_function_callable_with_pointer_to
-            <Ptr, typename ndnboost::intrusive::detail::unvoid<element_type &>::type>::value;
-      ::ndnboost::integral_constant<bool, value> flag;
-      return pointer_traits::priv_pointer_to(flag, r);
-   }
-
-   //! <b>Remark</b>: Non-standard extension.
-   //!
-   //! <b>Returns</b>: A dereferenceable pointer to r obtained by calling Ptr::static_cast_from(r).
-   //!   If such function does not exist, returns pointer_to(static_cast<element_type&>(*uptr))
-   template<class UPtr>
-   static pointer static_cast_from(const UPtr &uptr)
-   {
-      const bool value = ndnboost::intrusive::detail::
-         has_member_function_callable_with_static_cast_from
-            <Ptr, const UPtr>::value;
-      ::ndnboost::integral_constant<bool, value> flag;
-      return pointer_traits::priv_static_cast_from(flag, uptr);
-   }
-
-   //! <b>Remark</b>: Non-standard extension.
-   //!
-   //! <b>Returns</b>: A dereferenceable pointer to r obtained by calling Ptr::const_cast_from(r).
-   //!   If such function does not exist, returns pointer_to(const_cast<element_type&>(*uptr))
-   template<class UPtr>
-   static pointer const_cast_from(const UPtr &uptr)
-   {
-      const bool value = ndnboost::intrusive::detail::
-         has_member_function_callable_with_const_cast_from
-            <Ptr, const UPtr>::value;
-      ::ndnboost::integral_constant<bool, value> flag;
-      return pointer_traits::priv_const_cast_from(flag, uptr);
-   }
-
-   //! <b>Remark</b>: Non-standard extension.
-   //!
-   //! <b>Returns</b>: A dereferenceable pointer to r obtained by calling Ptr::dynamic_cast_from(r).
-   //!   If such function does not exist, returns pointer_to(*dynamic_cast<element_type*>(&*uptr))
-   template<class UPtr>
-   static pointer dynamic_cast_from(const UPtr &uptr)
-   {
-      const bool value = ndnboost::intrusive::detail::
-         has_member_function_callable_with_dynamic_cast_from
-            <Ptr, const UPtr>::value;
-      ::ndnboost::integral_constant<bool, value> flag;
-      return pointer_traits::priv_dynamic_cast_from(flag, uptr);
-   }
-
-   ///@cond
-   private:
-   //priv_to_raw_pointer
-   template <class T>
-   static T* to_raw_pointer(T* p)
-   {  return p; }
-
-   template <class Pointer>
-   static typename pointer_traits<Pointer>::element_type*
-      to_raw_pointer(const Pointer &p)
-   {  return pointer_traits::to_raw_pointer(p.operator->());  }
-
-   //priv_pointer_to
-   static pointer priv_pointer_to(ndnboost::true_type, typename ndnboost::intrusive::detail::unvoid<element_type>::type& r)
-      { return Ptr::pointer_to(r); }
-
-   static pointer priv_pointer_to(ndnboost::false_type, typename ndnboost::intrusive::detail::unvoid<element_type>::type& r)
-      { return pointer(ndnboost::intrusive::detail::addressof(r)); }
-
-   //priv_static_cast_from
-   template<class UPtr>
-   static pointer priv_static_cast_from(ndnboost::true_type, const UPtr &uptr)
-   { return Ptr::static_cast_from(uptr); }
-
-   template<class UPtr>
-   static pointer priv_static_cast_from(ndnboost::false_type, const UPtr &uptr)
-   {  return pointer_to(*static_cast<element_type*>(to_raw_pointer(uptr)));  }
-
-   //priv_const_cast_from
-   template<class UPtr>
-   static pointer priv_const_cast_from(ndnboost::true_type, const UPtr &uptr)
-   { return Ptr::const_cast_from(uptr); }
-
-   template<class UPtr>
-   static pointer priv_const_cast_from(ndnboost::false_type, const UPtr &uptr)
-   {  return pointer_to(const_cast<element_type&>(*uptr));  }
-
-   //priv_dynamic_cast_from
-   template<class UPtr>
-   static pointer priv_dynamic_cast_from(ndnboost::true_type, const UPtr &uptr)
-   { return Ptr::dynamic_cast_from(uptr); }
-
-   template<class UPtr>
-   static pointer priv_dynamic_cast_from(ndnboost::false_type, const UPtr &uptr)
-   {  return pointer_to(*dynamic_cast<element_type*>(&*uptr));  }
-   ///@endcond
-};
-
-///@cond
-
-// Remove cv qualification from Ptr parameter to pointer_traits:
-template <typename Ptr>
-struct pointer_traits<const Ptr> : pointer_traits<Ptr> {};
-template <typename Ptr>
-struct pointer_traits<volatile Ptr> : pointer_traits<Ptr> { };
-template <typename Ptr>
-struct pointer_traits<const volatile Ptr> : pointer_traits<Ptr> { };
-// Remove reference from Ptr parameter to pointer_traits:
-template <typename Ptr>
-struct pointer_traits<Ptr&> : pointer_traits<Ptr> { };
-
-///@endcond
-
-//! Specialization of pointer_traits for raw pointers
-//!
-template <typename T>
-struct pointer_traits<T*>
-{
-   typedef T            element_type;
-   typedef T*           pointer;
-   typedef std::ptrdiff_t difference_type;
-
-   #ifdef NDNBOOST_INTRUSIVE_DOXYGEN_INVOKED
-      typedef T &          reference;
-      //!typedef for <pre>U *</pre>
-      //!
-      //!For portable code for C++03 and C++11, <pre>typename rebind_pointer<U>::type</pre>
-      //!shall be used instead of rebind<U> to obtain a pointer to U.
-      template <class U> using rebind = U*;
-   #else
-      typedef typename ndnboost::intrusive::detail::unvoid<element_type>::type& reference;
-      #if !defined(NDNBOOST_NO_CXX11_TEMPLATE_ALIASES)
-         template <class U> using rebind = U*;
-      #endif
-   #endif
-
-   template <class U> struct rebind_pointer
-   {  typedef U* type;  };
-
-   //! <b>Returns</b>: addressof(r)
-   //!
-   static pointer pointer_to(reference r)
-   { return ndnboost::intrusive::detail::addressof(r); }
-
-   //! <b>Returns</b>: static_cast<pointer>(uptr)
-   //!
-   template<class U>
-   static pointer static_cast_from(U *uptr)
-   {  return static_cast<pointer>(uptr);  }
-
-   //! <b>Returns</b>: const_cast<pointer>(uptr)
-   //!
-   template<class U>
-   static pointer const_cast_from(U *uptr)
-   {  return const_cast<pointer>(uptr);  }
-
-   //! <b>Returns</b>: dynamic_cast<pointer>(uptr)
-   //!
-   template<class U>
-   static pointer dynamic_cast_from(U *uptr)
-   {  return dynamic_cast<pointer>(uptr);  }
-};
-
-}  //namespace container {
-}  //namespace ndnboost {
-
-#include <ndnboost/intrusive/detail/config_end.hpp>
-
-#endif // ! defined(NDNBOOST_INTRUSIVE_POINTER_TRAITS_HPP)
diff --git a/include/ndnboost/io/detail/quoted_manip.hpp b/include/ndnboost/io/detail/quoted_manip.hpp
deleted file mode 100644
index 5279096..0000000
--- a/include/ndnboost/io/detail/quoted_manip.hpp
+++ /dev/null
@@ -1,190 +0,0 @@
-//  ndnboost/io/quoted_manip.hpp  ---------------------------------------------------------//
-
-//  Copyright Beman Dawes 2010
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-//  Library home page http://www.boost.org/libs/io
-
-//--------------------------------------------------------------------------------------// 
-
-#ifndef NDNBOOST_IO_QUOTED_MANIP
-#define NDNBOOST_IO_QUOTED_MANIP
-
-#include <iosfwd>
-#include <ios>
-#include <string>
-#include <iterator>
-#include <ndnboost/io/ios_state.hpp>
-
-namespace ndnboost
-{
-  namespace io
-  {
-    namespace detail { template <class String, class Char> struct quoted_proxy; }
-
-    //  ------------  public interface  ------------------------------------------------//
-
-    //  manipulator for const std::basic_string&
-    template <class Char, class Traits, class Alloc>
-      detail::quoted_proxy<std::basic_string<Char, Traits, Alloc> const &, Char>
-        quoted(const std::basic_string<Char, Traits, Alloc>& s,
-               Char escape='\\', Char delim='\"');
-
-    //  manipulator for non-const std::basic_string&
-    template <class Char, class Traits, class Alloc>
-      detail::quoted_proxy<std::basic_string<Char, Traits, Alloc> &, Char>
-        quoted(std::basic_string<Char, Traits, Alloc>& s,
-               Char escape='\\', Char delim='\"');
-
-    //  manipulator for const C-string*
-    template <class Char>
-      detail::quoted_proxy<const Char*, Char>
-        quoted(const Char* s, Char escape='\\', Char delim='\"');
-
-    //  -----------  implementation details  -------------------------------------------//
-
-    namespace detail
-    {
-      //  proxy used as an argument pack 
-      template <class String, class Char>
-      struct quoted_proxy
-      {
-        String  string;
-        Char    escape;
-        Char    delim;
-
-        quoted_proxy(String s_, Char escape_, Char delim_)
-          : string(s_), escape(escape_), delim(delim_) {}
-      private:
-        // String may be a const type, so disable the assignment operator
-        quoted_proxy& operator=(const quoted_proxy&);  // = deleted
-      };
-
-      //  abstract away difference between proxies with const or non-const basic_strings
-      template <class Char, class Traits, class Alloc>
-      std::basic_ostream<Char, Traits>&
-      basic_string_inserter_imp(std::basic_ostream<Char, Traits>& os,
-        std::basic_string<Char, Traits, Alloc> const & string, Char escape, Char delim)
-      {
-        os << delim;
-        typename std::basic_string<Char, Traits, Alloc>::const_iterator
-          end_it = string.end();
-        for (typename std::basic_string<Char, Traits, Alloc>::const_iterator
-          it = string.begin();
-          it != end_it;
-          ++it )
-        {
-          if (*it == delim || *it == escape)
-            os << escape;
-          os << *it;
-        }
-        os << delim;
-        return os;
-      }
-
-      //  inserter for const std::basic_string& proxies
-      template <class Char, class Traits, class Alloc>
-      inline
-      std::basic_ostream<Char, Traits>& operator<<(std::basic_ostream<Char, Traits>& os, 
-        const quoted_proxy<std::basic_string<Char, Traits, Alloc> const &, Char>& proxy)
-      {
-        return basic_string_inserter_imp(os, proxy.string, proxy.escape, proxy.delim);
-      }
-
-      //  inserter for non-const std::basic_string& proxies
-      template <class Char, class Traits, class Alloc>
-      inline
-      std::basic_ostream<Char, Traits>& operator<<(std::basic_ostream<Char, Traits>& os, 
-        const quoted_proxy<std::basic_string<Char, Traits, Alloc>&, Char>& proxy)
-      {
-        return basic_string_inserter_imp(os, proxy.string, proxy.escape, proxy.delim);
-      }
- 
-      //  inserter for const C-string* proxies
-      template <class Char, class Traits>
-      std::basic_ostream<Char, Traits>& operator<<(std::basic_ostream<Char, Traits>& os, 
-        const quoted_proxy<const Char*, Char>& proxy)
-      {
-        os << proxy.delim;
-        for (const Char* it = proxy.string;
-          *it;
-          ++it )
-        {
-          if (*it == proxy.delim || *it == proxy.escape)
-            os << proxy.escape;
-          os << *it;
-        }
-        os << proxy.delim;
-        return os;
-      }
-
-      //  extractor for non-const std::basic_string& proxies
-      template <class Char, class Traits, class Alloc>
-      std::basic_istream<Char, Traits>& operator>>(std::basic_istream<Char, Traits>& is, 
-        const quoted_proxy<std::basic_string<Char, Traits, Alloc>&, Char>& proxy)
-      {
-        proxy.string.clear();
-        Char c;
-        is >> c;
-        if (c != proxy.delim)
-        {
-          is.unget();
-          is >> proxy.string;
-          return is;
-        }
-        {
-          ndnboost::io::ios_flags_saver ifs(is);
-          is >> std::noskipws;
-          for (;;)  
-          {
-            is >> c;
-            if (!is.good())  // cope with I/O errors or end-of-file
-              break;
-            if (c == proxy.escape)
-            {
-              is >> c;
-              if (!is.good())  // cope with I/O errors or end-of-file
-                break;
-            }
-            else if (c == proxy.delim)
-              break;
-            proxy.string += c;
-          }
-        }
-        return is;
-      }
-
-    }  // namespace detail
-
-    //  manipulator implementation for const std::basic_string&
-    template <class Char, class Traits, class Alloc>
-    inline detail::quoted_proxy<std::basic_string<Char, Traits, Alloc> const &, Char>
-    quoted(const std::basic_string<Char, Traits, Alloc>& s, Char escape, Char delim)
-    {
-      return detail::quoted_proxy<std::basic_string<Char, Traits, Alloc> const &, Char>
-        (s, escape, delim);
-    }
-
-    //  manipulator implementation for non-const std::basic_string&
-    template <class Char, class Traits, class Alloc>
-    inline detail::quoted_proxy<std::basic_string<Char, Traits, Alloc> &, Char>
-    quoted(std::basic_string<Char, Traits, Alloc>& s, Char escape, Char delim)
-    {
-      return detail::quoted_proxy<std::basic_string<Char, Traits, Alloc>&, Char>
-        (s, escape, delim);
-    }
-
-    //  manipulator implementation for const C-string*
-    template <class Char>
-    inline detail::quoted_proxy<const Char*, Char>
-    quoted(const Char* s, Char escape, Char delim)
-    {
-      return detail::quoted_proxy<const Char*, Char> (s, escape, delim);
-    }
-
-  }  // namespace io
-}  // namespace ndnboost
-
-#endif // NDNBOOST_IO_QUOTED_MANIP
diff --git a/include/ndnboost/io/ios_state.hpp b/include/ndnboost/io/ios_state.hpp
deleted file mode 100644
index 90d802a..0000000
--- a/include/ndnboost/io/ios_state.hpp
+++ /dev/null
@@ -1,439 +0,0 @@
-//  Boost io/ios_state.hpp header file  --------------------------------------//
-
-//  Copyright 2002, 2005 Daryle Walker.  Use, modification, and distribution
-//  are subject to the Boost Software License, Version 1.0.  (See accompanying
-//  file LICENSE_1_0.txt or a copy at <http://www.boost.org/LICENSE_1_0.txt>.)
-
-//  See <http://www.boost.org/libs/io/> for the library's home page.
-
-#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 NDNBOOST_NO_STD_LOCALE
-#include <locale>     // for std::locale
-#endif
-#include <ostream>    // for std::basic_ostream
-#include <streambuf>  // for std::basic_streambuf
-#include <string>     // for std::char_traits
-
-
-namespace ndnboost
-{
-namespace io
-{
-
-
-//  Basic stream state saver class declarations  -----------------------------//
-
-class ios_flags_saver
-{
-public:
-    typedef ::std::ios_base            state_type;
-    typedef ::std::ios_base::fmtflags  aspect_type;
-
-    explicit  ios_flags_saver( state_type &s )
-        : s_save_( s ), a_save_( s.flags() )
-        {}
-    ios_flags_saver( state_type &s, aspect_type const &a )
-        : s_save_( s ), a_save_( s.flags(a) )
-        {}
-    ~ios_flags_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.flags( a_save_ ); }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-
-    ios_flags_saver& operator=(const ios_flags_saver&);
-};
-
-class ios_precision_saver
-{
-public:
-    typedef ::std::ios_base    state_type;
-    typedef ::std::streamsize  aspect_type;
-
-    explicit  ios_precision_saver( state_type &s )
-        : s_save_( s ), a_save_( s.precision() )
-        {}
-    ios_precision_saver( state_type &s, aspect_type const &a )
-        : s_save_( s ), a_save_( s.precision(a) )
-        {}
-    ~ios_precision_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.precision( a_save_ ); }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-
-    ios_precision_saver& operator=(const ios_precision_saver&);
-};
-
-class ios_width_saver
-{
-public:
-    typedef ::std::ios_base    state_type;
-    typedef ::std::streamsize  aspect_type;
-
-    explicit  ios_width_saver( state_type &s )
-        : s_save_( s ), a_save_( s.width() )
-        {}
-    ios_width_saver( state_type &s, aspect_type const &a )
-        : s_save_( s ), a_save_( s.width(a) )
-        {}
-    ~ios_width_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.width( a_save_ ); }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-    ios_width_saver& operator=(const ios_width_saver&);
-};
-
-
-//  Advanced stream state saver class template declarations  -----------------//
-
-template < typename Ch, class Tr >
-class basic_ios_iostate_saver
-{
-public:
-    typedef ::std::basic_ios<Ch, Tr>  state_type;
-    typedef ::std::ios_base::iostate  aspect_type;
-
-    explicit  basic_ios_iostate_saver( state_type &s )
-        : s_save_( s ), a_save_( s.rdstate() )
-        {}
-    basic_ios_iostate_saver( state_type &s, aspect_type const &a )
-        : s_save_( s ), a_save_( s.rdstate() )
-        { s.clear(a); }
-    ~basic_ios_iostate_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.clear( a_save_ ); }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-    basic_ios_iostate_saver& operator=(const basic_ios_iostate_saver&);
-};
-
-template < typename Ch, class Tr >
-class basic_ios_exception_saver
-{
-public:
-    typedef ::std::basic_ios<Ch, Tr>  state_type;
-    typedef ::std::ios_base::iostate  aspect_type;
-
-    explicit  basic_ios_exception_saver( state_type &s )
-        : s_save_( s ), a_save_( s.exceptions() )
-        {}
-#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 )
-#endif
-        : s_save_( s ), a_save_( s.exceptions() )
-        { s.exceptions(a); }
-    ~basic_ios_exception_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.exceptions( a_save_ ); }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-    basic_ios_exception_saver& operator=(const basic_ios_exception_saver&);
-};
-
-template < typename Ch, class Tr >
-class basic_ios_tie_saver
-{
-public:
-    typedef ::std::basic_ios<Ch, Tr>        state_type;
-    typedef ::std::basic_ostream<Ch, Tr> *  aspect_type;
-
-    explicit  basic_ios_tie_saver( state_type &s )
-        : s_save_( s ), a_save_( s.tie() )
-        {}
-    basic_ios_tie_saver( state_type &s, aspect_type const &a )
-        : s_save_( s ), a_save_( s.tie(a) )
-        {}
-    ~basic_ios_tie_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.tie( a_save_ ); }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-    basic_ios_tie_saver& operator=(const basic_ios_tie_saver&);
-};
-
-template < typename Ch, class Tr >
-class basic_ios_rdbuf_saver
-{
-public:
-    typedef ::std::basic_ios<Ch, Tr>          state_type;
-    typedef ::std::basic_streambuf<Ch, Tr> *  aspect_type;
-
-    explicit  basic_ios_rdbuf_saver( state_type &s )
-        : s_save_( s ), a_save_( s.rdbuf() )
-        {}
-    basic_ios_rdbuf_saver( state_type &s, aspect_type const &a )
-        : s_save_( s ), a_save_( s.rdbuf(a) )
-        {}
-    ~basic_ios_rdbuf_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.rdbuf( a_save_ ); }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-    basic_ios_rdbuf_saver& operator=(const basic_ios_rdbuf_saver&);
-};
-
-template < typename Ch, class Tr >
-class basic_ios_fill_saver
-{
-public:
-    typedef ::std::basic_ios<Ch, Tr>        state_type;
-    typedef typename state_type::char_type  aspect_type;
-
-    explicit  basic_ios_fill_saver( state_type &s )
-        : s_save_( s ), a_save_( s.fill() )
-        {}
-    basic_ios_fill_saver( state_type &s, aspect_type const &a )
-        : s_save_( s ), a_save_( s.fill(a) )
-        {}
-    ~basic_ios_fill_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.fill( a_save_ ); }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-    basic_ios_fill_saver& operator=(const basic_ios_fill_saver&);
-};
-
-#ifndef NDNBOOST_NO_STD_LOCALE
-template < typename Ch, class Tr >
-class basic_ios_locale_saver
-{
-public:
-    typedef ::std::basic_ios<Ch, Tr> state_type;
-    typedef ::std::locale aspect_type;
-
-    explicit basic_ios_locale_saver( state_type &s )
-        : s_save_( s ), a_save_( s.getloc() )
-        {}
-    basic_ios_locale_saver( state_type &s, aspect_type const &a )
-        : s_save_( s ), a_save_( s.imbue(a) )
-        {}
-    ~basic_ios_locale_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.imbue( a_save_ ); }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-    basic_ios_locale_saver& operator=(const basic_ios_locale_saver&);
-};
-#endif
-
-
-//  User-defined stream state saver class declarations  ----------------------//
-
-class ios_iword_saver
-{
-public:
-    typedef ::std::ios_base  state_type;
-    typedef int              index_type;
-    typedef long             aspect_type;
-
-    explicit ios_iword_saver( state_type &s, index_type i )
-        : s_save_( s ), a_save_( s.iword(i) ), i_save_( i )
-        {}
-    ios_iword_saver( state_type &s, index_type i, aspect_type const &a )
-        : s_save_( s ), a_save_( s.iword(i) ), i_save_( i )
-        { s.iword(i) = a; }
-    ~ios_iword_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.iword( i_save_ ) = a_save_; }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-    index_type const   i_save_;
-
-    ios_iword_saver& operator=(const ios_iword_saver&);
-};
-
-class ios_pword_saver
-{
-public:
-    typedef ::std::ios_base  state_type;
-    typedef int              index_type;
-    typedef void *           aspect_type;
-
-    explicit  ios_pword_saver( state_type &s, index_type i )
-        : s_save_( s ), a_save_( s.pword(i) ), i_save_( i )
-        {}
-    ios_pword_saver( state_type &s, index_type i, aspect_type const &a )
-        : s_save_( s ), a_save_( s.pword(i) ), i_save_( i )
-        { s.pword(i) = a; }
-    ~ios_pword_saver()
-        { this->restore(); }
-
-    void  restore()
-        { s_save_.pword( i_save_ ) = a_save_; }
-
-private:
-    state_type &       s_save_;
-    aspect_type const  a_save_;
-    index_type const   i_save_;
-
-    ios_pword_saver operator=(const ios_pword_saver&);
-};
-
-
-//  Combined stream state saver class (template) declarations  ---------------//
-
-class ios_base_all_saver
-{
-public:
-    typedef ::std::ios_base  state_type;
-
-    explicit  ios_base_all_saver( state_type &s )
-        : s_save_( s ), a1_save_( s.flags() ), a2_save_( s.precision() )
-        , a3_save_( s.width() )
-        {}
-
-    ~ios_base_all_saver()
-        { this->restore(); }
-
-    void  restore()
-    {
-        s_save_.width( a3_save_ );
-        s_save_.precision( a2_save_ );
-        s_save_.flags( a1_save_ );
-    }
-
-private:
-    state_type &                s_save_;
-    state_type::fmtflags const  a1_save_;
-    ::std::streamsize const     a2_save_;
-    ::std::streamsize const     a3_save_;
-
-    ios_base_all_saver& operator=(const ios_base_all_saver&);
-};
-
-template < typename Ch, class Tr >
-class basic_ios_all_saver
-{
-public:
-    typedef ::std::basic_ios<Ch, Tr>  state_type;
-
-    explicit  basic_ios_all_saver( state_type &s )
-        : s_save_( s ), a1_save_( s.flags() ), a2_save_( s.precision() )
-        , 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 NDNBOOST_NO_STD_LOCALE
-        , a9_save_( s.getloc() )
-        #endif
-        {}
-
-    ~basic_ios_all_saver()
-        { this->restore(); }
-
-    void  restore()
-    {
-        #ifndef NDNBOOST_NO_STD_LOCALE
-        s_save_.imbue( a9_save_ );
-        #endif
-        s_save_.fill( a8_save_ );
-        s_save_.rdbuf( a7_save_ );
-        s_save_.tie( a6_save_ );
-        s_save_.exceptions( a5_save_ );
-        s_save_.clear( a4_save_ );
-        s_save_.width( a3_save_ );
-        s_save_.precision( a2_save_ );
-        s_save_.flags( a1_save_ );
-    }
-
-private:
-    state_type &                            s_save_;
-    typename state_type::fmtflags const     a1_save_;
-    ::std::streamsize const                 a2_save_;
-    ::std::streamsize const                 a3_save_;
-    typename state_type::iostate const      a4_save_;
-    typename state_type::iostate const      a5_save_;
-    ::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 NDNBOOST_NO_STD_LOCALE
-    ::std::locale const                     a9_save_;
-    #endif
-
-    basic_ios_all_saver& operator=(const basic_ios_all_saver&);
-};
-
-class ios_all_word_saver
-{
-public:
-    typedef ::std::ios_base  state_type;
-    typedef int              index_type;
-
-    ios_all_word_saver( state_type &s, index_type i )
-        : s_save_( s ), i_save_( i ), a1_save_( s.iword(i) )
-        , a2_save_( s.pword(i) )
-        {}
-
-    ~ios_all_word_saver()
-        { this->restore(); }
-
-    void  restore()
-    {
-        s_save_.pword( i_save_ ) = a2_save_;
-        s_save_.iword( i_save_ ) = a1_save_;
-    }
-
-private:
-    state_type &      s_save_;
-    index_type const  i_save_;
-    long const        a1_save_;
-    void * const      a2_save_;
-
-    ios_all_word_saver& operator=(const ios_all_word_saver&);
-};
-
-
-}  // namespace io
-}  // namespace ndnboost
-
-
-#endif  // NDNBOOST_IO_IOS_STATE_HPP
diff --git a/include/ndnboost/io_fwd.hpp b/include/ndnboost/io_fwd.hpp
deleted file mode 100644
index 755a58a..0000000
--- a/include/ndnboost/io_fwd.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//  Boost io_fwd.hpp header file  --------------------------------------------//
-
-//  Copyright 2002 Daryle Walker.  Use, modification, and distribution are subject
-//  to the Boost Software License, Version 1.0.  (See accompanying file
-//  LICENSE_1_0.txt or a copy at <http://www.boost.org/LICENSE_1_0.txt>.)
-
-//  See <http://www.boost.org/libs/io/> for the library's home page.
-
-#ifndef NDNBOOST_IO_FWD_HPP
-#define NDNBOOST_IO_FWD_HPP
-
-#include <iosfwd>  // for std::char_traits (declaration)
-
-
-namespace ndnboost
-{
-namespace io
-{
-
-
-//  From <ndnboost/io/ios_state.hpp>  -------------------------------------------//
-
-class ios_flags_saver;
-class ios_precision_saver;
-class ios_width_saver;
-class ios_base_all_saver;
-
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
-    class basic_ios_iostate_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
-    class basic_ios_exception_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
-    class basic_ios_tie_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
-    class basic_ios_rdbuf_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
-    class basic_ios_fill_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
-    class basic_ios_locale_saver;
-template < typename Ch, class Tr = ::std::char_traits<Ch> >
-    class basic_ios_all_saver;
-
-typedef basic_ios_iostate_saver<char>        ios_iostate_saver;
-typedef basic_ios_iostate_saver<wchar_t>    wios_iostate_saver;
-typedef basic_ios_exception_saver<char>      ios_exception_saver;
-typedef basic_ios_exception_saver<wchar_t>  wios_exception_saver;
-typedef basic_ios_tie_saver<char>            ios_tie_saver;
-typedef basic_ios_tie_saver<wchar_t>        wios_tie_saver;
-typedef basic_ios_rdbuf_saver<char>          ios_rdbuf_saver;
-typedef basic_ios_rdbuf_saver<wchar_t>      wios_rdbuf_saver;
-typedef basic_ios_fill_saver<char>           ios_fill_saver;
-typedef basic_ios_fill_saver<wchar_t>       wios_fill_saver;
-typedef basic_ios_locale_saver<char>         ios_locale_saver;
-typedef basic_ios_locale_saver<wchar_t>     wios_locale_saver;
-typedef basic_ios_all_saver<char>            ios_all_saver;
-typedef basic_ios_all_saver<wchar_t>        wios_all_saver;
-
-class ios_iword_saver;
-class ios_pword_saver;
-class ios_all_word_saver;
-
-
-}  // namespace io
-}  // namespace ndnboost
-
-
-#endif  // NDNBOOST_IO_FWD_HPP
diff --git a/include/ndnboost/iostreams/categories.hpp b/include/ndnboost/iostreams/categories.hpp
deleted file mode 100644
index b5a4255..0000000
--- a/include/ndnboost/iostreams/categories.hpp
+++ /dev/null
@@ -1,175 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains category and mode tags for classifying filters, devices and 
-// standard stream and stream buffers types.
-
-#ifndef NDNBOOST_IOSTREAMS_CATEGORIES_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_CATEGORIES_HPP_INCLUDED 
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-namespace ndnboost { namespace iostreams {
-
-//------------------Tags for dispatch according to i/o mode-------------------//
-
-struct any_tag { };
-namespace detail { struct two_sequence : virtual any_tag { }; }
-namespace detail { struct random_access : virtual any_tag { }; }
-namespace detail { struct one_head : virtual any_tag { }; }
-namespace detail { struct two_head : virtual any_tag { }; }
-struct input : virtual any_tag { };
-struct output : virtual any_tag { };
-struct bidirectional : virtual input, virtual output, detail::two_sequence { };
-struct dual_use : virtual input, virtual output { }; // Pseudo-mode.
-struct input_seekable : virtual input, virtual detail::random_access { };
-struct output_seekable : virtual output, virtual detail::random_access { };
-struct seekable
-    : virtual input_seekable, 
-      virtual output_seekable,
-      detail::one_head
-    { };
-struct dual_seekable
-    : virtual input_seekable,
-      virtual output_seekable,
-      detail::two_head
-    { };  
-struct bidirectional_seekable
-    : input_seekable, output_seekable,
-      bidirectional, detail::two_head
-    { };
-
-//------------------Tags for use as i/o categories----------------------------//
-
-struct device_tag : virtual any_tag { };
-struct filter_tag : virtual any_tag { };
-
-    // 
-    // Tags for optional behavior.
-    //
-
-struct peekable_tag : virtual any_tag { };        // Devices.
-struct closable_tag : virtual any_tag { };
-struct flushable_tag : virtual any_tag { };
-struct localizable_tag : virtual any_tag { };
-struct optimally_buffered_tag : virtual any_tag { };
-struct direct_tag : virtual any_tag { };          // Devices.
-struct multichar_tag : virtual any_tag { };       // Filters.
-
-struct source_tag : device_tag, input { };
-struct sink_tag : device_tag, output { };
-struct bidirectional_device_tag : device_tag, bidirectional { };
-struct seekable_device_tag : virtual device_tag, seekable { };
-
-struct input_filter_tag : filter_tag, input { };
-struct output_filter_tag : filter_tag, output { };
-struct bidirectional_filter_tag : filter_tag, bidirectional { };
-struct seekable_filter_tag : filter_tag, seekable { };
-struct dual_use_filter_tag : filter_tag, dual_use { };
-
-struct multichar_input_filter_tag
-    : multichar_tag,
-      input_filter_tag
-    { };
-struct multichar_output_filter_tag
-    : multichar_tag,
-      output_filter_tag
-    { };
-struct multichar_bidirectional_filter_tag
-    : multichar_tag,
-      bidirectional_filter_tag
-    { };
-struct multichar_seekable_filter_tag
-    : multichar_tag,
-      seekable_filter_tag
-    { };
-struct multichar_dual_use_filter_tag 
-    : multichar_tag, 
-      dual_use_filter_tag
-    { };
-
-    //
-    // Tags for standard streams and streambufs.
-    //
-
-struct std_io_tag : virtual localizable_tag { };
-struct istream_tag
-    : virtual device_tag,
-      virtual peekable_tag,
-      virtual std_io_tag
-    { };
-struct ostream_tag
-    : virtual device_tag,
-      virtual std_io_tag
-    { };
-struct iostream_tag
-    : istream_tag,
-      ostream_tag
-    { };
-struct streambuf_tag
-    : device_tag,
-      peekable_tag,
-      std_io_tag
-    { };
-struct ifstream_tag
-    : input_seekable,
-      closable_tag,
-      istream_tag
-    { };
-struct ofstream_tag
-    : output_seekable,
-      closable_tag,
-      ostream_tag
-    { };
-struct fstream_tag
-    : seekable,
-      closable_tag,
-      iostream_tag
-    { };
-struct filebuf_tag
-    : seekable,
-      closable_tag,
-      streambuf_tag
-    { };
-struct istringstream_tag
-    : input_seekable,
-      istream_tag
-    { };
-struct ostringstream_tag
-    : output_seekable,
-      ostream_tag
-    { };
-struct stringstream_tag
-    : dual_seekable,
-      iostream_tag
-    { };
-struct stringbuf_tag
-    : dual_seekable,
-      streambuf_tag
-    { };
-struct generic_istream_tag 
-    : input_seekable,
-      istream_tag
-    { };
-struct generic_ostream_tag 
-    : output_seekable,
-      ostream_tag
-    { };
-struct generic_iostream_tag 
-    : seekable,
-      iostream_tag
-    { };
-struct generic_streambuf_tag 
-    : seekable,
-      streambuf_tag
-    { };
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_CATEGORIES_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/chain.hpp b/include/ndnboost/iostreams/chain.hpp
deleted file mode 100644
index b0fac48..0000000
--- a/include/ndnboost/iostreams/chain.hpp
+++ /dev/null
@@ -1,598 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CHAIN_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CHAIN_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/assert.hpp>
-#include <exception>
-#include <functional>                           // unary_function.
-#include <iterator>                             // advance.
-#include <list>
-#include <memory>                               // allocator, auto_ptr.
-#include <typeinfo>
-#include <stdexcept>                            // logic_error, out_of_range.
-#include <ndnboost/checked_delete.hpp>
-#include <ndnboost/config.hpp>                     // NDNBOOST_MSVC, template friends,
-#include <ndnboost/detail/workaround.hpp>          // NDNBOOST_NESTED_TEMPLATE 
-#include <ndnboost/iostreams/constants.hpp>
-#include <ndnboost/iostreams/detail/access_control.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/push.hpp>
-#include <ndnboost/iostreams/detail/streambuf.hpp> // pubsync.
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/device/null.hpp>
-#include <ndnboost/iostreams/positioning.hpp>
-#include <ndnboost/iostreams/traits.hpp>           // is_filter.
-#include <ndnboost/iostreams/stream_buffer.hpp>
-#include <ndnboost/next_prior.hpp>
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type.hpp>
-#include <ndnboost/iostreams/detail/execute.hpp>   // VC6.5 requires this
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)        // #include order
-# include <ndnboost/mpl/int.hpp>
-#endif
-
-// Sometimes type_info objects must be compared by name. Borrowed from
-// Boost.Python and Boost.Function.
-#if (defined(__GNUC__) && __GNUC__ >= 3) || \
-     defined(_AIX) || \
-    (defined(__sgi) && defined(__host_mips)) || \
-    (defined(linux) && defined(__INTEL_COMPILER) && defined(__ICC)) \
-    /**/
-# include <cstring>
-# define NDNBOOST_IOSTREAMS_COMPARE_TYPE_ID(X,Y) \
-     (std::strcmp((X).name(),(Y).name()) == 0)
-#else
-# define NDNBOOST_IOSTREAMS_COMPARE_TYPE_ID(X,Y) ((X)==(Y))
-#endif
-
-// Deprecated
-#define NDNBOOST_IOSTREAMS_COMPONENT_TYPE(chain, index) \
-    chain.component_type( index ) \
-    /**/
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-# define NDNBOOST_IOSTREAMS_COMPONENT(chain, index, target) \
-    chain.component< target >( index ) \
-    /**/
-#else
-# define NDNBOOST_IOSTREAMS_COMPONENT(chain, index, target) \
-    chain.component( index, ::ndnboost::type< target >() ) \
-    /**/
-#endif
-
-namespace ndnboost { namespace iostreams {
-
-//--------------Definition of chain and wchain--------------------------------//
-
-namespace detail {
-
-template<typename Chain> class chain_client;
-
-//
-// Concept name: Chain.
-// Description: Represents a chain of stream buffers which provides access
-//     to the first buffer in the chain and sends notifications when the
-//     streambufs are added to or removed from chain.
-// Refines: Closable device with mode equal to typename Chain::mode.
-// Models: chain, converting_chain.
-// Example:
-//
-//    class chain {
-//    public:
-//        typedef xxx chain_type;
-//        typedef xxx client_type;
-//        typedef xxx mode;
-//        bool is_complete() const;                  // Ready for i/o.
-//        template<typename T>
-//        void push( const T& t,                     // Adds a stream buffer to
-//                   streamsize,                     // chain, based on t, with
-//                   streamsize );                   // given buffer and putback
-//                                                   // buffer sizes. Pass -1 to
-//                                                   // request default size.
-//    protected:
-//        void register_client(client_type* client); // Associate client.
-//        void notify();                             // Notify client.
-//    };
-//
-
-//
-// Description: Represents a chain of filters with an optional device at the
-//      end.
-// Template parameters:
-//      Self - A class deriving from the current instantiation of this template.
-//          This is an example of the Curiously Recurring Template Pattern.
-//      Ch - The character type.
-//      Tr - The character traits type.
-//      Alloc - The allocator type.
-//      Mode - A mode tag.
-//
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-class chain_base {
-public:
-    typedef Ch                                     char_type;
-    NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
-    typedef Alloc                                  allocator_type;
-    typedef Mode                                   mode;
-    struct category
-        : Mode,
-          device_tag
-        { };
-    typedef chain_client<Self>                     client_type;
-    friend class chain_client<Self>;
-private:
-    typedef linked_streambuf<Ch>                   streambuf_type;
-    typedef std::list<streambuf_type*>             list_type;
-    typedef chain_base<Self, Ch, Tr, Alloc, Mode>  my_type;
-protected:
-    chain_base() : pimpl_(new chain_impl) { }
-    chain_base(const chain_base& rhs): pimpl_(rhs.pimpl_) { }
-public:
-
-    // dual_use is a pseudo-mode to facilitate filter writing, 
-    // not a genuine mode.
-    NDNBOOST_STATIC_ASSERT((!is_convertible<mode, dual_use>::value));
-
-    //----------Buffer sizing-------------------------------------------------//
-
-    // Sets the size of the buffer created for the devices to be added to this
-    // chain. Does not affect the size of the buffer for devices already
-    // added.
-    void set_device_buffer_size(std::streamsize n) 
-        { pimpl_->device_buffer_size_ = n; }
-
-    // Sets the size of the buffer created for the filters to be added
-    // to this chain. Does not affect the size of the buffer for filters already
-    // added.
-    void set_filter_buffer_size(std::streamsize n) 
-        { pimpl_->filter_buffer_size_ = n; }
-
-    // Sets the size of the putback buffer for filters and devices to be added
-    // to this chain. Does not affect the size of the buffer for filters or
-    // devices already added.
-    void set_pback_size(std::streamsize n) 
-        { pimpl_->pback_size_ = n; }
-
-    //----------Device interface----------------------------------------------//
-
-    std::streamsize read(char_type* s, std::streamsize n);
-    std::streamsize write(const char_type* s, std::streamsize n);
-    std::streampos seek(stream_offset off, NDNBOOST_IOS::seekdir way);
-
-    //----------Direct component access---------------------------------------//
-
-    const std::type_info& component_type(int n) const
-    {
-        if (static_cast<size_type>(n) >= size())
-            ndnboost::throw_exception(std::out_of_range("bad chain offset"));
-        return (*ndnboost::next(list().begin(), n))->component_type();
-    }
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-    // Deprecated.
-    template<int N>
-    const std::type_info& component_type() const { return component_type(N); }
-
-    template<typename T>
-    T* component(int n) const { return component(n, ndnboost::type<T>()); }
-
-    // Deprecated.
-    template<int N, typename T> 
-    T* component() const { return component<T>(N); }
-#endif
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-    private:
-#endif
-    template<typename T>
-    T* component(int n, ndnboost::type<T>) const
-    {
-        if (static_cast<size_type>(n) >= size())
-            ndnboost::throw_exception(std::out_of_range("bad chain offset"));
-        streambuf_type* link = *ndnboost::next(list().begin(), n);
-        if (NDNBOOST_IOSTREAMS_COMPARE_TYPE_ID(link->component_type(), typeid(T)))
-            return static_cast<T*>(link->component_impl());
-        else
-            return 0;
-    }
-public:
-
-    //----------Container-like interface--------------------------------------//
-
-    typedef typename list_type::size_type size_type;
-    streambuf_type& front() { return *list().front(); }
-    NDNBOOST_IOSTREAMS_DEFINE_PUSH(push, mode, char_type, push_impl)
-    void pop();
-    bool empty() const { return list().empty(); }
-    size_type size() const { return list().size(); }
-    void reset();
-
-    //----------Additional i/o functions--------------------------------------//
-
-    // Returns true if this chain is non-empty and its final link
-    // is a source or sink, i.e., if it is ready to perform i/o.
-    bool is_complete() const;
-    bool auto_close() const;
-    void set_auto_close(bool close);
-    bool sync() { return front().NDNBOOST_IOSTREAMS_PUBSYNC() != -1; }
-    bool strict_sync();
-private:
-    template<typename T>
-    void push_impl(const T& t, std::streamsize buffer_size = -1, 
-                   std::streamsize pback_size = -1)
-    {
-        typedef typename iostreams::category_of<T>::type  category;
-        typedef typename unwrap_ios<T>::type              component_type;
-        typedef stream_buffer<
-                    component_type,
-                    NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type),
-                    Alloc, Mode
-                >                                         streambuf_t;
-        typedef typename list_type::iterator              iterator;
-        NDNBOOST_STATIC_ASSERT((is_convertible<category, Mode>::value));
-        if (is_complete())
-            ndnboost::throw_exception(std::logic_error("chain complete"));
-        streambuf_type* prev = !empty() ? list().back() : 0;
-        buffer_size =
-            buffer_size != -1 ?
-                buffer_size :
-                iostreams::optimal_buffer_size(t);
-        pback_size =
-            pback_size != -1 ?
-                pback_size :
-                pimpl_->pback_size_;
-        std::auto_ptr<streambuf_t>
-            buf(new streambuf_t(t, buffer_size, pback_size));
-        list().push_back(buf.get());
-        buf.release();
-        if (is_device<component_type>::value) {
-            pimpl_->flags_ |= f_complete | f_open;
-            for ( iterator first = list().begin(),
-                           last = list().end();
-                  first != last;
-                  ++first )
-            {
-                (*first)->set_needs_close();
-            }
-        }
-        if (prev) prev->set_next(list().back());
-        notify();
-    }
-
-    list_type& list() { return pimpl_->links_; }
-    const list_type& list() const { return pimpl_->links_; }
-    void register_client(client_type* client) { pimpl_->client_ = client; }
-    void notify() { if (pimpl_->client_) pimpl_->client_->notify(); }
-
-    //----------Nested classes------------------------------------------------//
-
-    static void close(streambuf_type* b, NDNBOOST_IOS::openmode m)
-    {
-        if (m == NDNBOOST_IOS::out && is_convertible<Mode, output>::value)
-            b->NDNBOOST_IOSTREAMS_PUBSYNC();
-        b->close(m);
-    }
-
-    static void set_next(streambuf_type* b, streambuf_type* next)
-    { b->set_next(next); }
-
-    static void set_auto_close(streambuf_type* b, bool close)
-    { b->set_auto_close(close); }
-
-    struct closer  : public std::unary_function<streambuf_type*, void>  {
-        closer(NDNBOOST_IOS::openmode m) : mode_(m) { }
-        void operator() (streambuf_type* b)
-        {
-            close(b, mode_);
-        }
-        NDNBOOST_IOS::openmode mode_;
-    };
-    friend struct closer;
-
-    enum flags {
-        f_complete = 1,
-        f_open = 2,
-        f_auto_close = 4
-    };
-
-    struct chain_impl {
-        chain_impl()
-            : client_(0), device_buffer_size_(default_device_buffer_size),
-              filter_buffer_size_(default_filter_buffer_size),
-              pback_size_(default_pback_buffer_size),
-              flags_(f_auto_close)
-            { }
-        ~chain_impl()
-            {
-                try { close(); } catch (...) { }
-                try { reset(); } catch (...) { }
-            }
-        void close()
-            {
-                if ((flags_ & f_open) != 0) {
-                    flags_ &= ~f_open;
-                    stream_buffer< basic_null_device<Ch, Mode> > null;
-                    if ((flags_ & f_complete) == 0) {
-                        null.open(basic_null_device<Ch, Mode>());
-                        set_next(links_.back(), &null);
-                    }
-                    links_.front()->NDNBOOST_IOSTREAMS_PUBSYNC();
-                    try {
-                        ndnboost::iostreams::detail::execute_foreach(
-                            links_.rbegin(), links_.rend(), 
-                            closer(NDNBOOST_IOS::in)
-                        );
-                    } catch (...) {
-                        try {
-                            ndnboost::iostreams::detail::execute_foreach(
-                                links_.begin(), links_.end(), 
-                                closer(NDNBOOST_IOS::out)
-                            );
-                        } catch (...) { }
-                        throw;
-                    }
-                    ndnboost::iostreams::detail::execute_foreach(
-                        links_.begin(), links_.end(), 
-                        closer(NDNBOOST_IOS::out)
-                    );
-                }
-            }
-        void reset()
-            {
-                typedef typename list_type::iterator iterator;
-                for ( iterator first = links_.begin(),
-                               last = links_.end();
-                      first != last;
-                      ++first )
-                {
-                    if ( (flags_ & f_complete) == 0 ||
-                         (flags_ & f_auto_close) == 0 )
-                    {
-                        set_auto_close(*first, false);
-                    }
-                    streambuf_type* buf = 0;
-                    std::swap(buf, *first);
-                    delete buf;
-                }
-                links_.clear();
-                flags_ &= ~f_complete;
-                flags_ &= ~f_open;
-            }
-        list_type        links_;
-        client_type*     client_;
-        std::streamsize  device_buffer_size_,
-                         filter_buffer_size_,
-                         pback_size_;
-        int              flags_;
-    };
-    friend struct chain_impl;
-
-    //----------Member data---------------------------------------------------//
-
-private:
-    shared_ptr<chain_impl> pimpl_;
-};
-
-} // End namespace detail.
-
-//
-// Macro: NDNBOOST_IOSTREAMS_DECL_CHAIN(name, category)
-// Description: Defines a template derived from chain_base appropriate for a
-//      particular i/o category. The template has the following parameters:
-//      Ch - The character type.
-//      Tr - The character traits type.
-//      Alloc - The allocator type.
-// Macro parameters:
-//      name_ - The name of the template to be defined.
-//      category_ - The i/o category of the template to be defined.
-//
-#define NDNBOOST_IOSTREAMS_DECL_CHAIN(name_, default_char_) \
-    template< typename Mode, typename Ch = default_char_, \
-              typename Tr = NDNBOOST_IOSTREAMS_CHAR_TRAITS(Ch), \
-              typename Alloc = std::allocator<Ch> > \
-    class name_ : public ndnboost::iostreams::detail::chain_base< \
-                            name_<Mode, Ch, Tr, Alloc>, \
-                            Ch, Tr, Alloc, Mode \
-                         > \
-    { \
-    public: \
-        struct category : device_tag, Mode { }; \
-        typedef Mode                                   mode; \
-    private: \
-        typedef ndnboost::iostreams::detail::chain_base< \
-                    name_<Mode, Ch, Tr, Alloc>, \
-                    Ch, Tr, Alloc, Mode \
-                >                                      base_type; \
-    public: \
-        typedef Ch                                     char_type; \
-        typedef Tr                                     traits_type; \
-        typedef typename traits_type::int_type         int_type; \
-        typedef typename traits_type::off_type         off_type; \
-        name_() { } \
-        name_(const name_& rhs) : base_type(rhs) { } \
-        name_& operator=(const name_& rhs) \
-        { base_type::operator=(rhs); return *this; } \
-    }; \
-    /**/
-NDNBOOST_IOSTREAMS_DECL_CHAIN(chain, char)
-NDNBOOST_IOSTREAMS_DECL_CHAIN(wchain, wchar_t)
-#undef NDNBOOST_IOSTREAMS_DECL_CHAIN
-
-//--------------Definition of chain_client------------------------------------//
-
-namespace detail {
-
-//
-// Template name: chain_client
-// Description: Class whose instances provide access to an underlying chain
-//      using an interface similar to the chains.
-// Subclasses: the various stream and stream buffer templates.
-//
-template<typename Chain>
-class chain_client {
-public:
-    typedef Chain                             chain_type;
-    typedef typename chain_type::char_type    char_type;
-    typedef typename chain_type::traits_type  traits_type;
-    typedef typename chain_type::size_type    size_type;
-    typedef typename chain_type::mode         mode;
-
-    chain_client(chain_type* chn = 0) : chain_(chn ) { }
-    chain_client(chain_client* client) : chain_(client->chain_) { }
-    virtual ~chain_client() { }
-
-    const std::type_info& component_type(int n) const
-    { return chain_->component_type(n); }
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-    // Deprecated.
-    template<int N>
-    const std::type_info& component_type() const
-    { return chain_->NDNBOOST_NESTED_TEMPLATE component_type<N>(); }
-
-    template<typename T>
-    T* component(int n) const
-    { return chain_->NDNBOOST_NESTED_TEMPLATE component<T>(n); }
-
-    // Deprecated.
-    template<int N, typename T>
-    T* component() const
-    { return chain_->NDNBOOST_NESTED_TEMPLATE component<N, T>(); }
-#else
-    template<typename T>
-    T* component(int n, ndnboost::type<T> t) const
-    { return chain_->component(n, t); }
-#endif
-
-    bool is_complete() const { return chain_->is_complete(); }
-    bool auto_close() const { return chain_->auto_close(); }
-    void set_auto_close(bool close) { chain_->set_auto_close(close); }
-    bool strict_sync() { return chain_->strict_sync(); }
-    void set_device_buffer_size(std::streamsize n)
-        { chain_->set_device_buffer_size(n); }
-    void set_filter_buffer_size(std::streamsize n)
-        { chain_->set_filter_buffer_size(n); }
-    void set_pback_size(std::streamsize n) { chain_->set_pback_size(n); }
-    NDNBOOST_IOSTREAMS_DEFINE_PUSH(push, mode, char_type, push_impl)
-    void pop() { chain_->pop(); }
-    bool empty() const { return chain_->empty(); }
-    size_type size() { return chain_->size(); }
-    void reset() { chain_->reset(); }
-
-    // Returns a copy of the underlying chain.
-    chain_type filters() { return *chain_; }
-    chain_type filters() const { return *chain_; }
-protected:
-    template<typename T>
-    void push_impl(const T& t NDNBOOST_IOSTREAMS_PUSH_PARAMS())
-    { chain_->push(t NDNBOOST_IOSTREAMS_PUSH_ARGS()); }
-    chain_type& ref() { return *chain_; }
-    void set_chain(chain_type* c)
-    { chain_ = c; chain_->register_client(this); }
-#if !defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS) && \
-    (!NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600))
-    template<typename S, typename C, typename T, typename A, typename M>
-    friend class chain_base;
-#else
-    public:
-#endif
-    virtual void notify() { }
-private:
-    chain_type* chain_;
-};
-
-//--------------Implementation of chain_base----------------------------------//
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-inline std::streamsize chain_base<Self, Ch, Tr, Alloc, Mode>::read
-    (char_type* s, std::streamsize n)
-{ return iostreams::read(*list().front(), s, n); }
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-inline std::streamsize chain_base<Self, Ch, Tr, Alloc, Mode>::write
-    (const char_type* s, std::streamsize n)
-{ return iostreams::write(*list().front(), s, n); }
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-inline std::streampos chain_base<Self, Ch, Tr, Alloc, Mode>::seek
-    (stream_offset off, NDNBOOST_IOS::seekdir way)
-{ return iostreams::seek(*list().front(), off, way); }
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-void chain_base<Self, Ch, Tr, Alloc, Mode>::reset()
-{
-    using namespace std;
-    pimpl_->close();
-    pimpl_->reset();
-}
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-bool chain_base<Self, Ch, Tr, Alloc, Mode>::is_complete() const
-{
-    return (pimpl_->flags_ & f_complete) != 0;
-}
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-bool chain_base<Self, Ch, Tr, Alloc, Mode>::auto_close() const
-{
-    return (pimpl_->flags_ & f_auto_close) != 0;
-}
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-void chain_base<Self, Ch, Tr, Alloc, Mode>::set_auto_close(bool close)
-{
-    pimpl_->flags_ =
-        (pimpl_->flags_ & ~f_auto_close) |
-        (close ? f_auto_close : 0);
-}
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-bool chain_base<Self, Ch, Tr, Alloc, Mode>::strict_sync()
-{
-    typedef typename list_type::iterator iterator;
-    bool result = true;
-    for ( iterator first = list().begin(),
-                   last = list().end();
-          first != last;
-          ++first )
-    {
-        bool s = (*first)->strict_sync();
-        result = result && s;
-    }
-    return result;
-}
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-void chain_base<Self, Ch, Tr, Alloc, Mode>::pop()
-{
-    NDNBOOST_ASSERT(!empty());
-    if (auto_close())
-        pimpl_->close();
-    streambuf_type* buf = 0;
-    std::swap(buf, list().back());
-    buf->set_auto_close(false);
-    buf->set_next(0);
-    delete buf;
-    list().pop_back();
-    pimpl_->flags_ &= ~f_complete;
-    if (auto_close() || list().empty())
-        pimpl_->flags_ &= ~f_open;
-}
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CHAIN_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/char_traits.hpp b/include/ndnboost/iostreams/char_traits.hpp
deleted file mode 100644
index 97513f2..0000000
--- a/include/ndnboost/iostreams/char_traits.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_CHAR_TRAITS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_CHAR_TRAITS_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif 
-
-#include <ndnboost/config.hpp>
-#include <cstddef>
-#include <cstdio>  // EOF.
-#include <string>  // std::char_traits.
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS
-# include <cwchar>
-#endif
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::wint_t; }
-#endif
-
-namespace ndnboost { namespace iostreams {
-
-// Dinkumware that comes with QNX Momentics 6.3.0, 4.0.2, incorrectly defines
-// the EOF and WEOF macros to not std:: qualify the wint_t type (and so does
-// Sun C++ 5.8 + STLport 4). Fix by placing the def in this scope.
-// NOTE: Use NDNBOOST_WORKAROUND?
-#if (defined(__QNX__) && defined(NDNBOOST_DINKUMWARE_STDLIB))  \
-    || defined(__SUNPRO_CC)
-using ::std::wint_t;
-#endif
-
-const int WOULD_BLOCK = (int) (EOF - 1);
-
-#ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS
-const std::wint_t WWOULD_BLOCK = (std::wint_t) (WEOF - 1);
-#endif
-
-template<typename Ch>
-struct char_traits;
-
-template<>
-struct char_traits<char> : NDNBOOST_IOSTREAMS_CHAR_TRAITS(char) {
-    static char newline() { return '\n'; }
-    static int good() { return '\n'; }
-    static int would_block() { return WOULD_BLOCK; }
-    static bool is_good(int c) { return c != EOF && c != WOULD_BLOCK; }
-    static bool is_eof(int c) { return c == EOF; }
-    static bool would_block(int c) { return c == WOULD_BLOCK; }
-};
-
-#ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS
-template<>
-struct char_traits<wchar_t> : std::char_traits<wchar_t> {
-    static wchar_t newline() { return L'\n'; }
-    static std::wint_t good() { return L'\n'; }
-    static std::wint_t would_block() { return WWOULD_BLOCK; }
-    static bool is_good(std::wint_t c) { return c != WEOF && c != WWOULD_BLOCK; }
-    static bool is_eof(std::wint_t c) { return c == WEOF; }
-    static bool would_block(std::wint_t c) { return c == WWOULD_BLOCK; }
-};
-#endif
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_CHAR_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/checked_operations.hpp b/include/ndnboost/iostreams/checked_operations.hpp
deleted file mode 100644
index 2a27065..0000000
--- a/include/ndnboost/iostreams/checked_operations.hpp
+++ /dev/null
@@ -1,158 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains implementations of get, read, put, write and seek which
-// check a device's mode at runtime instead of compile time.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CHECKED_OPERATIONS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CHECKED_OPERATIONS_HPP_INCLUDED
-
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/dispatch.hpp>
-#include <ndnboost/iostreams/detail/error.hpp>
-#include <ndnboost/iostreams/detail/config/unreachable_return.hpp>
-#include <ndnboost/iostreams/get.hpp>
-#include <ndnboost/iostreams/put.hpp>
-#include <ndnboost/iostreams/read.hpp>
-#include <ndnboost/iostreams/seek.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/iostreams/write.hpp>
-#include <ndnboost/throw_exception.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T> 
-struct read_write_if_impl;
-
-template<typename T> 
-struct seek_if_impl;
-
-} // End namespace detail.
-
-template<typename T>
-typename int_type_of<T>::type get_if(T& t)
-{ 
-    typedef typename detail::dispatch<T, input, output>::type tag;
-    return detail::read_write_if_impl<tag>::get(t);
-}
-
-template<typename T>
-inline std::streamsize
-read_if(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-{ 
-    typedef typename detail::dispatch<T, input, output>::type tag;
-    return detail::read_write_if_impl<tag>::read(t, s, n);
-}
-
-template<typename T>
-bool put_if(T& t, typename char_type_of<T>::type c)
-{ 
-    typedef typename detail::dispatch<T, output, input>::type tag;
-    return detail::read_write_if_impl<tag>::put(t, c);
-}
-
-template<typename T>
-inline std::streamsize write_if
-    (T& t, const typename char_type_of<T>::type* s, std::streamsize n)
-{ 
-    typedef typename detail::dispatch<T, output, input>::type tag;
-    return detail::read_write_if_impl<tag>::write(t, s, n);
-}
-
-template<typename T>
-inline std::streampos
-seek_if( T& t, stream_offset off, NDNBOOST_IOS::seekdir way, 
-         NDNBOOST_IOS::openmode which = NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-{ 
-    using namespace detail;
-    typedef typename dispatch<T, random_access, any_tag>::type tag;
-    return seek_if_impl<tag>::seek(t, off, way, which);
-}
-
-namespace detail {
-
-//------------------Specializations of read_write_if_impl---------------------//
-
-template<>
-struct read_write_if_impl<input> {
-    template<typename T>
-    static typename int_type_of<T>::type get(T& t)
-    { return iostreams::get(t); }
-
-    template<typename T>
-    static std::streamsize
-    read(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-    { return iostreams::read(t, s, n); }
-
-    template<typename T>
-    static bool put(T&, typename char_type_of<T>::type)
-    { ndnboost::throw_exception(cant_write());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(false) }
-
-    template<typename T>
-    static std::streamsize 
-    write(T&, const typename char_type_of<T>::type*, std::streamsize)
-    { ndnboost::throw_exception(cant_write());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(0) }
-};
-
-template<>
-struct read_write_if_impl<output> {
-    template<typename T>
-    static typename int_type_of<T>::type get(T&)
-    { ndnboost::throw_exception(cant_read());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(0) }
-
-    template<typename T>
-    static std::streamsize
-    read(T&, typename char_type_of<T>::type*, std::streamsize)
-    { ndnboost::throw_exception(cant_read());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(0) }
-
-    template<typename T>
-    static bool put(T& t, typename char_type_of<T>::type c)
-    { return iostreams::put(t, c); }
-
-    template<typename T>
-    static std::streamsize 
-    write( T& t, const typename char_type_of<T>::type* s, 
-           std::streamsize n )
-    { return iostreams::write(t, s, n); }
-};
-
-//------------------Specializations of seek_if_impl---------------------------//
-
-template<>
-struct seek_if_impl<random_access> {
-    template<typename T>
-    static std::streampos 
-    seek( T& t, stream_offset off, NDNBOOST_IOS::seekdir way, 
-          NDNBOOST_IOS::openmode which )
-    { return iostreams::seek(t, off, way, which); }
-};
-
-template<>
-struct seek_if_impl<any_tag> {
-    template<typename T>
-    static std::streampos 
-    seek(T&, stream_offset, NDNBOOST_IOS::seekdir, NDNBOOST_IOS::openmode)
-    { ndnboost::throw_exception(cant_seek());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(std::streampos()) }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>  // MSVC.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CHECKED_OPERATIONS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/close.hpp b/include/ndnboost/iostreams/close.hpp
deleted file mode 100644
index 5dde459..0000000
--- a/include/ndnboost/iostreams/close.hpp
+++ /dev/null
@@ -1,259 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_CLOSE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_CLOSE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/flush.hpp>
-#include <ndnboost/iostreams/detail/adapter/non_blocking_adapter.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp> // NDNBOOST_IOS
-#include <ndnboost/iostreams/detail/select.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-template<typename T>
-void close(T& t);
-
-template<typename T>
-void close(T& t, NDNBOOST_IOS::openmode which);
-
-template<typename T, typename Sink>
-void close(T& t, Sink& snk, NDNBOOST_IOS::openmode which);
-    
-namespace detail {
-
-template<typename T>
-void close_all(T& t)
-{ 
-    try {
-        ndnboost::iostreams::close(t, NDNBOOST_IOS::in);
-    } catch (...) {
-        try {
-            ndnboost::iostreams::close(t, NDNBOOST_IOS::out);
-        } catch (...) { }
-        throw;
-    }
-    ndnboost::iostreams::close(t, NDNBOOST_IOS::out);
-}
-
-template<typename T, typename Sink>
-void close_all(T& t, Sink& snk)
-{ 
-    try {
-        ndnboost::iostreams::close(t, snk, NDNBOOST_IOS::in);
-    } catch (...) {
-        try {
-            ndnboost::iostreams::close(t, snk, NDNBOOST_IOS::out);
-        } catch (...) { }
-        throw;
-    }
-    ndnboost::iostreams::close(t, snk, NDNBOOST_IOS::out);
-}
-
-} // End namespace detail. 
-
-} } // End namespaces iostreams, boost.
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //-----------------------------------//
-# include <ndnboost/iostreams/detail/vc6/close.hpp>
-#else // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //--------------------------//
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T>
-struct close_impl;
-
-} // End namespace detail.
-
-template<typename T>
-void close(T& t) { detail::close_all(t); }
-
-template<typename T>
-void close(T& t, NDNBOOST_IOS::openmode which)
-{ 
-#ifdef NDNBOOST_IOSTREAMS_STRICT
-    NDNBOOST_ASSERT(which == NDNBOOST_IOS::in || which == NDNBOOST_IOS::out);
-#else
-    if (which == (NDNBOOST_IOS::in | NDNBOOST_IOS::out)) {
-        detail::close_all(t);
-        return;
-    }
-#endif
-    detail::close_impl<T>::close(detail::unwrap(t), which); 
-}
-
-template<typename T, typename Sink>
-void close(T& t, Sink& snk, NDNBOOST_IOS::openmode which)
-{ 
-#ifdef NDNBOOST_IOSTREAMS_STRICT
-    NDNBOOST_ASSERT(which == NDNBOOST_IOS::in || which == NDNBOOST_IOS::out);
-#else
-    if (which == (NDNBOOST_IOS::in | NDNBOOST_IOS::out)) {
-        detail::close_all(t, snk);
-        return;
-    }
-#endif
-    detail::close_impl<T>::close(detail::unwrap(t), snk, which); 
-}
-
-namespace detail {
-
-//------------------Definition of close_impl----------------------------------//
-
-struct close_boost_stream { };
-struct close_filtering_stream { };
-
-template<typename T>
-struct close_tag {
-    typedef typename category_of<T>::type             category;
-    typedef typename detail::unwrapped_type<T>::type  unwrapped;
-    typedef typename
-            iostreams::select<
-                mpl::not_< is_convertible<category, closable_tag> >,
-                any_tag,
-                mpl::or_<
-                    is_boost_stream<unwrapped>,
-                    is_boost_stream_buffer<unwrapped>
-                >,
-                close_boost_stream,
-                mpl::or_<
-                    is_filtering_stream<unwrapped>,
-                    is_filtering_streambuf<unwrapped>
-                >,
-                close_filtering_stream,
-                mpl::or_<
-                    is_convertible<category, two_sequence>,
-                    is_convertible<category, dual_use>
-                >,
-                two_sequence,
-                else_,
-                closable_tag
-            >::type type;
-};
-
-template<typename T>
-struct close_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          close_impl<NDNBOOST_DEDUCED_TYPENAME close_tag<T>::type>
-      >::type
-    { };
-
-template<>
-struct close_impl<any_tag> {
-    template<typename T>
-    static void close(T& t, NDNBOOST_IOS::openmode which)
-    {
-        if (which == NDNBOOST_IOS::out)
-            iostreams::flush(t);
-    }
-
-    template<typename T, typename Sink>
-    static void close(T& t, Sink& snk, NDNBOOST_IOS::openmode which)
-    {
-        if (which == NDNBOOST_IOS::out) {
-            non_blocking_adapter<Sink> nb(snk);
-            iostreams::flush(t, nb);
-        }
-    }
-};
-
-template<>
-struct close_impl<close_boost_stream> {
-    template<typename T>
-    static void close(T& t)
-    {
-        t.close();
-    }
-    template<typename T>
-    static void close(T& t, NDNBOOST_IOS::openmode which)
-    {
-        if (which == NDNBOOST_IOS::out)
-            t.close();
-    }
-};
-
-template<>
-struct close_impl<close_filtering_stream> {
-    template<typename T>
-    static void close(T& t, NDNBOOST_IOS::openmode which)
-    {
-        typedef typename category_of<T>::type category;
-        const bool in =  is_convertible<category, input>::value &&
-                        !is_convertible<category, output>::value;
-        if (in == (which == NDNBOOST_IOS::in) && t.is_complete())
-            t.pop();
-    }
-};
-
-template<>
-struct close_impl<closable_tag> {
-    template<typename T>
-    static void close(T& t, NDNBOOST_IOS::openmode which)
-    {
-        typedef typename category_of<T>::type category;
-        const bool in =  is_convertible<category, input>::value &&
-                        !is_convertible<category, output>::value;
-        if (in == (which == NDNBOOST_IOS::in))
-            t.close();
-    }
-    template<typename T, typename Sink>
-    static void close(T& t, Sink& snk, NDNBOOST_IOS::openmode which)
-    {
-        typedef typename category_of<T>::type category;
-        const bool in =  is_convertible<category, input>::value &&
-                        !is_convertible<category, output>::value;
-        if (in == (which == NDNBOOST_IOS::in)) {
-            non_blocking_adapter<Sink> nb(snk);
-            t.close(nb);
-        }
-    }
-};
-
-template<>
-struct close_impl<two_sequence> {
-    template<typename T>
-    static void close(T& t, NDNBOOST_IOS::openmode which) { t.close(which); }
-    template<typename T, typename Sink>
-    static void close(T& t, Sink& snk, NDNBOOST_IOS::openmode which)
-    {
-        non_blocking_adapter<Sink> nb(snk);
-        t.close(nb, which);
-    }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#endif // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //-------------------------//
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_CLOSE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/code_converter.hpp b/include/ndnboost/iostreams/code_converter.hpp
deleted file mode 100644
index e2c29d0..0000000
--- a/include/ndnboost/iostreams/code_converter.hpp
+++ /dev/null
@@ -1,425 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains machinery for performing code conversion.
-
-#ifndef NDNBOOST_IOSTREAMS_CODE_CONVERTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_CODE_CONVERTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#if defined(NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS) || \
-    defined(NDNBOOST_IOSTREAMS_NO_LOCALE) \
-    /**/
-# error code conversion not supported on this platform
-#endif
-
-#include <algorithm>                       // max.
-#include <cstring>                         // memcpy.
-#include <exception>
-#include <ndnboost/config.hpp>                // DEDUCED_TYPENAME, 
-#include <ndnboost/iostreams/char_traits.hpp>
-#include <ndnboost/iostreams/constants.hpp>   // default_filter_buffer_size.
-#include <ndnboost/iostreams/detail/adapter/concept_adapter.hpp>
-#include <ndnboost/iostreams/detail/adapter/direct_adapter.hpp>
-#include <ndnboost/iostreams/detail/buffer.hpp>
-#include <ndnboost/iostreams/detail/call_traits.hpp>
-#include <ndnboost/iostreams/detail/codecvt_holder.hpp>
-#include <ndnboost/iostreams/detail/codecvt_helper.hpp>
-#include <ndnboost/iostreams/detail/double_object.hpp>
-#include <ndnboost/iostreams/detail/execute.hpp>
-#include <ndnboost/iostreams/detail/forward.hpp>
-#include <ndnboost/iostreams/detail/functional.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp> // failure, openmode, int types.
-#include <ndnboost/iostreams/detail/optional.hpp>
-#include <ndnboost/iostreams/detail/select.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp> // Borland 5.x
-
-namespace ndnboost { namespace iostreams {
-
-struct code_conversion_error : NDNBOOST_IOSTREAMS_FAILURE {
-    code_conversion_error() 
-        : NDNBOOST_IOSTREAMS_FAILURE("code conversion error")
-        { }
-};
-
-namespace detail {
-
-//--------------Definition of strncpy_if_same---------------------------------//
-
-// Helper template for strncpy_if_same, below.
-template<bool B>
-struct strncpy_if_same_impl;
-
-template<>
-struct strncpy_if_same_impl<true> {
-    template<typename Ch>
-    static Ch* copy(Ch* tgt, const Ch* src, std::streamsize n)
-    { return NDNBOOST_IOSTREAMS_CHAR_TRAITS(Ch)::copy(tgt, src, n); }
-};
-
-template<>
-struct strncpy_if_same_impl<false> {
-    template<typename Src, typename Tgt>
-    static Tgt* copy(Tgt* tgt, const Src*, std::streamsize) { return tgt; }
-};
-
-template<typename Src, typename Tgt>
-Tgt* strncpy_if_same(Tgt* tgt, const Src* src, std::streamsize n)
-{
-    typedef strncpy_if_same_impl<is_same<Src, Tgt>::value> impl;
-    return impl::copy(tgt, src, n);
-}
-
-//--------------Definition of conversion_buffer-------------------------------//
-
-// Buffer and conversion state for reading.
-template<typename Codecvt, typename Alloc>
-class conversion_buffer 
-    : public buffer<
-                 NDNBOOST_DEDUCED_TYPENAME detail::codecvt_extern<Codecvt>::type,
-                 Alloc
-             > 
-{
-public:
-    typedef typename Codecvt::state_type state_type;
-    conversion_buffer() 
-        : buffer<
-              NDNBOOST_DEDUCED_TYPENAME detail::codecvt_extern<Codecvt>::type,
-              Alloc
-          >(0) 
-    { 
-        reset(); 
-    }
-    state_type& state() { return state_; }
-    void reset() 
-    { 
-        if (this->size()) 
-            this->set(0, 0);
-        state_ = state_type(); 
-    }
-private:
-    state_type state_;
-};
-
-//--------------Definition of converter_impl----------------------------------//
-
-// Contains member data, open/is_open/close and buffer management functions.
-template<typename Device, typename Codecvt, typename Alloc>
-struct code_converter_impl {
-    typedef typename codecvt_extern<Codecvt>::type          extern_type;
-    typedef typename category_of<Device>::type              device_category;
-    typedef is_convertible<device_category, input>          can_read;
-    typedef is_convertible<device_category, output>         can_write;
-    typedef is_convertible<device_category, bidirectional>  is_bidir;
-    typedef typename 
-            iostreams::select<  // Disambiguation for Tru64.
-                is_bidir, bidirectional,
-                can_read, input,
-                can_write, output
-            >::type                                         mode;      
-    typedef typename
-            mpl::if_<
-                is_direct<Device>,
-                direct_adapter<Device>,
-                Device
-            >::type                                         device_type;
-    typedef optional< concept_adapter<device_type> >        storage_type;
-    typedef is_convertible<device_category, two_sequence>   is_double;
-    typedef conversion_buffer<Codecvt, Alloc>               buffer_type;
-
-    code_converter_impl() : cvt_(), flags_(0) { }
-
-    ~code_converter_impl()
-    { 
-        try { 
-            if (flags_ & f_open) close(); 
-        } catch (...) { /* */ } 
-    }
-
-    template <class T>
-    void open(const T& dev, int buffer_size)
-    {
-        if (flags_ & f_open)
-            ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("already open"));
-        if (buffer_size == -1)
-            buffer_size = default_filter_buffer_size;
-        int max_length = cvt_.get().max_length();
-        buffer_size = (std::max)(buffer_size, 2 * max_length);
-        if (can_read::value) {
-            buf_.first().resize(buffer_size);
-            buf_.first().set(0, 0);
-        }
-        if (can_write::value && !is_double::value) {
-            buf_.second().resize(buffer_size);
-            buf_.second().set(0, 0);
-        }
-        dev_.reset(concept_adapter<device_type>(dev));
-        flags_ = f_open;
-    }
-
-    void close()
-    {
-        detail::execute_all(
-            detail::call_member_close(*this, NDNBOOST_IOS::in),
-            detail::call_member_close(*this, NDNBOOST_IOS::out)
-        );
-    }
-
-    void close(NDNBOOST_IOS::openmode which)
-    {
-        if (which == NDNBOOST_IOS::in && (flags_ & f_input_closed) == 0) {
-            flags_ |= f_input_closed;
-            iostreams::close(dev(), NDNBOOST_IOS::in);
-        }
-        if (which == NDNBOOST_IOS::out && (flags_ & f_output_closed) == 0) {
-            flags_ |= f_output_closed;
-            detail::execute_all(
-                detail::flush_buffer(buf_.second(), dev(), can_write::value),
-                detail::call_close(dev(), NDNBOOST_IOS::out),
-                detail::call_reset(dev_),
-                detail::call_reset(buf_.first()),
-                detail::call_reset(buf_.second())
-            );
-        }
-    }
-
-    bool is_open() const { return (flags_ & f_open) != 0;}
-
-    device_type& dev() { return **dev_; }
-
-    enum flag_type {
-        f_open             = 1,
-        f_input_closed     = f_open << 1,
-        f_output_closed    = f_input_closed << 1
-    };
-
-    codecvt_holder<Codecvt>  cvt_;
-    storage_type             dev_;
-    double_object<
-        buffer_type, 
-        is_double
-    >                        buf_;
-    int                      flags_;
-};
-
-} // End namespace detail.
-
-//--------------Definition of converter---------------------------------------//
-
-#define NDNBOOST_IOSTREAMS_CONVERTER_PARAMS() , int buffer_size = -1
-#define NDNBOOST_IOSTREAMS_CONVERTER_ARGS() , buffer_size
-
-template<typename Device, typename Codecvt, typename Alloc>
-struct code_converter_base {
-    typedef detail::code_converter_impl<
-                Device, Codecvt, Alloc
-            > impl_type;
-    code_converter_base() : pimpl_(new impl_type) { }
-    shared_ptr<impl_type> pimpl_;
-};
-
-template< typename Device, 
-          typename Codecvt = detail::default_codecvt, 
-          typename Alloc = std::allocator<char> >
-class code_converter 
-    : protected code_converter_base<Device, Codecvt, Alloc>
-{
-private:
-    typedef detail::code_converter_impl<
-                Device, Codecvt, Alloc
-            >                                                       impl_type;
-    typedef typename impl_type::device_type                         device_type;
-    typedef typename impl_type::buffer_type                         buffer_type;
-    typedef typename detail::codecvt_holder<Codecvt>::codecvt_type  codecvt_type;
-    typedef typename detail::codecvt_intern<Codecvt>::type          intern_type;
-    typedef typename detail::codecvt_extern<Codecvt>::type          extern_type;
-    typedef typename detail::codecvt_state<Codecvt>::type           state_type;
-public:
-    typedef intern_type                                             char_type;    
-    struct category 
-        : impl_type::mode, device_tag, closable_tag, localizable_tag
-        { };
-    NDNBOOST_STATIC_ASSERT((
-        is_same<
-            extern_type, 
-            NDNBOOST_DEDUCED_TYPENAME char_type_of<Device>::type
-        >::value
-    ));
-public:
-    code_converter() { }
-#if NDNBOOST_WORKAROUND(__GNUC__, < 3)
-    code_converter(code_converter& rhs) 
-        : code_converter_base<Device, Codecvt, Alloc>(rhs)
-        { }
-    code_converter(const code_converter& rhs) 
-        : code_converter_base<Device, Codecvt, Alloc>(rhs)
-        { }
-#endif
-    NDNBOOST_IOSTREAMS_FORWARD( code_converter, open_impl, Device,
-                             NDNBOOST_IOSTREAMS_CONVERTER_PARAMS, 
-                             NDNBOOST_IOSTREAMS_CONVERTER_ARGS )
-
-        // fstream-like interface.
-
-    bool is_open() const { return this->pimpl_->is_open(); }
-    void close(NDNBOOST_IOS::openmode which = NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-    { impl().close(which); }
-
-        // Device interface.
-
-    std::streamsize read(char_type*, std::streamsize);
-    std::streamsize write(const char_type*, std::streamsize);
-    void imbue(const std::locale& loc) { impl().cvt_.imbue(loc); }
-
-        // Direct device access.
-
-    Device& operator*() { return detail::unwrap_direct(dev()); }
-    Device* operator->() { return &detail::unwrap_direct(dev()); }
-private:
-    template<typename T> // Used for forwarding.
-    void open_impl(const T& t NDNBOOST_IOSTREAMS_CONVERTER_PARAMS()) 
-    { 
-        impl().open(t NDNBOOST_IOSTREAMS_CONVERTER_ARGS()); 
-    }
-
-    const codecvt_type& cvt() { return impl().cvt_.get(); }
-    device_type& dev() { return impl().dev(); }
-    buffer_type& in() { return impl().buf_.first(); }
-    buffer_type& out() { return impl().buf_.second(); }
-    impl_type& impl() { return *this->pimpl_; }
-};
-
-//--------------Implementation of converter-----------------------------------//
-
-// Implementation note: if end of stream contains a partial character,
-// it is ignored.
-template<typename Device, typename Codevt, typename Alloc>
-std::streamsize code_converter<Device, Codevt, Alloc>::read
-    (char_type* s, std::streamsize n)
-{
-    const extern_type*   next;        // Next external char.
-    intern_type*         nint;        // Next internal char.
-    std::streamsize      total = 0;   // Characters read.
-    int                  status = iostreams::char_traits<char>::good();
-    bool                 partial = false;
-    buffer_type&         buf = in();
-
-    do {
-
-        // Fill buffer.
-        if (buf.ptr() == buf.eptr() || partial) {
-            status = buf.fill(dev());
-            if (buf.ptr() == buf.eptr())
-                break;
-            partial = false;
-        }
-
-        // Convert.
-        std::codecvt_base::result result =
-            cvt().in( buf.state(),
-                      buf.ptr(), buf.eptr(), next,
-                      s + total, s + n, nint );
-        buf.ptr() += next - buf.ptr();
-        total = static_cast<std::streamsize>(nint - s);
-
-        switch (result) {
-        case std::codecvt_base::partial:
-            partial = true;
-            break;
-        case std::codecvt_base::ok:
-            break;
-        case std::codecvt_base::noconv:
-            {
-                std::streamsize amt = 
-                    std::min<std::streamsize>(next - buf.ptr(), n - total);
-                detail::strncpy_if_same(s + total, buf.ptr(), amt);
-                total += amt;
-            }
-            break;
-        case std::codecvt_base::error:
-        default:
-            buf.state() = state_type();
-            ndnboost::throw_exception(code_conversion_error());
-        }
-
-    } while (total < n && status != EOF && status != WOULD_BLOCK);
-
-    return total == 0 && status == EOF ? -1 : total;
-}
-
-template<typename Device, typename Codevt, typename Alloc>
-std::streamsize code_converter<Device, Codevt, Alloc>::write
-    (const char_type* s, std::streamsize n)
-{
-    buffer_type&        buf = out();
-    extern_type*        next;              // Next external char.
-    const intern_type*  nint;              // Next internal char.
-    std::streamsize     total = 0;         // Characters written.
-    bool                partial = false;
-
-    while (total < n) {
-
-        // Empty buffer.
-        if (buf.eptr() == buf.end() || partial) {
-            if (!buf.flush(dev()))
-                break;
-            partial = false;
-        }
-       
-        // Convert.
-        std::codecvt_base::result result =
-            cvt().out( buf.state(),
-                       s + total, s + n, nint,
-                       buf.eptr(), buf.end(), next );
-        int progress = (int) (next - buf.eptr());
-        buf.eptr() += progress;
-
-        switch (result) {
-        case std::codecvt_base::partial:
-            partial = true;
-            NDNBOOST_FALLTHROUGH;
-        case std::codecvt_base::ok:
-            total = static_cast<std::streamsize>(nint - s);
-            break;
-        case std::codecvt_base::noconv:
-            {
-                std::streamsize amt = 
-                    std::min<std::streamsize>( nint - total - s, 
-                                               buf.end() - buf.eptr() );
-                detail::strncpy_if_same(buf.eptr(), s + total, amt);
-                total += amt;
-            }
-            break;
-        case std::codecvt_base::error:
-        default:
-            buf.state() = state_type();
-            ndnboost::throw_exception(code_conversion_error());
-        }
-    }
-    return total;
-}
-
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp> // Borland 5.x
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_CODE_CONVERTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/combine.hpp b/include/ndnboost/iostreams/combine.hpp
deleted file mode 100644
index 8ffcf63..0000000
--- a/include/ndnboost/iostreams/combine.hpp
+++ /dev/null
@@ -1,260 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// To do: add support for random-access.
-
-#ifndef NDNBOOST_IOSTREAMS_COMBINE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_COMBINE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp> // NO_STD_LOCALE, DEDUCED_TYPENAME.
-#ifndef NDNBOOST_NO_STD_LOCALE
-# include <locale>
-#endif
-#include <ndnboost/iostreams/detail/ios.hpp>   
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>       
-#include <ndnboost/iostreams/traits.hpp>         
-#include <ndnboost/iostreams/operations.hpp>        
-#include <ndnboost/mpl/if.hpp>    
-#include <ndnboost/static_assert.hpp>  
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_same.hpp> 
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-//
-// Template name: combined_device.
-// Description: Model of Device defined in terms of a Source/Sink pair.
-// Template parameters:
-//      Source - A model of Source, with the same char_type and traits_type
-//          as Sink.
-//      Sink - A model of Sink, with the same char_type and traits_type
-//          as Source.
-//
-template<typename Source, typename Sink>
-class combined_device {
-private:
-    typedef typename category_of<Source>::type  in_category;
-    typedef typename category_of<Sink>::type    out_category;
-    typedef typename char_type_of<Sink>::type   sink_char_type;
-public:
-    typedef typename char_type_of<Source>::type char_type;
-    struct category
-        : bidirectional, 
-          device_tag, 
-          closable_tag, 
-          localizable_tag
-        { };
-    NDNBOOST_STATIC_ASSERT(is_device<Source>::value);
-    NDNBOOST_STATIC_ASSERT(is_device<Sink>::value);
-    NDNBOOST_STATIC_ASSERT((is_convertible<in_category, input>::value));
-    NDNBOOST_STATIC_ASSERT((is_convertible<out_category, output>::value));
-    NDNBOOST_STATIC_ASSERT((is_same<char_type, sink_char_type>::value));
-    combined_device(const Source& src, const Sink& snk);
-    std::streamsize read(char_type* s, std::streamsize n);
-    std::streamsize write(const char_type* s, std::streamsize n);
-    void close(NDNBOOST_IOS::openmode);
-    #ifndef NDNBOOST_NO_STD_LOCALE
-        void imbue(const std::locale& loc);
-    #endif
-private:
-    Source  src_;
-    Sink    sink_;
-};
-
-//
-// Template name: combined_filter.
-// Description: Model of Device defined in terms of a Source/Sink pair.
-// Template parameters:
-//      InputFilter - A model of InputFilter, with the same char_type as 
-//          OutputFilter.
-//      OutputFilter - A model of OutputFilter, with the same char_type as 
-//          InputFilter.
-//
-template<typename InputFilter, typename OutputFilter>
-class combined_filter {
-private:
-    typedef typename category_of<InputFilter>::type    in_category;
-    typedef typename category_of<OutputFilter>::type   out_category;
-    typedef typename char_type_of<OutputFilter>::type  output_char_type;
-public:
-    typedef typename char_type_of<InputFilter>::type   char_type;
-    struct category 
-        : multichar_bidirectional_filter_tag,
-          closable_tag, 
-          localizable_tag
-        { };
-    NDNBOOST_STATIC_ASSERT(is_filter<InputFilter>::value);
-    NDNBOOST_STATIC_ASSERT(is_filter<OutputFilter>::value);
-    NDNBOOST_STATIC_ASSERT((is_convertible<in_category, input>::value));
-    NDNBOOST_STATIC_ASSERT((is_convertible<out_category, output>::value));
-    NDNBOOST_STATIC_ASSERT((is_same<char_type, output_char_type>::value));
-    combined_filter(const InputFilter& in, const OutputFilter& out);
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    { return ndnboost::iostreams::read(in_, src, s, n); }
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    { return ndnboost::iostreams::write(out_, snk, s, n); }
-
-    template<typename Sink>
-    void close(Sink& snk, NDNBOOST_IOS::openmode which)
-    {
-        if (which == NDNBOOST_IOS::in) {
-            if (is_convertible<in_category, dual_use>::value) {
-                iostreams::close(in_, snk, NDNBOOST_IOS::in);
-            } else {
-                detail::close_all(in_, snk);
-            }
-        }
-        if (which == NDNBOOST_IOS::out) {
-            if (is_convertible<out_category, dual_use>::value) {
-                iostreams::close(out_, snk, NDNBOOST_IOS::out);
-            } else {
-                detail::close_all(out_, snk);
-            }
-        }
-    }
-    #ifndef NDNBOOST_NO_STD_LOCALE
-        void imbue(const std::locale& loc);
-    #endif
-private:
-    InputFilter   in_;
-    OutputFilter  out_;
-};
-
-template<typename In, typename Out>
-struct combination_traits 
-    : mpl::if_<
-          is_device<In>,
-          combined_device<
-              typename wrapped_type<In>::type,
-              typename wrapped_type<Out>::type
-          >,
-          combined_filter<
-              typename wrapped_type<In>::type,
-              typename wrapped_type<Out>::type
-          >
-      >
-    { };
-
-} // End namespace detail.
-
-template<typename In, typename Out>
-struct combination : detail::combination_traits<In, Out>::type {
-    typedef typename detail::combination_traits<In, Out>::type  base_type;
-    typedef typename detail::wrapped_type<In>::type          in_type;
-    typedef typename detail::wrapped_type<Out>::type         out_type;
-    combination(const in_type& in, const out_type& out)
-        : base_type(in, out) { }
-};
-
-namespace detail {
-
-// Workaround for VC6 ETI bug.
-template<typename In, typename Out>
-struct combine_traits {
-    typedef combination<
-                NDNBOOST_DEDUCED_TYPENAME detail::unwrapped_type<In>::type, 
-                NDNBOOST_DEDUCED_TYPENAME detail::unwrapped_type<Out>::type
-            > type;
-};
-
-} // End namespace detail.
-
-//
-// Template name: combine.
-// Description: Takes a Source/Sink pair or InputFilter/OutputFilter pair and
-//      returns a Source or Filter which performs input using the first member
-//      of the pair and output using the second member of the pair.
-// Template parameters:
-//      In - A model of Source or InputFilter, with the same char_type as Out.
-//      Out - A model of Sink or OutputFilter, with the same char_type as In.
-//
-template<typename In, typename Out>
-typename detail::combine_traits<In, Out>::type
-combine(const In& in, const Out& out) 
-{ 
-    typedef typename detail::combine_traits<In, Out>::type return_type;
-    return return_type(in, out); 
-}
-
-//----------------------------------------------------------------------------//
-
-namespace detail {
-
-//--------------Implementation of combined_device-----------------------------//
-
-template<typename Source, typename Sink>
-inline combined_device<Source, Sink>::combined_device
-    (const Source& src, const Sink& snk)
-    : src_(src), sink_(snk) { }
-
-template<typename Source, typename Sink>
-inline std::streamsize
-combined_device<Source, Sink>::read(char_type* s, std::streamsize n)
-{ return iostreams::read(src_, s, n); }
-
-template<typename Source, typename Sink>
-inline std::streamsize
-combined_device<Source, Sink>::write(const char_type* s, std::streamsize n)
-{ return iostreams::write(sink_, s, n); }
-
-template<typename Source, typename Sink>
-inline void
-combined_device<Source, Sink>::close(NDNBOOST_IOS::openmode which)
-{ 
-    if (which == NDNBOOST_IOS::in)
-        detail::close_all(src_); 
-    if (which == NDNBOOST_IOS::out)
-        detail::close_all(sink_); 
-}
-
-#ifndef NDNBOOST_NO_STD_LOCALE
-    template<typename Source, typename Sink>
-    void combined_device<Source, Sink>::imbue(const std::locale& loc)
-    {
-        iostreams::imbue(src_, loc);
-        iostreams::imbue(sink_, loc);
-    }
-#endif
-
-//--------------Implementation of filter_pair---------------------------------//
-
-template<typename InputFilter, typename OutputFilter>
-inline combined_filter<InputFilter, OutputFilter>::combined_filter
-    (const InputFilter& in, const OutputFilter& out) : in_(in), out_(out)
-    { }
-
-#ifndef NDNBOOST_NO_STD_LOCALE
-    template<typename InputFilter, typename OutputFilter>
-    void combined_filter<InputFilter, OutputFilter>::imbue
-        (const std::locale& loc)
-    {
-        iostreams::imbue(in_, loc);
-        iostreams::imbue(out_, loc);
-    }
-#endif
-
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_COMBINE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/compose.hpp b/include/ndnboost/iostreams/compose.hpp
deleted file mode 100644
index 8d55ddc..0000000
--- a/include/ndnboost/iostreams/compose.hpp
+++ /dev/null
@@ -1,494 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Note: bidirectional streams are not supported.
-
-#ifndef NDNBOOST_IOSTREAMS_COMPOSE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_COMPOSE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <algorithm>          // min.
-#include <utility>            // pair.
-#include <ndnboost/config.hpp>   // DEDUCED_TYPENAME.
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/adapter/direct_adapter.hpp>
-#include <ndnboost/iostreams/detail/call_traits.hpp>
-#include <ndnboost/iostreams/detail/enable_if_stream.hpp>
-#include <ndnboost/iostreams/detail/execute.hpp>
-#include <ndnboost/iostreams/detail/functional.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/iostreams/traits.hpp>      // mode_of, is_direct.
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/ref.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template< typename First, 
-          typename Second,
-          typename FirstMode = 
-              NDNBOOST_DEDUCED_TYPENAME mode_of<First>::type,
-          typename SecondMode = 
-              NDNBOOST_DEDUCED_TYPENAME mode_of<Second>::type >
-struct composite_mode
-    : select<
-          is_convertible<SecondMode, FirstMode>, FirstMode,
-          is_convertible<FirstMode, SecondMode>, SecondMode,
-          is_convertible<SecondMode, input>,     input,
-          else_,                                 output
-      >
-    { };
-
-//
-// Template name: composite_device.
-// Description: Provides a Device view of a Filter, Device pair.
-// Template parameters:
-//      Filter - A model of Filter.
-//      Device - An indirect model of Device.
-//
-template< typename Filter,
-          typename Device,
-          typename Mode =
-              NDNBOOST_DEDUCED_TYPENAME composite_mode<Filter, Device>::type >
-class composite_device {
-private:
-    typedef typename detail::param_type<Device>::type       param_type;
-    typedef typename mode_of<Filter>::type                  filter_mode;
-    typedef typename mode_of<Device>::type                  device_mode;
-    typedef typename
-            iostreams::select<  // Disambiguation for Tru64.
-                is_direct<Device>,  direct_adapter<Device>,
-                is_std_io<Device>,  Device&,
-                else_,              Device
-            >::type                                         value_type;
-    NDNBOOST_STATIC_ASSERT(is_filter<Filter>::value);
-    NDNBOOST_STATIC_ASSERT(is_device<Device>::value);
-public:
-    typedef typename char_type_of<Filter>::type             char_type;
-    struct category
-        : Mode,
-          device_tag,
-          closable_tag,
-          flushable_tag,
-          localizable_tag,
-          optimally_buffered_tag
-        { };
-    composite_device(const Filter& flt, param_type dev);
-    std::streamsize read(char_type* s, std::streamsize n);
-    std::streamsize write(const char_type* s, std::streamsize n);
-    std::streampos seek( stream_offset off, NDNBOOST_IOS::seekdir way,
-                         NDNBOOST_IOS::openmode which =
-                             NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-
-    void close();
-    void close(NDNBOOST_IOS::openmode which);
-    bool flush();
-    std::streamsize optimal_buffer_size() const;
-
-    template<typename Locale> // Avoid dependency on <locale>
-    void imbue(const Locale& loc)
-    {
-        iostreams::imbue(filter_, loc);
-        iostreams::imbue(device_, loc);
-    }
-
-    Filter& first() { return filter_; }
-    Device& second() { return device_; }
-private:
-    Filter      filter_;
-    value_type  device_;
-};
-
-//
-// Template name: composite_device.
-// Description: Provides a Device view of a Filter, Device pair.
-// Template parameters:
-//      Filter - A model of Filter.
-//      Device - An indirect model of Device.
-//
-template< typename Filter1, 
-          typename Filter2,
-          typename Mode =
-              NDNBOOST_DEDUCED_TYPENAME composite_mode<Filter1, Filter2>::type >
-class composite_filter {
-private:
-    typedef reference_wrapper<Filter2>           filter_ref;
-    typedef typename mode_of<Filter1>::type      first_mode;
-    typedef typename mode_of<Filter2>::type      second_mode;
-
-    // A dual-use filter cannot be composed with a read-write filter
-    NDNBOOST_STATIC_ASSERT(
-        !(is_convertible<first_mode, dual_use>::value) ||
-        !(is_convertible<second_mode, input>::value) ||
-        !(is_convertible<second_mode, output>::value) ||
-         (is_convertible<second_mode, dual_use>::value)
-    );
-    NDNBOOST_STATIC_ASSERT(
-        !(is_convertible<second_mode, dual_use>::value) ||
-        !(is_convertible<first_mode, input>::value) ||
-        !(is_convertible<first_mode, output>::value) ||
-         (is_convertible<first_mode, dual_use>::value)
-    );
-    NDNBOOST_STATIC_ASSERT(is_filter<Filter1>::value);
-    NDNBOOST_STATIC_ASSERT(is_filter<Filter2>::value);
-public:
-    typedef typename char_type_of<Filter1>::type  char_type;
-    struct category
-        : Mode,
-          filter_tag,
-          multichar_tag,
-          closable_tag,
-          flushable_tag,
-          localizable_tag,
-          optimally_buffered_tag
-        { };
-    composite_filter(const Filter1& filter1, const Filter2& filter2)
-        : filter1_(filter1), filter2_(filter2)
-        { }
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    {
-        composite_device<filter_ref, Source> cmp(ndnboost::ref(filter2_), src);
-        return iostreams::read(filter1_, cmp, s, n);
-    }
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    {
-        composite_device<filter_ref, Sink> cmp(ndnboost::ref(filter2_), snk);
-        return iostreams::write(filter1_, cmp, s, n);
-    }
-
-    template<typename Device>
-    std::streampos seek( Device& dev, stream_offset off, NDNBOOST_IOS::seekdir way,
-                         NDNBOOST_IOS::openmode which =
-                             NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-    {
-        composite_device<filter_ref, Device> cmp(ndnboost::ref(filter2_), dev);
-        return iostreams::seek(filter1_, cmp, off, way, which);
-    }
-
-    template<typename Device>
-    void close(Device& dev)
-    {
-        NDNBOOST_STATIC_ASSERT((!is_convertible<category, two_sequence>::value));
-        NDNBOOST_STATIC_ASSERT((!is_convertible<category, dual_use>::value));
-
-        // Create a new device by composing the second filter2_ with dev.
-        composite_device<filter_ref, Device> cmp(ndnboost::ref(filter2_), dev);
-
-        // Close input sequences in reverse order and output sequences in 
-        // forward order
-        if (!is_convertible<first_mode, dual_use>::value) {
-            detail::execute_all(
-                detail::call_close(filter2_, dev, NDNBOOST_IOS::in),
-                detail::call_close(filter1_, cmp, NDNBOOST_IOS::in),
-                detail::call_close(filter1_, cmp, NDNBOOST_IOS::out),
-                detail::call_close(filter2_, dev, NDNBOOST_IOS::out)
-            );
-        } else if (is_convertible<second_mode, input>::value) {
-            detail::execute_all(
-                detail::call_close(filter2_, dev, NDNBOOST_IOS::in),
-                detail::call_close(filter1_, cmp, NDNBOOST_IOS::in)
-            );
-        } else {
-            detail::execute_all(
-                detail::call_close(filter1_, cmp, NDNBOOST_IOS::out),
-                detail::call_close(filter2_, dev, NDNBOOST_IOS::out)
-            );
-        }
-    }
-
-    template<typename Device>
-    void close(Device& dev, NDNBOOST_IOS::openmode which)
-    {
-        NDNBOOST_STATIC_ASSERT(
-            (is_convertible<category, two_sequence>::value) ||
-            (is_convertible<category, dual_use>::value)
-        );
-
-        // Create a new device by composing the second filter2_ with dev.
-        composite_device<filter_ref, Device> cmp(ndnboost::ref(filter2_), dev);
-
-        // Close input sequences in reverse order
-        if ( which == NDNBOOST_IOS::in &&
-             ( !is_convertible<first_mode, dual_use>::value ||
-                is_convertible<second_mode, input>::value ) )
-        {
-            detail::execute_all(
-                detail::call_close(filter2_, dev, NDNBOOST_IOS::in),
-                detail::call_close(filter1_, cmp, NDNBOOST_IOS::in)
-            );
-        }
-
-        // Close output sequences in forward order
-        if ( which == NDNBOOST_IOS::out &&
-             ( !is_convertible<first_mode, dual_use>::value ||
-                is_convertible<second_mode, output>::value ) )
-        {
-            detail::execute_all(
-                detail::call_close(filter1_, cmp, NDNBOOST_IOS::out),
-                detail::call_close(filter2_, dev, NDNBOOST_IOS::out)
-            );
-        }
-    }
-
-    template<typename Device>
-    bool flush(Device& dev)
-    {
-        composite_device<Filter2, Device> cmp(filter2_, dev);
-        return iostreams::flush(filter1_, cmp);
-    }
-
-    std::streamsize optimal_buffer_size() const
-    {
-        std::streamsize first = iostreams::optimal_buffer_size(filter1_);
-        std::streamsize second = iostreams::optimal_buffer_size(filter2_);
-        return first < second ? second : first;
-    }
-
-    template<typename Locale> // Avoid dependency on <locale>
-    void imbue(const Locale& loc)
-    {   // To do: consider using RAII.
-        iostreams::imbue(filter1_, loc);
-        iostreams::imbue(filter2_, loc);
-    }
-
-    Filter1& first() { return filter1_; }
-    Filter2& second() { return filter2_; }
-private:
-    Filter1  filter1_;
-    Filter2  filter2_;
-};
-
-template<typename Filter, typename FilterOrDevice>
-struct composite_traits
-    : mpl::if_<
-          is_device<FilterOrDevice>,
-          composite_device<Filter, FilterOrDevice>,
-          composite_filter<Filter, FilterOrDevice>
-      >
-    { };
-
-} // End namespace detail.
-
-template<typename Filter, typename FilterOrDevice>
-struct composite : detail::composite_traits<Filter, FilterOrDevice>::type {
-    typedef typename detail::param_type<FilterOrDevice>::type param_type;
-    typedef typename detail::composite_traits<Filter, FilterOrDevice>::type base;
-    composite(const Filter& flt, param_type dev)
-        : base(flt, dev)
-        { }
-};
-
-//--------------Implementation of compose-------------------------------------//
-
-// Note: The following workarounds are patterned after resolve.hpp. It has not
-// yet been confirmed that they are necessary.
-
-#ifndef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //-------------------------//
-# ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-------------------------------//
-
-template<typename Filter, typename FilterOrDevice>
-composite<Filter, FilterOrDevice>
-compose( const Filter& filter, const FilterOrDevice& fod
-         NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(FilterOrDevice) )
-{ return composite<Filter, FilterOrDevice>(filter, fod); }
-
-template<typename Filter, typename Ch, typename Tr>
-composite< Filter, std::basic_streambuf<Ch, Tr> >
-compose(const Filter& filter, std::basic_streambuf<Ch, Tr>& sb)
-{ return composite< Filter, std::basic_streambuf<Ch, Tr> >(filter, sb); }
-
-template<typename Filter, typename Ch, typename Tr>
-composite< Filter, std::basic_istream<Ch, Tr> >
-compose(const Filter& filter, std::basic_istream<Ch, Tr>& is)
-{ return composite< Filter, std::basic_istream<Ch, Tr> >(filter, is); }
-
-template<typename Filter, typename Ch, typename Tr>
-composite< Filter, std::basic_ostream<Ch, Tr> >
-compose(const Filter& filter, std::basic_ostream<Ch, Tr>& os)
-{ return composite< Filter, std::basic_ostream<Ch, Tr> >(filter, os); }
-
-template<typename Filter, typename Ch, typename Tr>
-composite< Filter, std::basic_iostream<Ch, Tr> >
-compose(const Filter& filter, std::basic_iostream<Ch, Tr>& io)
-{ return composite< Filter, std::basic_iostream<Ch, Tr> >(filter, io); }
-
-# else // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //---------------------//
-
-template<typename Filter, typename FilterOrDevice>
-composite<Filter, FilterOrDevice>
-compose( const Filter& filter, const FilterOrDevice& fod
-         NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(FilterOrDevice) )
-{ return composite<Filter, FilterOrDevice>(filter, fod); }
-
-template<typename Filter>
-composite<Filter, std::streambuf>
-compose(const Filter& filter, std::streambuf& sb)
-{ return composite<Filter, std::streambuf>(filter, sb); }
-
-template<typename Filter>
-composite<Filter, std::istream>
-compose(const Filter& filter, std::istream& is)
-{ return composite<Filter, std::istream>(filter, is); }
-
-template<typename Filter>
-composite<Filter, std::ostream>
-compose(const Filter& filter, std::ostream& os)
-{ return composite<Filter, std::ostream>(filter, os); }
-
-template<typename Filter>
-composite<Filter, std::iostream>
-compose(const Filter& filter, std::iostream& io)
-{ return composite<Filter, std::iostream>(filter, io); }
-
-# endif // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------//
-#else // #ifndef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //----------------//
-
-template<typename Filter, typename Stream>
-composite<Filter, Stream>
-compose(const Filter& flt, const Stream& strm, mpl::true_)
-{   // Bad overload resolution.
-    return composite<Filter, Stream>(flt, const_cast<Stream&>(strm));
-}
-
-template<typename Filter, typename FilterOrDevice>
-composite<Filter, FilterOrDevice>
-compose(const Filter& flt, const FilterOrDevice& fod, mpl::false_)
-{ return composite<Filter, FilterOrDevice>(flt, fod); }
-
-template<typename Filter, typename FilterOrDevice>
-composite<Filter, FilterOrDevice>
-compose( const Filter& flt, const FilterOrDevice& fod
-         NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T) )
-{ return compose(flt, fod, is_std_io<FilterOrDevice>()); }
-
-# if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
-     !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) && \
-     !defined(__GNUC__) // ---------------------------------------------------//
-
-template<typename Filter, typename FilterOrDevice>
-composite<Filter, FilterOrDevice>
-compose (const Filter& filter, FilterOrDevice& fod)
-{ return composite<Filter, FilterOrDevice>(filter, fod); }
-
-# endif // Borland 5.x, VC6-7.0 or GCC 2.9x //--------------------------------//
-#endif // #ifndef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //---------------//
-
-//----------------------------------------------------------------------------//
-
-namespace detail {
-
-//--------------Implementation of composite_device---------------------------//
-
-template<typename Filter, typename Device, typename Mode>
-composite_device<Filter, Device, Mode>::composite_device
-    (const Filter& flt, param_type dev)
-    : filter_(flt), device_(dev)
-    { }
-
-template<typename Filter, typename Device, typename Mode>
-inline std::streamsize composite_device<Filter, Device, Mode>::read
-    (char_type* s, std::streamsize n)
-{ return iostreams::read(filter_, device_, s, n); }
-
-template<typename Filter, typename Device, typename Mode>
-inline std::streamsize composite_device<Filter, Device, Mode>::write
-    (const char_type* s, std::streamsize n)
-{ return iostreams::write(filter_, device_, s, n); }
-
-template<typename Filter, typename Device, typename Mode>
-std::streampos composite_device<Filter, Device, Mode>::seek
-    (stream_offset off, NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which)
-{ return iostreams::seek(filter_, device_, off, way, which); }
-
-template<typename Filter, typename Device, typename Mode>
-void composite_device<Filter, Device, Mode>::close()
-{
-    NDNBOOST_STATIC_ASSERT((!is_convertible<Mode, two_sequence>::value));
-    NDNBOOST_STATIC_ASSERT(
-        !(is_convertible<filter_mode, dual_use>::value) ||
-        !(is_convertible<device_mode, input>::value) ||
-        !(is_convertible<device_mode, output>::value)
-    );
-
-    // Close input sequences in reverse order and output sequences 
-    // in forward order
-    if (!is_convertible<filter_mode, dual_use>::value) {
-        detail::execute_all(
-            detail::call_close(device_, NDNBOOST_IOS::in),
-            detail::call_close(filter_, device_, NDNBOOST_IOS::in),
-            detail::call_close(filter_, device_, NDNBOOST_IOS::out),
-            detail::call_close(device_, NDNBOOST_IOS::out)
-        );
-    } else if (is_convertible<device_mode, input>::value) {
-        detail::execute_all(
-            detail::call_close(device_, NDNBOOST_IOS::in),
-            detail::call_close(filter_, device_, NDNBOOST_IOS::in)
-        );
-    } else {
-        detail::execute_all(
-            detail::call_close(filter_, device_, NDNBOOST_IOS::out),
-            detail::call_close(device_, NDNBOOST_IOS::out)
-        );
-    }
-}
-
-template<typename Filter, typename Device, typename Mode>
-void composite_device<Filter, Device, Mode>::close(NDNBOOST_IOS::openmode which)
-{
-    NDNBOOST_STATIC_ASSERT((is_convertible<Mode, two_sequence>::value));
-    NDNBOOST_STATIC_ASSERT(!(is_convertible<filter_mode, dual_use>::value));
-
-    // Close input sequences in reverse order
-    if (which == NDNBOOST_IOS::in) {
-        detail::execute_all(
-            detail::call_close(device_, NDNBOOST_IOS::in),
-            detail::call_close(filter_, device_, NDNBOOST_IOS::in) 
-        );
-    }
-
-    // Close output sequences in forward order
-    if (which == NDNBOOST_IOS::out) {
-        detail::execute_all(
-            detail::call_close(filter_, device_, NDNBOOST_IOS::out),
-            detail::call_close(device_, NDNBOOST_IOS::out)
-        );
-    }
-}
-
-template<typename Filter, typename Device, typename Mode>
-bool composite_device<Filter, Device, Mode>::flush()
-{
-    bool r1 = iostreams::flush(filter_, device_);
-    bool r2 = iostreams::flush(device_);
-    return r1 && r2;
-}
-
-template<typename Filter, typename Device, typename Mode>
-std::streamsize
-composite_device<Filter, Device, Mode>::optimal_buffer_size() const
-{ return iostreams::optimal_buffer_size(device_); }
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_COMPOSE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/concepts.hpp b/include/ndnboost/iostreams/concepts.hpp
deleted file mode 100644
index de734ec..0000000
--- a/include/ndnboost/iostreams/concepts.hpp
+++ /dev/null
@@ -1,129 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_CONCEPTS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_CONCEPTS_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // NDNBOOST_MSVC
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/default_arg.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // openmode.
-#include <ndnboost/iostreams/positioning.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-//--------------Definitions of helper templates for device concepts-----------//
-
-template<typename Mode, typename Ch = NDNBOOST_IOSTREAMS_DEFAULT_ARG(char)>
-struct device {
-    typedef Ch char_type;
-    struct category
-        : Mode,
-          device_tag,
-          closable_tag,
-          localizable_tag
-        { };
-
-    void close()
-    {
-        using namespace detail;
-        NDNBOOST_STATIC_ASSERT((!is_convertible<Mode, two_sequence>::value));
-    }
-
-    void close(NDNBOOST_IOS::openmode)
-    {
-        using namespace detail;
-        NDNBOOST_STATIC_ASSERT((is_convertible<Mode, two_sequence>::value));
-    }
-
-    template<typename Locale>
-    void imbue(const Locale&) { }
-};
-
-template<typename Mode, typename Ch = NDNBOOST_IOSTREAMS_DEFAULT_ARG(wchar_t)>
-struct wdevice : device<Mode, Ch> { };
-
-typedef device<input>    source;
-typedef wdevice<input>   wsource;
-typedef device<output>   sink;
-typedef wdevice<output>  wsink;
-
-//--------------Definitions of helper templates for simple filter concepts----//
-
-template<typename Mode, typename Ch = NDNBOOST_IOSTREAMS_DEFAULT_ARG(char)>
-struct filter {
-    typedef Ch char_type;
-    struct category
-        : Mode,
-          filter_tag,
-          closable_tag,
-          localizable_tag
-        { };
-
-    template<typename Device>
-    void close(Device&)
-    {
-        using namespace detail;
-        NDNBOOST_STATIC_ASSERT((!is_convertible<Mode, two_sequence>::value));
-        NDNBOOST_STATIC_ASSERT((!is_convertible<Mode, dual_use>::value));
-    }
-
-    template<typename Device>
-    void close(Device&, NDNBOOST_IOS::openmode)
-    {
-        using namespace detail;
-        NDNBOOST_STATIC_ASSERT(
-            (is_convertible<Mode, two_sequence>::value) ||
-            (is_convertible<Mode, dual_use>::value)
-        );
-    }
-
-    template<typename Locale>
-    void imbue(const Locale&) { }
-};
-
-template<typename Mode, typename Ch = NDNBOOST_IOSTREAMS_DEFAULT_ARG(wchar_t)>
-struct wfilter : filter<Mode, Ch> { };
-
-typedef filter<input>      input_filter;
-typedef wfilter<input>     input_wfilter;
-typedef filter<output>     output_filter;
-typedef wfilter<output>    output_wfilter;
-typedef filter<seekable>   seekable_filter;
-typedef wfilter<seekable>  seekable_wfilter;
-typedef filter<dual_use>   dual_use_filter;
-typedef wfilter<dual_use>  dual_use_wfilter;
-        
-//------Definitions of helper templates for multi-character filter cncepts----//
-
-template<typename Mode, typename Ch = char>
-struct multichar_filter : filter<Mode, Ch> {
-    struct category : filter<Mode, Ch>::category, multichar_tag { };
-};
-
-template<typename Mode, typename Ch = wchar_t>
-struct multichar_wfilter : multichar_filter<Mode, Ch> { };
-
-typedef multichar_filter<input>      multichar_input_filter;
-typedef multichar_wfilter<input>     multichar_input_wfilter;
-typedef multichar_filter<output>     multichar_output_filter;
-typedef multichar_wfilter<output>    multichar_output_wfilter;
-typedef multichar_filter<dual_use>   multichar_dual_use_filter;
-typedef multichar_wfilter<dual_use>  multichar_dual_use_wfilter;
-
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_CONCEPTS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/constants.hpp b/include/ndnboost/iostreams/constants.hpp
deleted file mode 100644
index 25393d5..0000000
--- a/include/ndnboost/iostreams/constants.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains constants used by library.
-
-#ifndef NDNBOOST_IOSTREAMS_CONSTANTS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_CONSTANTS_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#ifndef NDNBOOST_IOSTREAMS_DEFAULT_DEVICE_BUFFER_SIZE
-# define NDNBOOST_IOSTREAMS_DEFAULT_DEVICE_BUFFER_SIZE 4096
-#endif
-
-#ifndef NDNBOOST_IOSTREAMS_DEFAULT_FILTER_BUFFER_SIZE
-# define NDNBOOST_IOSTREAMS_DEFAULT_FILTER_BUFFER_SIZE 128
-#endif
-
-#ifndef NDNBOOST_IOSTREAMS_DEFAULT_PBACK_BUFFER_SIZE
-# define NDNBOOST_IOSTREAMS_DEFAULT_PBACK_BUFFER_SIZE 4
-#endif
-
-#include <ndnboost/iostreams/detail/ios.hpp>  // streamsize.
-
-namespace ndnboost { namespace iostreams {
-
-const std::streamsize default_device_buffer_size = 
-    NDNBOOST_IOSTREAMS_DEFAULT_DEVICE_BUFFER_SIZE; 
-const std::streamsize default_filter_buffer_size = 
-    NDNBOOST_IOSTREAMS_DEFAULT_FILTER_BUFFER_SIZE;
-const std::streamsize default_pback_buffer_size = 
-    NDNBOOST_IOSTREAMS_DEFAULT_PBACK_BUFFER_SIZE;
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_CONSTANTS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/copy.hpp b/include/ndnboost/iostreams/copy.hpp
deleted file mode 100644
index 4211c5b..0000000
--- a/include/ndnboost/iostreams/copy.hpp
+++ /dev/null
@@ -1,252 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains: The function template copy, which reads data from a Source 
-// and writes it to a Sink until the end of the sequence is reached, returning 
-// the number of characters transfered.
-
-// The implementation is complicated by the need to handle smart adapters
-// and direct devices.
-
-#ifndef NDNBOOST_IOSTREAMS_COPY_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_COPY_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp>                 // Make sure ptrdiff_t is in std.
-#include <algorithm>                        // copy, min.
-#include <cstddef>                          // ptrdiff_t.
-#include <utility>                          // pair.
-#include <ndnboost/bind.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/chain.hpp>
-#include <ndnboost/iostreams/constants.hpp>
-#include <ndnboost/iostreams/detail/adapter/non_blocking_adapter.hpp>        
-#include <ndnboost/iostreams/detail/buffer.hpp>
-#include <ndnboost/iostreams/detail/enable_if_stream.hpp>  
-#include <ndnboost/iostreams/detail/execute.hpp>
-#include <ndnboost/iostreams/detail/functional.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>   // failure, streamsize.                   
-#include <ndnboost/iostreams/detail/resolve.hpp>                   
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations.hpp>  // read, write, close.
-#include <ndnboost/iostreams/pipeline.hpp>
-#include <ndnboost/static_assert.hpp>  
-#include <ndnboost/type_traits/is_same.hpp> 
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-    // The following four overloads of copy_impl() optimize 
-    // copying in the case that one or both of the two devices
-    // models Direct (see 
-    // http://www.boost.org/libs/iostreams/doc/index.html?path=4.1.1.4)
-
-// Copy from a direct source to a direct sink
-template<typename Source, typename Sink>
-std::streamsize copy_impl( Source& src, Sink& snk, 
-                           std::streamsize /* buffer_size */,
-                           mpl::true_, mpl::true_ )
-{   
-    using namespace std;
-    typedef typename char_type_of<Source>::type  char_type;
-    typedef std::pair<char_type*, char_type*>    pair_type;
-    pair_type p1 = iostreams::input_sequence(src);
-    pair_type p2 = iostreams::output_sequence(snk);
-    std::streamsize total = 
-        static_cast<std::streamsize>(
-            (std::min)(p1.second - p1.first, p2.second - p2.first)
-        );
-    std::copy(p1.first, p1.first + total, p2.first);
-    return total;
-}
-
-// Copy from a direct source to an indirect sink
-template<typename Source, typename Sink>
-std::streamsize copy_impl( Source& src, Sink& snk, 
-                           std::streamsize /* buffer_size */,
-                           mpl::true_, mpl::false_ )
-{
-    using namespace std;
-    typedef typename char_type_of<Source>::type  char_type;
-    typedef std::pair<char_type*, char_type*>    pair_type;
-    pair_type p = iostreams::input_sequence(src);
-    std::streamsize size, total;
-    for ( total = 0, size = static_cast<std::streamsize>(p.second - p.first);
-          total < size; )
-    {
-        std::streamsize amt = 
-            iostreams::write(snk, p.first + total, size - total); 
-        total += amt;
-    }
-    return total;
-}
-
-// Copy from an indirect source to a direct sink
-template<typename Source, typename Sink>
-std::streamsize copy_impl( Source& src, Sink& snk, 
-                           std::streamsize buffer_size,
-                           mpl::false_, mpl::true_ )
-{
-    typedef typename char_type_of<Source>::type  char_type;
-    typedef std::pair<char_type*, char_type*>    pair_type;
-    detail::basic_buffer<char_type>  buf(buffer_size);
-    pair_type                        p = snk.output_sequence();
-    std::streamsize                  total = 0;
-    std::ptrdiff_t                   capacity = p.second - p.first;
-    while (true) {
-        std::streamsize amt = 
-            iostreams::read(
-                src, 
-                buf.data(),
-                buffer_size < capacity - total ?
-                    buffer_size :
-                    static_cast<std::streamsize>(capacity - total)
-            );
-        if (amt == -1)
-            break;
-        std::copy(buf.data(), buf.data() + amt, p.first + total);
-        total += amt;
-    }
-    return total;
-}
-
-// Copy from an indirect source to an indirect sink
-template<typename Source, typename Sink>
-std::streamsize copy_impl( Source& src, Sink& snk, 
-                           std::streamsize buffer_size,
-                           mpl::false_, mpl::false_ )
-{ 
-    typedef typename char_type_of<Source>::type char_type;
-    detail::basic_buffer<char_type>  buf(buffer_size);
-    non_blocking_adapter<Sink>       nb(snk);
-    std::streamsize                  total = 0;
-    bool                             done = false;
-    while (!done) {
-        std::streamsize amt;
-        done = (amt = iostreams::read(src, buf.data(), buffer_size)) == -1;
-        if (amt != -1) {
-            iostreams::write(nb, buf.data(), amt);
-            total += amt;
-        }
-    }
-    return total;
-}
-
-    // The following function object is used with 
-    // ndnboost::iostreams::detail::execute() in the primary 
-    // overload of copy_impl(), below
-
-// Function object that delegates to one of the above four 
-// overloads of compl_impl()
-template<typename Source, typename Sink>
-class copy_operation {
-public:
-    typedef std::streamsize result_type;
-    copy_operation(Source& src, Sink& snk, std::streamsize buffer_size)
-        : src_(src), snk_(snk), buffer_size_(buffer_size)
-        { }
-    std::streamsize operator()() 
-    {
-        return copy_impl( src_, snk_, buffer_size_, 
-                          is_direct<Source>(), is_direct<Sink>() );
-    }
-private:
-    copy_operation& operator=(const copy_operation&);
-    Source&          src_;
-    Sink&            snk_;
-    std::streamsize  buffer_size_;
-};
-
-// Primary overload of copy_impl. Delegates to one of the above four 
-// overloads of compl_impl(), depending on which of the two given 
-// devices, if any, models Direct (see 
-// http://www.boost.org/libs/iostreams/doc/index.html?path=4.1.1.4)
-template<typename Source, typename Sink>
-std::streamsize copy_impl(Source src, Sink snk, std::streamsize buffer_size)
-{
-    using namespace std;
-    typedef typename char_type_of<Source>::type  src_char;
-    typedef typename char_type_of<Sink>::type    snk_char;
-    NDNBOOST_STATIC_ASSERT((is_same<src_char, snk_char>::value));
-    return detail::execute_all(
-               copy_operation<Source, Sink>(src, snk, buffer_size),
-               detail::call_close_all(src),
-               detail::call_close_all(snk)
-           );
-}
-
-} // End namespace detail.
-                    
-//------------------Definition of copy----------------------------------------//
-
-// Overload of copy() for the case where neither the source nor the sink is
-// a standard stream or stream buffer
-template<typename Source, typename Sink>
-std::streamsize
-copy( const Source& src, const Sink& snk,
-      std::streamsize buffer_size = default_device_buffer_size
-      NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(Source)
-      NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(Sink) )
-{ 
-    typedef typename char_type_of<Source>::type char_type;
-    return detail::copy_impl( detail::resolve<input, char_type>(src), 
-                              detail::resolve<output, char_type>(snk), 
-                              buffer_size ); 
-}
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-
-// Overload of copy() for the case where the source, but not the sink, is
-// a standard stream or stream buffer
-template<typename Source, typename Sink>
-std::streamsize
-copy( Source& src, const Sink& snk,
-      std::streamsize buffer_size = default_device_buffer_size
-      NDNBOOST_IOSTREAMS_ENABLE_IF_STREAM(Source)
-      NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(Sink) ) 
-{ 
-    typedef typename char_type_of<Source>::type char_type;
-    return detail::copy_impl( detail::wrap(src), 
-                              detail::resolve<output, char_type>(snk), 
-                              buffer_size );
-}
-
-// Overload of copy() for the case where the sink, but not the source, is
-// a standard stream or stream buffer
-template<typename Source, typename Sink>
-std::streamsize
-copy( const Source& src, Sink& snk,
-      std::streamsize buffer_size = default_device_buffer_size
-      NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(Source)
-      NDNBOOST_IOSTREAMS_ENABLE_IF_STREAM(Sink) ) 
-{ 
-    typedef typename char_type_of<Source>::type char_type;
-    return detail::copy_impl( detail::resolve<input, char_type>(src), 
-                              detail::wrap(snk), buffer_size );
-}
-
-// Overload of copy() for the case where neither the source nor the sink is
-// a standard stream or stream buffer
-template<typename Source, typename Sink>
-std::streamsize
-copy( Source& src, Sink& snk,
-      std::streamsize buffer_size = default_device_buffer_size
-      NDNBOOST_IOSTREAMS_ENABLE_IF_STREAM(Source)
-      NDNBOOST_IOSTREAMS_ENABLE_IF_STREAM(Sink) ) 
-{ 
-    return detail::copy_impl(detail::wrap(src), detail::wrap(snk), buffer_size);
-}
-
-#endif // #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //-----------------------//
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_COPY_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/absolute_path.hpp b/include/ndnboost/iostreams/detail/absolute_path.hpp
deleted file mode 100644
index 40947ec..0000000
--- a/include/ndnboost/iostreams/detail/absolute_path.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
-
- * File:        ndnboost/iostreams/detail/execute.hpp
- * Date:        Thu Dec 06 13:21:54 MST 2007
- * Copyright:   2007-2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * Defines the function ndnboost::iostreams::detail::absolute_path, used for 
- * debug output for mapped files.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_ABSOLUTE_PATH_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_ABSOLUTE_PATH_HPP_INCLUDED
-
-#include <string>
-#include <ndnboost/iostreams/detail/config/windows_posix.hpp>
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-# include <cctype>
-#endif
-#include <ndnboost/iostreams/detail/current_directory.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-// Resolves the given path relative to the current working directory
-inline std::string absolute_path(const std::string& path)
-{
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    return path.size() && (path[0] == '/' || path[0] == '\\') ||
-           path.size() > 1 && std::isalpha(path[0]) && path[1] == ':' ?
-               path :
-               current_directory() + '\\' + path;
-#else // #ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    return path.size() && (path[0] == '/') ?
-        path :
-        current_directory() + '/' + path;
-#endif // #ifdef NDNBOOST_IOSTREAMS_WINDOWS
-}
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_ABSOLUTE_PATH_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/access_control.hpp b/include/ndnboost/iostreams/detail/access_control.hpp
deleted file mode 100644
index f06afa5..0000000
--- a/include/ndnboost/iostreams/detail/access_control.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains the definition of the class template access_control, which
-// allows the type of inheritance from a provided base class to be specified 
-// using a template parameter.
-
-
-#ifndef NDNBOOST_IOSTREAMS_ACCESS_CONTROL_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_ACCESS_CONTROL_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/iostreams/detail/select.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-struct protected_ { };  // Represents protected inheritance.
-struct public_ { };     // Represents public inheritance.
-
-
-namespace detail {
-
-    // Implements protected inheritance.
-    template<typename U>
-    struct prot_ : protected U 
-    { 
-        prot_() { }
-        template<typename V> prot_(V v) : U(v) { }
-    };
-
-    // Implements public inheritance.
-    template<typename U> struct pub_ : public U { 
-        pub_() { }
-        template<typename V> pub_(V v) : U(v) { }
-    };
-
-//
-// Used to deduce the base type for the template access_control.
-//
-template<typename T, typename Access>
-struct access_control_base {
-    typedef int                                 bad_access_specifier;
-    typedef typename 
-            iostreams::select<  // Disambiguation for Tru64
-                ::ndnboost::is_same<
-                    Access, protected_
-                >,                              prot_<T>,
-                ::ndnboost::is_same<
-                    Access, public_
-                >,                              pub_<T>,
-                else_,                          bad_access_specifier
-            >::type                             type;
-};
-
-} // End namespace detail.
-
-//
-// Template name: access_control.
-// Description: Allows the type of inheritance from a provided base class
-//      to be specified using an int template parameter.
-// Template parameters:
-//      Base - The class from which to inherit (indirectly.)
-//      Access - The type of access desired. Must be one of the 
-//          values access_base::prot or access_base::pub.
-//
-template< typename T, typename Access,
-          typename Base = // VC6 workaraound (Compiler Error C2516)
-              typename detail::access_control_base<T, Access>::type >
-struct access_control : public Base { 
-    access_control() { }
-    template<typename U> explicit access_control(U u) : Base(u) { }
-};
-
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_ACCESS_CONTROL_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/adapter/concept_adapter.hpp b/include/ndnboost/iostreams/detail/adapter/concept_adapter.hpp
deleted file mode 100644
index d182bee..0000000
--- a/include/ndnboost/iostreams/detail/adapter/concept_adapter.hpp
+++ /dev/null
@@ -1,287 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONCEPT_ADAPTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONCEPT_ADAPTER_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>                             // SFINAE.
-#include <ndnboost/iostreams/concepts.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/adapter/non_blocking_adapter.hpp>
-#include <ndnboost/iostreams/detail/call_traits.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/dispatch.hpp>
-#include <ndnboost/iostreams/detail/error.hpp>
-#include <ndnboost/iostreams/detail/streambuf.hpp>        // pubsync.
-#include <ndnboost/iostreams/detail/config/unreachable_return.hpp>
-#include <ndnboost/iostreams/device/null.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/throw_exception.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename Category> struct device_wrapper_impl;
-template<typename Category> struct flt_wrapper_impl;
-
-template<typename T>
-class concept_adapter {
-private:
-    typedef typename detail::value_type<T>::type       value_type;
-    typedef typename dispatch<T, input, output>::type  input_tag;
-    typedef typename dispatch<T, output, input>::type  output_tag;
-    typedef typename
-            mpl::if_<
-                is_device<T>,
-                device_wrapper_impl<input_tag>,
-                flt_wrapper_impl<input_tag>
-            >::type                                    input_impl;
-    typedef typename
-            mpl::if_<
-                is_device<T>,
-                device_wrapper_impl<output_tag>,
-                flt_wrapper_impl<output_tag>
-            >::type                                    output_impl;
-    typedef typename
-            mpl::if_<
-                is_device<T>,
-                device_wrapper_impl<any_tag>,
-                flt_wrapper_impl<any_tag>
-            >::type                                    any_impl;
-public:
-    typedef typename char_type_of<T>::type             char_type;
-    typedef typename category_of<T>::type              category;
-
-    explicit concept_adapter(const reference_wrapper<T>& ref) : t_(ref.get())
-    { NDNBOOST_STATIC_ASSERT(is_std_io<T>::value); }
-    explicit concept_adapter(const T& t) : t_(t)
-    { NDNBOOST_STATIC_ASSERT(!is_std_io<T>::value); }
-
-    T& operator*() { return t_; }
-    T* operator->() { return &t_; }
-
-    std::streamsize read(char_type* s, std::streamsize n)
-    { return this->read(s, n, (basic_null_source<char_type>*) 0); }
-
-    template<typename Source>
-    std::streamsize read(char_type* s, std::streamsize n, Source* src)
-    { return input_impl::read(t_, src, s, n); }
-
-    std::streamsize write(const char_type* s, std::streamsize n)
-    { return this->write(s, n, (basic_null_sink<char_type>*) 0); }
-
-    template<typename Sink>
-    std::streamsize write(const char_type* s, std::streamsize n, Sink* snk)
-    { return output_impl::write(t_, snk, s, n); }
-
-    std::streampos seek( stream_offset off, NDNBOOST_IOS::seekdir way,
-                         NDNBOOST_IOS::openmode which )
-    { 
-        return this->seek( off, way, which, 
-                           (basic_null_device<char_type, seekable>*) 0); 
-    }
-
-    template<typename Device>
-    std::streampos seek( stream_offset off, NDNBOOST_IOS::seekdir way,
-                         NDNBOOST_IOS::openmode which, Device* dev )
-    { return any_impl::seek(t_, dev, off, way, which); }
-
-    void close(NDNBOOST_IOS::openmode which)
-    { this->close(which, (basic_null_device<char_type, seekable>*) 0); }
-
-    template<typename Device>
-    void close(NDNBOOST_IOS::openmode which, Device* dev)
-    { any_impl::close(t_, dev, which); }
-
-    template<typename Device>
-    bool flush( Device* dev )
-    {
-        bool result = any_impl::flush(t_, dev);
-        if (dev && dev->NDNBOOST_IOSTREAMS_PUBSYNC() == -1)
-            result = false;
-        return result;
-    }
-
-    template<typename Locale> // Avoid dependency on <locale>
-    void imbue(const Locale& loc) { iostreams::imbue(t_, loc); }
-
-    std::streamsize optimal_buffer_size() const
-    { return iostreams::optimal_buffer_size(t_); }
-public:
-    concept_adapter& operator=(const concept_adapter&);
-    value_type t_;
-};
-
-//------------------Specializations of device_wrapper_impl--------------------//
-
-template<>
-struct device_wrapper_impl<any_tag> {
-    template<typename Device, typename Dummy>
-    static std::streampos 
-    seek( Device& dev, Dummy*, stream_offset off, 
-          NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which )
-    { 
-        typedef typename category_of<Device>::type category;
-        return seek(dev, off, way, which, category()); 
-    }
-
-    template<typename Device>
-    static std::streampos 
-    seek( Device&, stream_offset, NDNBOOST_IOS::seekdir, 
-          NDNBOOST_IOS::openmode, any_tag )
-    { 
-        ndnboost::throw_exception(cant_seek());
-        NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(0)
-    }
-
-    template<typename Device>
-    static std::streampos 
-    seek( Device& dev, stream_offset off, 
-          NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which, 
-          random_access )
-    { 
-        return iostreams::seek(dev, off, way, which); 
-    }
-
-    template<typename Device, typename Dummy>
-    static void close(Device& dev, Dummy*, NDNBOOST_IOS::openmode which)
-    { iostreams::close(dev, which); }
-
-    template<typename Device, typename Dummy>
-    static bool flush(Device& dev, Dummy*)
-    { return iostreams::flush(dev); }
-};
-
-
-template<>
-struct device_wrapper_impl<input> : device_wrapper_impl<any_tag>  {
-    template<typename Device, typename Dummy>
-    static std::streamsize
-    read( Device& dev, Dummy*, typename char_type_of<Device>::type* s,
-          std::streamsize n )
-    { return iostreams::read(dev, s, n); }
-
-    template<typename Device, typename Dummy>
-    static std::streamsize 
-    write( Device&, Dummy*, const typename char_type_of<Device>::type*,
-           std::streamsize )
-    { ndnboost::throw_exception(cant_write());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(0) }
-};
-
-template<>
-struct device_wrapper_impl<output> {
-    template<typename Device, typename Dummy>
-    static std::streamsize
-    read(Device&, Dummy*, typename char_type_of<Device>::type*, std::streamsize)
-    { ndnboost::throw_exception(cant_read());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(0) }
-
-    template<typename Device, typename Dummy>
-    static std::streamsize 
-    write( Device& dev, Dummy*, const typename char_type_of<Device>::type* s,
-           std::streamsize n )
-    { return iostreams::write(dev, s, n); }
-};
-
-//------------------Specializations of flt_wrapper_impl--------------------//
-
-template<>
-struct flt_wrapper_impl<any_tag> {
-    template<typename Filter, typename Device>
-    static std::streampos
-    seek( Filter& f, Device* dev, stream_offset off,
-          NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which )
-    {
-        typedef typename category_of<Filter>::type category;
-        return seek(f, dev, off, way, which, category());
-    }
-
-    template<typename Filter, typename Device>
-    static std::streampos
-    seek( Filter&, Device*, stream_offset,
-          NDNBOOST_IOS::seekdir, NDNBOOST_IOS::openmode, any_tag )
-    { ndnboost::throw_exception(cant_seek());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(0) }
-
-    template<typename Filter, typename Device>
-    static std::streampos
-    seek( Filter& f, Device* dev, stream_offset off,
-          NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which,
-          random_access tag )
-    {
-        typedef typename category_of<Filter>::type category;
-        return seek(f, dev, off, way, which, tag, category());
-    }
-
-    template<typename Filter, typename Device>
-    static std::streampos
-    seek( Filter& f, Device* dev, stream_offset off,
-          NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode,
-          random_access, any_tag )
-    { return f.seek(*dev, off, way); }
-
-    template<typename Filter, typename Device>
-    static std::streampos
-    seek( Filter& f, Device* dev, stream_offset off,
-          NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which,
-          random_access, two_sequence )
-    { return f.seek(*dev, off, way, which);  }
-
-    template<typename Filter, typename Device>
-    static void close(Filter& f, Device* dev, NDNBOOST_IOS::openmode which)
-    { iostreams::close(f, *dev, which); }
-
-    template<typename Filter, typename Device>
-    static bool flush(Filter& f, Device* dev)
-    { return iostreams::flush(f, *dev); }
-};
-
-template<>
-struct flt_wrapper_impl<input> {
-    template<typename Filter, typename Source>
-    static std::streamsize
-    read( Filter& f, Source* src, typename char_type_of<Filter>::type* s,
-          std::streamsize n )
-    { return iostreams::read(f, *src, s, n); }
-
-    template<typename Filter, typename Sink>
-    static std::streamsize 
-    write( Filter&, Sink*, const typename char_type_of<Filter>::type*, 
-           std::streamsize )
-    { ndnboost::throw_exception(cant_write());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(0) }
-};
-
-template<>
-struct flt_wrapper_impl<output> {
-    template<typename Filter, typename Source>
-    static std::streamsize
-    read(Filter&, Source*, typename char_type_of<Filter>::type*,std::streamsize)
-    { ndnboost::throw_exception(cant_read());
-      NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(0) }
-
-    template<typename Filter, typename Sink>
-    static std::streamsize 
-    write( Filter& f, Sink* snk, const typename char_type_of<Filter>::type* s,
-           std::streamsize n )
-    { return iostreams::write(f, *snk, s, n); }
-};
-
-//----------------------------------------------------------------------------//
-
-} } } // End namespaces detail, iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>  // MSVC.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONCEPT_ADAPTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/adapter/device_adapter.hpp b/include/ndnboost/iostreams/detail/adapter/device_adapter.hpp
deleted file mode 100644
index aa82c7a..0000000
--- a/include/ndnboost/iostreams/detail/adapter/device_adapter.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Defines the class template ndnboost::iostreams::detail::device_adapter,
- * a convenience base class for device adapters.
- *
- * File:        ndnboost/iostreams/detail/adapter/filter_adapter.hpp
- * Date:        Mon Nov 26 14:35:48 MST 2007
- * 
- * Copyright:   2007-2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_DEVICE_ADAPTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_DEVICE_ADAPTER_HPP_INCLUDED
-
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/call_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/static_assert.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename T>
-class device_adapter {
-private:
-    typedef typename detail::value_type<T>::type value_type;
-    typedef typename detail::param_type<T>::type param_type;
-public:
-    explicit device_adapter(param_type t) : t_(t) { }
-    T& component() { return t_; }
-
-    void close() 
-    {
-        detail::close_all(t_);
-    }
-
-    void close(NDNBOOST_IOS::openmode which) 
-    { 
-        iostreams::close(t_, which); 
-    }
-
-    bool flush() 
-    { 
-        return iostreams::flush(t_); 
-    }
-
-    template<typename Locale> // Avoid dependency on <locale>
-    void imbue(const Locale& loc) { iostreams::imbue(t_, loc); }
-
-    std::streamsize optimal_buffer_size() const 
-    { return iostreams::optimal_buffer_size(t_); }
-public:
-    value_type t_;
-};
-
-//----------------------------------------------------------------------------//
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_DEVICE_ADAPTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/adapter/direct_adapter.hpp b/include/ndnboost/iostreams/detail/adapter/direct_adapter.hpp
deleted file mode 100644
index 99eebf9..0000000
--- a/include/ndnboost/iostreams/detail/adapter/direct_adapter.hpp
+++ /dev/null
@@ -1,281 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_DIRECT_ADAPTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_DIRECT_ADAPTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp>       // SFINAE, MSVC, put ptrdiff_t in std.
-#include <algorithm>              // copy, min.
-#include <cstddef>                // ptrdiff_t.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/config/limits.hpp>        // forwarding.
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>  // locale.
-#include <ndnboost/iostreams/detail/double_object.hpp>
-#include <ndnboost/iostreams/detail/error.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // openmode, seekdir, int types.
-#include <ndnboost/iostreams/traits.hpp>      // mode_of, is_direct.
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/mpl/bool.hpp> 
-#include <ndnboost/mpl/or.hpp> 
-#include <ndnboost/preprocessor/iteration/local.hpp>
-#include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp> // VC7.1
-
-namespace ndnboost { namespace iostreams { namespace detail {
-                    
-//------------------Definition of direct_adapter_base-------------------------//
-
-// Put all initialization in base class to faciliate forwarding.
-template<typename Direct>
-class direct_adapter_base {
-public:
-    typedef typename char_type_of<Direct>::type  char_type;
-    typedef typename mode_of<Direct>::type       mode_type;
-    struct category 
-        : mode_type,
-          device_tag,
-          closable_tag
-          #ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-          , localizable_tag
-          #endif
-        { };
-protected:
-    explicit direct_adapter_base(const Direct& d);
-    typedef is_convertible<category, two_sequence> is_double;
-    struct pointers {
-        char_type *beg, *ptr, *end;
-    };
-    void init_input(mpl::true_);
-    void init_input(mpl::false_) { }
-    void init_output(mpl::true_);
-    void init_output(mpl::false_) { }
-    double_object<pointers, is_double>  ptrs_;
-    Direct                              d_;
-};
-
-template<typename Direct>
-class direct_adapter : private direct_adapter_base<Direct> {
-private:
-    typedef direct_adapter_base<Direct>      base_type;
-    typedef typename base_type::pointers     pointers;
-    typedef typename base_type::is_double    is_double;
-    using base_type::ptrs_;
-    using base_type::d_;
-public:
-    typedef typename base_type::char_type    char_type;
-    typedef typename base_type::category     category;
-
-        // Constructors
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1310)
-    direct_adapter(const Direct& d) : base_type(d) { }   
-    direct_adapter(const direct_adapter& d) : base_type(d) { }
-# define NDNBOOST_PP_LOCAL_LIMITS (1, NDNBOOST_IOSTREAMS_MAX_FORWARDING_ARITY)
-#else
-    template<typename U>
-    struct is_direct
-        : mpl::or_< 
-              is_same<U, direct_adapter<Direct> >, 
-              is_same<U, Direct> 
-          >
-        { };
-    template<typename U>
-    direct_adapter(const U& u) 
-        : base_type(forward(u, is_direct<U>()))
-        { }
-# define NDNBOOST_PP_LOCAL_LIMITS (2, NDNBOOST_IOSTREAMS_MAX_FORWARDING_ARITY)
-#endif
-
-#define NDNBOOST_PP_LOCAL_MACRO(n) \
-    template<NDNBOOST_PP_ENUM_PARAMS(n, typename P)> \
-    direct_adapter(NDNBOOST_PP_ENUM_BINARY_PARAMS(n, const P, &p)) \
-        : base_type(Direct(NDNBOOST_PP_ENUM_PARAMS(n, p))) \
-        { } \
-    /**/
-#include NDNBOOST_PP_LOCAL_ITERATE()
-#undef NDNBOOST_PP_LOCAL_MACRO
-
-        // Device interface.
-
-    std::streamsize read(char_type* s, std::streamsize n);
-    std::streamsize write(const char_type* s, std::streamsize n);
-    std::streampos seek( stream_offset, NDNBOOST_IOS::seekdir,
-                         NDNBOOST_IOS::openmode = NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-    void close();
-    void close(NDNBOOST_IOS::openmode which);
-#ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-    void imbue(const std::locale&);
-#endif
-
-        // Direct device access.
-
-    Direct& operator*() { return d_; }
-    Direct* operator->() { return &d_; }
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1310)
-private:
-    template<typename U>
-    static Direct forward(const U& u, mpl::true_) { return u; }
-    template<typename U>
-    static Direct forward(const U& u, mpl::false_) { return Direct(u); }
-#endif
-};
-
-//--------------Definition of wrap_direct and unwrap_direct-------------------//
-
-template<typename Device>
-struct wrap_direct_traits 
-    : mpl::if_<
-          is_direct<Device>,
-          direct_adapter<Device>,
-          Device
-      >
-    { };
-
-template<typename Device>
-typename wrap_direct_traits<Device>::type
-inline wrap_direct(Device dev) 
-{ 
-    typedef typename wrap_direct_traits<Device>::type type;
-    return type(dev); 
-}
-
-template<typename Device>
-inline Device& unwrap_direct(Device& d) { return d; }  
-
-template<typename Device>
-inline Device& unwrap_direct(direct_adapter<Device>& d) { return *d; }  
-
-//--------------Implementation of direct_adapter_base-------------------------//
-
-template<typename Direct>
-direct_adapter_base<Direct>::direct_adapter_base(const Direct& d) : d_(d)
-{
-    init_input(is_convertible<category, input>());
-    init_output(is_convertible<category, output>());
-}
-
-template<typename Direct>
-void direct_adapter_base<Direct>::init_input(mpl::true_) 
-{
-    std::pair<char_type*, char_type*> seq = iostreams::input_sequence(d_);
-    ptrs_.first().beg = seq.first;
-    ptrs_.first().ptr = seq.first;
-    ptrs_.first().end = seq.second;
-}
-
-template<typename Direct>
-void direct_adapter_base<Direct>::init_output(mpl::true_) 
-{
-    std::pair<char_type*, char_type*> seq = iostreams::output_sequence(d_);
-    ptrs_.second().beg = seq.first;
-    ptrs_.second().ptr = seq.first;
-    ptrs_.second().end = seq.second;
-}
-
-//--------------Implementation of direct_adapter------------------------------//
-
-template<typename Direct>
-inline std::streamsize direct_adapter<Direct>::read
-    (char_type* s, std::streamsize n)
-{
-    using namespace std;
-    pointers& get = ptrs_.first();
-    std::streamsize avail = 
-        static_cast<std::streamsize>(get.end - get.ptr);
-    std::streamsize result = (std::min)(n, avail);
-    std::copy(get.ptr, get.ptr + result, s);
-    get.ptr += result;
-    return result != 0 ? result : -1;
-}
-
-template<typename Direct>
-inline std::streamsize direct_adapter<Direct>::write
-    (const char_type* s, std::streamsize n)
-{
-    using namespace std;
-    pointers& put = ptrs_.second();
-    if (n > static_cast<std::streamsize>(put.end - put.ptr))
-        ndnboost::throw_exception(write_area_exhausted());
-    std::copy(s, s + n, put.ptr);
-    put.ptr += n;
-    return n;
-}
-
-template<typename Direct>
-inline std::streampos direct_adapter<Direct>::seek
-    ( stream_offset off, NDNBOOST_IOS::seekdir way, 
-      NDNBOOST_IOS::openmode which )
-{
-    using namespace std;
-    pointers& get = ptrs_.first();
-    pointers& put = ptrs_.second();
-    if (way == NDNBOOST_IOS::cur && get.ptr != put.ptr)
-       ndnboost::throw_exception(bad_seek());
-    ptrdiff_t next = 0;
-    if ((which & NDNBOOST_IOS::in) || !is_double::value) {
-        if (way == NDNBOOST_IOS::beg)
-            next = off; 
-        else if (way == NDNBOOST_IOS::cur)
-            next = get.ptr - get.beg + off; 
-        else
-            next = get.end - get.beg + off; 
-        if (next >= 0 && next <= get.end - get.beg)
-            get.ptr = get.beg + next;
-        else
-            ndnboost::throw_exception(bad_seek());
-    }
-    if ((which & NDNBOOST_IOS::out) && is_double::value) {
-        if (way == NDNBOOST_IOS::beg)
-            next = off; 
-        else if (way == NDNBOOST_IOS::cur)
-            next = put.ptr - put.beg + off; 
-        else
-            next = put.end - put.beg + off; 
-        if (next >= 0 && next <= put.end - put.beg)
-            put.ptr = put.beg + next;
-        else
-            ndnboost::throw_exception(bad_seek());
-    }
-    return offset_to_position(next);
-}
-
-template<typename Direct>
-void direct_adapter<Direct>::close() 
-{ 
-    NDNBOOST_STATIC_ASSERT((!is_convertible<category, two_sequence>::value));
-    detail::close_all(d_);
-}
-
-template<typename Direct>
-void direct_adapter<Direct>::close(NDNBOOST_IOS::openmode which) 
-{ 
-    NDNBOOST_STATIC_ASSERT((is_convertible<category, two_sequence>::value));
-    ndnboost::iostreams::close(d_, which);
-}
-
-#ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-    template<typename Direct>
-    void direct_adapter<Direct>::imbue(const std::locale& loc) 
-    { ndnboost::iostreams::imbue(d_, loc); }
-#endif
-
-} } } // End namespaces detail, iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_DIRECT_ADAPTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/adapter/filter_adapter.hpp b/include/ndnboost/iostreams/detail/adapter/filter_adapter.hpp
deleted file mode 100644
index fec4c45..0000000
--- a/include/ndnboost/iostreams/detail/adapter/filter_adapter.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Defines the class template ndnboost::iostreams::detail::filter_adapter,
- * a convenience base class for filter adapters.
- *
- * File:        ndnboost/iostreams/detail/adapter/filter_adapter.hpp
- * Date:        Mon Nov 26 14:35:48 MST 2007
- * Copyright:   2007-2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_FILTER_ADAPTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_FILTER_ADAPTER_HPP_INCLUDED
-
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/call_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/static_assert.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename T>
-class filter_adapter {
-private:
-    typedef typename detail::value_type<T>::type value_type;
-    typedef typename detail::param_type<T>::type param_type;
-public:
-    explicit filter_adapter(param_type t) : t_(t) { }
-    T& component() { return t_; }
-
-    template<typename Device>
-    void close(Device& dev) 
-    { 
-        detail::close_all(t_, dev); 
-    }
-
-    template<typename Device>
-    void close(Device& dev, NDNBOOST_IOS::openmode which) 
-    { 
-        iostreams::close(t_, dev, which); 
-    }
-
-    template<typename Device>
-    void flush(Device& dev) 
-    { 
-        return iostreams::flush(t_, dev); 
-    }
-
-    template<typename Locale> // Avoid dependency on <locale>
-    void imbue(const Locale& loc) { iostreams::imbue(t_, loc); }
-
-    std::streamsize optimal_buffer_size() const 
-    { return iostreams::optimal_buffer_size(t_); }
-public:
-    value_type t_;
-};
-
-//----------------------------------------------------------------------------//
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_FILTER_ADAPTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/adapter/mode_adapter.hpp b/include/ndnboost/iostreams/detail/adapter/mode_adapter.hpp
deleted file mode 100644
index 46d5b64..0000000
--- a/include/ndnboost/iostreams/detail/adapter/mode_adapter.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_MODE_ADAPTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_MODE_ADAPTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-// Contains the definition of the class template mode_adapter, which allows
-// a filter or device to function as if it has a different i/o mode than that
-// deduced by the metafunction mode_of.
-
-#include <ndnboost/config.hpp>                // NDNBOOST_MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // openmode, seekdir, int types. 
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/iostreams/operations.hpp> 
-#include <ndnboost/mpl/if.hpp> 
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename Mode, typename T>
-class mode_adapter {
-private:
-    struct empty_base { };
-public:
-    typedef typename wrapped_type<T>::type  component_type;
-    typedef typename char_type_of<T>::type  char_type;
-    struct category 
-        : Mode, 
-          device_tag,
-          mpl::if_<is_filter<T>, filter_tag, device_tag>,
-          mpl::if_<is_filter<T>, multichar_tag, empty_base>,
-          #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-              closable_tag, // VC6 can't see member close()!
-          #endif
-          localizable_tag
-        { };
-    explicit mode_adapter(const component_type& t) : t_(t) { }
-
-        // Device member functions.
-
-    std::streamsize read(char_type* s, std::streamsize n);
-    std::streamsize write(const char_type* s, std::streamsize n);
-    std::streampos seek( stream_offset off, NDNBOOST_IOS::seekdir way,
-                         NDNBOOST_IOS::openmode which = 
-                             NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    void close();
-    void close(NDNBOOST_IOS::openmode which);
-#endif
-
-        // Filter member functions.
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    { return iostreams::read(t_, src, s, n); }
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    { return iostreams::write(t_, snk, s, n); }
-
-    template<typename Device>
-    std::streampos seek(Device& dev, stream_offset off, NDNBOOST_IOS::seekdir way)
-    { return iostreams::seek(t_, dev, off, way); }
-
-    template<typename Device>
-    std::streampos seek( Device& dev, stream_offset off, 
-                         NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which  )
-    { return iostreams::seek(t_, dev, off, way, which); }
-
-    template<typename Device>
-    void close(Device& dev)
-    { detail::close_all(t_, dev); }
-
-    template<typename Device>
-    void close(Device& dev, NDNBOOST_IOS::openmode which)
-    { iostreams::close(t_, dev, which); }
-
-    template<typename Locale>
-    void imbue(const Locale& loc)
-    { iostreams::imbue(t_, loc); }
-private:
-    component_type t_;
-};
-                    
-//------------------Implementation of mode_adapter----------------------------//
-
-template<typename Mode, typename T>
-std::streamsize mode_adapter<Mode, T>::read
-    (char_type* s, std::streamsize n)
-{ return ndnboost::iostreams::read(t_, s, n); }
-
-template<typename Mode, typename T>
-std::streamsize mode_adapter<Mode, T>::write
-    (const char_type* s, std::streamsize n)
-{ return ndnboost::iostreams::write(t_, s, n); }
-
-template<typename Mode, typename T>
-std::streampos mode_adapter<Mode, T>::seek
-    (stream_offset off, NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which)
-{ return ndnboost::iostreams::seek(t_, off, way, which); }
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    template<typename Mode, typename T>
-    void mode_adapter<Mode, T>::close() 
-    { detail::close_all(t_); }
-
-    template<typename Mode, typename T>
-    void mode_adapter<Mode, T>::close(NDNBOOST_IOS::openmode which) 
-    { iostreams::close(t_, which); }
-#endif
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_MODE_ADAPTER_HPP_INCLUDED //-----//
diff --git a/include/ndnboost/iostreams/detail/adapter/non_blocking_adapter.hpp b/include/ndnboost/iostreams/detail/adapter/non_blocking_adapter.hpp
deleted file mode 100644
index 1ba070c..0000000
--- a/include/ndnboost/iostreams/detail/adapter/non_blocking_adapter.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_NON_BLOCKING_ADAPTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_NON_BLOCKING_ADAPTER_HPP_INCLUDED
-
-#include <ndnboost/iostreams/detail/ios.hpp>  // streamsize, seekdir, openmode.
-#include <ndnboost/iostreams/read.hpp>
-#include <ndnboost/iostreams/seek.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/iostreams/write.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-template<typename Device>
-class non_blocking_adapter {
-public:
-    typedef typename char_type_of<Device>::type char_type;
-    struct category
-        : mode_of<Device>::type, device_tag
-        { };
-    explicit non_blocking_adapter(Device& dev) : device_(dev) { }
-    std::streamsize read(char_type* s, std::streamsize n)
-    { 
-        std::streamsize result = 0;
-        while (result < n) {
-            std::streamsize amt = iostreams::read(device_, s, n);
-            if (amt == -1)
-                break;
-            result += amt;
-        }
-        return result != 0 ? result : -1;
-    }
-    std::streamsize write(const char_type* s, std::streamsize n)
-    { 
-        std::streamsize result = 0;
-        while (result < n) {
-            std::streamsize amt = 
-                iostreams::write(device_, s + result, n - result);
-            result += amt;
-        }
-        return result;    
-    }
-    std::streampos seek( stream_offset off, NDNBOOST_IOS::seekdir way,
-                         NDNBOOST_IOS::openmode which = 
-                             NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-    { return iostreams::seek(device_, off, way, which); }
-public:
-    non_blocking_adapter& operator=(const non_blocking_adapter&);
-    Device& device_;
-};
-
-} } // End namespace iostreams.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_NON_BLOCKING_ADAPTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/adapter/output_iterator_adapter.hpp b/include/ndnboost/iostreams/detail/adapter/output_iterator_adapter.hpp
deleted file mode 100644
index d9b6929..0000000
--- a/include/ndnboost/iostreams/detail/adapter/output_iterator_adapter.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_OUTPUT_ITERATOR_ADAPTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_OUTPUT_ITERATOR_ADAPTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <algorithm>                      // copy.
-#include <iosfwd>                         // streamsize.
-#include <ndnboost/iostreams/categories.hpp> // tags.
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename Mode, typename Ch, typename OutIt>
-class output_iterator_adapter {
-public:
-    NDNBOOST_STATIC_ASSERT((is_convertible<Mode, output>::value));
-    typedef Ch        char_type;
-    typedef sink_tag  category;
-    explicit output_iterator_adapter(OutIt out) : out_(out) { }
-    std::streamsize write(const char_type* s, std::streamsize n) 
-    { 
-        std::copy(s, s + n, out_); 
-        return n; 
-    }
-private:
-    OutIt out_;
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_OUTPUT_ITERATOR_ADAPTER_HPP_INCLUDED //-----//
diff --git a/include/ndnboost/iostreams/detail/adapter/range_adapter.hpp b/include/ndnboost/iostreams/detail/adapter/range_adapter.hpp
deleted file mode 100644
index 3789489..0000000
--- a/include/ndnboost/iostreams/detail/adapter/range_adapter.hpp
+++ /dev/null
@@ -1,187 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_RANGE_ADAPTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_RANGE_ADAPTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <algorithm>                             // min.
-#include <ndnboost/assert.hpp>
-#include <cstddef>                               // ptrdiff_t.
-#include <iosfwd>                                // streamsize, streamoff.
-#include <ndnboost/detail/iterator.hpp>             // ndnboost::iterator_traits.
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/error.hpp>
-#include <ndnboost/iostreams/positioning.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-// Used for simulated tag dispatch.
-template<typename Traversal> struct range_adapter_impl;
-
-//
-// Template name: range_adapter
-// Description: Device based on an instance of ndnboost::iterator_range.
-// Template parameters:
-//     Mode - A mode tag.
-//     Range - An instance of iterator_range.
-//
-template<typename Mode, typename Range>
-class range_adapter {
-private:
-    typedef typename Range::iterator                  iterator;
-    typedef ndnboost::detail::iterator_traits<iterator>  iter_traits;
-    typedef typename iter_traits::iterator_category   iter_cat;
-public:
-    typedef typename Range::value_type                char_type;
-    struct category : Mode, device_tag { };
-    typedef typename
-            mpl::if_<
-                is_convertible<
-                    iter_cat,
-                    std::random_access_iterator_tag
-                >,
-                std::random_access_iterator_tag,
-                std::forward_iterator_tag
-            >::type                                   tag;
-    typedef range_adapter_impl<tag>                   impl;
-
-    explicit range_adapter(const Range& rng);
-    range_adapter(iterator first, iterator last);
-    std::streamsize read(char_type* s, std::streamsize n);
-    std::streamsize write(const char_type* s, std::streamsize n);
-    std::streampos seek(stream_offset off, NDNBOOST_IOS::seekdir way);
-private:
-    iterator first_, cur_, last_;
-};
-
-//------------------Implementation of range_adapter---------------------------//
-
-template<typename Mode, typename Range>
-range_adapter<Mode, Range>::range_adapter(const Range& rng)
-    : first_(rng.begin()), cur_(rng.begin()), last_(rng.end()) { }
-
-template<typename Mode, typename Range>
-range_adapter<Mode, Range>::range_adapter(iterator first, iterator last)
-    : first_(first), cur_(first), last_(last) { }
-
-template<typename Mode, typename Range>
-inline std::streamsize range_adapter<Mode, Range>::read
-    (char_type* s, std::streamsize n)
-{ return impl::read(cur_, last_, s, n); }
-
-template<typename Mode, typename Range>
-inline std::streamsize range_adapter<Mode, Range>::write
-    (const char_type* s, std::streamsize n)
-{ return impl::write(cur_, last_, s, n); }
-
-
-template<typename Mode, typename Range>
-std::streampos range_adapter<Mode, Range>::seek
-    (stream_offset off, NDNBOOST_IOS::seekdir way)
-{ 
-    impl::seek(first_, cur_, last_, off, way); 
-    return offset_to_position(cur_ - first_);
-}
-
-//------------------Implementation of range_adapter_impl----------------------//
-
-template<>
-struct range_adapter_impl<std::forward_iterator_tag> {
-    template<typename Iter, typename Ch>
-    static std::streamsize read
-        (Iter& cur, Iter& last, Ch* s,std::streamsize n)
-    {
-        std::streamsize rem = n; // No. of chars remaining.
-        while (cur != last && rem-- > 0) *s++ = *cur++;
-        return n - rem != 0 ? n - rem : -1;
-    }
-
-    template<typename Iter, typename Ch>
-    static std::streamsize write
-        (Iter& cur, Iter& last, const Ch* s, std::streamsize n)
-    {
-        while (cur != last && n-- > 0) *cur++ = *s++;
-        if (cur == last && n > 0)
-            ndnboost::throw_exception(write_area_exhausted());
-        return n;
-    }
-};
-
-template<>
-struct range_adapter_impl<std::random_access_iterator_tag> {
-    template<typename Iter, typename Ch>
-    static std::streamsize read
-        (Iter& cur, Iter& last, Ch* s,std::streamsize n)
-    {
-        std::streamsize result = 
-            (std::min)(static_cast<std::streamsize>(last - cur), n);
-        if (result)
-            std::copy(cur, cur + result, s);
-        cur += result;
-        return result != 0 ? result : -1;
-    }
-
-    template<typename Iter, typename Ch>
-    static std::streamsize write
-        (Iter& cur, Iter& last, const Ch* s, std::streamsize n)
-    {
-        std::streamsize count =
-            (std::min)(static_cast<std::streamsize>(last - cur), n);
-        std::copy(s, s + count, cur);
-        cur += count;
-        if (count < n) 
-            ndnboost::throw_exception(write_area_exhausted());
-        return n;
-    }
-
-    template<typename Iter>
-    static void seek
-        ( Iter& first, Iter& cur, Iter& last, stream_offset off,
-          NDNBOOST_IOS::seekdir way )
-    {
-        using namespace std;
-        switch (way) {
-        case NDNBOOST_IOS::beg:
-            if (off > last - first || off < 0)
-                ndnboost::throw_exception(bad_seek());
-            cur = first + off;
-            break;
-        case NDNBOOST_IOS::cur:
-            {
-                std::ptrdiff_t newoff = cur - first + off;
-                if (newoff > last - first || newoff < 0)
-                    ndnboost::throw_exception(bad_seek());
-                cur += off;
-                break;
-            }
-        case NDNBOOST_IOS::end:
-            if (last - first + off < 0 || off > 0)
-                ndnboost::throw_exception(bad_seek());
-            cur = last + off;
-            break;
-        default:
-            NDNBOOST_ASSERT(0);
-        }
-    }
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>  // MSVC.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_RANGE_ADAPTER_HPP_INCLUDED //---------------//
diff --git a/include/ndnboost/iostreams/detail/add_facet.hpp b/include/ndnboost/iostreams/detail/add_facet.hpp
deleted file mode 100644
index 32aa534..0000000
--- a/include/ndnboost/iostreams/detail/add_facet.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Borrowed from <ndnboost/archive/add_facet.hpp>
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_ADD_FACET_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_ADD_FACET_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // NDNBOOST_DINKUMWARE_STDLIB.
-#include <ndnboost/detail/workaround.hpp>
-
-//------------------Definition of add_facet-----------------------------------//
-
-// Does STLport uses old Dinkumware locale?
-#if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && \
-    defined(_STLP_NO_OWN_IOSTREAMS) \
-    /**/
-#  if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
-#    define NDNBOOST_IOSTREMS_STLPORT_WITH_OLD_DINKUMWARE
-#  endif
-#endif
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<class Facet>
-inline std::locale add_facet(const std::locale &l, Facet * f)
-{
-    return
-        #if NDNBOOST_WORKAROUND(NDNBOOST_DINKUMWARE_STDLIB, == 1) || \
-            defined(NDNBOOST_IOSTREMS_STLPORT_WITH_OLD_DINKUMWARE) \
-            /**/
-            std::locale(std::_Addfac(l, f));
-        #else
-            // standard compatible
-            std::locale(l, f);
-        #endif
-}
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_ADD_FACET_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/bool_trait_def.hpp b/include/ndnboost/iostreams/detail/bool_trait_def.hpp
deleted file mode 100644
index 361fa23..0000000
--- a/include/ndnboost/iostreams/detail/bool_trait_def.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_BOOL_TRAIT_DEF_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_BOOL_TRAIT_DEF_HPP_INCLUDED     
-
-#include <ndnboost/config.hpp> // NDNBOOST_STATIC_CONSTANT.
-#include <ndnboost/iostreams/detail/template_params.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/type_traits/detail/yes_no_type.hpp>
- 
-// 
-// Macro name: NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF
-// Description: Used to generate the traits classes is_istream, is_ostream,
-//      etc.
-//
-#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x582))
-# define NDNBOOST_IOSTREAMS_TRAIT_NAMESPACE(trait)
-#else
-# define NDNBOOST_IOSTREAMS_TRAIT_NAMESPACE(trait) NDNBOOST_PP_CAT(trait, _impl_):: 
-#endif
-#define NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(trait, type, arity) \
-    namespace NDNBOOST_PP_CAT(trait, _impl_) { \
-      NDNBOOST_IOSTREAMS_TEMPLATE_PARAMS(arity, T) \
-      type_traits::yes_type helper \
-          (const volatile type NDNBOOST_IOSTREAMS_TEMPLATE_ARGS(arity, T)*); \
-      type_traits::no_type helper(...); \
-      template<typename T> \
-      struct impl { \
-           NDNBOOST_STATIC_CONSTANT(bool, value = \
-           (sizeof(NDNBOOST_IOSTREAMS_TRAIT_NAMESPACE(trait) \
-              helper(static_cast<T*>(0))) == \
-                sizeof(type_traits::yes_type))); \
-      }; \
-    } \
-    template<typename T> \
-    struct trait \
-        : mpl::bool_<NDNBOOST_PP_CAT(trait, _impl_)::impl<T>::value> \
-    { NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, trait, (T)) }; \
-    /**/
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_BOOL_TRAIT_DEF_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/broken_overload_resolution/forward.hpp b/include/ndnboost/iostreams/detail/broken_overload_resolution/forward.hpp
deleted file mode 100644
index a2081ad..0000000
--- a/include/ndnboost/iostreams/detail/broken_overload_resolution/forward.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>                     // NDNBOOST_STATIC_CONSANT.
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename Device, typename U>
-struct forward_impl {
-    NDNBOOST_STATIC_CONSTANT(bool, value =
-        ( !is_same< U, Device >::value &&
-          !is_same< U, reference_wrapper<Device> >::value ));
-};
-
-template<typename Device, typename U>
-struct forward
-    : mpl::bool_<forward_impl<Device, U>::value>
-    { };
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/broken_overload_resolution/stream.hpp b/include/ndnboost/iostreams/detail/broken_overload_resolution/stream.hpp
deleted file mode 100644
index 6485f1f..0000000
--- a/include/ndnboost/iostreams/detail/broken_overload_resolution/stream.hpp
+++ /dev/null
@@ -1,184 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_STREAM_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_STREAM_HPP_INCLUDED
-
-#include <ndnboost/iostreams/detail/broken_overload_resolution/forward.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-template< typename Device,
-          typename Tr =
-              NDNBOOST_IOSTREAMS_CHAR_TRAITS(
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<Device>::type
-              ),
-          typename Alloc =
-              std::allocator<
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<Device>::type
-              > >
-struct stream : detail::stream_base<Device, Tr, Alloc> {
-public:
-    typedef typename char_type_of<Device>::type  char_type;
-    struct category 
-        : mode_of<Device>::type,
-          closable_tag,
-          detail::stream_traits<Device, Tr>::stream_tag
-        { };
-    NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
-private:
-    typedef typename
-            detail::stream_traits<
-                Device, Tr
-            >::stream_type                       stream_type;
-public:
-    stream() { }
-    template<typename U0>
-    stream(const U0& u0)
-    {
-        open_impl(detail::forward<Device, U0>(), u0);
-    }
-    template<typename U0, typename U1>
-    stream(const U0& u0, const U1& u1)
-    {
-        open_impl(detail::forward<Device, U0>(), u0, u1);
-    }
-    template<typename U0, typename U1, typename U2>
-    stream(const U0& u0, const U1& u1, const U2& u2)
-    {
-        open_impl(detail::forward<Device, U0>(), u0, u1, u2);
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0>
-    stream(U0& u0)
-    {
-        open_impl(detail::forward<Device, U0>(), u0);
-    }
-    template<typename U0, typename U1>
-    stream(U0& u0, const U1& u1)
-    {
-        open_impl(detail::forward<Device, U0>(), u0, u1);
-    }
-    template<typename U0, typename U1, typename U2>
-    stream(U0& u0, const U1& u1, const U2& u2)
-    {
-        open_impl(detail::forward<Device, U0>(), u0, u1, u2);
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    template<typename U0>
-    void open(const U0& u0)
-    {
-        open_impl(detail::forward<Device, U0>(), u0);
-    }
-    template<typename U0, typename U1>
-    void open(const U0& u0, const U1& u1)
-    {
-        open_impl(detail::forward<Device, U0>(), u0, u1);
-    }
-    template<typename U0, typename U1, typename U2>
-    void open(const U0& u0, const U1& u1, const U2& u2)
-    {
-        open_impl(detail::forward<Device, U0>(), u0, u1, u2);
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0>
-    void open(U0& u0)
-    {
-        open_impl(detail::forward<Device, U0>(), u0);
-    }
-    template<typename U0, typename U1>
-    void open(U0& u0, const U1& u1)
-    {
-        open_impl(detail::forward<Device, U0>(), u0, u1);
-    }
-    template<typename U0, typename U1, typename U2>
-    void open(U0& u0, const U1& u1, const U2& u2)
-    {
-        open_impl(detail::forward<Device, U0>(), u0, u1, u2);
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    bool is_open() const { return this->member.is_open(); }
-    void close() { this->member.close(); }
-    bool auto_close() const { return this->member.auto_close(); }
-    void set_auto_close(bool close) { this->member.set_auto_close(close); }
-    bool strict_sync() { return this->member.strict_sync(); }
-    Device& operator*() { return *this->member; }
-    Device* operator->() { return &*this->member; }
-private:
-    template<typename U0>
-    void open_impl(mpl::false_, const U0& u0)
-    {
-        this->clear(); 
-        this->member.open(u0);
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0>
-    void open_impl(mpl::false_, U0& u0)
-    {
-        this->clear(); 
-        this->member.open(detail::wrap(u0));
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    template<typename U0>
-    void open_impl(mpl::true_, const U0& u0)
-    {
-        this->clear(); 
-        this->member.open(Device(const_cast<U0&>(u0)));
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0>
-    void open_impl(mpl::true_, U0& u0)
-    {
-        this->clear(); 
-        this->member.open(Device(u0));
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    template<typename U0, typename U1>
-    void open_impl(mpl::false_, const U0& u0, const U1& u1)
-    {
-        this->clear(); 
-        this->member.open(u0, u1);
-    }
-    template<typename U0, typename U1>
-    void open_impl(mpl::true_, const U0& u0, const U1& u1)
-    {
-        this->clear(); 
-        this->member.open(Device(const_cast<U0&>(u0), u1));
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0, typename U1>
-    void open_impl(mpl::true_, U0& u0, const U1& u1)
-    {
-        this->clear(); 
-        this->member.open(Device(u0, u1));
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    template<typename U0, typename U1, typename U2>
-    void open_impl(mpl::false_, const U0& u0, const U1& u1, const U2& u2)
-    {
-        this->clear(); 
-        this->member.open(u0, u1, u2);
-    }
-    template<typename U0, typename U1, typename U2>
-    void open_impl(mpl::true_, const U0& u0, const U1& u1, const U2& u2)
-    {
-        this->clear(); 
-        this->member.open(Device(const_cast<U0&>(u0), u1, u2));
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0, typename U1, typename U2>
-    void open_impl(mpl::true_, U0& u0, const U1& u1, const U2& u2)
-    {
-        this->clear(); 
-        this->member.open(Device(u0, u1, u2));
-    }
-#endif
-};
-
-} } // End namespaces iostreams, boost.
-
-#endif NDNBOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_STREAM_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp b/include/ndnboost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp
deleted file mode 100644
index 149c1cb..0000000
--- a/include/ndnboost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_STREAM_BUFFER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_STREAM_BUFFER_HPP_INCLUDED
-
-#include <ndnboost/iostreams/detail/broken_overload_resolution/forward.hpp>
-#include <ndnboost/throw_exception.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-template< typename T, 
-          typename Tr = 
-              NDNBOOST_IOSTREAMS_CHAR_TRAITS(
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type 
-              ),
-          typename Alloc = 
-              std::allocator<
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type 
-              >,
-          typename Mode = NDNBOOST_DEDUCED_TYPENAME mode_of<T>::type >
-class stream_buffer
-    : public detail::stream_buffer_traits<T, Tr, Alloc, Mode>::type
-{
-private:
-    NDNBOOST_STATIC_ASSERT((
-        is_convertible<
-            NDNBOOST_DEDUCED_TYPENAME iostreams::category_of<T>::type, Mode
-        >::value
-    ));
-    typedef typename 
-            detail::stream_buffer_traits<
-                T, Tr, Alloc, Mode
-            >::type                           base_type;
-public:
-    typedef typename char_type_of<T>::type    char_type;
-    struct category 
-        : Mode,
-          closable_tag,
-          streambuf_tag
-        { };
-    NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
-    stream_buffer() { }
-    ~stream_buffer()
-    { 
-        try { 
-            if (this->is_open() && this->auto_close()) 
-                this->close(); 
-        } catch (...) { } 
-    }
-    template<typename U0>
-    stream_buffer(const U0& u0)
-    {
-        open_impl(detail::forward<T, U0>(), u0);
-    }
-    template<typename U0, typename U1>
-    stream_buffer(const U0& u0, const U1& u1)
-    {
-        open_impl(detail::forward<T, U0>(), u0, u1);
-    }
-    template<typename U0, typename U1, typename U2>
-    stream_buffer(const U0& u0, const U1& u1, const U2& u2)
-    {
-        open_impl(detail::forward<T, U0>(), u0, u1, u2);
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0>
-    stream_buffer(U0& u0)
-    {
-        open_impl(detail::forward<T, U0>(), u0);
-    }
-    template<typename U0, typename U1>
-    stream_buffer(U0& u0, const U1& u1)
-    {
-        open_impl(detail::forward<T, U0>(), u0, u1);
-    }
-    template<typename U0, typename U1, typename U2>
-    stream_buffer(U0& u0, const U1& u1, const U2& u2)
-    {
-        open_impl(detail::forward<T, U0>(), u0, u1, u2);
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    template<typename U0>
-    void open(const U0& u0)
-    {
-        open_impl(detail::forward<T, U0>(), u0);
-    }
-    template<typename U0, typename U1>
-    void open(const U0& u0, const U1& u1)
-    {
-        open_impl(detail::forward<T, U0>(), u0, u1);
-    }
-    template<typename U0, typename U1, typename U2>
-    void open(const U0& u0, const U1& u1, const U2& u2)
-    {
-        open_impl(detail::forward<T, U0>(), u0, u1, u2);
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0>
-    void open(U0& u0)
-    {
-        open_impl(detail::forward<T, U0>(), u0);
-    }
-    template<typename U0, typename U1>
-    void open(U0& u0, const U1& u1)
-    {
-        open_impl(detail::forward<T, U0>(), u0, u1);
-    }
-    template<typename U0, typename U1, typename U2>
-    void open(U0& u0, const U1& u1, const U2& u2)
-    {
-        open_impl(detail::forward<T, U0>(), u0, u1, u2);
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    T& operator*() { return *this->component(); }
-    T* operator->() { return this->component(); }
-private:
-    template<typename U0>
-    void open_impl(mpl::false_, const U0& u0)
-    {
-        base_type::open(const_cast<U0&>(u0), -1, -1);
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0>
-    void open_impl(mpl::false_, U0& u0)
-    {
-        base_type::open(detail::wrap(u0), -1, -1);
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    template<typename U0>
-    void open_impl(mpl::true_, const U0& u0)
-    {
-        base_type::open(T(const_cast<U0&>(u0)), -1, -1);
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0>
-    void open_impl(mpl::true_, U0& u0)
-    {
-        base_type::open(T(u0), -1, -1);
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    template<typename U0, typename U1>
-    void open_impl(mpl::false_, const U0& u0, const U1& u1)
-    {
-        base_type::open(u0, u1, -1);
-    }
-    template<typename U0, typename U1>
-    void open_impl(mpl::true_, const U0& u0, const U1& u1)
-    {
-        base_type::open(T(const_cast<U0&>(u0), u1), -1, -1);
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0, typename U1>
-    void open_impl(mpl::true_, U0& u0, const U1& u1)
-    {
-        base_type::open(T(u0, u1), -1, -1);
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    template<typename U0, typename U1, typename U2>
-    void open_impl(mpl::false_, const U0& u0, const U1& u1, const U2& u2)
-    {
-        base_type::open(u0, u1, u2);
-    }
-    template<typename U0, typename U1, typename U2>
-    void open_impl(mpl::true_, const U0& u0, const U1& u1, const U2& u2)
-    {
-        base_type::open(T(const_cast<U0&>(u0), u1, u2), -1, -1);
-    }
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-    template<typename U0, typename U1, typename U2>
-    void open_impl(mpl::true_, U0& u0, const U1& u1, const U2& u2)
-    {
-        base_type::open(T(u0, u1, u2), -1, -1);
-    }
-#endif // !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------//
-    void check_open()
-    {
-        if (this->is_open()) 
-            ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("already open"));
-    }
-};
-
-} } // End namespaces iostreams, boost.
-
-#endif // NDNBOOST_IOSTREAMS_DETAIL_BROKEN_OVERLOAD_RESOLUTION_STREAM_BUFFER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/buffer.hpp b/include/ndnboost/iostreams/detail/buffer.hpp
deleted file mode 100644
index beb5f6c..0000000
--- a/include/ndnboost/iostreams/detail/buffer.hpp
+++ /dev/null
@@ -1,200 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_BUFFERS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_BUFFERS_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <algorithm>                           // swap.
-#include <memory>                              // allocator.
-#include <ndnboost/config.hpp>                    // member templates.
-#include <ndnboost/iostreams/char_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>      // streamsize.
-#include <ndnboost/iostreams/read.hpp>
-#include <ndnboost/iostreams/traits.hpp>          // int_type_of.
-#include <ndnboost/iostreams/checked_operations.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-//----------------Buffers-----------------------------------------------------//
-
-//
-// Template name: buffer
-// Description: Character buffer.
-// Template parameters:
-//     Ch - The character type.
-//     Alloc - The Allocator type.
-//
-template< typename Ch,
-          typename Alloc = std::allocator<Ch> >
-class basic_buffer {
-private:
-#ifndef NDNBOOST_NO_STD_ALLOCATOR
-    typedef typename Alloc::template rebind<Ch>::other allocator_type;
-#else
-    typedef std::allocator<Ch> allocator_type;
-#endif
-public:
-    basic_buffer();
-    basic_buffer(int buffer_size);
-    ~basic_buffer();
-    void resize(int buffer_size);
-    Ch* begin() const { return buf_; }
-    Ch* end() const { return buf_ + size_; }
-    Ch* data() const { return buf_; }
-    std::streamsize size() const { return size_; }
-    void swap(basic_buffer& rhs);
-private:
-    // Disallow copying and assignment.
-    basic_buffer(const basic_buffer&);
-    basic_buffer& operator=(const basic_buffer&);
-    Ch*              buf_;
-    std::streamsize  size_;
-};
-
-template<typename Ch, typename Alloc>
-void swap(basic_buffer<Ch, Alloc>& lhs, basic_buffer<Ch, Alloc>& rhs)
-{ lhs.swap(rhs); }
-
-//
-// Template name: buffer
-// Description: Character buffer with two pointers accessible via ptr() and
-//      eptr().
-// Template parameters:
-//     Ch - A character type.
-//
-template< typename Ch,
-          typename Alloc = std::allocator<Ch> >
-class buffer : public basic_buffer<Ch, Alloc> {
-private:
-    typedef basic_buffer<Ch, Alloc> base;
-public:
-    typedef iostreams::char_traits<Ch> traits_type;
-    using base::resize; 
-    using base::data; 
-    using base::size;
-    typedef Ch* const const_pointer;
-    buffer(int buffer_size);
-    Ch* & ptr() { return ptr_; }
-    const_pointer& ptr() const { return ptr_; }
-    Ch* & eptr() { return eptr_; }
-    const_pointer& eptr() const { return eptr_; }
-    void set(std::streamsize ptr, std::streamsize end);
-    void swap(buffer& rhs);
-
-    // Returns an int_type as a status code.
-    template<typename Source>
-    typename int_type_of<Source>::type fill(Source& src) 
-    {
-        using namespace std;
-        std::streamsize keep;
-        if ((keep = static_cast<std::streamsize>(eptr_ - ptr_)) > 0)
-            traits_type::move(this->data(), ptr_, keep);
-        set(0, keep);
-        std::streamsize result = 
-            iostreams::read(src, this->data() + keep, this->size() - keep);
-        if (result != -1)
-            this->set(0, keep + result);
-        return result == -1 ?
-            traits_type::eof() :
-                result == 0 ?
-                    traits_type::would_block() :
-                    traits_type::good();
-
-    }
-
-    // Returns true if one or more characters were written.
-    template<typename Sink>
-    bool flush(Sink& dest) 
-    {
-        using namespace std;
-        std::streamsize amt = static_cast<std::streamsize>(eptr_ - ptr_);
-        std::streamsize result = iostreams::write_if(dest, ptr_, amt);
-        if (result < amt) {
-            traits_type::move( this->data(), 
-                               ptr_ + result, 
-                               amt - result );
-        }
-        this->set(0, amt - result);
-        return result != 0;
-    }
-private:
-    Ch *ptr_, *eptr_;
-};
-
-template<typename Ch, typename Alloc>
-void swap(buffer<Ch, Alloc>& lhs, buffer<Ch, Alloc>& rhs)
-{ lhs.swap(rhs); }
-
-//--------------Implementation of basic_buffer--------------------------------//
-
-template<typename Ch, typename Alloc>
-basic_buffer<Ch, Alloc>::basic_buffer() : buf_(0), size_(0) { }
-
-template<typename Ch, typename Alloc>
-basic_buffer<Ch, Alloc>::basic_buffer(int buffer_size)
-    : buf_(static_cast<Ch*>(allocator_type().allocate(buffer_size, 0))), 
-      size_(buffer_size) // Cast for SunPro 5.3.
-    { }
-
-template<typename Ch, typename Alloc>
-inline basic_buffer<Ch, Alloc>::~basic_buffer()
-{
-    if (buf_) {
-        allocator_type().deallocate(buf_,
-            static_cast<NDNBOOST_DEDUCED_TYPENAME Alloc::size_type>(size_));
-    }
-}
-
-template<typename Ch, typename Alloc>
-inline void basic_buffer<Ch, Alloc>::resize(int buffer_size)
-{
-    if (size_ != buffer_size) {
-        basic_buffer<Ch, Alloc> temp(buffer_size);
-        std::swap(size_, temp.size_);
-        std::swap(buf_, temp.buf_);
-    }
-}
-
-template<typename Ch, typename Alloc>
-void basic_buffer<Ch, Alloc>::swap(basic_buffer& rhs) 
-{ 
-    std::swap(buf_, rhs.buf_); 
-    std::swap(size_, rhs.size_); 
-}
-
-//--------------Implementation of buffer--------------------------------------//
-
-template<typename Ch, typename Alloc>
-buffer<Ch, Alloc>::buffer(int buffer_size)
-    : basic_buffer<Ch, Alloc>(buffer_size) { }
-
-template<typename Ch, typename Alloc>
-inline void buffer<Ch, Alloc>::set(std::streamsize ptr, std::streamsize end)
-{ 
-    ptr_ = data() + ptr; 
-    eptr_ = data() + end; 
-}
-
-template<typename Ch, typename Alloc>
-inline void buffer<Ch, Alloc>::swap(buffer& rhs) 
-{ 
-    base::swap(rhs); 
-    std::swap(ptr_, rhs.ptr_); 
-    std::swap(eptr_, rhs.eptr_); 
-}
-
-//----------------------------------------------------------------------------//
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_BUFFERS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/call_traits.hpp b/include/ndnboost/iostreams/detail/call_traits.hpp
deleted file mode 100644
index c917c1a..0000000
--- a/include/ndnboost/iostreams/detail/call_traits.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_VALUE_TYPE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_VALUE_TYPE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename T>
-struct param_type {
-    typedef typename mpl::if_<is_std_io<T>, T&, const T&>::type type;
-};
-
-template<typename T>
-struct value_type {
-    typedef typename mpl::if_<is_std_io<T>, T&, T>::type type;
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_VALUE_TYPE_HPP_INCLUDED //-----------//
diff --git a/include/ndnboost/iostreams/detail/char_traits.hpp b/include/ndnboost/iostreams/detail/char_traits.hpp
deleted file mode 100644
index 97aaf28..0000000
--- a/include/ndnboost/iostreams/detail/char_traits.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// Provides std::char_traits for libraries without templated streams. Should not
-// be confused with <ndnboost/iostreams/char_traits.hpp>, which defines the
-// template ndnboost::iostreams::char_traits.
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CHAR_TRAITS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CHAR_TRAITS_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <iosfwd>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#ifdef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# include <ndnboost/config.hpp> // Make sure size_t is in std.
-# include <cstddef>
-# include <cstring>
-# include <cstdio>
-#endif
-
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------------------//
-# define NDNBOOST_IOSTREAMS_CHAR_TRAITS(ch) std::char_traits< ch >
-#else
-# define NDNBOOST_IOSTREAMS_CHAR_TRAITS(ch) ndnboost::iostreams::detail::char_traits
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-struct char_traits  {
-    typedef char            char_type;
-    typedef int             int_type;
-    typedef std::streampos  pos_type;
-    typedef std::streamoff  off_type;
-
-    // Note: this may not be not conforming, since it treats chars as unsigned,
-    // but is only used to test for equality.
-    static int compare(const char* lhs, const char* rhs, std::size_t n)
-    { return std::strncmp(lhs, rhs, n); }
-    static char* copy(char *dest, const char *src, std::size_t n)
-    { return static_cast<char*>(std::memcpy(dest, src, n)); }
-    static char* move(char *dest, const char *src, std::size_t n)
-    { return static_cast<char*>(std::memmove(dest, src, n)); }
-    static const char* find(const char* s, std::size_t n, const char& c)
-    { return (const char*) (const void*) std::memchr(s, c, n); }
-    static char to_char_type(const int& c) { return c; }
-    static int to_int_type(const char& c) { return c; }
-    static bool eq_int_type(const int& lhs, const int& rhs)
-    { return lhs == rhs; }
-    static int eof() { return EOF; }
-    static int not_eof(const int& c) { return c != EOF ? c : '\n'; }
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifdef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-----------------------//
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CHAR_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/codecvt_helper.hpp b/include/ndnboost/iostreams/detail/codecvt_helper.hpp
deleted file mode 100644
index 4b1a1c4..0000000
--- a/include/ndnboost/iostreams/detail/codecvt_helper.hpp
+++ /dev/null
@@ -1,237 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains the definition of the template codecvt_helper, useful for
-// defining specializations of std::codecvt where state_type != mbstate_t.
-// Compensates for the fact that some standard library implementations 
-// do not derive the primiary codecvt template from locale::facet or 
-// provide the correct member types and functions.
-
-// Usage: 
-//
-// // In global namespace:
-// NDNBOOST_IOSTREAMS_CODECVT_SPEC(mystate)
-//
-// // In user namespace:
-// template<typename Intern, typename Extern>
-// struct mycodecvt : codecvt_helper<Intern, Extern, State> { ... };
-//
-// // Or:
-// struct mycodecvt : codecvt_helper<wchar_t, char, State> { ... };
-// 
-// Etc.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CODECVT_HELPER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CODECVT_HELPER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // Put size_t in std, NDNBOOST_MSVC, Dinkum.
-#include <ndnboost/detail/workaround.hpp>
-#include <algorithm>         // min.
-#include <cstddef>           // size_t.
-#include <locale>            // locale, codecvt_base, codecvt.
-#include <ndnboost/iostreams/detail/config/codecvt.hpp>
-
-//------------------Definition of traits--------------------------------------//
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_DINKUMWARE_STDLIB, == 1) //-----------------------//
-
-template<typename T>
-struct codecvt_intern { typedef typename T::intern_type type; };
-
-template<typename T>
-struct codecvt_extern { typedef typename T::extern_type type; };
-
-#else // #if !NDNBOOST_WORKAROUND(NDNBOOST_DINKUMWARE_STDLIB, == 1) //--------------//
-
-template<typename T>
-struct codecvt_intern { typedef typename T::from_type type; };
-
-template<typename T>
-struct codecvt_extern { typedef typename T::to_type type; };
-
-#endif // #if !NDNBOOST_WORKAROUND(NDNBOOST_DINKUMWARE_STDLIB, == 1) //-------------//
-
-template<typename T>
-struct codecvt_state { typedef typename T::state_type type; };
-
-} } } // End namespaces detail, iostreams, boost.
-
-//------------------Definition of codecvt_impl--------------------------------//
-
-#if defined(NDNBOOST_IOSTREAMS_NO_PRIMARY_CODECVT_DEFINITION) || \
-    defined(NDNBOOST_IOSTREAMS_EMPTY_PRIMARY_CODECVT_DEFINITION) || \
-    defined(NDNBOOST_IOSTREAMS_NO_LOCALE) \
-    /**/
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename Intern, typename Extern, typename State>
-struct codecvt_impl : std::locale::facet, std::codecvt_base {
-public:
-    typedef Intern  intern_type;
-    typedef Extern  extern_type;
-    typedef State   state_type;
-
-    codecvt_impl(std::size_t refs = 0) : std::locale::facet(refs) { } 
-
-    std::codecvt_base::result
-    in( State& state, const Extern* first1, const Extern* last1,
-        const Extern*& next1, Intern* first2, Intern* last2,
-        Intern*& next2 ) const
-    {
-        return do_in(state, first1, last1, next1, first2, last2, next2);
-    }
-
-    std::codecvt_base::result
-    out( State& state, const Intern* first1, const Intern* last1,
-         const Intern*& next1, Extern* first2, Extern* last2,
-         Extern*& next2 ) const
-    {
-        return do_out(state, first1, last1, next1, first2, last2, next2);
-    }
-
-    std::codecvt_base::result
-    unshift(State& state, Extern* first2, Extern* last2, Extern*& next2) const
-    {
-        return do_unshift(state, first2, last2, next2);
-    }
-
-    bool always_noconv() const throw() { return do_always_noconv(); }
-
-    int max_length() const throw() { return do_max_length(); }
-
-    int encoding() const throw() { return do_encoding(); }
-
-    int length( NDNBOOST_IOSTREAMS_CODECVT_CV_QUALIFIER State& state, 
-                const Extern* first1, const Extern* last1,
-                std::size_t len2 ) const throw()
-    {
-        return do_length(state, first1, last1, len2);
-    }
-protected:
-    std::codecvt_base::result
-    virtual do_in( State&, const Extern*, const Extern*, const Extern*&, 
-                   Intern*, Intern*, Intern*& ) const
-    {
-        return std::codecvt_base::noconv;
-    }
-
-    std::codecvt_base::result
-    virtual do_out( State&, const Intern*, const Intern*, const Intern*&, 
-                    Extern*, Extern*, Extern*& ) const
-    {
-        return std::codecvt_base::noconv;
-    }
-
-    std::codecvt_base::result
-    virtual do_unshift(State&, Extern*, Extern*, Extern*&) const
-    {
-        return std::codecvt_base::ok;
-    }
-
-    virtual bool do_always_noconv() const throw() { return true; }
-
-    virtual int do_max_length() const throw() { return 1; }
-
-    virtual int do_encoding() const throw() { return 1; }
-
-    virtual int do_length( NDNBOOST_IOSTREAMS_CODECVT_CV_QUALIFIER State&, 
-                           const Extern* first1, const Extern* last1,
-                           std::size_t len2 ) const throw()
-    {
-        return (std::min)(static_cast<std::size_t>(last1 - first1), len2);
-    }
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // no primary codecvt definition, empty definition.
-
-//------------------Definition of NDNBOOST_IOSTREAMS_CODECVT_SPEC----------------//
-
-#if defined(NDNBOOST_IOSTREAMS_NO_PRIMARY_CODECVT_DEFINITION) || \
-    defined(NDNBOOST_IOSTREAMS_EMPTY_PRIMARY_CODECVT_DEFINITION) \
-    /**/
-# ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#  define NDNBOOST_IOSTREAMS_CODECVT_SPEC(state) \
-    namespace std { \
-        template<typename Intern, typename Extern> \
-        class codecvt<Intern, Extern, state> \
-            : public ::ndnboost::iostreams::detail::codecvt_impl< \
-                         Intern, Extern, state \
-                     > \
-        { \
-        public: \
-            codecvt(std::size_t refs = 0) \
-                : ::ndnboost::iostreams::detail::codecvt_impl< \
-                      Intern, Extern, state \
-                  >(refs) \
-                { } \
-            static std::locale::id id; \
-        }; \
-        template<typename Intern, typename Extern> \
-        std::locale::id codecvt<Intern, Extern, state>::id; \
-    } \
-    /**/
-# else
-#  define NDNBOOST_IOSTREAMS_CODECVT_SPEC(state) \
-    namespace std { \
-        template<> \
-        class codecvt<wchar_t, char, state> \
-            : public ::ndnboost::iostreams::detail::codecvt_impl< \
-                         wchar_t, char, state \
-                     > \
-        { \
-        public: \
-            codecvt(std::size_t refs = 0) \
-                : ::ndnboost::iostreams::detail::codecvt_impl< \
-                      wchar_t, char, state \
-                  >(refs) \
-                { } \
-            static std::locale::id id; \
-        }; \
-        template<> \
-        std::locale::id codecvt<wchar_t, char, state>::id; \
-    } \
-    /**/
-# endif
-#else
-# define NDNBOOST_IOSTREAMS_CODECVT_SPEC(state)
-#endif // no primary codecvt definition, or empty definition.
-
-namespace ndnboost { namespace iostreams { namespace detail {
-                    
-//------------------Definition of codecvt_helper------------------------------//
-
-template<typename Intern, typename Extern, typename State>
-struct codecvt_helper : std::codecvt<Intern, Extern, State> { 
-    typedef Intern  intern_type;
-    typedef Extern  extern_type;
-    typedef State   state_type;
-    codecvt_helper(std::size_t refs = 0) 
-    #if !defined(NDNBOOST_IOSTREAMS_NO_CODECVT_CTOR_FROM_SIZE_T)
-        : std::codecvt<Intern, Extern, State>(refs)
-    #else
-        : std::codecvt<Intern, Extern, State>()
-    #endif
-        { }
-#ifdef NDNBOOST_IOSTREAMS_NO_CODECVT_MAX_LENGTH
-    int max_length() const throw() { return do_max_length(); }
-protected:
-    virtual int do_max_length() const throw() { return 1; }
-#endif
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CODECVT_HELPER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/codecvt_holder.hpp b/include/ndnboost/iostreams/detail/codecvt_holder.hpp
deleted file mode 100644
index 7b5e929..0000000
--- a/include/ndnboost/iostreams/detail/codecvt_holder.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains machinery for performing code conversion.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CODECVT_HOLDER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CODECVT_HOLDER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <cwchar>            // mbstate_t.
-#include <locale>            // codecvt, locale.
-#include <ndnboost/config.hpp>  // HAS_MACRO_USE_FACET.
-#include <ndnboost/iostreams/detail/config/codecvt.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-struct default_codecvt { 
-    typedef wchar_t         intern_type, from_type;
-    typedef char            extern_type, to_type;
-    typedef std::mbstate_t  state_type;
-};
-
-template<typename Codecvt>
-struct codecvt_holder {
-    typedef Codecvt codecvt_type;
-    const codecvt_type& get() const { return codecvt_; }
-    void imbue(const std::locale&) { }
-    Codecvt codecvt_;
-};
-
-template<>
-struct codecvt_holder<default_codecvt> {
-    typedef std::codecvt<wchar_t, char, std::mbstate_t> codecvt_type;
-    codecvt_holder() { reset_codecvt(); }
-    const codecvt_type& get() const { return *codecvt_; }
-    void imbue(const std::locale& loc) 
-    { 
-        loc_ = loc;
-        reset_codecvt();
-    }
-    void reset_codecvt()
-    {
-        using namespace std;
-        #ifndef NDNBOOST_HAS_MACRO_USE_FACET
-            codecvt_ = & use_facet< codecvt_type >(loc_);
-        #else
-            codecvt_ = & _USE(loc_, codecvt_type);
-        #endif
-    }
-    std::locale loc_; // Prevent codecvt_ from being freed.
-    const codecvt_type* codecvt_;
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CODECVT_HOLDER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/auto_link.hpp b/include/ndnboost/iostreams/detail/config/auto_link.hpp
deleted file mode 100644
index da9f805..0000000
--- a/include/ndnboost/iostreams/detail/config/auto_link.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Adapted from <ndnboost/config/auto_link.hpp> and from
-// http://www.boost.org/more/separate_compilation.html, by John Maddock.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_AUTO_LINK_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_AUTO_LINK_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#if defined(NDNBOOST_EXTERNAL_LIB_NAME)
-# if defined(NDNBOOST_MSVC) \
-     || defined(__BORLANDC__) \
-     || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
-     || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) \
-     /**/
-#  pragma comment(lib, NDNBOOST_EXTERNAL_LIB_NAME)
-# endif
-# undef NDNBOOST_EXTERNAL_LIB_NAME
-#endif
-
-//------------------Enable automatic library variant selection----------------// 
-
-#if !defined(NDNBOOST_IOSTREAMS_SOURCE) && \
-    !defined(NDNBOOST_ALL_NO_LIB) && \
-    !defined(NDNBOOST_IOSTREAMS_NO_LIB) \
-    /**/
-
-// Set the name of our library, this will get undef'ed by auto_link.hpp
-// once it's done with it.
-# define NDNBOOST_LIB_NAME ndnboost_iostreams
-
-// If we're importing code from a dll, then tell auto_link.hpp about it.
-# if defined(NDNBOOST_ALL_DYN_LINK) || defined(NDNBOOST_IOSTREAMS_DYN_LINK)
-#  define NDNBOOST_DYN_LINK
-# endif
-
-// And include the header that does the work.
-# include <ndnboost/config/auto_link.hpp>
-#endif  // auto-linking disabled
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_AUTO_LINK_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/bzip2.hpp b/include/ndnboost/iostreams/detail/config/bzip2.hpp
deleted file mode 100644
index c62ca61..0000000
--- a/include/ndnboost/iostreams/detail/config/bzip2.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Adapted from <ndnboost/config/auto_link.hpp> and from
-// http://www.boost.org/more/separate_compilation.html, by John Maddock.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_BZIP2_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_BZIP2_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#if defined(NDNBOOST_BZIP2_BINARY)
-# if defined(NDNBOOST_MSVC) || \
-     defined(__BORLANDC__) || \
-     (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) || \
-     (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) \
-     /**/
-
-// Specify the name of the .lib file.
-#  pragma comment(lib, NDNBOOST_STRINGIZE(NDNBOOST_BZIP2_BINARY))
-# endif
-#else 
-# if !defined(NDNBOOST_IOSTREAMS_SOURCE) && \
-     !defined(NDNBOOST_ALL_NO_LIB) && \
-     !defined(NDNBOOST_IOSTREAMS_NO_LIB) \
-     /**/
-
-// Set the name of our library, this will get undef'ed by auto_link.hpp
-// once it's done with it.
-#  define NDNBOOST_LIB_NAME ndnboost_bzip2
-
-// If we're importing code from a dll, then tell auto_link.hpp about it.
-#  if defined(NDNBOOST_ALL_DYN_LINK) || defined(NDNBOOST_IOSTREAMS_DYN_LINK)
-#   define NDNBOOST_DYN_LINK
-#  endif
-
-// And include the header that does the work.
-#  include <ndnboost/config/auto_link.hpp>
-# endif
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_BZIP2_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/codecvt.hpp b/include/ndnboost/iostreams/detail/config/codecvt.hpp
deleted file mode 100644
index afa45b2..0000000
--- a/include/ndnboost/iostreams/detail/config/codecvt.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_CODECVT_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_CODECVT_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <cstddef>
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif       
-
-//------------------Support for codecvt with user-defined state types---------//
-
-#if defined(__MSL_CPP__) || defined(__LIBCOMO__) || \
-    NDNBOOST_WORKAROUND(_STLPORT_VERSION, <= 0x450) \
-    /**/
-# define NDNBOOST_IOSTREAMS_NO_PRIMARY_CODECVT_DEFINITION
-#endif
-
-#if defined(__GLIBCPP__) || defined(__GLIBCXX__) || \
-    NDNBOOST_WORKAROUND(_STLPORT_VERSION, > 0x450) \
-    /**/
-# define NDNBOOST_IOSTREAMS_EMPTY_PRIMARY_CODECVT_DEFINITION
-#endif
-
-//------------------Check for codecvt ctor taking a reference count-----------//
-
-#if NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3205)) || \
-    NDNBOOST_WORKAROUND(_STLPORT_VERSION, < 0x461) \
-    /**/
-# define NDNBOOST_IOSTREAMS_NO_CODECVT_CTOR_FROM_SIZE_T
-#endif
-
-//------------------Normalize codecvt::length---------------------------------//
-
-#if !defined(__MSL_CPP__) && !defined(__LIBCOMO__) && \
-    (!defined(NDNBOOST_RWSTD_VER) || NDNBOOST_RWSTD_VER < 0x04010300) && \
-    (!defined(__MACH__) || !defined(__INTEL_COMPILER))
-    /**/
-# define NDNBOOST_IOSTREAMS_CODECVT_CV_QUALIFIER const
-#else
-# define NDNBOOST_IOSTREAMS_CODECVT_CV_QUALIFIER
-#endif
-
-//------------------Check for codecvt::max_length-----------------------------//
-
-#if NDNBOOST_WORKAROUND(_STLPORT_VERSION, < 0x461)
-# define NDNBOOST_IOSTREAMS_NO_CODECVT_MAX_LENGTH
-#endif
-                    
-//------------------Put mbstate_t and codecvt in std--------------------------//
-
-#ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-# include <locale>
-#endif
-
-// From Robert Ramey's version of utf8_codecvt_facet.
-namespace std { 
-
-#if defined(__LIBCOMO__)
-    using ::mbstate_t;
-#elif defined(NDNBOOST_DINKUMWARE_STDLIB) && !defined(__BORLANDC__)
-    using ::mbstate_t;
-#elif defined(__SGI_STL_PORT)
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-    using ::codecvt;
-    using ::mbstate_t;
-#endif
-
-} // End namespace std.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_CODECVT_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/disable_warnings.hpp b/include/ndnboost/iostreams/detail/config/disable_warnings.hpp
deleted file mode 100644
index 0f65f00..0000000
--- a/include/ndnboost/iostreams/detail/config/disable_warnings.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#include <ndnboost/config.hpp>             // NDNBOOST_MSVC.
-#include <ndnboost/detail/workaround.hpp>  // NDNBOOST_WORKAROUND.
-
-#if defined(NDNBOOST_MSVC)
-# pragma warning(push)
-# pragma warning(disable:4127)    // Conditional expression is constant.
-# pragma warning(disable:4130)    // Logical operation on address of string constant.
-# pragma warning(disable:4224)    // Parameter previously defined as type.
-# pragma warning(disable:4244)    // Conversion: possible loss of data.
-# pragma warning(disable:4512)    // Assignment operator could not be generated.
-# pragma warning(disable:4706)    // Assignment within conditional expression.
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
-#  pragma warning(disable:6334)   // sizeof applied to an expression with an operator.
-# endif
-#else
-# if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-#  pragma warn -8008     // Condition always true/false.
-#  pragma warn -8066     // Unreachable code.
-#  pragma warn -8071     // Conversion may lose significant digits.
-#  pragma warn -8072     // Suspicious pointer arithmetic.
-#  pragma warn -8080     // identifier declared but never used.
-# endif
-#endif
diff --git a/include/ndnboost/iostreams/detail/config/dyn_link.hpp b/include/ndnboost/iostreams/detail/config/dyn_link.hpp
deleted file mode 100644
index e8d922f..0000000
--- a/include/ndnboost/iostreams/detail/config/dyn_link.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Adapted from http://www.boost.org/more/separate_compilation.html, by
-// John Maddock.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_DYN_LINK_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_DYN_LINK_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-//------------------Enable dynamic linking on windows-------------------------// 
-
-#ifdef NDNBOOST_HAS_DECLSPEC 
-# if defined(NDNBOOST_ALL_DYN_LINK) || defined(NDNBOOST_IOSTREAMS_DYN_LINK)
-#  ifdef NDNBOOST_IOSTREAMS_SOURCE
-#   define NDNBOOST_IOSTREAMS_DECL __declspec(dllexport)
-#  else
-#   define NDNBOOST_IOSTREAMS_DECL __declspec(dllimport)
-#  endif  
-# endif  
-#endif 
-
-#ifndef NDNBOOST_IOSTREAMS_DECL
-# define NDNBOOST_IOSTREAMS_DECL
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_DYN_LINK_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/enable_warnings.hpp b/include/ndnboost/iostreams/detail/config/enable_warnings.hpp
deleted file mode 100644
index 3043c5e..0000000
--- a/include/ndnboost/iostreams/detail/config/enable_warnings.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#if defined(NDNBOOST_MSVC)
-# pragma warning(pop)
-#else
-# if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-#  pragma warn .8008     // Condition always true/false.
-#  pragma warn .8066     // Unreachable code.
-#  pragma warn .8071     // Conversion may lose significant digits.
-#  pragma warn .8072     // Suspicious pointer arithmetic.
-#  pragma warn .8080     // identifier declared but never used.
-# endif
-#endif
diff --git a/include/ndnboost/iostreams/detail/config/fpos.hpp b/include/ndnboost/iostreams/detail/config/fpos.hpp
deleted file mode 100644
index ffb9656..0000000
--- a/include/ndnboost/iostreams/detail/config/fpos.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
-
- * File:        ndnboost/iostreams/detail/execute.hpp
- * Date:        Thu Dec 06 13:21:54 MST 2007
- * Copyright:   2007-2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * Defines the preprocessor symbol NDNBOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS for
- * platforms that use the implementation of std::fpos from the Dinkumware 
- * Standard Library.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_FPOS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_FPOS_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-# if (defined(_YVALS) || defined(_CPPLIB_VER)) && !defined(__SGI_STL_PORT) && \
-     !defined(_STLPORT_VERSION) && !defined(__QNX__)
-     /**/
-#  define NDNBOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
-# endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_FPOS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/gcc.hpp b/include/ndnboost/iostreams/detail/config/gcc.hpp
deleted file mode 100644
index 2685346..0000000
--- a/include/ndnboost/iostreams/detail/config/gcc.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Adapted from <ndnboost/config/auto_link.hpp> and from
-// http://www.boost.org/more/separate_compilation.html, by John Maddock.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_GCC_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_GCC_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp> // NDNBOOST_INTEL.
-
-#if defined(__GNUC__) && !defined(NDNBOOST_INTEL)
-# define NDNBOOST_IOSTREAMS_GCC (__GNUC__ * 100 + __GNUC_MINOR__)
-# define NDNBOOST_IOSTREAMS_GCC_WORKAROUND_GUARD 1
-#else
-# define NDNBOOST_IOSTREAMS_GCC_WORKAROUND_GUARD 0
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_GCC_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/limits.hpp b/include/ndnboost/iostreams/detail/config/limits.hpp
deleted file mode 100644
index cc83aec..0000000
--- a/include/ndnboost/iostreams/detail/config/limits.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_LIMITS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_LIMITS_HPP_INCLUDED
-
-#ifndef NDNBOOST_IOSTREAMS_MAX_FORWARDING_ARITY
-# define NDNBOOST_IOSTREAMS_MAX_FORWARDING_ARITY 3
-#endif
-
-#ifndef NDNBOOST_IOSTREAMS_MAX_EXECUTE_ARITY
-# define NDNBOOST_IOSTREAMS_MAX_EXECUTE_ARITY 5
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_LIMITS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/overload_resolution.hpp b/include/ndnboost/iostreams/detail/config/overload_resolution.hpp
deleted file mode 100644
index 2f35c41..0000000
--- a/include/ndnboost/iostreams/detail/config/overload_resolution.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Adapted from <ndnboost/config/auto_link.hpp> and from
-// http://www.boost.org/more/separate_compilation.html, by John Maddock.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_BROKEN_OVERLOAD_RESOLUTION_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_BROKEN_OVERLOAD_RESOLUTION_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif             
-
-#include <ndnboost/config.hpp> // NDNBOOST_MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/config/gcc.hpp>
-
-#if !defined(NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION)
-# if NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003) || \
-     NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) || \
-     NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) || \
-     NDNBOOST_WORKAROUND(NDNBOOST_IOSTREAMS_GCC, <= 295) \
-     /**/
-#  define NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION
-# endif
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_BROKEN_OVERLOAD_RESOLUTION_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/rtl.hpp b/include/ndnboost/iostreams/detail/config/rtl.hpp
deleted file mode 100644
index c39b814..0000000
--- a/include/ndnboost/iostreams/detail/config/rtl.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
- *
- * Defines preprocessor symbols expanding to the names of functions in the 
- * C runtime library used to access file descriptors and to the type used
- * to store file offsets for seeking.
- * 
- * File:        ndnboost/iostreams/detail/config/rtl.hpp
- * Date:        Wed Dec 26 11:58:11 MST 2007
- * 
- * Copyright:   2007-2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_RTL_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_RTL_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/iostreams/detail/config/windows_posix.hpp>
-
-// Handle open, close, read, and write
-#ifdef __BORLANDC__
-# define NDNBOOST_IOSTREAMS_RTL(x) NDNBOOST_JOIN(_rtl_, x)
-#elif defined NDNBOOST_IOSTREAMS_WINDOWS
-# define NDNBOOST_IOSTREAMS_RTL(x) NDNBOOST_JOIN(_, x)
-#else
-# define NDNBOOST_IOSTREAMS_RTL(x) ::x  // Distinguish from member function named x
-#endif
-#define NDNBOOST_IOSTREAMS_FD_OPEN   NDNBOOST_IOSTREAMS_RTL(open)
-#define NDNBOOST_IOSTREAMS_FD_CLOSE  NDNBOOST_IOSTREAMS_RTL(close)
-#define NDNBOOST_IOSTREAMS_FD_READ   NDNBOOST_IOSTREAMS_RTL(read)
-#define NDNBOOST_IOSTREAMS_FD_WRITE  NDNBOOST_IOSTREAMS_RTL(write)
-
-// Handle lseek, off_t, ftruncate, and stat
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-# if defined(NDNBOOST_MSVC) || defined(__MSVCRT__) // MSVC, MinGW
-#  define NDNBOOST_IOSTREAMS_FD_SEEK    _lseeki64
-#  define NDNBOOST_IOSTREAMS_FD_OFFSET  __int64
-# else                                          // Borland, Metrowerks, ...
-#  define NDNBOOST_IOSTREAMS_FD_SEEK    lseek  
-#  define NDNBOOST_IOSTREAMS_FD_OFFSET  long
-# endif
-#else // Non-windows
-# if defined(_LARGEFILE64_SOURCE) && !defined(__APPLE__) && \
-         (!defined(_FILE_OFFSET_BITS) || _FILE_OFFSET_BITS != 64) || \
-     defined(_AIX) && !defined(_LARGE_FILES) || \
-     defined(NDNBOOST_IOSTREAMS_HAS_LARGE_FILE_EXTENSIONS)
-     /**/
-
-    /* Systems with transitional extensions for large file support */
-
-#  define NDNBOOST_IOSTREAMS_FD_SEEK      lseek64
-#  define NDNBOOST_IOSTREAMS_FD_TRUNCATE  ftruncate64
-#  define NDNBOOST_IOSTREAMS_FD_MMAP      mmap64
-#  define NDNBOOST_IOSTREAMS_FD_STAT      stat64
-#  define NDNBOOST_IOSTREAMS_FD_FSTAT     fstat64
-#  define NDNBOOST_IOSTREAMS_FD_OFFSET    off64_t
-# else
-#  define NDNBOOST_IOSTREAMS_FD_SEEK      lseek
-#  define NDNBOOST_IOSTREAMS_FD_TRUNCATE  ftruncate
-#  define NDNBOOST_IOSTREAMS_FD_MMAP      mmap
-#  define NDNBOOST_IOSTREAMS_FD_STAT      stat
-#  define NDNBOOST_IOSTREAMS_FD_FSTAT     fstat
-#  define NDNBOOST_IOSTREAMS_FD_OFFSET    off_t
-# endif
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_RTL_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/unreachable_return.hpp b/include/ndnboost/iostreams/detail/config/unreachable_return.hpp
deleted file mode 100644
index 1de856a..0000000
--- a/include/ndnboost/iostreams/detail/config/unreachable_return.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// (C) Copyright 2010 Daniel James
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_UNREACHABLE_RETURN_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_UNREACHABLE_RETURN_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp>
-
-// If Boost.Exception has NDNBOOST_ATTRIBUTE_NORETURN
-#if defined(_MSC_VER) || defined(__GNUC__)
-#define NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(x) \
-    NDNBOOST_UNREACHABLE_RETURN(x)
-#else
-#define NDNBOOST_IOSTREAMS_UNREACHABLE_RETURN(x) \
-    return x;
-#endif
-
-#endif
diff --git a/include/ndnboost/iostreams/detail/config/wide_streams.hpp b/include/ndnboost/iostreams/detail/config/wide_streams.hpp
deleted file mode 100644
index 92ead3b..0000000
--- a/include/ndnboost/iostreams/detail/config/wide_streams.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Adapted from http://www.boost.org/more/separate_compilation.html, by
-// John Maddock.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_WIDE_STREAMS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_WIDE_STREAMS_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <cstddef>
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif       
-
-//------------------Templated stream support----------------------------------//
-
-// From ndnboost/dynamic_bitset.hpp; thanks to Matthias Troyer for cray patch.
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# if defined(__STL_CONFIG_H) && \
-    !defined (__STL_USE_NEW_IOSTREAMS) && !defined(__crayx1) \
-    /**/
-#  define NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# endif
-#endif // #ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-
-//------------------Wide stream support---------------------------------------//
-
-#ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS
-# if defined(NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES) || \
-     defined (NDNBOOST_NO_STD_WSTREAMBUF) && \
-     ( !defined(__MSL_CPP__) || defined(_MSL_NO_WCHART_CPP_SUPPORT) ) \
-     /**/
-#  define NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS
-# endif
-#endif // #ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS   
-
-//------------------Locale support--------------------------------------------//
-
-#ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-# if defined(NDNBOOST_NO_STD_LOCALE) || \
-     defined(__CYGWIN__) && \
-     ( !defined(__MSL_CPP__) || defined(_MSL_NO_WCHART_CPP_SUPPORT) ) \
-     /**/
-#  define NDNBOOST_IOSTREAMS_NO_LOCALE
-# endif
-#endif // #ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_WIDE_STREAMS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/windows_posix.hpp b/include/ndnboost/iostreams/detail/config/windows_posix.hpp
deleted file mode 100644
index 9fd9c45..0000000
--- a/include/ndnboost/iostreams/detail/config/windows_posix.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2004-2007 Jonathan Turkanis
-// (C) Copyright 2002, 2003 Beman Dawes   Boost.Filesystem
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_WINDOWS_POSIX_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_WINDOWS_POSIX_HPP_INCLUDED
-
-//------------------From ndnboost/libs/filesystem/src/path_posix_windows.cpp-----//
-
-// NDNBOOST_IOSTREAMS_POSIX or NDNBOOST_IOSTREAMS_WINDOWS specify which API to use.
-#if !defined( NDNBOOST_IOSTREAMS_WINDOWS ) && !defined( NDNBOOST_IOSTREAMS_POSIX )
-# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && \
-     !defined(__CYGWIN__) \
-     /**/
-#  define NDNBOOST_IOSTREAMS_WINDOWS
-# else
-#  define NDNBOOST_IOSTREAMS_POSIX
-# endif
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_WINDOWS_POSIX_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/config/zlib.hpp b/include/ndnboost/iostreams/detail/config/zlib.hpp
deleted file mode 100644
index e3df50a..0000000
--- a/include/ndnboost/iostreams/detail/config/zlib.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Adapted from <ndnboost/config/auto_link.hpp> and from
-// http://www.boost.org/more/separate_compilation.html, by John Maddock.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_ZLIB_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CONFIG_ZLIB_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp> // NDNBOOST_STRINGIZE.
-
-#if defined(NDNBOOST_ZLIB_BINARY)
-# if defined(NDNBOOST_MSVC) || \
-     defined(__BORLANDC__) || \
-     (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) || \
-     (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) \
-     /**/
-
-// Specify the name of the .lib file.
-#  pragma comment(lib, NDNBOOST_STRINGIZE(NDNBOOST_ZLIB_BINARY))
-# endif
-#else 
-# if !defined(NDNBOOST_IOSTREAMS_SOURCE) && \
-     !defined(NDNBOOST_ALL_NO_LIB) && \
-     !defined(NDNBOOST_IOSTREAMS_NO_LIB) \
-     /**/
-
-// Set the name of our library, this will get undef'ed by auto_link.hpp
-// once it's done with it.
-#  define NDNBOOST_LIB_NAME ndnboost_zlib
-
-// If we're importing code from a dll, then tell auto_link.hpp about it.
-#  if defined(NDNBOOST_ALL_DYN_LINK) || defined(NDNBOOST_IOSTREAMS_DYN_LINK)
-#   define NDNBOOST_DYN_LINK
-#  endif
-
-// And include the header that does the work.
-#  include <ndnboost/config/auto_link.hpp>
-# endif
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CONFIG_ZLIB_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/counted_array.hpp b/include/ndnboost/iostreams/detail/counted_array.hpp
deleted file mode 100644
index 5305898..0000000
--- a/include/ndnboost/iostreams/detail/counted_array.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_COUNTED_ARRAY_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_COUNTED_ARRAY_HPP_INCLUDED
-
-#include <algorithm>                               // min.
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>          // streamsize.
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename Ch>
-class counted_array_source {
-public:
-    typedef Ch          char_type;
-    typedef source_tag  category;
-    counted_array_source(const Ch* buf, std::streamsize size) 
-        : buf_(buf), ptr_(0), end_(size)
-        { }
-    std::streamsize read(Ch* s, std::streamsize n)
-    {
-        std::streamsize result = (std::min)(n, end_ - ptr_);
-        NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)::copy
-            (s, buf_ + ptr_, result);
-        ptr_ += result;
-        return result;
-    }
-    std::streamsize count() const { return ptr_; }
-private:
-    const Ch*        buf_;
-    std::streamsize  ptr_, end_;
-};
-
-template<typename Ch>
-struct counted_array_sink {
-public:
-    typedef Ch        char_type;
-    typedef sink_tag  category;
-    counted_array_sink(Ch* buf, std::streamsize size) 
-        : buf_(buf), ptr_(0), end_(size)
-        { }
-        std::streamsize write(const Ch* s, std::streamsize n)
-    {
-        std::streamsize result = (std::min)(n, end_ - ptr_);
-        NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)::copy
-            (buf_ + ptr_, s, result);
-        ptr_ += result;
-        return result;
-    }
-    std::streamsize count() const { return ptr_; }
-private:
-    Ch*              buf_;
-    std::streamsize  ptr_, end_;
-};
-
-} } } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_COUNTED_ARRAY_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/current_directory.hpp b/include/ndnboost/iostreams/detail/current_directory.hpp
deleted file mode 100644
index fda6950..0000000
--- a/include/ndnboost/iostreams/detail/current_directory.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
-
- * File:        ndnboost/iostreams/detail/execute.hpp
- * Date:        Thu Dec 06 13:21:54 MST 2007
- * Copyright:   2007-2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * Defines the function ndnboost::iostreams::detail::current_directory, used by 
- * ndnboost::iostreams::detail::absolute_path.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CURRENT_DIRECTORY_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CURRENT_DIRECTORY_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>  // make sure size_t is in std.
-#include <cstddef>           // size_t
-#include <string>
-#include <ndnboost/iostreams/detail/buffer.hpp>
-#include <ndnboost/iostreams/detail/config/windows_posix.hpp>
-#include <ndnboost/iostreams/detail/system_failure.hpp>
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-# define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers
-# include <windows.h>
-#else
-# include <unistd.h>        // sysconf.
-#endif
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-// Returns the current working directory
-inline std::string current_directory()
-{
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    DWORD               length;
-    basic_buffer<char>  buf(MAX_PATH);
-    while (true) {
-        length = ::GetCurrentDirectoryA(buf.size(), buf.data());
-        if (!length)
-            throw_system_failure("failed determining current directory");
-        if (length < static_cast<DWORD>(buf.size()))
-            break;
-        buf.resize(buf.size() * 2);
-    }
-    return std::string(buf.data(), length);
-#else // #ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    basic_buffer<char> buf(pathconf(".", _PC_PATH_MAX));
-    if (!getcwd(buf.data(), static_cast<size_t>(buf.size())))
-        throw_system_failure("failed determining current directory");
-    return std::string(buf.data());
-#endif // #ifdef NDNBOOST_IOSTREAMS_WINDOWS
-}
-
-} } } // End namespaces detail, iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CURRENT_DIRECTORY_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/default_arg.hpp b/include/ndnboost/iostreams/detail/default_arg.hpp
deleted file mode 100644
index c85aae6..0000000
--- a/include/ndnboost/iostreams/detail/default_arg.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_DEFAULT_ARG_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_DEFAULT_ARG_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif            
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-# include <ndnboost/mpl/identity.hpp>
-# define NDNBOOST_IOSTREAMS_DEFAULT_ARG(arg) mpl::identity< arg >::type
-#else
-# define NDNBOOST_IOSTREAMS_DEFAULT_ARG(arg) arg
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_DEFAULT_ARG_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/dispatch.hpp b/include/ndnboost/iostreams/detail/dispatch.hpp
deleted file mode 100644
index fa7e926..0000000
--- a/include/ndnboost/iostreams/detail/dispatch.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_DISPATCH_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_DISPATCH_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp>                   // NDNBOOST_DEDUCED_TYPENAME. 
-#include <ndnboost/iostreams/detail/select.hpp>
-#include <ndnboost/iostreams/traits.hpp>         // category_of. 
-#include <ndnboost/mpl/void.hpp>          
-#include <ndnboost/type_traits/is_convertible.hpp>         
-
-namespace ndnboost { namespace iostreams {namespace detail {
-    
-template< typename T, typename Tag1, typename Tag2,
-          typename Tag3 = mpl::void_, typename Tag4 = mpl::void_,
-          typename Tag5 = mpl::void_, typename Tag6 = mpl::void_,
-          typename Category = 
-              NDNBOOST_DEDUCED_TYPENAME category_of<T>::type >
-struct dispatch 
-    : iostreams::select<  // Disambiguation for Tru64.
-          is_convertible<Category, Tag1>, Tag1,
-          is_convertible<Category, Tag2>, Tag2,
-          is_convertible<Category, Tag3>, Tag3,
-          is_convertible<Category, Tag4>, Tag4,
-          is_convertible<Category, Tag5>, Tag5,
-          is_convertible<Category, Tag6>, Tag6
-      >
-    { };
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_DISPATCH_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/double_object.hpp b/include/ndnboost/iostreams/detail/double_object.hpp
deleted file mode 100644
index dd23f7a..0000000
--- a/include/ndnboost/iostreams/detail/double_object.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2004-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains the definition of the class template 
-// ndnboost::iostreams::detail::double_object, which is similar to compressed pair
-// except that both members of the pair have the same type, and 
-// compression occurs only if requested using a boolean template
-// parameter.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_DOUBLE_OBJECT_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_DOUBLE_OBJECT_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <algorithm>              // swap.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/mpl/if.hpp>
-#if NDNBOOST_WORKAROUND(__MWERKS__, > 0x3003)
-# include <msl_utility>
-#else
-# include <ndnboost/call_traits.hpp>
-#endif
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename T>
-class single_object_holder {
-public:
-#if NDNBOOST_WORKAROUND(__MWERKS__, > 0x3003)
-    typedef Metrowerks::call_traits<T>             traits_type;
-#else
-    typedef ndnboost::call_traits<T>                  traits_type;
-#endif
-    typedef typename traits_type::param_type       param_type;
-    typedef typename traits_type::reference        reference;
-    typedef typename traits_type::const_reference  const_reference;
-    single_object_holder() { }
-    single_object_holder(param_type t) : first_(t) { }
-    reference first() { return first_; }
-    const_reference first() const { return first_; }
-    reference second() { return first_; }
-    const_reference second() const { return first_; }
-    void swap(single_object_holder& o)
-    { std::swap(first_, o.first_); }
-private:
-    T first_;
-};
-
-template<typename T>
-struct double_object_holder {
-public:
-#if NDNBOOST_WORKAROUND(__MWERKS__, > 0x3003)
-    typedef Metrowerks::call_traits<T>             traits_type;
-#else
-    typedef ndnboost::call_traits<T>                  traits_type;
-#endif
-    typedef typename traits_type::param_type       param_type;
-    typedef typename traits_type::reference        reference;
-    typedef typename traits_type::const_reference  const_reference;
-    double_object_holder() { }
-    double_object_holder(param_type t1, param_type t2)
-        : first_(t1), second_(t2) { }
-    reference first() { return first_; }
-    const_reference first() const { return first_; }
-    reference second() { return second_; }
-    const_reference second() const { return second_; }
-    void swap(double_object_holder& d)
-    { 
-        std::swap(first_, d.first_); 
-        std::swap(second_, d.second_); 
-    }
-private:
-    T first_, second_;
-};
-
-template<typename T, typename IsDouble>
-class double_object 
-    : public mpl::if_<
-                 IsDouble, 
-                 double_object_holder<T>, 
-                 single_object_holder<T>
-             >::type
-{
-private:
-    typedef typename 
-            mpl::if_<
-                IsDouble, 
-                double_object_holder<T>, 
-                single_object_holder<T>
-            >::type                                base_type;
-public:
-#if NDNBOOST_WORKAROUND(__MWERKS__, > 0x3003)
-    typedef Metrowerks::call_traits<T>             traits_type;
-#else
-    typedef ndnboost::call_traits<T>                  traits_type;
-#endif
-    typedef typename traits_type::param_type       param_type;
-    typedef typename traits_type::reference        reference;
-    typedef typename traits_type::const_reference  const_reference;
-    double_object() : base_type() {}
-    double_object(param_type t1, param_type t2)
-        : base_type(t1, t2) { }
-    bool is_double() const { return IsDouble::value; }
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_DOUBLE_OBJECT_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/enable_if_stream.hpp b/include/ndnboost/iostreams/detail/enable_if_stream.hpp
deleted file mode 100644
index a96dfe0..0000000
--- a/include/ndnboost/iostreams/detail/enable_if_stream.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_ENABLE_IF_STREAM_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_ENABLE_IF_STREAM_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp>                // NDNBOOST_NO_SFINAE.
-#include <ndnboost/utility/enable_if.hpp>                  
-#include <ndnboost/iostreams/traits_fwd.hpp>  // is_std_io.
-
-#if !defined(NDNBOOST_NO_SFINAE) && \
-    !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x592))
-# define NDNBOOST_IOSTREAMS_ENABLE_IF_STREAM(T) \
-    , typename ndnboost::enable_if< ndnboost::iostreams::is_std_io<T> >::type* = 0 \
-    /**/
-# define NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T) \
-    , typename ndnboost::disable_if< ndnboost::iostreams::is_std_io<T> >::type* = 0 \
-    /**/
-#else 
-# define NDNBOOST_IOSTREAMS_ENABLE_IF_STREAM(T)
-# define NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T)
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_ENABLE_IF_STREAM_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/error.hpp b/include/ndnboost/iostreams/detail/error.hpp
deleted file mode 100644
index 0489190..0000000
--- a/include/ndnboost/iostreams/detail/error.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_ERROR_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_ERROR_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-                 
-#include <ndnboost/iostreams/detail/ios.hpp>  // failure.
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-inline NDNBOOST_IOSTREAMS_FAILURE cant_read() 
-{ return NDNBOOST_IOSTREAMS_FAILURE("no read access"); }
-
-inline NDNBOOST_IOSTREAMS_FAILURE cant_write() 
-{ return NDNBOOST_IOSTREAMS_FAILURE("no write access"); }
-
-inline NDNBOOST_IOSTREAMS_FAILURE cant_seek() 
-{ return NDNBOOST_IOSTREAMS_FAILURE("no random access"); }
-
-inline NDNBOOST_IOSTREAMS_FAILURE bad_read() 
-{ return NDNBOOST_IOSTREAMS_FAILURE("bad read"); }
-
-inline NDNBOOST_IOSTREAMS_FAILURE bad_putback() 
-{ return NDNBOOST_IOSTREAMS_FAILURE("putback buffer full"); }
-
-inline NDNBOOST_IOSTREAMS_FAILURE bad_write() 
-{ return NDNBOOST_IOSTREAMS_FAILURE("bad write"); }
-
-inline NDNBOOST_IOSTREAMS_FAILURE write_area_exhausted() 
-{ return NDNBOOST_IOSTREAMS_FAILURE("write area exhausted"); }
-
-inline NDNBOOST_IOSTREAMS_FAILURE bad_seek() 
-{ return NDNBOOST_IOSTREAMS_FAILURE("bad seek"); }
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_ERROR_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/execute.hpp b/include/ndnboost/iostreams/detail/execute.hpp
deleted file mode 100644
index 73240c8..0000000
--- a/include/ndnboost/iostreams/detail/execute.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
-
- * File:        ndnboost/iostreams/detail/execute.hpp
- * Date:        Thu Dec 06 13:21:54 MST 2007
- * Copyright:   2007-2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
-
- * Defines the overloaded function template 
- * ndnboost::iostreams::detail::execute_all() and the function template 
- * ndnboost::iostreams::detail::execute_foreach().
- *
- * execute_all() invokes a primary operation and performs a sequence of cleanup 
- * operations, returning the result of the primary operation if no exceptions
- * are thrown. If one of the operations throws an exception, performs the
- * remaining operations and rethrows the initial exception.
- *
- * execute_foreach() is a variant of std::foreach which invokes a function 
- * object for each item in a sequence, catching all execptions and rethrowing
- * the first caught exception after the function object has been invoked on each
- * item.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_EXECUTE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_EXECUTE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/config/limits.hpp>   // MAX_EXECUTE_ARITY
-#include <ndnboost/preprocessor/arithmetic/dec.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/iteration/local.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
-#include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-#include <ndnboost/utility/result_of.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-// Helper for class template execute_traits.
-template<typename Result>
-struct execute_traits_impl {
-    typedef Result result_type;
-    template<typename Op>
-    static Result execute(Op op) { return op(); }
-};
-
-// Specialization for void return. For simplicity, execute() returns int 
-// for operations returning void. This could be avoided with additional work.
-template<>
-struct execute_traits_impl<void> {
-    typedef int result_type;
-    template<typename Op>
-    static int execute(Op op) { op(); return 0; }
-};
-
-// Deduces the result type of Op and allows uniform treatment of operations 
-// returning void and non-void.
-template< typename Op, 
-          typename Result = // VC6.5 workaround.
-              #if !defined(NDNBOOST_NO_RESULT_OF) && \
-                  !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x592))
-                  typename ndnboost::result_of<Op()>::type
-              #else
-                  NDNBOOST_DEDUCED_TYPENAME Op::result_type
-              #endif
-          >
-struct execute_traits 
-    : execute_traits_impl<Result>
-    { };
-
-// Implementation with no cleanup operations.
-template<typename Op>
-typename execute_traits<Op>::result_type 
-execute_all(Op op) 
-{ 
-    return execute_traits<Op>::execute(op);
-}
-
-// Implementation with one or more cleanup operations
-#define NDNBOOST_PP_LOCAL_MACRO(n) \
-   template<typename Op, NDNBOOST_PP_ENUM_PARAMS(n, typename C)> \
-   typename execute_traits<Op>::result_type \
-   execute_all(Op op, NDNBOOST_PP_ENUM_BINARY_PARAMS(n, C, c)) \
-   { \
-       typename execute_traits<Op>::result_type r; \
-       try { \
-           r = ndnboost::iostreams::detail::execute_all( \
-                   op NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(n)) \
-                   NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_DEC(n), c) \
-               ); \
-       } catch (...) { \
-           try { \
-               NDNBOOST_PP_CAT(c, NDNBOOST_PP_DEC(n))(); \
-           } catch (...) { } \
-           throw; \
-       } \
-       NDNBOOST_PP_CAT(c, NDNBOOST_PP_DEC(n))(); \
-       return r; \
-   } \
-   /**/
-
-#define NDNBOOST_PP_LOCAL_LIMITS (1, NDNBOOST_IOSTREAMS_MAX_EXECUTE_ARITY)
-#include NDNBOOST_PP_LOCAL_ITERATE()
-#undef NDNBOOST_PP_LOCAL_MACRO
-
-template<class InIt, class Op>
-Op execute_foreach(InIt first, InIt last, Op op)
-{
-    if (first == last)
-        return op;
-    try {
-        op(*first);
-    } catch (...) {
-        try {
-            ++first;
-            ndnboost::iostreams::detail::execute_foreach(first, last, op);
-        } catch (...) { }
-        throw;
-    }
-    ++first;
-    return ndnboost::iostreams::detail::execute_foreach(first, last, op);
-}
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_EXECUTE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/file_handle.hpp b/include/ndnboost/iostreams/detail/file_handle.hpp
deleted file mode 100644
index 4f35d1d..0000000
--- a/include/ndnboost/iostreams/detail/file_handle.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
- *
- * File:        ndnboost/iostreams/detail/file_handle.hpp
- * Date:        Sun Jun 22 14:23:12 MDT 2008
- * Copyright:   2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * Defines the type ndnboost::iostreams::detail::file_handle, representing an
- * operating system file handle.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_FILE_HANDLE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_FILE_HANDLE_HPP_INCLUDED
-
-#include <ndnboost/iostreams/detail/config/windows_posix.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    typedef void*  file_handle;  // A.k.a. HANDLE
-#else
-    typedef int    file_handle;
-#endif
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_FILE_HANDLE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/forward.hpp b/include/ndnboost/iostreams/detail/forward.hpp
deleted file mode 100644
index a45b903..0000000
--- a/include/ndnboost/iostreams/detail/forward.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_FORWARD_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_FORWARD_HPP_INCLUDED   
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif                  
- 
-#include <ndnboost/config.hpp> // NDNBOOST_MSVC, NDNBOOST_NO_SFINAE
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/config/limits.hpp>
-#include <ndnboost/iostreams/detail/push_params.hpp>
-#include <ndnboost/preprocessor/arithmetic/dec.hpp>
-#include <ndnboost/preprocessor/arithmetic/inc.hpp>
-#include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-#include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/preprocessor/repetition/repeat_from_to.hpp>
-#include <ndnboost/preprocessor/tuple/elem.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-//------Macros for defining forwarding constructors and open overloads--------//
-    
-//
-// Macro: NDNBOOST_IOSTREAMS_FORWARD(class, impl, device, params, args)
-// Description: Defines constructors and overloads of 'open' which construct
-//      a device using the specified argument list and pass it to the specified
-//      helper function
-//   class - The class name
-//   impl - The helper function
-//   device - The device type
-//   params - The list of formal parameters trailing the device parameter in
-//     the helper function's signature
-//   params - The list of arguments passed to the helper function, following the
-//     device argument
-//
-#define NDNBOOST_IOSTREAMS_FORWARD(class, impl, device, params, args) \
-    class(const device& t params()) \
-    { this->impl(::ndnboost::iostreams::detail::wrap(t) args()); } \
-    class(device& t params()) \
-    { this->impl(::ndnboost::iostreams::detail::wrap(t) args()); } \
-    class(const ::ndnboost::reference_wrapper<device>& ref params()) \
-    { this->impl(ref args()); } \
-    void open(const device& t params()) \
-    { this->impl(::ndnboost::iostreams::detail::wrap(t) args()); } \
-    void open(device& t params()) \
-    { this->impl(::ndnboost::iostreams::detail::wrap(t) args()); } \
-    void open(const ::ndnboost::reference_wrapper<device>& ref params()) \
-    { this->impl(ref args()); } \
-    NDNBOOST_PP_REPEAT_FROM_TO( \
-        1, NDNBOOST_PP_INC(NDNBOOST_IOSTREAMS_MAX_FORWARDING_ARITY), \
-        NDNBOOST_IOSTREAMS_FORWARDING_CTOR, (class, impl, device) \
-    ) \
-    NDNBOOST_PP_REPEAT_FROM_TO( \
-        1, NDNBOOST_PP_INC(NDNBOOST_IOSTREAMS_MAX_FORWARDING_ARITY), \
-        NDNBOOST_IOSTREAMS_FORWARDING_FN, (class, impl, device) \
-    ) \
-    /**/
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-# define NDNBOOST_IOSTREAMS_FORWARDING_CTOR_I(z, n, tuple) \
-    template< typename U100 NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(n)) \
-              NDNBOOST_PP_ENUM_PARAMS_Z(z, NDNBOOST_PP_DEC(n), typename U) > \
-    NDNBOOST_PP_TUPLE_ELEM(3, 0, tuple) \
-    ( U100& u100 NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(n)) \
-      NDNBOOST_PP_ENUM_BINARY_PARAMS_Z(z, NDNBOOST_PP_DEC(n), const U, &u) \
-      NDNBOOST_IOSTREAMS_DISABLE_IF_SAME(U100, NDNBOOST_PP_TUPLE_ELEM(3, 2, tuple))) \
-    { this->NDNBOOST_PP_TUPLE_ELEM(3, 1, tuple) \
-      ( NDNBOOST_PP_TUPLE_ELEM(3, 2, tuple) \
-        ( u100 NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(n)) \
-          NDNBOOST_PP_ENUM_PARAMS_Z(z, NDNBOOST_PP_DEC(n), u)) ); } \
-    /**/
-# define NDNBOOST_IOSTREAMS_FORWARDING_FN_I(z, n, tuple) \
-    template< typename U100 NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(n)) \
-              NDNBOOST_PP_ENUM_PARAMS_Z(z, NDNBOOST_PP_DEC(n), typename U) > \
-    void open \
-    ( U100& u100 NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(n)) \
-      NDNBOOST_PP_ENUM_BINARY_PARAMS_Z(z, NDNBOOST_PP_DEC(n), const U, &u) \
-      NDNBOOST_IOSTREAMS_DISABLE_IF_SAME(U100, NDNBOOST_PP_TUPLE_ELEM(3, 2, tuple))) \
-    { this->NDNBOOST_PP_TUPLE_ELEM(3, 1, tuple) \
-      ( u100 NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(n)) \
-        NDNBOOST_PP_ENUM_PARAMS_Z(z, NDNBOOST_PP_DEC(n), u) ); } \
-    /**/
-#else
-# define NDNBOOST_IOSTREAMS_FORWARDING_CTOR_I(z, n, tuple)
-# define NDNBOOST_IOSTREAMS_FORWARDING_FN_I(z, n, tuple)
-#endif
-#define NDNBOOST_IOSTREAMS_FORWARDING_CTOR(z, n, tuple) \
-    template<NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename U)> \
-    NDNBOOST_PP_TUPLE_ELEM(3, 0, tuple) \
-    (NDNBOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, const U, &u) \
-      NDNBOOST_IOSTREAMS_DISABLE_IF_SAME(U0, NDNBOOST_PP_TUPLE_ELEM(3, 2, tuple))) \
-    { this->NDNBOOST_PP_TUPLE_ELEM(3, 1, tuple) \
-      ( NDNBOOST_PP_TUPLE_ELEM(3, 2, tuple) \
-        (NDNBOOST_PP_ENUM_PARAMS_Z(z, n, u)) ); } \
-    NDNBOOST_IOSTREAMS_FORWARDING_CTOR_I(z, n, tuple) \
-    /**/
-#define NDNBOOST_IOSTREAMS_FORWARDING_FN(z, n, tuple) \
-    template<NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename U)> \
-    void open(NDNBOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, const U, &u) \
-      NDNBOOST_IOSTREAMS_DISABLE_IF_SAME(U0, NDNBOOST_PP_TUPLE_ELEM(3, 2, tuple))) \
-    { this->NDNBOOST_PP_TUPLE_ELEM(3, 1, tuple) \
-      ( NDNBOOST_PP_TUPLE_ELEM(3, 2, tuple) \
-        (NDNBOOST_PP_ENUM_PARAMS_Z(z, n, u)) ); } \
-    NDNBOOST_IOSTREAMS_FORWARDING_FN_I(z, n, tuple) \
-    /**/
-
-// Disable forwarding constructors if first parameter type is the same
-// as the device type
-#if !defined(NDNBOOST_NO_SFINAE) && \
-    !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x592))
-# define NDNBOOST_IOSTREAMS_DISABLE_IF_SAME(device, param) \
-    , typename ndnboost::disable_if< ndnboost::is_same<device, param> >::type* = 0 \
-    /**/
-#else 
-# define NDNBOOST_IOSTREAMS_DISABLE_IF_SAME(device, param)
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_FORWARD_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/fstream.hpp b/include/ndnboost/iostreams/detail/fstream.hpp
deleted file mode 100644
index 50620a7..0000000
--- a/include/ndnboost/iostreams/detail/fstream.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_FSTREAM_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_FSTREAM_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-                 
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# include <fstream>
-#else
-# include <fstream.h>
-#endif 
-
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# define NDNBOOST_IOSTREAMS_BASIC_IFSTREAM(Ch, Tr) std::basic_ifstream<Ch, Tr>
-# define NDNBOOST_IOSTREAMS_BASIC_OFSTREAM(Ch, Tr) std::basic_ofstream<Ch, Tr>
-# define NDNBOOST_IOSTREAMS_BASIC_FSTREAM(Ch, Tr) std::basic_fstream<Ch, Tr>
-# define NDNBOOST_IOSTREAMS_BASIC_FILEBUF(Ch) std::basic_filebuf<Ch>
-#else 
-# define NDNBOOST_IOSTREAMS_BASIC_IFSTREAM(Ch, Tr) std::ifstream
-# define NDNBOOST_IOSTREAMS_BASIC_OFSTREAM(Ch, Tr) std::ofstream
-# define NDNBOOST_IOSTREAMS_BASIC_FILEBUF(Ch) std::filebuf
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_FSTREAM_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/functional.hpp b/include/ndnboost/iostreams/detail/functional.hpp
deleted file mode 100644
index 52a825e..0000000
--- a/include/ndnboost/iostreams/detail/functional.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
-
- * File:        ndnboost/iostreams/detail/functional.hpp
- * Date:        Sun Dec 09 05:38:03 MST 2007
- * Copyright:   2007-2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
-
- * Defines several function objects and object generators for use with 
- * execute_all()
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_FUNCTIONAL_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_FUNCTIONAL_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/close.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp> // NDNBOOST_IOS
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-    // Function objects and object generators for invoking
-    // ndnboost::iostreams::close
-
-template<typename T>
-class device_close_operation {
-public:
-    typedef void result_type;
-    device_close_operation(T& t, NDNBOOST_IOS::openmode which) 
-        : t_(t), which_(which) 
-        { }
-    void operator()() const { ndnboost::iostreams::close(t_, which_); }
-private:
-    device_close_operation& operator=(const device_close_operation&);
-    T&                   t_;
-    NDNBOOST_IOS::openmode  which_;
-};
-
-template<typename T, typename Sink>
-class filter_close_operation {
-public:
-    typedef void result_type;
-    filter_close_operation(T& t, Sink& snk, NDNBOOST_IOS::openmode which)
-        : t_(t), snk_(snk), which_(which)
-        { }
-    void operator()() const { ndnboost::iostreams::close(t_, snk_, which_); }
-private:
-    filter_close_operation& operator=(const filter_close_operation&);
-    T&                   t_;
-    Sink&                snk_;
-    NDNBOOST_IOS::openmode  which_;
-};
-
-template<typename T>
-device_close_operation<T> 
-call_close(T& t, NDNBOOST_IOS::openmode which) 
-{ return device_close_operation<T>(t, which); }
-
-template<typename T, typename Sink>
-filter_close_operation<T, Sink> 
-call_close(T& t, Sink& snk, NDNBOOST_IOS::openmode which) 
-{ return filter_close_operation<T, Sink>(t, snk, which); }
-
-    // Function objects and object generators for invoking
-    // ndnboost::iostreams::detail::close_all
-
-template<typename T>
-class device_close_all_operation {
-public:
-    typedef void result_type;
-    device_close_all_operation(T& t) : t_(t) { }
-    void operator()() const { detail::close_all(t_); }
-private:
-    device_close_all_operation& operator=(const device_close_all_operation&);
-    T& t_;
-};
-
-template<typename T, typename Sink>
-class filter_close_all_operation {
-public:
-    typedef void result_type;
-    filter_close_all_operation(T& t, Sink& snk) : t_(t), snk_(snk) { }
-    void operator()() const { detail::close_all(t_, snk_); }
-private:
-    filter_close_all_operation& operator=(const filter_close_all_operation&);
-    T&     t_;
-    Sink&  snk_;
-};
-
-template<typename T>
-device_close_all_operation<T> call_close_all(T& t) 
-{ return device_close_all_operation<T>(t); }
-
-template<typename T, typename Sink>
-filter_close_all_operation<T, Sink> 
-call_close_all(T& t, Sink& snk) 
-{ return filter_close_all_operation<T, Sink>(t, snk); }
-
-    // Function object and object generator for invoking a
-    // member function void close(std::ios_base::openmode)
-
-template<typename T>
-class member_close_operation {
-public:
-    typedef void result_type;
-    member_close_operation(T& t, NDNBOOST_IOS::openmode which) 
-        : t_(t), which_(which) 
-        { }
-    void operator()() const { t_.close(which_); }
-private:
-    member_close_operation& operator=(const member_close_operation&);
-    T&                   t_;
-    NDNBOOST_IOS::openmode  which_;
-};
-
-template<typename T>
-member_close_operation<T> call_member_close(T& t, NDNBOOST_IOS::openmode which) 
-{ return member_close_operation<T>(t, which); }
-
-    // Function object and object generator for invoking a
-    // member function void reset()
-
-template<typename T>
-class reset_operation {
-public:
-    reset_operation(T& t) : t_(t) { }
-    void operator()() const { t_.reset(); }
-private:
-    reset_operation& operator=(const reset_operation&);
-    T& t_;
-};
-
-template<typename T>
-reset_operation<T> call_reset(T& t) { return reset_operation<T>(t); }
-
-    // Function object and object generator for clearing a flag
-
-template<typename T>
-class clear_flags_operation {
-public:
-    typedef void result_type;
-    clear_flags_operation(T& t) : t_(t) { }
-    void operator()() const { t_ = 0; }
-private:
-    clear_flags_operation& operator=(const clear_flags_operation&);
-    T& t_;
-};
-
-template<typename T>
-clear_flags_operation<T> clear_flags(T& t) 
-{ return clear_flags_operation<T>(t); }
-
-    // Function object and generator for flushing a buffer
-
-// Function object for use with execute_all()
-template<typename Buffer, typename Device>
-class flush_buffer_operation {
-public:
-    typedef void result_type;
-    flush_buffer_operation(Buffer& buf, Device& dev, bool flush)
-        : buf_(buf), dev_(dev), flush_(flush)
-        { }
-    void operator()() const
-    {
-        if (flush_) 
-            buf_.flush(dev_);
-    }
-private:
-    flush_buffer_operation& operator=(const flush_buffer_operation&);
-    Buffer&  buf_;
-    Device&  dev_;
-    bool     flush_;
-};
-
-template<typename Buffer, typename Device>
-flush_buffer_operation<Buffer, Device> 
-flush_buffer(Buffer& buf, Device& dev, bool flush)
-{ return flush_buffer_operation<Buffer, Device>(buf, dev, flush); }
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_FUNCTIONAL_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/ios.hpp b/include/ndnboost/iostreams/detail/ios.hpp
deleted file mode 100644
index 9d3cfc0..0000000
--- a/include/ndnboost/iostreams/detail/ios.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_IOS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_IOS_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-                 
-#include <ndnboost/config.hpp> // NDNBOOST_MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# if !NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003)
-#  include <ios>
-# else
-#  include <istream>
-#  include <ostream>
-# endif
-#else 
-# include <exception>
-# include <iosfwd>
-#endif 
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------------------//
-# define NDNBOOST_IOSTREAMS_BASIC_IOS(ch, tr)  std::basic_ios< ch, tr >
-# if !NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003) && \
-     !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
-     !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
-     /**/
-
-#define NDNBOOST_IOS                std::ios
-#define NDNBOOST_IOSTREAMS_FAILURE  std::ios::failure
-
-# else
-
-#define NDNBOOST_IOS                std::ios_base
-#define NDNBOOST_IOSTREAMS_FAILURE  std::ios_base::failure
-
-# endif
-#else // #ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-----------------------//
-
-#define NDNBOOST_IOS                          std::ios
-#define NDNBOOST_IOSTREAMS_BASIC_IOS(ch, tr)  std::ios
-#define NDNBOOST_IOSTREAMS_FAILURE            ndnboost::iostreams::detail::failure
-
-class failure : std::exception {    
-public:
-    explicit failure(const std::string& what_arg) : what_(what_arg) { }
-    const char* what() const { return what_.c_str(); }
-private:
-    std::string what_;
-};
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //----------------------//
-
-} } } // End namespace failure, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_IOS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/iostream.hpp b/include/ndnboost/iostreams/detail/iostream.hpp
deleted file mode 100644
index 26d21ab..0000000
--- a/include/ndnboost/iostreams/detail/iostream.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_IOSTREAM_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_IOSTREAM_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-                 
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# include <istream>
-# include <ostream>
-#else
-# include <iostream.h>
-#endif
-
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# define NDNBOOST_IOSTREAMS_BASIC_ISTREAM(ch, tr) std::basic_istream< ch, tr >
-# define NDNBOOST_IOSTREAMS_BASIC_OSTREAM(ch, tr) std::basic_ostream< ch, tr >
-# define NDNBOOST_IOSTREAMS_BASIC_IOSTREAM(ch, tr) std::basic_iostream< ch, tr >
-#else
-# define NDNBOOST_IOSTREAMS_BASIC_STREAMBUF(ch, tr) std::streambuf
-# define NDNBOOST_IOSTREAMS_BASIC_ISTREAM(ch, tr) std::istream
-# define NDNBOOST_IOSTREAMS_BASIC_OSTREAM(ch, tr) std::ostream
-# define NDNBOOST_IOSTREAMS_BASIC_IOSTREAM(ch, tr) std::iostream
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_IOSTREAM_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/is_dereferenceable.hpp b/include/ndnboost/iostreams/detail/is_dereferenceable.hpp
deleted file mode 100644
index 7ee8c58..0000000
--- a/include/ndnboost/iostreams/detail/is_dereferenceable.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// (C) Copyright David Abrahams 2004.
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_IS_DEREFERENCEABLE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_IS_DEREFERENCEABLE_HPP_INCLUDED
-
-# include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-# include <ndnboost/type_traits/detail/template_arity_spec.hpp>
-# include <ndnboost/type_traits/remove_cv.hpp>
-# include <ndnboost/mpl/aux_/lambda_support.hpp>
-# include <ndnboost/mpl/bool.hpp>
-# include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail { 
-
-// is_dereferenceable<T> metafunction
-//
-// Requires: Given x of type T&, if the expression *x is well-formed
-// it must have complete type; otherwise, it must neither be ambiguous
-// nor violate access.
-
-// This namespace ensures that ADL doesn't mess things up.
-namespace is_dereferenceable_
-{
-  // a type returned from operator* when no increment is found in the
-  // type's own namespace
-  struct tag {};
-  
-  // any soaks up implicit conversions and makes the following
-  // operator* less-preferred than any other such operator that
-  // might be found via ADL.
-  struct any { template <class T> any(T const&); };
-
-  // This is a last-resort operator* for when none other is found
-  tag operator*(any const&);
-
-# 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 NDNBOOST_comma(a,b) (a,b)
-# endif 
-  
-  // two check overloads help us identify which operator++ was picked
-  char (& check_increment(tag) )[2];
-  
-  template <class T>
-  char check_increment(T const&);
-  
-  template <class T>
-  struct impl
-  {
-      static typename ndnboost::remove_cv<T>::type& x;
-
-      NDNBOOST_STATIC_CONSTANT(
-          bool
-        , value = sizeof(is_dereferenceable_::check_increment(NDNBOOST_comma(*x,0))) == 1
-      );
-  };
-}
-
-# undef NDNBOOST_comma
-
-template<typename T> 
-struct is_dereferenceable 
-    NDNBOOST_TT_AUX_BOOL_C_BASE(is_dereferenceable_::impl<T>::value)
-{ 
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(is_dereferenceable_::impl<T>::value)
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_dereferenceable,(T))
-};
-
-} } 
-
-NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1, ::ndnboost::iostreams::detail::is_dereferenceable)
-
-} // End namespaces detail, iostreams, boost.
-
-#endif // NDNBOOST_IOSTREAMS_DETAIL_IS_DEREFERENCEABLE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/is_iterator_range.hpp b/include/ndnboost/iostreams/detail/is_iterator_range.hpp
deleted file mode 100644
index 3dcbcc5..0000000
--- a/include/ndnboost/iostreams/detail/is_iterator_range.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_IS_ITERATOR_RANGE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_IS_ITERATOR_RANGE_HPP_INCLUDED       
- 
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/bool_trait_def.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { 
-
-# if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //---------------------------------//
-
-// We avoid dependence on Boost.Range by using a forward declaration.
-template<typename Iterator>
-class iterator_range;
-    
-namespace iostreams {
-
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_iterator_range, ndnboost::iterator_range, 1)
-
-} // End namespace iostreams.
-
-# else // # if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) //-----------------------//
-
-namespace iostreams {    
-
-    template<typename T>
-    struct is_iterator_range {
-        NDNBOOST_STATIC_CONSTANT(bool, value = false);
-    };
-
-} // End namespace iostreams.
-
-# endif // # if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //----------------------//
-
-} // End namespace ndnboost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_IS_ITERATOR_RANGE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/newline.hpp b/include/ndnboost/iostreams/detail/newline.hpp
deleted file mode 100644
index 72a7d10..0000000
--- a/include/ndnboost/iostreams/detail/newline.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_NEWLINE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_NEWLINE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename Ch>
-struct newline;
-
-template<>
-struct newline<char> {
-    NDNBOOST_STATIC_CONSTANT(char, value = '\n');
-};
-
-template<>
-struct newline<wchar_t> {
-    NDNBOOST_STATIC_CONSTANT(wchar_t, value = L'\n');
-};
-
-} } } // End namespaces detaill, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_NEWLINE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/optional.hpp b/include/ndnboost/iostreams/detail/optional.hpp
deleted file mode 100644
index 3af910a..0000000
--- a/include/ndnboost/iostreams/detail/optional.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Recent changes to Boost.Optional involving assigment broke Boost.Iostreams,
-// in a way which could be remedied only by relying on the deprecated reset
-// functions; with VC6, even reset didn't work. Until this problem is 
-// understood, Iostreams will use a private version of optional with a smart 
-// pointer interface.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_OPTIONAL_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_OPTIONAL_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/assert.hpp>
-#include <ndnboost/mpl/int.hpp>
-#include <ndnboost/type_traits/aligned_storage.hpp>
-#include <ndnboost/type_traits/alignment_of.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-// Taken from <ndnboost/optional.hpp>.
-template<class T>
-class aligned_storage
-{
-    // Borland ICEs if unnamed unions are used for this!
-    union dummy_u
-    {
-        char data[ sizeof(T) ];
-        NDNBOOST_DEDUCED_TYPENAME type_with_alignment<
-          ::ndnboost::alignment_of<T>::value >::type aligner_;
-    } dummy_ ;
-
-  public:
-
-    void const* address() const { return &dummy_.data[0]; }
-    void      * address()       { return &dummy_.data[0]; }
-};
-
-template<typename T>
-class optional {
-public:
-    typedef T element_type;
-    optional() : initialized_(false) { }
-    optional(const T& t) : initialized_(false) { reset(t); }
-    ~optional() { reset(); }
-    T& operator*() 
-    { 
-        NDNBOOST_ASSERT(initialized_);
-        return *static_cast<T*>(address()); 
-    }
-    const T& operator*() const
-    { 
-        NDNBOOST_ASSERT(initialized_);
-        return *static_cast<const T*>(address()); 
-    }
-    T* operator->() 
-    { 
-        NDNBOOST_ASSERT(initialized_);
-        return static_cast<T*>(address()); 
-    }
-    const T* operator->() const
-    { 
-        NDNBOOST_ASSERT(initialized_);
-        return static_cast<const T*>(address()); 
-    }
-    T* get() 
-    { 
-        NDNBOOST_ASSERT(initialized_);
-        return static_cast<T*>(address()); 
-    }
-    const T* get() const
-    { 
-        NDNBOOST_ASSERT(initialized_);
-        return static_cast<const T*>(address()); 
-    }
-    void reset() 
-    {
-        if (initialized_) { 
-        #if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) || \
-            NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600)) \
-            /**/
-            T* t = static_cast<T*>(address());
-            t->~T();
-        #else
-            static_cast<T*>(address())->T::~T();
-        #endif
-            initialized_ = false;
-        }
-    }
-    void reset(const T& t) 
-    {
-        reset();
-        new (address()) T(t); 
-        initialized_ = true;
-    }
-private:
-    optional(const optional&);
-    optional& operator=(const optional&);
-    void* address() { return &storage_; }
-    const void* address() const { return &storage_; }
-    aligned_storage<T>  storage_;
-    bool                initialized_;
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_OPTIONAL_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/param_type.hpp b/include/ndnboost/iostreams/detail/param_type.hpp
deleted file mode 100644
index 15da495..0000000
--- a/include/ndnboost/iostreams/detail/param_type.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_PARAM_TYPE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_PARAM_TYPE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename T>
-struct param_type {
-    typedef typename mpl::if_<is_std_io<T>, T&, const T&>::type type;
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_PARAM_TYPE_HPP_INCLUDED //-----------//
diff --git a/include/ndnboost/iostreams/detail/path.hpp b/include/ndnboost/iostreams/detail/path.hpp
deleted file mode 100644
index bafc980..0000000
--- a/include/ndnboost/iostreams/detail/path.hpp
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
- *
- * File:        ndnboost/iostreams/detail/path.hpp
- * Date:        Sat Jun 21 21:24:05 MDT 2008
- * Copyright:   2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * Defines the class ndnboost::iostreams::detail::path, for storing a 
- * a std::string or std::wstring.
- *
- * This class allows interoperability with Boost.Filesystem without
- * creating a dependence on Boost.Filesystem headers or implementation.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_PATH_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_PATH_HPP_INCLUDED
-
-#include <cstring>
-#include <string>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS
-# include <cwchar>
-#endif
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-#ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS //------------------------------------//
-
-class path {
-    template<typename T, typename V>
-    struct sfinae
-    {
-        typedef V type;
-    };
-public:
-
-    // Default constructor
-    path() : narrow_(), wide_(), is_wide_(false) { }
-
-    // Constructor taking a std::string
-    path(const std::string& p) : narrow_(p), wide_(), is_wide_(false) { }
-
-    // Constructor taking a C-style string
-    path(const char* p) : narrow_(p), wide_(), is_wide_(false) { }
-
-    // Constructor taking a ndnboost::filesystem2::path or
-    // ndnboost::filesystem2::wpath
-    template<typename Path>
-    explicit path(const Path& p, typename Path::external_string_type* = 0)
-    {
-        init(p.external_file_string());
-    }
-
-    // Constructor taking a ndnboost::filesystem3::path (boost filesystem v3)
-    template<typename Path>
-    explicit path(const Path& p, typename Path::codecvt_type* = 0)
-    {
-        init(p.native());
-    }
-
-    // Copy constructor
-    path(const path& p) 
-        : narrow_(p.narrow_), wide_(p.wide_), is_wide_(p.is_wide_) 
-        { }
-
-    // Assignment operator taking another path
-    path& operator=(const path& p)
-    {
-        narrow_ = p.narrow_;
-        wide_ = p.wide_;
-        is_wide_ = p.is_wide_;
-        return *this;
-    }
-
-    // Assignment operator taking a std::string
-    path& operator=(const std::string& p)
-    {
-        narrow_ = p;
-        wide_.clear();
-        is_wide_ = false;
-        return *this;
-    }
-
-    // Assignment operator taking a C-style string
-    path& operator=(const char* p)
-    {
-        narrow_.assign(p);
-        wide_.clear();
-        is_wide_ = false;
-        return *this;
-    }
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1400)
-    // Assignment operator taking a ndnboost::filesystem2::path or
-    // ndnboost::filesystem2::wpath
-    // (not on Visual C++ 7.1/8.0, as it seems to have problems with
-    // SFINAE functions with the same parameters, doesn't seem
-    // worth working around).
-    template<typename Path>
-    typename sfinae<typename Path::external_string_type, path&>::type
-        operator=(const Path& p)
-    {
-        init(p.external_file_string());
-        return *this;
-    }
-#endif
-
-    // Assignment operator taking a ndnboost::filesystem3::path
-    template<typename Path>
-    typename sfinae<typename Path::codecvt_type, path&>::type
-        operator=(const Path& p)
-    {
-        init(p.native());
-        return *this;
-    }
-
-    bool is_wide() const { return is_wide_; }
-
-    // Returns a representation of the underlying path as a std::string
-    // Requires: is_wide() returns false
-    const char* c_str() const { return narrow_.c_str(); }
-
-    // Returns a representation of the underlying path as a std::wstring
-    // Requires: is_wide() returns true
-    const wchar_t* c_wstr() const { return wide_.c_str(); }
-private:
-    
-    // For wide-character paths, use a ndnboost::filesystem::wpath instead of a
-    // std::wstring
-    path(const std::wstring&);
-    path& operator=(const std::wstring&);
-
-    void init(std::string const& file_path)
-    {
-        narrow_ = file_path;
-        wide_.clear();
-        is_wide_ = false;
-    }
-
-    void init(std::wstring const& file_path)
-    {
-        narrow_.clear();
-        wide_ = file_path;
-        is_wide_ = true;
-    }
-
-    std::string   narrow_;
-    std::wstring  wide_;
-    bool          is_wide_;
-};
-
-inline bool operator==(const path& lhs, const path& rhs)
-{
-    return lhs.is_wide() ?
-        rhs.is_wide() && std::wcscmp(lhs.c_wstr(), rhs.c_wstr()) == 0 :
-        !rhs.is_wide() && std::strcmp(lhs.c_str(), rhs.c_str()) == 0;
-}
-
-#else // #ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS //---------------------------//
-
-class path {
-public:
-    path() { }
-    path(const std::string& p) : path_(p) { }
-    path(const char* p) : path_(p) { }
-    template<typename Path>
-        path(const Path& p) : path_(p.external_file_string()) { }
-    path(const path& p) : path_(p.path_) { }
-    path& operator=(const path& other) 
-    {
-        path_ = other.path_;
-        return *this;
-    }
-    path& operator=(const std::string& p) 
-    {
-        path_ = p;
-        return *this;
-    }
-    path& operator=(const char* p) 
-    {
-        path_ = p;
-        return *this;
-    }
-    template<typename Path>
-        path& operator=(const Path& p)
-        {
-            path_ = p.external_file_string();
-            return *this;
-        }
-    bool is_wide() const { return false; }
-    const char* c_str() const { return path_.c_str(); }
-    const wchar_t* c_wstr() const { return 0; }
-private:
-    std::string path_;
-};
-
-inline bool operator==(const path& lhs, const path& rhs)
-{
-    return std::strcmp(lhs.c_str(), rhs.c_str()) == 0 ;
-}
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS //--------------------------//
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_PATH_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/push.hpp b/include/ndnboost/iostreams/detail/push.hpp
deleted file mode 100644
index 5152d6a..0000000
--- a/include/ndnboost/iostreams/detail/push.hpp
+++ /dev/null
@@ -1,154 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_PUSH_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_PUSH_HPP_INCLUDED 
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif                    
- 
-#include <ndnboost/config.hpp> // NDNBOOST_MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/adapter/range_adapter.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/enable_if_stream.hpp>   
-#include <ndnboost/iostreams/pipeline.hpp>   
-#include <ndnboost/iostreams/detail/push_params.hpp>   
-#include <ndnboost/iostreams/detail/resolve.hpp>
-#include <ndnboost/mpl/bool.hpp>   
-#include <ndnboost/preprocessor/cat.hpp> 
-#include <ndnboost/preprocessor/control/iif.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-//
-// Macro: NDNBOOST_IOSTREAMS_DEFINE_PUSH_CONSTRUCTOR(name, mode, ch, helper).
-// Description: Defines overloads with name 'name' which forward to a function
-//      'helper' which takes a filter or devide by const reference.
-//
-#define NDNBOOST_IOSTREAMS_DEFINE_PUSH_CONSTRUCTOR(name, mode, ch, helper) \
-    NDNBOOST_IOSTREAMS_DEFINE_PUSH_IMPL(name, mode, ch, helper, 0, ?) \
-    /**/
-
-//
-// Macro: NDNBOOST_IOSTREAMS_DEFINE_PUSH(name, mode, ch, helper).
-// Description: Defines constructors which forward to a function
-//      'helper' which takes a filter or device by const reference.
-//
-#define NDNBOOST_IOSTREAMS_DEFINE_PUSH(name, mode, ch, helper) \
-    NDNBOOST_IOSTREAMS_DEFINE_PUSH_IMPL(name, mode, ch, helper, 1, void) \
-    /**/
-
-//--------------------Definition of NDNBOOST_IOSTREAMS_DEFINE_PUSH_IMPL----------//
-          
-#define NDNBOOST_IOSTREAMS_ADAPT_STREAM(mode, ch, arg, helper, has_return) \
-    this->helper( ::ndnboost::iostreams::detail::resolve<mode, ch>(arg) \
-                  NDNBOOST_IOSTREAMS_PUSH_ARGS() ); \
-    /**/
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) && \
-    !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) \
-    /**/
-# ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-#  define NDNBOOST_IOSTREAMS_DEFINE_PUSH_IMPL(name, mode, ch, helper, has_return, result) \
-    template<typename CharType, typename TraitsType> \
-    NDNBOOST_PP_IIF(has_return, result, explicit) \
-    name(::std::basic_streambuf<CharType, TraitsType>& sb NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_IOSTREAMS_ADAPT_STREAM(mode, ch, sb, helper, has_return); } \
-    template<typename CharType, typename TraitsType> \
-    NDNBOOST_PP_IIF(has_return, result, explicit) \
-    name(::std::basic_istream<CharType, TraitsType>& is NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_STATIC_ASSERT((!is_convertible<mode, output>::value)); \
-      NDNBOOST_IOSTREAMS_ADAPT_STREAM(mode, ch, is, helper, has_return); } \
-    template<typename CharType, typename TraitsType> \
-    NDNBOOST_PP_IIF(has_return, result, explicit) \
-    name(::std::basic_ostream<CharType, TraitsType>& os NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_STATIC_ASSERT((!is_convertible<mode, input>::value)); \
-      NDNBOOST_IOSTREAMS_ADAPT_STREAM(mode, ch, os, helper, has_return); } \
-    template<typename CharType, typename TraitsType> \
-    NDNBOOST_PP_IIF(has_return, result, explicit) \
-    name(::std::basic_iostream<CharType, TraitsType>& io NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_IOSTREAMS_ADAPT_STREAM(mode, ch, io, helper, has_return); } \
-    template<typename Iter> \
-    NDNBOOST_PP_IIF(has_return, result, explicit) \
-    name(const iterator_range<Iter>& rng NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_PP_EXPR_IF(has_return, return) \
-    this->helper( ::ndnboost::iostreams::detail::range_adapter< \
-                      mode, iterator_range<Iter> \
-                  >(rng) \
-                  NDNBOOST_IOSTREAMS_PUSH_ARGS() ); } \
-    template<typename Pipeline, typename Concept> \
-    NDNBOOST_PP_IIF(has_return, result, explicit) \
-    name(const ::ndnboost::iostreams::pipeline<Pipeline, Concept>& p) \
-    { p.push(*this); } \
-    template<typename T> \
-    NDNBOOST_PP_IIF(has_return, result, explicit) \
-    name(const T& t NDNBOOST_IOSTREAMS_PUSH_PARAMS() NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T)) \
-    { this->helper( ::ndnboost::iostreams::detail::resolve<mode, ch>(t) \
-                    NDNBOOST_IOSTREAMS_PUSH_ARGS() ); } \
-    /**/
-# else // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-#  define NDNBOOST_IOSTREAMS_DEFINE_PUSH_IMPL(name, mode, ch, helper, has_return, result) \
-    NDNBOOST_PP_IF(has_return, result, explicit) \
-    name(::std::streambuf& sb NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_IOSTREAMS_ADAPT_STREAM(mode, ch, sb, helper, has_return); } \
-    NDNBOOST_PP_IF(has_return, result, explicit) \
-    name(::std::istream& is NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_STATIC_ASSERT((!is_convertible<mode, output>::value)); \
-      NDNBOOST_IOSTREAMS_ADAPT_STREAM(mode, ch, is, helper, has_return); } \
-    NDNBOOST_PP_IF(has_return, result, explicit) \
-    name(::std::ostream& os NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_STATIC_ASSERT((!is_convertible<mode, input>::value)); \
-      NDNBOOST_IOSTREAMS_ADAPT_STREAM(mode, ch, os, helper, has_return); } \
-    NDNBOOST_PP_IF(has_return, result, explicit) \
-    name(::std::iostream& io NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_IOSTREAMS_ADAPT_STREAM(mode, ch, io, helper, has_return); } \
-    template<typename Iter> \
-    NDNBOOST_PP_IF(has_return, result, explicit) \
-    name(const iterator_range<Iter>& rng NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { NDNBOOST_PP_EXPR_IF(has_return, return) \
-    this->helper( ::ndnboost::iostreams::detail::range_adapter< \
-                      mode, iterator_range<Iter> \
-                  >(rng) \
-                  NDNBOOST_IOSTREAMS_PUSH_ARGS() ); } \
-    template<typename Pipeline, typename Concept> \
-    NDNBOOST_PP_IF(has_return, result, explicit) \
-    name(const ::ndnboost::iostreams::pipeline<Pipeline, Concept>& p) \
-    { p.push(*this); } \
-    template<typename T> \
-    NDNBOOST_PP_EXPR_IF(has_return, result) \
-    name(const T& t NDNBOOST_IOSTREAMS_PUSH_PARAMS() NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T)) \
-    { this->helper( ::ndnboost::iostreams::detail::resolve<mode, ch>(t) \
-                    NDNBOOST_IOSTREAMS_PUSH_ARGS() ); } \
-    /**/
-# endif // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-#else // #if VC6, VC7.0, Borland 5.x
-# define NDNBOOST_IOSTREAMS_DEFINE_PUSH_IMPL(name, mode, ch, helper, has_return, result) \
-    template<typename T> \
-    void NDNBOOST_PP_CAT(name, _msvc_impl) \
-    ( ::ndnboost::mpl::true_, const T& t NDNBOOST_IOSTREAMS_PUSH_PARAMS() ) \
-    { t.push(*this); } \
-    template<typename T> \
-    void NDNBOOST_PP_CAT(name, _msvc_impl) \
-    ( ::ndnboost::mpl::false_, const T& t NDNBOOST_IOSTREAMS_PUSH_PARAMS() ) \
-    { this->helper( ::ndnboost::iostreams::detail::resolve<mode, ch>(t) \
-                    NDNBOOST_IOSTREAMS_PUSH_ARGS() ); } \
-    template<typename T> \
-    NDNBOOST_PP_IF(has_return, result, explicit) \
-    name(const T& t NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-    { \
-        this->NDNBOOST_PP_CAT(name, _msvc_impl) \
-              ( ::ndnboost::iostreams::detail::is_pipeline<T>(), \
-                t NDNBOOST_IOSTREAMS_PUSH_ARGS() ); \
-    } \
-    /**/
-#endif // #if VC6, VC7.0, Borland 5.x
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_PUSH_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/push_params.hpp b/include/ndnboost/iostreams/detail/push_params.hpp
deleted file mode 100644
index bbb214c..0000000
--- a/include/ndnboost/iostreams/detail/push_params.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_PUSH_PARAMS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_PUSH_PARAMS_HPP_INCLUDED 
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif                    
-
-#define NDNBOOST_IOSTREAMS_PUSH_PARAMS() \
-    , std::streamsize buffer_size = -1 , std::streamsize pback_size = -1 \
-    /**/
-
-#define NDNBOOST_IOSTREAMS_PUSH_ARGS() , buffer_size, pback_size     
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_PUSH_PARAMS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/resolve.hpp b/include/ndnboost/iostreams/detail/resolve.hpp
deleted file mode 100644
index 1d0fa56..0000000
--- a/include/ndnboost/iostreams/detail/resolve.hpp
+++ /dev/null
@@ -1,235 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_RESOLVE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_RESOLVE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp> // partial spec, put size_t in std.
-#include <cstddef>          // std::size_t.
-#include <ndnboost/detail/is_incrementable.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/adapter/mode_adapter.hpp>
-#include <ndnboost/iostreams/detail/adapter/output_iterator_adapter.hpp>
-#include <ndnboost/iostreams/detail/adapter/range_adapter.hpp>
-#include <ndnboost/iostreams/detail/config/gcc.hpp>
-#include <ndnboost/iostreams/detail/config/overload_resolution.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/enable_if_stream.hpp>
-#include <ndnboost/iostreams/detail/is_dereferenceable.hpp>
-#include <ndnboost/iostreams/detail/is_iterator_range.hpp>
-#include <ndnboost/iostreams/detail/select.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/device/array.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/bool.hpp> // true_.
-#include <ndnboost/mpl/if.hpp>
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-# include <ndnboost/range/iterator_range.hpp>
-#endif // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-#include <ndnboost/type_traits/is_array.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp> // VC7.1 C4224.
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-//------------------Definition of resolve-------------------------------------//
-
-#ifndef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //-------------------------//
-
-template<typename Mode, typename Ch, typename T>
-struct resolve_traits {
-    typedef typename 
-            mpl::if_<
-                ndnboost::detail::is_incrementable<T>,
-                output_iterator_adapter<Mode, Ch, T>,
-                const T&
-            >::type type;
-};
-
-# ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-------------------------------//
-
-template<typename Mode, typename Ch, typename T>
-typename resolve_traits<Mode, Ch, T>::type
-resolve( const T& t 
-         NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T)
-
-         // I suspect that the compilers which require this workaround may
-         // be correct, but I'm not sure why :(
-         #if NDNBOOST_WORKAROUND(NDNBOOST_INTEL_CXX_VERSION, NDNBOOST_TESTED_AT(810)) ||\
-             NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3205)) || \
-             NDNBOOST_WORKAROUND(NDNBOOST_IOSTREAMS_GCC, NDNBOOST_TESTED_AT(400)) ||\
-             NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(1110))
-             /**/
-         , typename disable_if< is_iterator_range<T> >::type* = 0
-         #endif
-         )
-{
-    typedef typename resolve_traits<Mode, Ch, T>::type return_type;
-    return return_type(t);
-}
-
-template<typename Mode, typename Ch, typename Tr>
-mode_adapter< Mode, std::basic_streambuf<Ch, Tr> > 
-resolve(std::basic_streambuf<Ch, Tr>& sb)
-{ return mode_adapter< Mode, std::basic_streambuf<Ch, Tr> >(wrap(sb)); }
-
-template<typename Mode, typename Ch, typename Tr>
-mode_adapter< Mode, std::basic_istream<Ch, Tr> > 
-resolve(std::basic_istream<Ch, Tr>& is)
-{ return mode_adapter< Mode, std::basic_istream<Ch, Tr> >(wrap(is)); }
-
-template<typename Mode, typename Ch, typename Tr>
-mode_adapter< Mode, std::basic_ostream<Ch, Tr> > 
-resolve(std::basic_ostream<Ch, Tr>& os)
-{ return mode_adapter< Mode, std::basic_ostream<Ch, Tr> >(wrap(os)); }
-
-template<typename Mode, typename Ch, typename Tr>
-mode_adapter< Mode, std::basic_iostream<Ch, Tr> > 
-resolve(std::basic_iostream<Ch, Tr>& io)
-{ return mode_adapter< Mode, std::basic_iostream<Ch, Tr> >(wrap(io)); }
-
-template<typename Mode, typename Ch, std::size_t N>
-array_adapter<Mode, Ch> resolve(Ch (&array)[N])
-{ return array_adapter<Mode, Ch>(array); }
-
-#  if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-    template<typename Mode, typename Ch, typename Iter>
-    range_adapter< Mode, ndnboost::iterator_range<Iter> > 
-    resolve(const ndnboost::iterator_range<Iter>& rng)
-    { return range_adapter< Mode, ndnboost::iterator_range<Iter> >(rng); }
-#  endif // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-
-# else // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //---------------------//
-
-template<typename Mode, typename Ch, typename T>
-typename resolve_traits<Mode, Ch, T>::type
-resolve( const T& t 
-         NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T)
-         #if defined(__GNUC__)
-         , typename disable_if< is_iterator_range<T> >::type* = 0
-         #endif
-         )
-{
-    typedef typename resolve_traits<Mode, Ch, T>::type return_type;
-    return return_type(t);
-}
-
-template<typename Mode, typename Ch>
-mode_adapter<Mode, std::streambuf> 
-resolve(std::streambuf& sb) 
-{ return mode_adapter<Mode, std::streambuf>(wrap(sb)); }
-
-template<typename Mode, typename Ch>
-mode_adapter<Mode, std::istream> 
-resolve(std::istream& is)
-{ return mode_adapter<Mode, std::istream>(wrap(is)); }
-
-template<typename Mode, typename Ch>
-mode_adapter<Mode, std::ostream> 
-resolve(std::ostream& os)
-{ return mode_adapter<Mode, std::ostream>(wrap(os)); }
-
-template<typename Mode, typename Ch>
-mode_adapter<Mode, std::iostream> 
-resolve(std::iostream& io)
-{ return mode_adapter<Mode, std::iostream>(wrap(io)); }
-
-template<typename Mode, typename Ch, std::size_t N>
-array_adapter<Mode, Ch> resolve(Ch (&array)[N])
-{ return array_adapter<Mode, Ch>(array); }
-
-template<typename Mode, typename Ch, typename Iter>
-range_adapter< Mode, ndnboost::iterator_range<Iter> > 
-resolve(const ndnboost::iterator_range<Iter>& rng)
-{ return range_adapter< Mode, ndnboost::iterator_range<Iter> >(rng); }
-
-# endif // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------//
-#else // #ifndef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //----------------//
-
-template<typename Mode, typename Ch, typename T>
-struct resolve_traits {
-    // Note: test for is_iterator_range must come before test for output
-    // iterator.
-    typedef typename 
-            iostreams::select<  // Disambiguation for Tru64.
-                is_std_io<T>,
-                mode_adapter<Mode, T>,
-                is_iterator_range<T>,
-                range_adapter<Mode, T>,
-                is_dereferenceable<T>,
-                output_iterator_adapter<Mode, Ch, T>,
-                is_array<T>,
-                array_adapter<Mode, T>,
-                else_,
-                #if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-                    const T&
-                #else
-                    T
-                #endif
-            >::type type;
-};
-
-template<typename Mode, typename Ch, typename T>
-typename resolve_traits<Mode, Ch, T>::type 
-resolve(const T& t, mpl::true_)
-{   // Bad overload resolution.
-    typedef typename resolve_traits<Mode, Ch, T>::type return_type;
-    return return_type(wrap(const_cast<T&>(t)));
-}
-
-template<typename Mode, typename Ch, typename T>
-typename resolve_traits<Mode, Ch, T>::type 
-resolve(const T& t, mpl::false_)
-{ 
-    typedef typename resolve_traits<Mode, Ch, T>::type return_type;
-    return return_type(t);
-}
-
-template<typename Mode, typename Ch, typename T>
-typename resolve_traits<Mode, Ch, T>::type 
-resolve(const T& t NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T))
-{ return resolve<Mode, Ch>(t, is_std_io<T>()); }
-
-# if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
-     !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) && \
-     !defined(__GNUC__) // ---------------------------------------------------//
-
-template<typename Mode, typename Ch, typename T>
-typename resolve_traits<Mode, Ch, T>::type 
-resolve(T& t, mpl::true_)
-{ 
-    typedef typename resolve_traits<Mode, Ch, T>::type return_type;
-    return return_type(wrap(t));
-}
-
-template<typename Mode, typename Ch, typename T>
-typename resolve_traits<Mode, Ch, T>::type 
-resolve(T& t, mpl::false_)
-{ 
-    typedef typename resolve_traits<Mode, Ch, T>::type return_type;
-    return return_type(t);
-}
-
-template<typename Mode, typename Ch, typename T>
-typename resolve_traits<Mode, Ch, T>::type 
-resolve(T& t NDNBOOST_IOSTREAMS_ENABLE_IF_STREAM(T))
-{ return resolve<Mode, Ch>(t, is_std_io<T>()); }
-
-# endif // Borland 5.x, VC6-7.0 or GCC 2.9x //--------------------------------//
-#endif // #ifndef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //---------------//
-
-} } } // End namespaces detail, iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp> // VC7.1 4224.
-
-#endif // NDNBOOST_IOSTREAMS_DETAIL_RESOLVE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/restrict_impl.hpp b/include/ndnboost/iostreams/detail/restrict_impl.hpp
deleted file mode 100644
index a33047a..0000000
--- a/include/ndnboost/iostreams/detail/restrict_impl.hpp
+++ /dev/null
@@ -1,482 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
-
- * File:        ndnboost/iostreams/detail/restrict_impl.hpp
- * Date:        Sun Jan 06 12:57:30 MST 2008
- * Copyright:   2007-2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * If included with the macro NDNBOOST_IOSTREAMS_RESTRICT undefined, defines the 
- * class template ndnboost::iostreams::restriction. If included with the macro
- * NDNBOOST_IOSTREAMS_RESTRICT defined as an identifier, defines the overloaded
- * function template ndnboost::iostreams::NDNBOOST_IOSTREAMS_RESTRICT, and object 
- * generator for ndnboost::iostreams::restriction.
- *
- * This design allows <ndnboost/iostreams/restrict.hpp> and 
- * <ndnboost/iostreams/slice.hpp> to share an implementation.
- */
-
-#if !defined(NDNBOOST_IOSTREAMS_RESTRICT_IMPL_HPP_INCLUDED) && \
-    !defined(NDNBOOST_IOSTREAMS_RESTRICT)
-# define NDNBOOST_IOSTREAMS_RESTRICT_IMPL_HPP_INCLUDED
-                    
-//------------------Implementation of restriction-----------------------------//
-
-# include <algorithm>          // min.
-# include <utility>            // pair.
-# include <ndnboost/cstdint.hpp>  // intmax_t.
-# include <ndnboost/config.hpp>   // DEDUCED_TYPENAME.
-# include <ndnboost/iostreams/categories.hpp>
-# include <ndnboost/iostreams/char_traits.hpp>
-# include <ndnboost/iostreams/detail/adapter/device_adapter.hpp>
-# include <ndnboost/iostreams/detail/adapter/filter_adapter.hpp>
-# include <ndnboost/iostreams/detail/call_traits.hpp>
-# include <ndnboost/iostreams/detail/enable_if_stream.hpp>
-# include <ndnboost/iostreams/detail/error.hpp>
-# include <ndnboost/iostreams/detail/ios.hpp>     // failure.
-# include <ndnboost/iostreams/detail/select.hpp>
-# include <ndnboost/iostreams/operations.hpp>
-# include <ndnboost/iostreams/skip.hpp>
-# include <ndnboost/iostreams/traits.hpp>         // mode_of, is_direct.
-# include <ndnboost/mpl/bool.hpp>
-# include <ndnboost/static_assert.hpp>
-# include <ndnboost/throw_exception.hpp>
-# include <ndnboost/type_traits/is_convertible.hpp>
-
-# include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-//
-// Template name: restricted_indirect_device.
-// Description: Provides an restricted view of an indirect Device.
-// Template parameters:
-//      Device - An indirect model of Device that models either Source or
-//          SeekableDevice.
-//
-template<typename Device>
-class restricted_indirect_device : public device_adapter<Device> {
-private:
-    typedef typename detail::param_type<Device>::type  param_type;
-public:
-    typedef typename char_type_of<Device>::type  char_type;
-    typedef typename mode_of<Device>::type       mode;
-    NDNBOOST_STATIC_ASSERT(!(is_convertible<mode, detail::two_sequence>::value));
-    struct category
-        : mode,
-          device_tag,
-          closable_tag,
-          flushable_tag,
-          localizable_tag,
-          optimally_buffered_tag
-        { };
-    restricted_indirect_device( param_type dev, stream_offset off,
-                                stream_offset len = -1 );
-    std::streamsize read(char_type* s, std::streamsize n);
-    std::streamsize write(const char_type* s, std::streamsize n);
-    std::streampos seek(stream_offset off, NDNBOOST_IOS::seekdir way);
-private:
-    stream_offset beg_, pos_, end_;
-};
-
-//
-// Template name: restricted_direct_device.
-// Description: Provides an restricted view of a Direct Device.
-// Template parameters:
-//      Device - A model of Direct and Device.
-//
-template<typename Device>
-class restricted_direct_device : public device_adapter<Device> {
-public:
-    typedef typename char_type_of<Device>::type  char_type;
-    typedef std::pair<char_type*, char_type*>    pair_type;
-    typedef typename mode_of<Device>::type       mode;
-    NDNBOOST_STATIC_ASSERT(!(is_convertible<mode, detail::two_sequence>::value));
-    struct category
-        : mode_of<Device>::type,
-          device_tag,
-          direct_tag,
-          closable_tag,
-          localizable_tag
-        { };
-    restricted_direct_device( const Device& dev, stream_offset off,
-                              stream_offset len = -1 );
-    pair_type input_sequence();
-    pair_type output_sequence();
-private:
-    pair_type sequence(mpl::true_);
-    pair_type sequence(mpl::false_);
-    char_type *beg_, *end_;
-};
-
-//
-// Template name: restricted_filter.
-// Description: Provides an restricted view of a Filter.
-// Template parameters:
-//      Filter - An indirect model of Filter.
-//
-template<typename Filter>
-class restricted_filter : public filter_adapter<Filter> {
-public:
-    typedef typename char_type_of<Filter>::type char_type;
-    typedef typename mode_of<Filter>::type      mode;
-    NDNBOOST_STATIC_ASSERT(!(is_convertible<mode, detail::two_sequence>::value));
-    struct category
-        : mode,
-          filter_tag,
-          multichar_tag,
-          closable_tag,
-          localizable_tag,
-          optimally_buffered_tag
-        { };
-    restricted_filter( const Filter& flt, stream_offset off, 
-                       stream_offset len = -1 );
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    {
-        using namespace std;
-        if (!open_)
-            open(src, NDNBOOST_IOS::in);
-        std::streamsize amt =
-            end_ != -1 ?
-                (std::min) (n, static_cast<std::streamsize>(end_ - pos_)) :
-                n;
-        std::streamsize result = 
-            iostreams::read(this->component(), src, s, amt);
-        if (result != -1)
-            pos_ += result;
-        return result;
-    }
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    {
-        if (!open_)
-            open(snk, NDNBOOST_IOS::out);
-        if (end_ != -1 && pos_ + n >= end_) {
-            if(pos_ < end_)
-                pos_ += iostreams::write(this->component(),
-                    snk, s, end_ - pos_);
-            ndnboost::throw_exception(bad_write());
-        }
-        std::streamsize result = 
-            iostreams::write(this->component(), snk, s, n);
-        pos_ += result;
-        return result;
-    }
-
-    template<typename Device>
-    std::streampos seek(Device& dev, stream_offset off, NDNBOOST_IOS::seekdir way)
-    {
-        stream_offset next;
-        if (way == NDNBOOST_IOS::beg) {
-            next = beg_ + off;
-        } else if (way == NDNBOOST_IOS::cur) {
-            next = pos_ + off;
-        } else if (end_ != -1) {
-            next = end_ + off;
-        } else {
-            // Restriction is half-open; seek relative to the actual end.
-            pos_ = this->component().seek(dev, off, NDNBOOST_IOS::end);
-            if (pos_ < beg_)
-                ndnboost::throw_exception(bad_seek());
-            return offset_to_position(pos_ - beg_);
-        }
-        if (next < beg_ || (end_ != -1 && next >= end_))
-            ndnboost::throw_exception(bad_seek());
-        pos_ = this->component().seek(dev, next, NDNBOOST_IOS::cur);
-        return offset_to_position(pos_ - beg_);
-    }
-
-    template<typename Device>
-    void close(Device& dev) 
-    { 
-        open_ = false;
-        detail::close_all(this->component(), dev); 
-    }
-
-    template<typename Device>
-    void close(Device& dev, NDNBOOST_IOS::openmode which) 
-    { 
-        open_ = false;
-        iostreams::close(this->component(), dev, which); 
-    }
-private:
-    template<typename Device>
-    void open(Device& dev, NDNBOOST_IOS::openmode which)
-    {
-        typedef typename is_convertible<mode, dual_use>::type is_dual_use;
-        open_ = true;
-        which = is_dual_use() ? which : (NDNBOOST_IOS::in | NDNBOOST_IOS::out);
-        iostreams::skip(this->component(), dev, beg_, which);
-    }
-
-    stream_offset  beg_, pos_, end_;
-    bool           open_;
-};
-
-template<typename T>
-struct restriction_traits
-    : iostreams::select<  // Disambiguation for Tru64.
-          is_filter<T>,  restricted_filter<T>,
-          is_direct<T>,  restricted_direct_device<T>,
-          else_,         restricted_indirect_device<T>
-      >
-    { };
-
-} // End namespace detail.
-
-template<typename T>
-struct restriction : public detail::restriction_traits<T>::type {
-    typedef typename detail::param_type<T>::type          param_type;
-    typedef typename detail::restriction_traits<T>::type  base_type;
-    restriction(param_type t, stream_offset off, stream_offset len = -1)
-        : base_type(t, off, len)
-        { }
-};
-
-namespace detail {
-
-//--------------Implementation of restricted_indirect_device------------------//
-
-template<typename Device>
-restricted_indirect_device<Device>::restricted_indirect_device
-    (param_type dev, stream_offset off, stream_offset len)
-    : device_adapter<Device>(dev), beg_(off), pos_(off), 
-      end_(len != -1 ? off + len : -1)
-{
-    if (len < -1 || off < 0)
-        ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("bad offset"));
-    iostreams::skip(this->component(), off);
-}
-
-template<typename Device>
-inline std::streamsize restricted_indirect_device<Device>::read
-    (char_type* s, std::streamsize n)
-{
-    using namespace std;
-    std::streamsize amt =
-        end_ != -1 ?
-            (std::min) (n, static_cast<std::streamsize>(end_ - pos_)) :
-            n;
-    std::streamsize result = iostreams::read(this->component(), s, amt);
-    if (result != -1)
-        pos_ += result;
-    return result;
-}
-
-template<typename Device>
-inline std::streamsize restricted_indirect_device<Device>::write
-    (const char_type* s, std::streamsize n)
-{
-    if (end_ != -1 && pos_ + n >= end_) {
-        if(pos_ < end_)
-            pos_ += iostreams::write(this->component(), s, end_ - pos_);
-        ndnboost::throw_exception(bad_write());
-    }
-    std::streamsize result = iostreams::write(this->component(), s, n);
-    pos_ += result;
-    return result;
-}
-
-template<typename Device>
-std::streampos restricted_indirect_device<Device>::seek
-    (stream_offset off, NDNBOOST_IOS::seekdir way)
-{
-    stream_offset next;
-    if (way == NDNBOOST_IOS::beg) {
-        next = beg_ + off;
-    } else if (way == NDNBOOST_IOS::cur) {
-        next = pos_ + off;
-    } else if (end_ != -1) {
-        next = end_ + off;
-    } else {
-        // Restriction is half-open; seek relative to the actual end.
-        pos_ = iostreams::seek(this->component(), off, NDNBOOST_IOS::end);
-        if (pos_ < beg_)
-            ndnboost::throw_exception(bad_seek());
-        return offset_to_position(pos_ - beg_);
-    }
-    if (next < beg_ || (end_ != -1 && next > end_))
-        ndnboost::throw_exception(bad_seek());
-    pos_ = iostreams::seek(this->component(), next - pos_, NDNBOOST_IOS::cur);
-    return offset_to_position(pos_ - beg_);
-}
-
-//--------------Implementation of restricted_direct_device--------------------//
-
-template<typename Device>
-restricted_direct_device<Device>::restricted_direct_device
-    (const Device& dev, stream_offset off, stream_offset len)
-    : device_adapter<Device>(dev), beg_(0), end_(0)
-{
-    std::pair<char_type*, char_type*> seq =
-        sequence(is_convertible<category, input>());
-    if ( off < 0 || len < -1 || 
-         (len != -1 && off + len > seq.second - seq.first) )
-    {
-        ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("bad offset"));
-    }
-    beg_ = seq.first + off;
-    end_ = len != -1 ? 
-        seq.first + off + len :
-        seq.second;
-}
-
-template<typename Device>
-typename restricted_direct_device<Device>::pair_type
-restricted_direct_device<Device>::input_sequence()
-{
-    NDNBOOST_STATIC_ASSERT((is_convertible<category, input>::value));
-    return std::make_pair(beg_, end_);
-}
-
-template<typename Device>
-typename restricted_direct_device<Device>::pair_type
-restricted_direct_device<Device>::output_sequence()
-{
-    NDNBOOST_STATIC_ASSERT((is_convertible<category, output>::value));
-    return std::make_pair(beg_, end_);
-}
-
-template<typename Device>
-typename restricted_direct_device<Device>::pair_type
-restricted_direct_device<Device>::sequence(mpl::true_)
-{ return iostreams::input_sequence(this->component()); }
-
-template<typename Device>
-typename restricted_direct_device<Device>::pair_type
-restricted_direct_device<Device>::sequence(mpl::false_)
-{ return iostreams::output_sequence(this->component()); }
-
-//--------------Implementation of restricted_filter---------------------------//
-
-template<typename Filter>
-restricted_filter<Filter>::restricted_filter
-    (const Filter& flt, stream_offset off, stream_offset len)
-    : filter_adapter<Filter>(flt), beg_(off),
-      pos_(off), end_(len != -1 ? off + len : -1), open_(false)
-{
-    if (len < -1 || off < 0)
-        ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("bad offset"));
-}
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#elif defined(NDNBOOST_IOSTREAMS_RESTRICT)
-
-namespace ndnboost { namespace iostreams {
-
-//--------------Implementation of restrict/slice------------------------------//
-
-// Note: The following workarounds are patterned after resolve.hpp. It has not
-// yet been confirmed that they are necessary.
-
-# ifndef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //------------------------//
-#  ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //------------------------------//
-
-template<typename T>
-restriction<T> 
-NDNBOOST_IOSTREAMS_RESTRICT( const T& t, stream_offset off, stream_offset len = -1
-                          NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T) )
-{ return restriction<T>(t, off, len); }
-
-template<typename Ch, typename Tr>
-restriction< std::basic_streambuf<Ch, Tr> >
-NDNBOOST_IOSTREAMS_RESTRICT( std::basic_streambuf<Ch, Tr>& sb, stream_offset off, 
-                          stream_offset len = -1 )
-{ return restriction< std::basic_streambuf<Ch, Tr> >(sb, off, len); }
-
-template<typename Ch, typename Tr>
-restriction< std::basic_istream<Ch, Tr> >
-NDNBOOST_IOSTREAMS_RESTRICT
-    (std::basic_istream<Ch, Tr>& is, stream_offset off, stream_offset len = -1)
-{ return restriction< std::basic_istream<Ch, Tr> >(is, off, len); }
-
-template<typename Ch, typename Tr>
-restriction< std::basic_ostream<Ch, Tr> >
-NDNBOOST_IOSTREAMS_RESTRICT
-    (std::basic_ostream<Ch, Tr>& os, stream_offset off, stream_offset len = -1)
-{ return restriction< std::basic_ostream<Ch, Tr> >(os, off, len); }
-
-template<typename Ch, typename Tr>
-restriction< std::basic_iostream<Ch, Tr> >
-NDNBOOST_IOSTREAMS_RESTRICT
-    (std::basic_iostream<Ch, Tr>& io, stream_offset off, stream_offset len = -1)
-{ return restriction< std::basic_iostream<Ch, Tr> >(io, off, len); }
-
-#  else // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------//
-
-template<typename T>
-restriction<T> 
-NDNBOOST_IOSTREAMS_RESTRICT( const T& t, stream_offset off, stream_offset len = -1
-                          NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T) )
-{ return restriction<T>(t, off, len); }
-
-restriction<std::streambuf> 
-NDNBOOST_IOSTREAMS_RESTRICT
-    (std::streambuf& sb, stream_offset off, stream_offset len = -1)
-{ return restriction<std::streambuf>(sb, off, len); }
-
-restriction<std::istream> 
-NDNBOOST_IOSTREAMS_RESTRICT
-    (std::istream<Ch, Tr>& is, stream_offset off, stream_offset len = -1)
-{ return restriction<std::istream>(is, off, len); }
-
-restriction<std::ostream> 
-NDNBOOST_IOSTREAMS_RESTRICT
-    (std::ostream<Ch, Tr>& os, stream_offset off, stream_offset len = -1)
-{ return restriction<std::ostream>(os, off, len); }
-
-restriction<std::iostream> 
-NDNBOOST_IOSTREAMS_RESTRICT
-    (std::iostream<Ch, Tr>& io, stream_offset off, stream_offset len = -1)
-{ return restriction<std::iostream>(io, off, len); }
-
-#  endif // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-------------------//
-# else // #ifndef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //---------------//
-
-template<typename T>
-restriction<T> 
-NDNBOOST_IOSTREAMS_RESTRICT
-    (const T& t, stream_offset off, stream_offset len, mpl::true_)
-{   // Bad overload resolution.
-    return restriction<T>(const_cast<T&>(t, off, len));
-}
-
-template<typename T>
-restriction<T> 
-NDNBOOST_IOSTREAMS_RESTRICT
-    (const T& t, stream_offset off, stream_offset len, mpl::false_)
-{ return restriction<T>(t, off, len); }
-
-template<typename T>
-restriction<T> 
-NDNBOOST_IOSTREAMS_RESTRICT( const T& t, stream_offset off, stream_offset len = -1
-                          NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T) )
-{ return NDNBOOST_IOSTREAMS_RESTRICT(t, off, len, is_std_io<T>()); }
-
-# if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
-     !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) && \
-     !defined(__GNUC__) // ---------------------------------------------------//
-
-template<typename T>
-restriction<T>
-NDNBOOST_IOSTREAMS_RESTRICT(T& t, stream_offset off, stream_offset len = -1)
-{ return restriction<T>(t, off, len); }
-
-#  endif // Borland 5.x, VC6-7.0 or GCC 2.9x //-------------------------------//
-# endif // #ifndef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION //--------------//
-
-} } // End namespaces iostreams, boost.
-
-#endif // #if !defined(NDNBOOST_IOSTREAMS_RESTRICT_IMPL_HPP_INCLUDED) ...
diff --git a/include/ndnboost/iostreams/detail/select.hpp b/include/ndnboost/iostreams/detail/select.hpp
deleted file mode 100644
index c0753f6..0000000
--- a/include/ndnboost/iostreams/detail/select.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains the metafunction select, which mimics the effect of a chain of
-// nested mpl if_'s.
-//
-// -----------------------------------------------------------------------------
-//
-// Usage:
-//      
-// typedef typename select<
-//                      case1,  type1,
-//                      case2,  type2,
-//                      ...
-//                      true_,  typen
-//                  >::type selection;
-//
-// Here case1, case2, ... are models of MPL::IntegralConstant with value type
-// bool, and n <= 12.
-
-#ifndef NDNBOOST_IOSTREAMS_SELECT_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_SELECT_HPP_INCLUDED   
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif                  
- 
-#include <ndnboost/type_traits/is_base_and_derived.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/void.hpp>
-
-namespace ndnboost { namespace iostreams { 
-
-typedef mpl::true_ else_;
-
-template< typename Case1 = mpl::true_,
-          typename Type1 = mpl::void_,
-          typename Case2 = mpl::true_,
-          typename Type2 = mpl::void_,
-          typename Case3 = mpl::true_,
-          typename Type3 = mpl::void_,
-          typename Case4 = mpl::true_,
-          typename Type4 = mpl::void_,
-          typename Case5 = mpl::true_,
-          typename Type5 = mpl::void_,
-          typename Case6 = mpl::true_,
-          typename Type6 = mpl::void_,
-          typename Case7 = mpl::true_,
-          typename Type7 = mpl::void_,
-          typename Case8 = mpl::true_,
-          typename Type8 = mpl::void_,
-          typename Case9 = mpl::true_,
-          typename Type9 = mpl::void_,
-          typename Case10 = mpl::true_,
-          typename Type10 = mpl::void_,
-          typename Case11 = mpl::true_,
-          typename Type11 = mpl::void_,
-          typename Case12 = mpl::true_,
-          typename Type12 = mpl::void_ >
-struct select {
-    typedef typename
-            mpl::eval_if<
-                Case1, mpl::identity<Type1>, mpl::eval_if<
-                Case2, mpl::identity<Type2>, mpl::eval_if<
-                Case3, mpl::identity<Type3>, mpl::eval_if<
-                Case4, mpl::identity<Type4>, mpl::eval_if<
-                Case5, mpl::identity<Type5>, mpl::eval_if<
-                Case6, mpl::identity<Type6>, mpl::eval_if<
-                Case7, mpl::identity<Type7>, mpl::eval_if<
-                Case8, mpl::identity<Type8>, mpl::eval_if<
-                Case9, mpl::identity<Type9>, mpl::eval_if<
-                Case10, mpl::identity<Type10>, mpl::eval_if<
-                Case11, mpl::identity<Type11>, mpl::if_<
-                Case12, Type12, mpl::void_ > > > > > > > > > > >
-            >::type type;
-};
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_SELECT_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/select_by_size.hpp b/include/ndnboost/iostreams/detail/select_by_size.hpp
deleted file mode 100644
index 8a02771..0000000
--- a/include/ndnboost/iostreams/detail/select_by_size.hpp
+++ /dev/null
@@ -1,161 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2004-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-//
-// Intended as an alternative to type_traits::yes_type and type_traits::no_type.
-// Provides an arbitrary number of types (case_<0>, case_<1>, ...) for
-// determining the results of overload resultion using 'sizeof', plus a uniform
-// means of using the result. yes_type and no_type are typedefs for case_<1>
-// and case_<0>. A single case with negative argument, case_<-1>, is also 
-// provided, for convenience.
-//
-// This header may be included any number of times, with
-// NDNBOOST_SELECT_BY_SIZE_MAX_CASE defined to be the largest N such that case_<N>
-// is needed for a particular application. It defaults to 20.
-//
-// This header depends only on Boost.Config and Boost.Preprocessor. Dependence
-// on Type Traits or MPL was intentionally avoided, to leave open the 
-// possibility that select_by_size could be used by these libraries.
-//
-// Example usage:
-//
-//    #define NDNBOOST_SELECT_BY_SIZE_MAX_CASE 7   // (Needed when default was 2)
-//    #include <ndnboost/utility/select_by_size.hpp>
-//
-//    using namespace ndnboost::utility;
-//
-//    case_<0> helper(bool);
-//    case_<1> helper(int);
-//    case_<2> helper(unsigned);
-//    case_<3> helper(long);
-//    case_<4> helper(unsigned long);
-//    case_<5> helper(float);
-//    case_<6> helper(double);
-//    case_<7> helper(const char*);
-//
-//    struct test {
-//        static const int value =
-//            select_by_size< sizeof(helper(9876UL)) >::value;
-//        NDNBOOST_STATIC_ASSERT(value == 4);
-//    };
-//
-// For compilers with integral constant expression problems, e.g. Borland 5.x,
-// one can also write
-//
-//    struct test {
-//        NDNBOOST_SELECT_BY_SIZE(int, value, helper(9876UL));
-//    };
-//
-// to define a static integral constant 'value' equal to
-//
-//    select_by_size< sizeof(helper(9876UL)) >::value.
-//
-
-// Include guards surround all contents of this header except for explicit
-// specializations of select_by_size for case_<N> with N > 2.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_SELECT_BY_SIZE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_SELECT_BY_SIZE_HPP_INCLUDED
-
-// The lowest N for which select_by_size< sizeof(case_<N>) > has not been
-// specialized.
-#define SELECT_BY_SIZE_MAX_SPECIALIZED 20
-
-#include <ndnboost/config.hpp>    // NDNBOOST_STATIC_CONSTANT.
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/iteration/local.hpp>
-
-/* Alternative implementation using max_align. 
-
-#include <ndnboost/type_traits/alignment_of.hpp>
-#include <ndnboost/type_traits/type_with_alignment.hpp>
-
-namespace ndnboost { namespace utility {
-
-template<int N>
-struct case_ { char c[(N + 1) * alignment_of<detail::max_align>::value]; };
-
-template<unsigned Size>
-struct select_by_size {
-    NDNBOOST_STATIC_CONSTANT(int, value = 
-        (Size / alignment_of<detail::max_align>::value - 1));
-};
-
-} } // End namespaces utility, boost.
-
-*/              // End alternate implementation.
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-//--------------Definition of case_-------------------------------------------//
-
-template<int N> struct case_ { char c1; case_<N - 1> c2; };
-template<> struct case_<-1> { char c; };
-typedef case_<true> yes_type;
-typedef case_<false> no_type;
-
-//--------------Declaration of select_by_size---------------------------------//
-
-template<unsigned Size> struct select_by_size;
-
-} } } // End namespaces detail, iostreams, boost.
-
-//--------------Definition of SELECT_BY_SIZE_SPEC-----------------------------//
-
-// Sepecializes select_by_size for sizeof(case<n-1>). The decrement is used
-// here because the preprocessor library doesn't handle negative integers.
-#define SELECT_BY_SIZE_SPEC(n) \
-    namespace ndnboost { namespace iostreams { namespace detail { \
-      static const int NDNBOOST_PP_CAT(sizeof_case_, n) = sizeof(case_<n - 1>); \
-      template<> \
-      struct select_by_size< NDNBOOST_PP_CAT(sizeof_case_, n) > { \
-          struct type { NDNBOOST_STATIC_CONSTANT(int, value = n - 1); }; \
-          NDNBOOST_STATIC_CONSTANT(int, value = type::value); \
-      }; \
-    } } } \
-    /**/
-
-//--------------Default specializations of select_by_size---------------------//
-
-#define NDNBOOST_PP_LOCAL_MACRO(n) SELECT_BY_SIZE_SPEC(n)
-#define NDNBOOST_PP_LOCAL_LIMITS (0, 20)
-#include NDNBOOST_PP_LOCAL_ITERATE()
-#undef NDNBOOST_PP_LOCAL_MACRO
-
-//--------------Definition of SELECT_BY_SIZE----------------------------------//
-
-#define NDNBOOST_SELECT_BY_SIZE(type_, name, expr) \
-    NDNBOOST_STATIC_CONSTANT( \
-        unsigned, \
-        NDNBOOST_PP_CAT(boost_select_by_size_temp_, name) = sizeof(expr) \
-    ); \
-    NDNBOOST_STATIC_CONSTANT( \
-        type_, \
-        name = \
-            ( ::ndnboost::iostreams::detail::select_by_size< \
-                NDNBOOST_PP_CAT(boost_select_by_size_temp_, name) \
-              >::value ) \
-    ) \
-    /**/
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_SELECT_BY_SIZE_HPP_INCLUDED
-
-//----------Specializations of SELECT_BY_SIZE (outside main inclued guards)---//
-
-#if defined(NDNBOOST_SELECT_BY_SIZE_MAX_CASE) && \
-    NDNBOOST_SELECT_BY_SIZE_MAX_CASE > SELECT_BY_SIZE_MAX_SPECIALIZED
-
-#define NDNBOOST_PP_LOCAL_MACRO(n) SELECT_BY_SIZE_SPEC(n)
-#define NDNBOOST_PP_LOCAL_LIMITS \
-    (SELECT_BY_SIZE_MAX_SPECIALIZED, NDNBOOST_SELECT_BY_SIZE_MAX_CASE) \
-    /**/
-#include NDNBOOST_PP_LOCAL_ITERATE()
-#undef NDNBOOST_PP_LOCAL_MACRO
-#undef SELECT_BY_SIZE_MAX_SPECIALIZED
-#define SELECT_BY_SIZE_MAX_SPECIALIZED NDNBOOST_SELECT_BY_SIZE_MAX_CASE
-
-#endif
diff --git a/include/ndnboost/iostreams/detail/streambuf.hpp b/include/ndnboost/iostreams/detail/streambuf.hpp
deleted file mode 100644
index d499332..0000000
--- a/include/ndnboost/iostreams/detail/streambuf.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_STREAMBUF_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_STREAMBUF_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-                 
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# include <streambuf>
-#else 
-# include <streambuf.h>
-#endif 
-
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-# define NDNBOOST_IOSTREAMS_BASIC_STREAMBUF(ch, tr) std::basic_streambuf< ch, tr >
-# define NDNBOOST_IOSTREAMS_PUBSYNC pubsync
-# define NDNBOOST_IOSTREAMS_PUBSEEKOFF pubseekoff
-# define NDNBOOST_IOSTREAMS_PUBSEEKPOS pubseekpos
-#else
-# define NDNBOOST_IOSTREAMS_BASIC_STREAMBUF(ch, tr) std::streambuf
-# define NDNBOOST_IOSTREAMS_PUBSYNC sync
-# define NDNBOOST_IOSTREAMS_PUBSEEKOFF seekoff
-# define NDNBOOST_IOSTREAMS_PUBSEEKPOS seekpos
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_STREAMBUF_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/streambuf/chainbuf.hpp b/include/ndnboost/iostreams/detail/streambuf/chainbuf.hpp
deleted file mode 100644
index 157b855..0000000
--- a/include/ndnboost/iostreams/detail/streambuf/chainbuf.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_CHAINBUF_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_CHAINBUF_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif      
-
-#include <ndnboost/config.hpp>                    // NDNBOOST_MSVC, template friends.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/chain.hpp>
-#include <ndnboost/iostreams/detail/access_control.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/streambuf.hpp>
-#include <ndnboost/iostreams/detail/streambuf/linked_streambuf.hpp>
-#include <ndnboost/iostreams/detail/translate_int_type.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/noncopyable.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-//--------------Definition of chainbuf----------------------------------------//
-
-//
-// Template name: chainbuf.
-// Description: Stream buffer which operates by delegating to the first
-//      linked_streambuf in a chain.
-// Template parameters:
-//      Chain - The chain type.
-//
-template<typename Chain, typename Mode, typename Access>
-class chainbuf
-    : public NDNBOOST_IOSTREAMS_BASIC_STREAMBUF(
-                 typename Chain::char_type,
-                 typename Chain::traits_type
-             ),
-      public access_control<typename Chain::client_type, Access>,
-      private noncopyable
-{
-private:
-    typedef access_control<chain_client<Chain>, Access>      client_type;
-public:
-    typedef typename Chain::char_type                        char_type;
-    NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(typename Chain::traits_type)
-protected:
-    typedef linked_streambuf<char_type, traits_type>         delegate_type;
-    chainbuf() { client_type::set_chain(&chain_); }
-    int_type underflow() 
-        { sentry t(this); return translate(delegate().underflow()); }
-    int_type pbackfail(int_type c)
-        { sentry t(this); return translate(delegate().pbackfail(c)); }
-    std::streamsize xsgetn(char_type* s, std::streamsize n)
-        { sentry t(this); return delegate().xsgetn(s, n); }
-    int_type overflow(int_type c)
-        { sentry t(this); return translate(delegate().overflow(c)); }
-    std::streamsize xsputn(const char_type* s, std::streamsize n)
-        { sentry t(this); return delegate().xsputn(s, n); }
-    int sync() { sentry t(this); return delegate().sync(); }
-    pos_type seekoff( off_type off, NDNBOOST_IOS::seekdir way,
-                      NDNBOOST_IOS::openmode which =
-                          NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-        { sentry t(this); return delegate().seekoff(off, way, which); }
-    pos_type seekpos( pos_type sp,
-                      NDNBOOST_IOS::openmode which =
-                          NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-        { sentry t(this); return delegate().seekpos(sp, which); }
-protected:
-    typedef NDNBOOST_IOSTREAMS_BASIC_STREAMBUF(
-                 typename Chain::char_type,
-                 typename Chain::traits_type
-             )                                               base_type;
-//#if !NDNBOOST_WORKAROUND(__GNUC__, == 2)                                 
-//    NDNBOOST_IOSTREAMS_USING_PROTECTED_STREAMBUF_MEMBERS(base_type)
-//#endif
-private:
-
-    // Translate from std int_type to chain's int_type.
-    typedef NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)           std_traits;
-    typedef typename Chain::traits_type                      chain_traits;
-    static typename chain_traits::int_type 
-    translate(typename std_traits::int_type c)
-        { return translate_int_type<std_traits, chain_traits>(c); }
-
-    delegate_type& delegate() 
-        { return static_cast<delegate_type&>(chain_.front()); }
-    void get_pointers()
-        {
-            this->setg(delegate().eback(), delegate().gptr(), delegate().egptr());
-            this->setp(delegate().pbase(), delegate().epptr());
-            this->pbump((int) (delegate().pptr() - delegate().pbase()));
-        }
-    void set_pointers()
-        {
-            delegate().setg(this->eback(), this->gptr(), this->egptr());
-            delegate().setp(this->pbase(), this->epptr());
-            delegate().pbump((int) (this->pptr() - this->pbase()));
-        }
-    struct sentry {
-        sentry(chainbuf<Chain, Mode, Access>* buf) : buf_(buf)
-            { buf_->set_pointers(); }
-        ~sentry() { buf_->get_pointers(); }
-        chainbuf<Chain, Mode, Access>* buf_;
-    };
-    friend struct sentry;
-    Chain chain_;
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_CHAINBUF_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/streambuf/direct_streambuf.hpp b/include/ndnboost/iostreams/detail/streambuf/direct_streambuf.hpp
deleted file mode 100644
index ec79604..0000000
--- a/include/ndnboost/iostreams/detail/streambuf/direct_streambuf.hpp
+++ /dev/null
@@ -1,313 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_DIRECT_STREAMBUF_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_DIRECT_STREAMBUF_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/assert.hpp>
-#include <cstddef>
-#include <typeinfo>
-#include <utility>                                 // pair.
-#include <ndnboost/config.hpp>                        // NDNBOOST_DEDUCED_TYPENAME, 
-#include <ndnboost/iostreams/detail/char_traits.hpp>  // member template friends.
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/error.hpp>
-#include <ndnboost/iostreams/detail/execute.hpp>
-#include <ndnboost/iostreams/detail/functional.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>
-#include <ndnboost/iostreams/detail/optional.hpp>
-#include <ndnboost/iostreams/detail/streambuf.hpp>
-#include <ndnboost/iostreams/detail/streambuf/linked_streambuf.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/iostreams/positioning.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/throw_exception.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp> // MSVC.
-
-namespace ndnboost { namespace iostreams { 
-    
-namespace detail {
-
-template< typename T,
-          typename Tr = 
-              NDNBOOST_IOSTREAMS_CHAR_TRAITS(
-                 NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type 
-              ) >
-class direct_streambuf 
-    : public linked_streambuf<NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type, Tr>
-{
-public:
-    typedef typename char_type_of<T>::type                char_type;
-    NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
-private:
-    typedef linked_streambuf<char_type, traits_type>      base_type;
-    typedef typename category_of<T>::type                 category;
-    typedef NDNBOOST_IOSTREAMS_BASIC_STREAMBUF(
-                char_type, traits_type
-            )                                             streambuf_type;
-public: // stream needs access.
-    void open(const T& t, std::streamsize buffer_size, 
-              std::streamsize pback_size);
-    bool is_open() const;
-    void close();
-    bool auto_close() const { return auto_close_; }
-    void set_auto_close(bool close) { auto_close_ = close; }
-    bool strict_sync() { return true; }
-
-    // Declared in linked_streambuf.
-    T* component() { return storage_.get(); }
-protected:
-#if !NDNBOOST_WORKAROUND(__GNUC__, == 2)
-    NDNBOOST_IOSTREAMS_USING_PROTECTED_STREAMBUF_MEMBERS(base_type)
-#endif
-    direct_streambuf();
-
-    //--------------Virtual functions-----------------------------------------//
-
-    // Declared in linked_streambuf.
-    void close_impl(NDNBOOST_IOS::openmode m);
-    const std::type_info& component_type() const { return typeid(T); }
-    void* component_impl() { return component(); } 
-#ifdef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-    public:
-#endif
-
-    // Declared in basic_streambuf.
-    int_type underflow();
-    int_type pbackfail(int_type c);
-    int_type overflow(int_type c);
-    pos_type seekoff( off_type off, NDNBOOST_IOS::seekdir way,
-                      NDNBOOST_IOS::openmode which );
-    pos_type seekpos(pos_type sp, NDNBOOST_IOS::openmode which);
-private:
-    pos_type seek_impl( stream_offset off, NDNBOOST_IOS::seekdir way,
-                        NDNBOOST_IOS::openmode which );
-    void init_input(any_tag) { }
-    void init_input(input);
-    void init_output(any_tag) { }
-    void init_output(output);
-    void init_get_area();
-    void init_put_area();
-    bool one_head() const;
-    bool two_head() const;
-    optional<T>  storage_;
-    char_type   *ibeg_, *iend_, *obeg_, *oend_;
-    bool         auto_close_;
-};
-                    
-//------------------Implementation of direct_streambuf------------------------//
-
-template<typename T, typename Tr>
-direct_streambuf<T, Tr>::direct_streambuf() 
-    : ibeg_(0), iend_(0), obeg_(0), oend_(0), auto_close_(true) 
-{ this->set_true_eof(true); }
-
-template<typename T, typename Tr>
-void direct_streambuf<T, Tr>::open
-    (const T& t, std::streamsize, std::streamsize)
-{
-    storage_.reset(t);
-    init_input(category());
-    init_output(category());
-    setg(0, 0, 0);
-    setp(0, 0);
-    this->set_needs_close();
-}
-
-template<typename T, typename Tr>
-bool direct_streambuf<T, Tr>::is_open() const 
-{ return ibeg_ != 0 || obeg_ != 0; }
-
-template<typename T, typename Tr>
-void direct_streambuf<T, Tr>::close() 
-{ 
-    base_type* self = this;
-    detail::execute_all( detail::call_member_close(*self, NDNBOOST_IOS::in),
-                         detail::call_member_close(*self, NDNBOOST_IOS::out),
-                         detail::call_reset(storage_) );
-}
-
-template<typename T, typename Tr>
-typename direct_streambuf<T, Tr>::int_type 
-direct_streambuf<T, Tr>::underflow()
-{
-    if (!ibeg_) 
-        ndnboost::throw_exception(cant_read());
-    if (!gptr()) 
-        init_get_area();
-    return gptr() != iend_ ? 
-        traits_type::to_int_type(*gptr()) : 
-        traits_type::eof();
-}
-
-template<typename T, typename Tr>
-typename direct_streambuf<T, Tr>::int_type 
-direct_streambuf<T, Tr>::pbackfail(int_type c)
-{
-    using namespace std;
-    if (!ibeg_) 
-        ndnboost::throw_exception(cant_read());
-    if (gptr() != 0 && gptr() != ibeg_) {
-        gbump(-1);
-        if (!traits_type::eq_int_type(c, traits_type::eof()))
-            *gptr() = traits_type::to_char_type(c);
-        return traits_type::not_eof(c);
-    }
-    ndnboost::throw_exception(bad_putback());
-}
-
-template<typename T, typename Tr>
-typename direct_streambuf<T, Tr>::int_type 
-direct_streambuf<T, Tr>::overflow(int_type c)
-{
-    using namespace std;
-    if (!obeg_)
-        ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("no write access"));
-    if (!pptr()) init_put_area();
-    if (!traits_type::eq_int_type(c, traits_type::eof())) {
-        if (pptr() == oend_)
-            ndnboost::throw_exception(
-                NDNBOOST_IOSTREAMS_FAILURE("write area exhausted")
-            );
-        *pptr() = traits_type::to_char_type(c);
-        pbump(1);
-        return c;
-    }
-    return traits_type::not_eof(c);
-}
-
-template<typename T, typename Tr>
-inline typename direct_streambuf<T, Tr>::pos_type
-direct_streambuf<T, Tr>::seekoff
-    (off_type off, NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which)
-{ return seek_impl(off, way, which); }
-
-template<typename T, typename Tr>
-inline typename direct_streambuf<T, Tr>::pos_type
-direct_streambuf<T, Tr>::seekpos
-    (pos_type sp, NDNBOOST_IOS::openmode which)
-{ 
-    return seek_impl(position_to_offset(sp), NDNBOOST_IOS::beg, which);
-}
-
-template<typename T, typename Tr>
-void direct_streambuf<T, Tr>::close_impl(NDNBOOST_IOS::openmode which)
-{
-    if (which == NDNBOOST_IOS::in && ibeg_ != 0) {
-        setg(0, 0, 0);
-        ibeg_ = iend_ = 0;
-    }
-    if (which == NDNBOOST_IOS::out && obeg_ != 0) {
-        sync();
-        setp(0, 0);
-        obeg_ = oend_ = 0;
-    }
-    ndnboost::iostreams::close(*storage_, which);
-}
-
-template<typename T, typename Tr>
-typename direct_streambuf<T, Tr>::pos_type direct_streambuf<T, Tr>::seek_impl
-    (stream_offset off, NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which)
-{
-    using namespace std;
-    NDNBOOST_IOS::openmode both = NDNBOOST_IOS::in | NDNBOOST_IOS::out;
-    if (two_head() && (which & both) == both)
-        ndnboost::throw_exception(bad_seek());
-    stream_offset result = -1;
-    bool one = one_head();
-    if (one && (pptr() != 0 || gptr()== 0))
-        init_get_area(); // Switch to input mode, for code reuse.
-    if (one || ((which & NDNBOOST_IOS::in) != 0 && ibeg_ != 0)) {
-        if (!gptr()) setg(ibeg_, ibeg_, iend_);
-        ptrdiff_t next = 0;
-        switch (way) {
-        case NDNBOOST_IOS::beg: next = off; break;
-        case NDNBOOST_IOS::cur: next = (gptr() - ibeg_) + off; break;
-        case NDNBOOST_IOS::end: next = (iend_ - ibeg_) + off; break;
-        default: NDNBOOST_ASSERT(0);
-        }
-        if (next < 0 || next > (iend_ - ibeg_))
-            ndnboost::throw_exception(bad_seek());
-        setg(ibeg_, ibeg_ + next, iend_);
-        result = next;
-    }
-    if (!one && (which & NDNBOOST_IOS::out) != 0 && obeg_ != 0) {
-        if (!pptr()) setp(obeg_, oend_);
-        ptrdiff_t next = 0;
-        switch (way) {
-        case NDNBOOST_IOS::beg: next = off; break;
-        case NDNBOOST_IOS::cur: next = (pptr() - obeg_) + off; break;
-        case NDNBOOST_IOS::end: next = (oend_ - obeg_) + off; break;
-        default: NDNBOOST_ASSERT(0);
-        }
-        if (next < 0 || next > (oend_ - obeg_))
-            ndnboost::throw_exception(bad_seek());
-        pbump(static_cast<int>(next - (pptr() - obeg_)));
-        result = next;
-    }
-    return offset_to_position(result);
-}
-
-template<typename T, typename Tr>
-void direct_streambuf<T, Tr>::init_input(input)
-{
-    std::pair<char_type*, char_type*> p = input_sequence(*storage_);
-    ibeg_ = p.first;
-    iend_ = p.second;
-}
-
-template<typename T, typename Tr>
-void direct_streambuf<T, Tr>::init_output(output)
-{
-    std::pair<char_type*, char_type*> p = output_sequence(*storage_);
-    obeg_ = p.first;
-    oend_ = p.second;
-}
-
-template<typename T, typename Tr>
-void direct_streambuf<T, Tr>::init_get_area()
-{
-    setg(ibeg_, ibeg_, iend_);
-    if (one_head() && pptr()) {
-        gbump(static_cast<int>(pptr() - obeg_));
-        setp(0, 0);
-    }
-}
-
-template<typename T, typename Tr>
-void direct_streambuf<T, Tr>::init_put_area()
-{
-    setp(obeg_, oend_);
-    if (one_head() && gptr()) {
-        pbump(static_cast<int>(gptr() - ibeg_));
-        setg(0, 0, 0);
-    }
-}
-
-template<typename T, typename Tr>
-inline bool direct_streambuf<T, Tr>::one_head() const
-{ return ibeg_ && obeg_ && ibeg_ == obeg_; }
-
-template<typename T, typename Tr>
-inline bool direct_streambuf<T, Tr>::two_head() const
-{ return ibeg_ && obeg_ && ibeg_ != obeg_; }
-
-//----------------------------------------------------------------------------//
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp> // MSVC
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_DIRECT_STREAMBUF_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/streambuf/indirect_streambuf.hpp b/include/ndnboost/iostreams/detail/streambuf/indirect_streambuf.hpp
deleted file mode 100644
index d657ddb..0000000
--- a/include/ndnboost/iostreams/detail/streambuf/indirect_streambuf.hpp
+++ /dev/null
@@ -1,432 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// This material is heavily indebted to the discussion and code samples in
-// A. Langer and K. Kreft, "Standard C++ IOStreams and Locales",
-// Addison-Wesley, 2000, pp. 228-43.
-
-// User "GMSB" provided an optimization for small seeks.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_INDIRECT_STREAMBUF_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_INDIRECT_STREAMBUF_HPP_INCLUDED
-
-#include <algorithm>                             // min, max.
-#include <cassert>
-#include <exception>
-#include <typeinfo>
-#include <ndnboost/config.hpp>                      // Member template friends.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/constants.hpp>
-#include <ndnboost/iostreams/detail/adapter/concept_adapter.hpp>
-#include <ndnboost/iostreams/detail/buffer.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/double_object.hpp> 
-#include <ndnboost/iostreams/detail/execute.hpp>
-#include <ndnboost/iostreams/detail/functional.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>
-#include <ndnboost/iostreams/detail/optional.hpp>
-#include <ndnboost/iostreams/detail/push.hpp>
-#include <ndnboost/iostreams/detail/streambuf/linked_streambuf.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/iostreams/positioning.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC, BCC 5.x
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-//
-// Description: The implementation of basic_streambuf used by chains.
-//
-template<typename T, typename Tr, typename Alloc, typename Mode>
-class indirect_streambuf
-    : public linked_streambuf<NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type, Tr>
-{
-public:
-    typedef typename char_type_of<T>::type                    char_type;
-    NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
-private:
-    typedef typename category_of<T>::type                     category;
-    typedef concept_adapter<T>                                wrapper;
-    typedef detail::basic_buffer<char_type, Alloc>            buffer_type;
-    typedef indirect_streambuf<T, Tr, Alloc, Mode>            my_type;
-    typedef detail::linked_streambuf<char_type, traits_type>  base_type;
-    typedef linked_streambuf<char_type, Tr>                   streambuf_type;
-public:
-    indirect_streambuf();
-
-    void open(const T& t NDNBOOST_IOSTREAMS_PUSH_PARAMS());
-    bool is_open() const;
-    void close();
-    bool auto_close() const;
-    void set_auto_close(bool close);
-    bool strict_sync();
-
-    // Declared in linked_streambuf.
-    T* component() { return &*obj(); }
-protected:
-#if !NDNBOOST_WORKAROUND(__GNUC__, == 2)
-    NDNBOOST_IOSTREAMS_USING_PROTECTED_STREAMBUF_MEMBERS(base_type)
-#endif
-
-    //----------virtual functions---------------------------------------------//
-
-#ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-    void imbue(const std::locale& loc);
-#endif
-#ifdef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-    public:
-#endif
-    int_type underflow();
-    int_type pbackfail(int_type c);
-    int_type overflow(int_type c);
-    int sync();
-    pos_type seekoff( off_type off, NDNBOOST_IOS::seekdir way,
-                      NDNBOOST_IOS::openmode which );
-    pos_type seekpos(pos_type sp, NDNBOOST_IOS::openmode which);
-
-    // Declared in linked_streambuf.
-    void set_next(streambuf_type* next);
-    void close_impl(NDNBOOST_IOS::openmode m);
-    const std::type_info& component_type() const { return typeid(T); }
-    void* component_impl() { return component(); }
-private:
-
-    //----------Accessor functions--------------------------------------------//
-
-    wrapper& obj() { return *storage_; }
-    streambuf_type* next() const { return next_; }
-    buffer_type& in() { return buffer_.first(); }
-    buffer_type& out() { return buffer_.second(); }
-    bool can_read() const { return is_convertible<Mode, input>::value; }
-    bool can_write() const { return is_convertible<Mode, output>::value; }
-    bool output_buffered() const { return (flags_ & f_output_buffered) != 0; }
-    bool shared_buffer() const { return is_convertible<Mode, seekable>::value; }
-    void set_flags(int f) { flags_ = f; }
-
-    //----------State changing functions--------------------------------------//
-
-    virtual void init_get_area();
-    virtual void init_put_area();
-
-    //----------Utility function----------------------------------------------//
-
-    pos_type seek_impl( stream_offset off, NDNBOOST_IOS::seekdir way,
-                        NDNBOOST_IOS::openmode which );
-    void sync_impl();
-
-    enum flag_type {
-        f_open             = 1,
-        f_output_buffered  = f_open << 1,
-        f_auto_close       = f_output_buffered << 1
-    };
-
-    optional<wrapper>           storage_;
-    streambuf_type*             next_;
-    double_object<
-        buffer_type,
-        is_convertible<
-            Mode,
-            two_sequence
-        >
-    >                           buffer_;
-    std::streamsize             pback_size_;
-    int                         flags_;
-};
-
-//--------------Implementation of indirect_streambuf--------------------------//
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-indirect_streambuf<T, Tr, Alloc, Mode>::indirect_streambuf()
-    : next_(0), pback_size_(0), flags_(f_auto_close) { }
-
-//--------------Implementation of open, is_open and close---------------------//
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-void indirect_streambuf<T, Tr, Alloc, Mode>::open
-    (const T& t, std::streamsize buffer_size, std::streamsize pback_size)
-{
-    using namespace std;
-
-    // Normalize buffer sizes.
-    buffer_size =
-        (buffer_size != -1) ?
-        buffer_size :
-        iostreams::optimal_buffer_size(t);
-    pback_size =
-        (pback_size != -1) ?
-        pback_size :
-        default_pback_buffer_size;
-
-    // Construct input buffer.
-    if (can_read()) {
-        pback_size_ = (std::max)(std::streamsize(2), pback_size); // STLPort needs 2.
-        std::streamsize size =
-            pback_size_ +
-            ( buffer_size ? buffer_size: 1 );
-        in().resize(size);
-        if (!shared_buffer())
-            init_get_area();
-    }
-
-    // Construct output buffer.
-    if (can_write() && !shared_buffer()) {
-        if (buffer_size != 0)
-            out().resize(buffer_size);
-        init_put_area();
-    }
-
-    storage_.reset(wrapper(t));
-    flags_ |= f_open;
-    if (can_write() && buffer_size > 1)
-        flags_ |= f_output_buffered;
-    this->set_true_eof(false);
-    this->set_needs_close();
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-inline bool indirect_streambuf<T, Tr, Alloc, Mode>::is_open() const
-{ return (flags_ & f_open) != 0; }
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-void indirect_streambuf<T, Tr, Alloc, Mode>::close()
-{
-    using namespace std;
-    base_type* self = this;
-    detail::execute_all(
-        detail::call_member_close(*self, NDNBOOST_IOS::in),
-        detail::call_member_close(*self, NDNBOOST_IOS::out),
-        detail::call_reset(storage_),
-        detail::clear_flags(flags_)
-    );
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-bool indirect_streambuf<T, Tr, Alloc, Mode>::auto_close() const
-{ return (flags_ & f_auto_close) != 0; }
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-void indirect_streambuf<T, Tr, Alloc, Mode>::set_auto_close(bool close)
-{ flags_ = (flags_ & ~f_auto_close) | (close ? f_auto_close : 0); }
-
-//--------------Implementation virtual functions------------------------------//
-
-#ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-template<typename T, typename Tr, typename Alloc, typename Mode>
-void indirect_streambuf<T, Tr, Alloc, Mode>::imbue(const std::locale& loc)
-{
-    if (is_open()) {
-        obj().imbue(loc);
-        if (next_)
-            next_->pubimbue(loc);
-    }
-}
-#endif
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-typename indirect_streambuf<T, Tr, Alloc, Mode>::int_type
-indirect_streambuf<T, Tr, Alloc, Mode>::underflow()
-{
-    using namespace std;
-    if (!gptr()) init_get_area();
-    buffer_type& buf = in();
-    if (gptr() < egptr()) return traits_type::to_int_type(*gptr());
-
-    // Fill putback buffer.
-    std::streamsize keep = 
-        (std::min)( static_cast<std::streamsize>(gptr() - eback()),
-                    pback_size_ );
-    if (keep)
-        traits_type::move( buf.data() + (pback_size_ - keep),
-                           gptr() - keep, keep );
-
-    // Set pointers to reasonable values in case read throws.
-    setg( buf.data() + pback_size_ - keep,
-          buf.data() + pback_size_,
-          buf.data() + pback_size_ );
-
-    // Read from source.
-    std::streamsize chars =
-        obj().read(buf.data() + pback_size_, buf.size() - pback_size_, next_);
-    if (chars == -1) {
-        this->set_true_eof(true);
-        chars = 0;
-    }
-    setg(eback(), gptr(), buf.data() + pback_size_ + chars);
-    return chars != 0 ?
-        traits_type::to_int_type(*gptr()) :
-        traits_type::eof();
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-typename indirect_streambuf<T, Tr, Alloc, Mode>::int_type
-indirect_streambuf<T, Tr, Alloc, Mode>::pbackfail(int_type c)
-{
-    if (gptr() != eback()) {
-        gbump(-1);
-        if (!traits_type::eq_int_type(c, traits_type::eof()))
-            *gptr() = traits_type::to_char_type(c);
-        return traits_type::not_eof(c);
-    } else {
-        ndnboost::throw_exception(bad_putback());
-    }
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-typename indirect_streambuf<T, Tr, Alloc, Mode>::int_type
-indirect_streambuf<T, Tr, Alloc, Mode>::overflow(int_type c)
-{
-    if ( (output_buffered() && pptr() == 0) ||
-         (shared_buffer() && gptr() != 0) )
-    {
-        init_put_area();
-    }
-    if (!traits_type::eq_int_type(c, traits_type::eof())) {
-        if (output_buffered()) {
-            if (pptr() == epptr()) {
-                sync_impl();
-                if (pptr() == epptr())
-                    return traits_type::eof();
-            }
-            *pptr() = traits_type::to_char_type(c);
-            pbump(1);
-        } else {
-            char_type d = traits_type::to_char_type(c);
-            if (obj().write(&d, 1, next_) != 1)
-                return traits_type::eof();
-        }
-    }
-    return traits_type::not_eof(c);
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-int indirect_streambuf<T, Tr, Alloc, Mode>::sync()
-{
-    try { // sync() is no-throw.
-        sync_impl();
-        obj().flush(next_);
-        return 0;
-    } catch (...) { return -1; }
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-bool indirect_streambuf<T, Tr, Alloc, Mode>::strict_sync()
-{
-    try { // sync() is no-throw.
-        sync_impl();
-        return obj().flush(next_);
-    } catch (...) { return false; }
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-inline typename indirect_streambuf<T, Tr, Alloc, Mode>::pos_type
-indirect_streambuf<T, Tr, Alloc, Mode>::seekoff
-    (off_type off, NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which)
-{ return seek_impl(off, way, which); }
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-inline typename indirect_streambuf<T, Tr, Alloc, Mode>::pos_type
-indirect_streambuf<T, Tr, Alloc, Mode>::seekpos
-    (pos_type sp, NDNBOOST_IOS::openmode which)
-{ 
-    return seek_impl(position_to_offset(sp), NDNBOOST_IOS::beg, which); 
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-typename indirect_streambuf<T, Tr, Alloc, Mode>::pos_type
-indirect_streambuf<T, Tr, Alloc, Mode>::seek_impl
-    (stream_offset off, NDNBOOST_IOS::seekdir way, NDNBOOST_IOS::openmode which)
-{
-    if ( gptr() != 0 && way == NDNBOOST_IOS::cur && which == NDNBOOST_IOS::in && 
-         eback() - gptr() <= off && off <= egptr() - gptr() ) 
-    {   // Small seek optimization
-        gbump(off);
-        return obj().seek(0, NDNBOOST_IOS::cur, NDNBOOST_IOS::in, next_) -
-               static_cast<off_type>(egptr() - gptr());
-    }
-    if (pptr() != 0) 
-        this->NDNBOOST_IOSTREAMS_PUBSYNC(); // sync() confuses VisualAge 6.
-    if (way == NDNBOOST_IOS::cur && gptr())
-        off -= static_cast<off_type>(egptr() - gptr());
-    setg(0, 0, 0);
-    setp(0, 0);
-    return obj().seek(off, way, which, next_);
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-inline void indirect_streambuf<T, Tr, Alloc, Mode>::set_next
-    (streambuf_type* next)
-{ next_ = next; }
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-inline void indirect_streambuf<T, Tr, Alloc, Mode>::close_impl
-    (NDNBOOST_IOS::openmode which)
-{
-    if (which == NDNBOOST_IOS::in && is_convertible<Mode, input>::value) {
-        setg(0, 0, 0);
-    }
-    if (which == NDNBOOST_IOS::out && is_convertible<Mode, output>::value) {
-        sync();
-        setp(0, 0);
-    }
-    if ( !is_convertible<category, dual_use>::value ||
-         is_convertible<Mode, input>::value == (which == NDNBOOST_IOS::in) )
-    {
-        obj().close(which, next_);
-    }
-}
-
-//----------State changing functions------------------------------------------//
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-void indirect_streambuf<T, Tr, Alloc, Mode>::sync_impl()
-{
-    std::streamsize avail, amt;
-    if ((avail = static_cast<std::streamsize>(pptr() - pbase())) > 0) {
-        if ((amt = obj().write(pbase(), avail, next())) == avail)
-            setp(out().begin(), out().end());
-        else {
-            const char_type* ptr = pptr();
-            setp(out().begin() + amt, out().end());
-            pbump(ptr - pptr());
-        }
-    }
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-void indirect_streambuf<T, Tr, Alloc, Mode>::init_get_area()
-{
-    if (shared_buffer() && pptr() != 0) {
-        sync_impl();
-        setp(0, 0);
-    }
-    setg(in().begin(), in().begin(), in().begin());
-}
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-void indirect_streambuf<T, Tr, Alloc, Mode>::init_put_area()
-{
-    using namespace std;
-    if (shared_buffer() && gptr() != 0)
-        setg(0, 0, 0);
-    if (output_buffered())
-        setp(out().begin(), out().end());
-    else
-        setp(0, 0);
-}
-
-//----------------------------------------------------------------------------//
-
-} } } // End namespaces detail, iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp> // MSVC, BCC 5.x
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_INDIRECT_STREAMBUF_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/streambuf/linked_streambuf.hpp b/include/ndnboost/iostreams/detail/streambuf/linked_streambuf.hpp
deleted file mode 100644
index d6ec23d..0000000
--- a/include/ndnboost/iostreams/detail/streambuf/linked_streambuf.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_LINKED_STREAMBUF_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_LINKED_STREAMBUF_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <typeinfo>
-#include <ndnboost/config.hpp>                        // member template friends.
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>          // openmode.
-#include <ndnboost/iostreams/detail/streambuf.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp> // MSVC.
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename Self, typename Ch, typename Tr, typename Alloc, typename Mode>
-class chain_base;
-
-template<typename Chain, typename Access, typename Mode> class chainbuf;
-
-#define NDNBOOST_IOSTREAMS_USING_PROTECTED_STREAMBUF_MEMBERS(base) \
-    using base::eback; using base::gptr; using base::egptr; \
-    using base::setg; using base::gbump; using base::pbase; \
-    using base::pptr; using base::epptr; using base::setp; \
-    using base::pbump; using base::underflow; using base::pbackfail; \
-    using base::xsgetn; using base::overflow; using base::xsputn; \
-    using base::sync; using base::seekoff; using base::seekpos; \
-    /**/
-
-template<typename Ch, typename Tr = NDNBOOST_IOSTREAMS_CHAR_TRAITS(Ch) >
-class linked_streambuf : public NDNBOOST_IOSTREAMS_BASIC_STREAMBUF(Ch, Tr) {
-protected:
-    linked_streambuf() : flags_(0) { }
-    void set_true_eof(bool eof) 
-    { 
-        flags_ = (flags_ & ~f_true_eof) | (eof ? f_true_eof : 0); 
-    }
-public:
-
-    // Should be called only after receiving an ordinary EOF indication,
-    // to confirm that it represents EOF rather than WOULD_BLOCK.
-    bool true_eof() const { return (flags_ & f_true_eof) != 0; }
-protected:
-
-    //----------grant friendship to chain_base and chainbuf-------------------//
-
-#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
-    template< typename Self, typename ChT, typename TrT,
-              typename Alloc, typename Mode >
-    friend class chain_base;
-    template<typename Chain, typename Mode, typename Access>
-    friend class chainbuf;
-    template<typename U>
-    friend class member_close_operation; 
-#else
-    public:
-        typedef NDNBOOST_IOSTREAMS_BASIC_STREAMBUF(Ch, Tr) base;
-        NDNBOOST_IOSTREAMS_USING_PROTECTED_STREAMBUF_MEMBERS(base)
-#endif
-    void close(NDNBOOST_IOS::openmode which)
-    {
-        if ( which == NDNBOOST_IOS::in && 
-            (flags_ & f_input_closed) == 0 )
-        {
-            flags_ |= f_input_closed;
-            close_impl(which);
-        }
-        if ( which == NDNBOOST_IOS::out && 
-            (flags_ & f_output_closed) == 0 )
-        {
-            flags_ |= f_output_closed;
-            close_impl(which);
-        }
-    }
-    void set_needs_close()
-    {
-        flags_ &= ~(f_input_closed | f_output_closed);
-    }
-    virtual void set_next(linked_streambuf<Ch, Tr>* /* next */) { }
-    virtual void close_impl(NDNBOOST_IOS::openmode) = 0;
-    virtual bool auto_close() const = 0;
-    virtual void set_auto_close(bool) = 0;
-    virtual bool strict_sync() = 0;
-    virtual const std::type_info& component_type() const = 0;
-    virtual void* component_impl() = 0;
-#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
-    private:
-#else
-    public:
-#endif
-private:
-    enum flag_type {
-        f_true_eof       = 1,
-        f_input_closed   = f_true_eof << 1,
-        f_output_closed  = f_input_closed << 1
-    };
-    int flags_;
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp> // MSVC.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_LINKED_STREAMBUF_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/system_failure.hpp b/include/ndnboost/iostreams/detail/system_failure.hpp
deleted file mode 100644
index 4a9dcbc..0000000
--- a/include/ndnboost/iostreams/detail/system_failure.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// (C) Copyright Jonathan Graehl 2004.
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Used by mapped_file.cpp.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_SYSTEM_FAILURE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_SYSTEM_FAILURE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <cstring>
-#include <string>
-#include <ndnboost/config.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/iostreams/detail/config/windows_posix.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // failure.
-
-#if defined(NDNBOOST_NO_STDC_NAMESPACE) && !defined(__LIBCOMO__)
-namespace std { using ::strlen; }
-#endif
-
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-# define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers
-# include <windows.h>
-#else
-# include <errno.h>
-# include <string.h>
-#endif
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-inline NDNBOOST_IOSTREAMS_FAILURE system_failure(const char* msg)
-{
-    std::string result;
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    DWORD err;
-    LPVOID lpMsgBuf;
-    if ( (err = ::GetLastError()) != NO_ERROR &&
-         ::FormatMessageA( FORMAT_MESSAGE_ALLOCATE_BUFFER |
-                           FORMAT_MESSAGE_FROM_SYSTEM,
-                           NULL,
-                           err,
-                           MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
-                           (LPSTR) &lpMsgBuf,
-                           0,
-                           NULL ) != 0 )
-    {
-        result.reserve(std::strlen(msg) + 2 + std::strlen((LPSTR)lpMsgBuf));
-        result.append(msg);
-        result.append(": ");
-        result.append((LPSTR) lpMsgBuf);
-        ::LocalFree(lpMsgBuf);
-    } else {
-        result += msg;
-    }
-#else
-    const char* system_msg = errno ? strerror(errno) : "";
-    result.reserve(std::strlen(msg) + 2 + std::strlen(system_msg));
-    result.append(msg);
-    result.append(": ");
-    result.append(system_msg);
-#endif
-    return NDNBOOST_IOSTREAMS_FAILURE(result);
-}
-
-inline NDNBOOST_IOSTREAMS_FAILURE system_failure(const std::string& msg)
-{ return system_failure(msg.c_str()); }
-
-inline void throw_system_failure(const char* msg)
-{ ndnboost::throw_exception(system_failure(msg)); }
-
-inline void throw_system_failure(const std::string& msg)
-{ ndnboost::throw_exception(system_failure(msg)); }
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_SYSTEM_FAILURE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/template_params.hpp b/include/ndnboost/iostreams/detail/template_params.hpp
deleted file mode 100644
index aeaaff3..0000000
--- a/include/ndnboost/iostreams/detail/template_params.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_TEMPLATE_PARAMS_HPP_INCLUDED
-
-#include <ndnboost/preprocessor/control/expr_if.hpp>
-#include <ndnboost/preprocessor/control/if.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-
-#define NDNBOOST_IOSTREAMS_TEMPLATE_PARAMS(arity, param) \
-    NDNBOOST_PP_EXPR_IF(arity, template<) \
-    NDNBOOST_PP_ENUM_PARAMS(arity, typename param) \
-    NDNBOOST_PP_EXPR_IF(arity, >) \
-    /**/
-
-#define NDNBOOST_IOSTREAMS_TEMPLATE_ARGS(arity, param) \
-    NDNBOOST_PP_EXPR_IF(arity, <) \
-    NDNBOOST_PP_ENUM_PARAMS(arity, param) \
-    NDNBOOST_PP_EXPR_IF(arity, >) \
-    /**/
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_BUFFERS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/translate_int_type.hpp b/include/ndnboost/iostreams/detail/translate_int_type.hpp
deleted file mode 100644
index e5cbb63..0000000
--- a/include/ndnboost/iostreams/detail/translate_int_type.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_TRANSLATE_INT_TYPE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_TRANSLATE_INT_TYPE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<bool IsSame>
-struct translate_int_type_impl;
-
-//
-// Template name: translate_char.
-// Description: Translates a character or an end-of-file indicator from the 
-//      int_type of one character traits type to the int_type of another.
-//
-template<typename SourceTr, typename TargetTr>
-typename TargetTr::int_type 
-translate_int_type(typename SourceTr::int_type c) 
-{ 
-    typedef translate_int_type_impl<is_same<SourceTr, TargetTr>::value> impl;
-    return impl::template inner<SourceTr, TargetTr>::translate(c);
-}
-
-//----------------------------------------------------------------------------//
-
-template<>
-struct translate_int_type_impl<true> {
-    template<typename SourceTr, typename TargetTr>
-    struct inner {
-        static typename TargetTr::int_type 
-        translate(typename SourceTr::int_type c) { return c; }
-    };
-};
-
-template<>
-struct translate_int_type_impl<false> {
-    template<typename SourceTr, typename TargetTr>
-    struct inner {
-        static typename TargetTr::int_type 
-        translate(typename SourceTr::int_type c)
-            { 
-                return SourceTr::eq_int_type(SourceTr::eof()) ?
-                           TargetTr::eof() :
-                           TargetTr::to_int_type(SourceTr::to_char_type(c));
-            }
-    };
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_TRANSLATE_INT_TYPE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/detail/vc6/close.hpp b/include/ndnboost/iostreams/detail/vc6/close.hpp
deleted file mode 100644
index 2fddd11..0000000
--- a/include/ndnboost/iostreams/detail/vc6/close.hpp
+++ /dev/null
@@ -1,129 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T>
-struct close_impl;
-
-} // End namespace detail.
-
-template<typename T>
-void close(T& t) { detail::close_all(t); }
-
-template<typename T>
-void close(T& t, NDNBOOST_IOS::openmode which)
-{
-    typedef typename detail::unwrapped_type<T>::type unwrapped;
-    detail::close_impl<T>::inner<unwrapped>::close(detail::unwrap(t), which);
-}
-
-template<typename T, typename Sink>
-void close(T& t, Sink& snk, NDNBOOST_IOS::openmode which)
-{
-    typedef typename detail::unwrapped_type<T>::type unwrapped;
-    detail::close_impl<T>::inner<unwrapped>::close(detail::unwrap(t), snk, which);
-}
-
-namespace detail {
-
-//------------------Definition of close_impl----------------------------------//
-
-template<typename T>
-struct close_tag {
-    typedef typename category_of<T>::type category;
-    typedef typename
-            mpl::eval_if<
-                is_convertible<category, closable_tag>,
-                mpl::if_<
-                    mpl::or_<
-                        is_convertible<category, two_sequence>,
-                        is_convertible<category, dual_use>
-                    >,
-                    two_sequence,
-                    closable_tag
-                >,
-                mpl::identity<any_tag>
-            >::type type;
-};
-
-template<typename T>
-struct close_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          close_impl<NDNBOOST_DEDUCED_TYPENAME close_tag<T>::type>
-      >::type
-    { };
-
-template<>
-struct close_impl<any_tag> {
-    template<typename T>
-    struct inner {
-        static void close(T& t, NDNBOOST_IOS::openmode which)
-        {
-            if (which == NDNBOOST_IOS::out)
-                iostreams::flush(t);
-        }
-
-        template<typename Sink>
-        static void close(T& t, Sink& snk, NDNBOOST_IOS::openmode which)
-        {
-            if (which == NDNBOOST_IOS::out) {
-                non_blocking_adapter<Sink> nb(snk);
-                iostreams::flush(t, nb);
-            }
-        }
-    };
-};
-
-template<>
-struct close_impl<closable_tag> {
-    template<typename T>
-    struct inner {
-        static void close(T& t, NDNBOOST_IOS::openmode which)
-        {
-            typedef typename category_of<T>::type category;
-            const bool in =  is_convertible<category, input>::value &&
-                            !is_convertible<category, output>::value;
-            if (in == (which == NDNBOOST_IOS::in))
-                t.close();
-        }
-        template<typename Sink>
-        static void close(T& t, Sink& snk, NDNBOOST_IOS::openmode which)
-        {
-            typedef typename category_of<T>::type category;
-            const bool in =  is_convertible<category, input>::value &&
-                            !is_convertible<category, output>::value;
-            if (in == (which == NDNBOOST_IOS::in)) {
-                non_blocking_adapter<Sink> nb(snk);
-                t.close(nb);
-            }
-        }
-    };
-};
-
-template<>
-struct close_impl<two_sequence> {
-    template<typename T>
-    struct inner {
-        static void close(T& t, NDNBOOST_IOS::openmode which) { t.close(which); }
-
-        template<typename Sink>
-        static void close(T& t, Sink& snk, NDNBOOST_IOS::openmode which)
-        {
-            non_blocking_adapter<Sink> nb(snk);
-            t.close(nb, which);
-        }
-    };
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
diff --git a/include/ndnboost/iostreams/detail/vc6/read.hpp b/include/ndnboost/iostreams/detail/vc6/read.hpp
deleted file mode 100644
index b664ae6..0000000
--- a/include/ndnboost/iostreams/detail/vc6/read.hpp
+++ /dev/null
@@ -1,238 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T> 
-struct read_device_impl;
-
-template<typename T> 
-struct read_filter_impl;
-
-} // End namespace detail.
-
-template<typename T>
-typename int_type_of<T>::type get(T& t)
-{
-    typedef typename detail::unwrapped_type<T>::type unwrapped;
-    return detail::read_device_impl<T>::inner<unwrapped>::get(detail::unwrap(t));
-}
-
-template<typename T>
-inline std::streamsize
-read(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-{
-    typedef typename detail::unwrapped_type<T>::type unwrapped;
-    return detail::read_device_impl<T>::inner<unwrapped>::read(detail::unwrap(t), s, n);
-}
-
-template<typename T, typename Source>
-std::streamsize
-read(T& t, Source& src, typename char_type_of<T>::type* s, std::streamsize n)
-{
-    typedef typename detail::unwrapped_type<T>::type unwrapped;
-    return detail::read_filter_impl<T>::inner<unwrapped>::read(detail::unwrap(t), src, s, n);
-}
-
-template<typename T>
-bool putback(T& t, typename char_type_of<T>::type c)
-{
-    typedef typename detail::unwrapped_type<T>::type unwrapped;
-    return detail::read_device_impl<T>::inner<unwrapped>::putback(detail::unwrap(t), c);
-}
-
-//----------------------------------------------------------------------------//
-
-namespace detail {
-
-// Helper function for adding -1 as EOF indicator.
-inline std::streamsize check_eof(std::streamsize n) { return n != 0 ? n : -1; }
-
-// Helper templates for reading from streambufs.
-template<bool IsLinked>
-struct true_eof_impl;
-
-template<>
-struct true_eof_impl<true> {
-    template<typename T>
-    static bool true_eof(T& t) { return t.true_eof(); }
-};
-
-template<>
-struct true_eof_impl<false> {
-    template<typename T>
-    static bool true_eof(T& t) { return true; }
-};
-
-template<typename T>
-inline bool true_eof(T& t)
-{
-    const bool linked = is_linked<T>::value;
-    return true_eof_impl<linked>::true_eof(t);
-}
-                    
-//------------------Definition of read_device_impl----------------------------//
-
-template<typename T>
-struct read_device_impl
-    : mpl::if_<
-          detail::is_custom<T>,
-          operations<T>,
-          read_device_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              detail::dispatch<
-                  T, istream_tag, streambuf_tag, input
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct read_device_impl<istream_tag> {
-    template<typename T>
-    struct inner {
-        static typename int_type_of<T>::type get(T& t)
-        { return t.get(); }
-
-        static std::streamsize
-        read(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-        { return check_eof(t.rdbuf()->sgetn(s, n)); }
-
-        static bool putback(T& t, typename char_type_of<T>::type c)
-        {
-            typedef typename char_type_of<T>::type          char_type;
-            typedef NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)  traits_type;
-            return !traits_type::eq_int_type( t.rdbuf()->sputbackc(c),
-                                              traits_type::eof() );
-        }
-    };
-};
-
-template<>
-struct read_device_impl<streambuf_tag> {
-    template<typename T>
-    struct inner {
-        static typename int_type_of<T>::type
-        get(T& t)
-        {
-            typedef typename char_type_of<T>::type  char_type;
-            typedef char_traits<char_type>          traits_type;
-            typename int_type_of<T>::type c;
-            return !traits_type::is_eof(c = t.sbumpc()) ||
-                    detail::true_eof(t)
-                        ?
-                    c : traits_type::would_block();
-        }
-
-        static std::streamsize
-        read(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-        {
-            std::streamsize amt;
-            return (amt = t.sgetn(s, n)) != 0 ?
-                amt :
-                detail::true_eof(t) ?
-                    -1 :
-                    0;
-        }
-
-        static bool putback(T& t, typename char_type_of<T>::type c)
-        {
-            typedef typename char_type_of<T>::type  char_type;
-            typedef char_traits<char_type>          traits_type;
-            return !traits_type::is_eof(t.sputbackc(c));
-        }
-    };
-};
-
-template<>
-struct read_device_impl<input> {
-    template<typename T>
-    struct inner {
-        static typename int_type_of<T>::type
-        get(T& t)
-        {
-            typedef typename char_type_of<T>::type  char_type;
-            typedef char_traits<char_type>          traits_type;
-            char_type c;
-            std::streamsize amt;
-            return (amt = t.read(&c, 1)) == 1 ?
-                traits_type::to_int_type(c) :
-                amt == -1 ?
-                    traits_type::eof() :
-                    traits_type::would_block();
-        }
-
-        template<typename T>
-        static std::streamsize
-        read(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-        { return t.read(s, n); }
-
-        template<typename T>
-        static bool putback(T& t, typename char_type_of<T>::type c)
-        {   // T must be Peekable.
-            return t.putback(c);
-        }
-    };
-};
-
-//------------------Definition of read_filter_impl----------------------------//
-
-template<typename T>
-struct read_filter_impl
-    : mpl::if_<
-          detail::is_custom<T>,
-          operations<T>,
-          read_filter_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              detail::dispatch<
-                  T, multichar_tag, any_tag
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct read_filter_impl<multichar_tag> {
-    template<typename T>
-    struct inner {
-        template<typename Source>
-        static std::streamsize read
-            ( T& t, Source& src, typename char_type_of<T>::type* s,   
-              std::streamsize n )
-        { return t.read(src, s, n); }
-    };
-};
-
-template<>
-struct read_filter_impl<any_tag> {
-    template<typename T>
-    struct inner {
-        template<typename Source>
-        static std::streamsize read
-            ( T& t, Source& src, typename char_type_of<T>::type* s, 
-              std::streamsize n )
-        {
-            typedef typename char_type_of<T>::type  char_type;
-            typedef char_traits<char_type>          traits_type;
-            for (std::streamsize off = 0; off < n; ++off) {
-                typename traits_type::int_type c = t.get(src);
-                if (traits_type::is_eof(c))
-                    return check_eof(off);
-                if (traits_type::would_block(c))
-                    return off;
-                s[off] = traits_type::to_char_type(c);
-            }
-            return n;
-        }
-    };
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
diff --git a/include/ndnboost/iostreams/detail/vc6/write.hpp b/include/ndnboost/iostreams/detail/vc6/write.hpp
deleted file mode 100644
index b0398e1..0000000
--- a/include/ndnboost/iostreams/detail/vc6/write.hpp
+++ /dev/null
@@ -1,159 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T> 
-struct write_device_impl;
-
-template<typename T> 
-struct write_filter_impl;
-
-} // End namespace detail.
-
-template<typename T>
-bool put(T& t, typename char_type_of<T>::type c)
-{
-    typedef typename detail::unwrapped_type<T>::type unwrapped;
-    return detail::write_device_impl<T>::inner<unwrapped>::put(detail::unwrap(t), c);
-}
-
-template<typename T>
-inline std::streamsize write
-    (T& t, const typename char_type_of<T>::type* s, std::streamsize n)
-{
-    typedef typename detail::unwrapped_type<T>::type unwrapped;
-    return detail::write_device_impl<T>::inner<unwrapped>::write(detail::unwrap(t), s, n);
-}
-
-template<typename T, typename Sink>
-inline std::streamsize
-write( T& t, Sink& snk, const typename char_type_of<T>::type* s, 
-       std::streamsize n )
-{
-    typedef typename detail::unwrapped_type<T>::type unwrapped;
-    return detail::write_filter_impl<T>::inner<unwrapped>::write(detail::unwrap(t), snk, s, n);
-}
-
-namespace detail {
-
-//------------------Definition of write_device_impl---------------------------//
-
-template<typename T>
-struct write_device_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          write_device_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<
-                  T, ostream_tag, streambuf_tag, output
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct write_device_impl<ostream_tag> {
-    template<typename T>
-    struct inner {
-        static bool put(T& t, typename char_type_of<T>::type c)
-        {
-            typedef typename char_type_of<T>::type          char_type;
-            typedef NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)  traits_type;
-            return !traits_type::eq_int_type( t.rdbuf()->s.sputc(),
-                                            traits_type::eof() );
-        }
-
-        static std::streamsize write
-            (T& t, const typename char_type_of<T>::type* s, std::streamsize n)
-        { return t.rdbuf()->sputn(s, n); }
-    };
-};
-
-template<>
-struct write_device_impl<streambuf_tag> {
-    template<typename T>
-    struct inner {
-        static bool put(T& t, typename char_type_of<T>::type c)
-        {
-            typedef typename char_type_of<T>::type          char_type;
-            typedef NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)  traits_type;
-            return !traits_type::eq_int_type(t.sputc(c), traits_type::eof());
-        }
-
-        template<typename T>
-        static std::streamsize write
-            (T& t, const typename char_type_of<T>::type* s, std::streamsize n)
-        { return t.sputn(s, n); }
-    };
-};
-
-template<>
-struct write_device_impl<output> {
-    template<typename T>
-    struct inner {
-        static bool put(T& t, typename char_type_of<T>::type c)
-        { return t.write(&c, 1) == 1; }
-
-        template<typename T>
-        static std::streamsize
-        write(T& t, const typename char_type_of<T>::type* s, std::streamsize n)
-        { return t.write(s, n); }
-    };
-};
-
-//------------------Definition of write_filter_impl---------------------------//
-
-template<typename T>
-struct write_filter_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          write_filter_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<
-                  T, multichar_tag, any_tag
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct write_filter_impl<multichar_tag> {
-    template<typename T>
-    struct inner {
-        template<typename Sink>
-        static std::streamsize
-        write( T& t, Sink& snk, const typename char_type_of<T>::type* s,
-               std::streamsize n )
-        { return t.write(snk, s, n); }
-    };
-};
-
-template<>
-struct write_filter_impl<any_tag> {
-    template<typename T>
-    struct inner {
-        template<typename Sink>
-        static std::streamsize
-        write( T& t, Sink& snk, const typename char_type_of<T>::type* s,
-               std::streamsize n )
-        {
-            for (std::streamsize off = 0; off < n; ++off)
-                if (!t.put(snk, s[off]))
-                    return off;
-            return n;
-        }
-    };
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
diff --git a/include/ndnboost/iostreams/detail/wrap_unwrap.hpp b/include/ndnboost/iostreams/detail/wrap_unwrap.hpp
deleted file mode 100644
index 93291df..0000000
--- a/include/ndnboost/iostreams/detail/wrap_unwrap.hpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_DETAIL_WRAP_UNWRAP_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_DETAIL_WRAP_UNWRAP_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <ndnboost/config.hpp>                             // SFINAE, MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/enable_if_stream.hpp>
-#include <ndnboost/iostreams/traits_fwd.hpp>               // is_std_io.
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/ref.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-                    
-//------------------Definition of wrap/unwrap traits--------------------------//
-
-template<typename T>
-struct wrapped_type 
-    : mpl::if_<is_std_io<T>, reference_wrapper<T>, T>
-    { };
-
-template<typename T>
-struct unwrapped_type 
-    : unwrap_reference<T>
-    { };
-
-template<typename T>
-struct unwrap_ios 
-    : mpl::eval_if<
-          is_std_io<T>, 
-          unwrap_reference<T>, 
-          mpl::identity<T>
-      >
-    { };
-
-//------------------Definition of wrap----------------------------------------//
-
-#ifndef NDNBOOST_NO_SFINAE //----------------------------------------------------//
-    template<typename T>
-    inline T wrap(const T& t NDNBOOST_IOSTREAMS_DISABLE_IF_STREAM(T)) 
-    { return t; }
-
-    template<typename T>
-    inline typename wrapped_type<T>::type
-    wrap(T& t NDNBOOST_IOSTREAMS_ENABLE_IF_STREAM(T)) { return ndnboost::ref(t); }
-#else // #ifndef NDNBOOST_NO_SFINAE //-------------------------------------------//
-    template<typename T>
-    inline typename wrapped_type<T>::type // BCC 5.x needs namespace qualification.
-    wrap_impl(const T& t, mpl::true_) { return ndnboost::ref(const_cast<T&>(t)); }
-
-    template<typename T>
-    inline typename wrapped_type<T>::type // BCC 5.x needs namespace qualification.
-    wrap_impl(T& t, mpl::true_) { return ndnboost::ref(t); }
-
-    template<typename T>
-    inline typename wrapped_type<T>::type 
-    wrap_impl(const T& t, mpl::false_) { return t; }
-
-    template<typename T>
-    inline typename wrapped_type<T>::type 
-    wrap_impl(T& t, mpl::false_) { return t; }
-
-    template<typename T>
-    inline typename wrapped_type<T>::type 
-    wrap(const T& t) { return wrap_impl(t, is_std_io<T>()); }
-
-    template<typename T>
-    inline typename wrapped_type<T>::type 
-    wrap(T& t) { return wrap_impl(t, is_std_io<T>()); }
-#endif // #ifndef NDNBOOST_NO_SFINAE //------------------------------------------//
-
-//------------------Definition of unwrap--------------------------------------//
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310) //----------------------------------//
-
-template<typename T>
-typename unwrapped_type<T>::type& 
-unwrap(const reference_wrapper<T>& ref) { return ref.get(); }
-
-template<typename T>
-typename unwrapped_type<T>::type& unwrap(T& t) { return t; }
-
-template<typename T>
-const typename unwrapped_type<T>::type& unwrap(const T& t) { return t; }
-
-#else // #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310) //-------------------------//
-
-// Since unwrap is a potential bottleneck, we avoid runtime tag dispatch.
-template<bool IsRefWrap>
-struct unwrap_impl;
-
-template<>
-struct unwrap_impl<true> {
-    template<typename T>
-    static typename unwrapped_type<T>::type& unwrap(const T& t) 
-    { return t.get(); }
-};
-
-template<>
-struct unwrap_impl<false> {
-    template<typename T>
-    static typename unwrapped_type<T>::type& unwrap(const T& t) 
-    { return const_cast<T&>(t); }
-};
-
-template<typename T>
-typename unwrapped_type<T>::type& 
-unwrap(const T& t) 
-{ return unwrap_impl<is_reference_wrapper<T>::value>::unwrap(t); }
-
-#endif // #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310) //------------------------//
-
-} } } // End namespaces detail, iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_DETAIL_WRAP_UNWRAP_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/device/array.hpp b/include/ndnboost/iostreams/device/array.hpp
deleted file mode 100644
index f4eb39e..0000000
--- a/include/ndnboost/iostreams/device/array.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2004-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_ARRAY_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_ARRAY_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>         // NDNBOOST_MSVC, make sure size_t is in std.
-#include <ndnboost/detail/workaround.hpp>
-#include <cstddef>                  // std::size_t.
-#include <utility>                  // pair.
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename Mode, typename Ch>
-class array_adapter {
-public:
-    typedef Ch                                 char_type;
-    typedef std::pair<char_type*, char_type*>  pair_type;
-    struct category
-        : public Mode,
-          public device_tag,
-          public direct_tag
-        { };
-    array_adapter(char_type* begin, char_type* end);
-    array_adapter(char_type* begin, std::size_t length);
-    array_adapter(const char_type* begin, const char_type* end);
-    array_adapter(const char_type* begin, std::size_t length);
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    template<int N>
-    array_adapter(char_type (&ar)[N])
-        : begin_(ar), end_(ar + N) 
-        { }
-#endif
-    pair_type input_sequence();
-    pair_type output_sequence();
-private:
-    char_type* begin_;
-    char_type* end_;
-};
-
-} // End namespace detail.
-
-// Local macros, #undef'd below.
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-# define NDNBOOST_IOSTREAMS_ARRAY_CTOR(name, ch) \
-    template<int N> \
-    NDNBOOST_PP_CAT(basic_, name)(ch (&ar)[N]) \
-        : base_type(ar) { } \
-    /**/
-#else
-# define NDNBOOST_IOSTREAMS_ARRAY_CTOR(name, ch)
-#endif
-#define NDNBOOST_IOSTREAMS_ARRAY(name, mode) \
-    template<typename Ch> \
-    struct NDNBOOST_PP_CAT(basic_, name) : detail::array_adapter<mode, Ch> { \
-    private: \
-        typedef detail::array_adapter<mode, Ch>  base_type; \
-    public: \
-        typedef typename base_type::char_type    char_type; \
-        typedef typename base_type::category     category; \
-        NDNBOOST_PP_CAT(basic_, name)(char_type* begin, char_type* end) \
-            : base_type(begin, end) { } \
-        NDNBOOST_PP_CAT(basic_, name)(char_type* begin, std::size_t length) \
-            : base_type(begin, length) { } \
-        NDNBOOST_PP_CAT(basic_, name)(const char_type* begin, const char_type* end) \
-            : base_type(begin, end) { } \
-        NDNBOOST_PP_CAT(basic_, name)(const char_type* begin, std::size_t length) \
-            : base_type(begin, length) { } \
-        NDNBOOST_IOSTREAMS_ARRAY_CTOR(name, Ch) \
-    }; \
-    typedef NDNBOOST_PP_CAT(basic_, name)<char>     name; \
-    typedef NDNBOOST_PP_CAT(basic_, name)<wchar_t>  NDNBOOST_PP_CAT(w, name); \
-    /**/
-NDNBOOST_IOSTREAMS_ARRAY(array_source, input_seekable)
-NDNBOOST_IOSTREAMS_ARRAY(array_sink, output_seekable)
-NDNBOOST_IOSTREAMS_ARRAY(array, seekable)
-#undef NDNBOOST_IOSTREAMS_ARRAY_CTOR
-#undef NDNBOOST_IOSTREAMS_ARRAY
-
-
-//------------------Implementation of array_adapter---------------------------//
-
-namespace detail {
-
-template<typename Mode, typename Ch>
-array_adapter<Mode, Ch>::array_adapter
-    (char_type* begin, char_type* end) 
-    : begin_(begin), end_(end) 
-    { }
-
-template<typename Mode, typename Ch>
-array_adapter<Mode, Ch>::array_adapter
-    (char_type* begin, std::size_t length) 
-    : begin_(begin), end_(begin + length) 
-    { }
-
-template<typename Mode, typename Ch>
-array_adapter<Mode, Ch>::array_adapter
-    (const char_type* begin, const char_type* end) 
-    : begin_(const_cast<char_type*>(begin)),  // Treated as read-only.
-      end_(const_cast<char_type*>(end))       // Treated as read-only.
-{ NDNBOOST_STATIC_ASSERT((!is_convertible<Mode, output>::value)); }
-
-template<typename Mode, typename Ch>
-array_adapter<Mode, Ch>::array_adapter
-    (const char_type* begin, std::size_t length) 
-    : begin_(const_cast<char_type*>(begin)),       // Treated as read-only.
-      end_(const_cast<char_type*>(begin) + length) // Treated as read-only.
-{ NDNBOOST_STATIC_ASSERT((!is_convertible<Mode, output>::value)); }
-
-template<typename Mode, typename Ch>
-typename array_adapter<Mode, Ch>::pair_type
-array_adapter<Mode, Ch>::input_sequence()
-{ NDNBOOST_STATIC_ASSERT((is_convertible<Mode, input>::value));
-  return pair_type(begin_, end_); }
-
-template<typename Mode, typename Ch>
-typename array_adapter<Mode, Ch>::pair_type
-array_adapter<Mode, Ch>::output_sequence()
-{ NDNBOOST_STATIC_ASSERT((is_convertible<Mode, output>::value));
-  return pair_type(begin_, end_); }
-
-} // End namespace detail.
-
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_ARRAY_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/device/back_inserter.hpp b/include/ndnboost/iostreams/device/back_inserter.hpp
deleted file mode 100644
index 3daace6..0000000
--- a/include/ndnboost/iostreams/device/back_inserter.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_BACK_INSERTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_BACK_INSERTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/detail/ios.hpp> // streamsize.
-#include <ndnboost/iostreams/categories.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-template<typename Container>
-class back_insert_device {
-public:
-    typedef typename Container::value_type  char_type;
-    typedef sink_tag                        category;
-    back_insert_device(Container& cnt) : container(&cnt) { }
-    std::streamsize write(const char_type* s, std::streamsize n)
-    { 
-        container->insert(container->end(), s, s + n); 
-        return n;
-    }
-protected:
-    Container* container;
-};
-
-template<typename Container>
-back_insert_device<Container> back_inserter(Container& cnt)
-{ return back_insert_device<Container>(cnt); }
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_BACK_INSERTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/device/file.hpp b/include/ndnboost/iostreams/device/file.hpp
deleted file mode 100644
index b8c85f2..0000000
--- a/include/ndnboost/iostreams/device/file.hpp
+++ /dev/null
@@ -1,191 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_FILE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_FILE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-# include <locale>
-#endif
-#include <string>                               // pathnames, char_traits.
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>       // openmode, seekdir, int types.
-#include <ndnboost/iostreams/detail/fstream.hpp>
-#include <ndnboost/iostreams/operations.hpp>       // seek.
-#include <ndnboost/shared_ptr.hpp>      
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-namespace ndnboost { namespace iostreams {
-
-template<typename Ch>
-class basic_file {
-public:
-    typedef Ch char_type;
-    struct category
-        : public seekable_device_tag,
-          public closable_tag,
-          public localizable_tag,
-          public flushable_tag
-        { };
-    basic_file( const std::string& path,
-                NDNBOOST_IOS::openmode mode =
-                    NDNBOOST_IOS::in | NDNBOOST_IOS::out,
-                NDNBOOST_IOS::openmode base_mode =
-                    NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-    std::streamsize read(char_type* s, std::streamsize n);
-    bool putback(char_type c);
-    std::streamsize write(const char_type* s, std::streamsize n);
-    std::streampos seek( stream_offset off, NDNBOOST_IOS::seekdir way, 
-                         NDNBOOST_IOS::openmode which = 
-                             NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-    void open( const std::string& path,
-               NDNBOOST_IOS::openmode mode =
-                   NDNBOOST_IOS::in | NDNBOOST_IOS::out,
-               NDNBOOST_IOS::openmode base_mode =
-                   NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-    bool is_open() const;
-    void close();
-    bool flush();
-#ifndef NDNBOOST_IOSTREAMS_NO_LOCALE
-    void imbue(const std::locale& loc) { pimpl_->file_.pubimbue(loc);  }
-#endif
-private:
-    struct impl {
-        impl(const std::string& path, NDNBOOST_IOS::openmode mode)
-            { file_.open(path.c_str(), mode); }
-        ~impl() { if (file_.is_open()) file_.close(); }
-        NDNBOOST_IOSTREAMS_BASIC_FILEBUF(Ch) file_;
-    };
-    shared_ptr<impl> pimpl_;
-};
-
-typedef basic_file<char>     file;
-typedef basic_file<wchar_t>  wfile;
-
-template<typename Ch>
-struct basic_file_source : private basic_file<Ch> {
-    typedef Ch char_type;
-    struct category
-        : input_seekable,
-          device_tag,
-          closable_tag
-        { };
-    using basic_file<Ch>::read;
-    using basic_file<Ch>::putback;
-    using basic_file<Ch>::seek;
-    using basic_file<Ch>::is_open;
-    using basic_file<Ch>::close;
-    basic_file_source( const std::string& path,
-                       NDNBOOST_IOS::openmode mode = 
-                           NDNBOOST_IOS::in )
-        : basic_file<Ch>(path, mode & ~NDNBOOST_IOS::out, NDNBOOST_IOS::in)
-        { }
-    void open( const std::string& path,
-               NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::in )
-    {
-        basic_file<Ch>::open(path, mode & ~NDNBOOST_IOS::out, NDNBOOST_IOS::in);
-    }
-};
-
-typedef basic_file_source<char>     file_source;
-typedef basic_file_source<wchar_t>  wfile_source;
-
-template<typename Ch>
-struct basic_file_sink : private basic_file<Ch> {
-    typedef Ch char_type;
-    struct category
-        : output_seekable,
-          device_tag,
-          closable_tag,
-          flushable_tag
-        { };
-    using basic_file<Ch>::write;
-    using basic_file<Ch>::seek;
-    using basic_file<Ch>::is_open;
-    using basic_file<Ch>::close;
-    using basic_file<Ch>::flush;
-    basic_file_sink( const std::string& path,
-                     NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::out )
-        : basic_file<Ch>(path, mode & ~NDNBOOST_IOS::in, NDNBOOST_IOS::out)
-        { }
-    void open( const std::string& path,
-               NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::out )
-    {
-        basic_file<Ch>::open(path, mode & ~NDNBOOST_IOS::in, NDNBOOST_IOS::out);
-    }
-};
-
-typedef basic_file_sink<char>     file_sink;
-typedef basic_file_sink<wchar_t>  wfile_sink;
-                                 
-//------------------Implementation of basic_file------------------------------//
-
-template<typename Ch>
-basic_file<Ch>::basic_file
-    ( const std::string& path, NDNBOOST_IOS::openmode mode, 
-      NDNBOOST_IOS::openmode base_mode )
-{ 
-    open(path, mode, base_mode);
-}
-
-template<typename Ch>
-inline std::streamsize basic_file<Ch>::read
-    (char_type* s, std::streamsize n)
-{ 
-    std::streamsize result = pimpl_->file_.sgetn(s, n); 
-    return result != 0 ? result : -1;
-}
-
-template<typename Ch>
-inline bool basic_file<Ch>::putback(char_type c)
-{ 
-    return !!pimpl_->file_.sputbackc(c); 
-}
-
-template<typename Ch>
-inline std::streamsize basic_file<Ch>::write
-    (const char_type* s, std::streamsize n)
-{ return pimpl_->file_.sputn(s, n); }
-
-template<typename Ch>
-std::streampos basic_file<Ch>::seek
-    ( stream_offset off, NDNBOOST_IOS::seekdir way, 
-      NDNBOOST_IOS::openmode )
-{ return iostreams::seek(pimpl_->file_, off, way); }
-
-template<typename Ch>
-void basic_file<Ch>::open
-    ( const std::string& path, NDNBOOST_IOS::openmode mode, 
-      NDNBOOST_IOS::openmode base_mode )
-{ 
-    pimpl_.reset(new impl(path, mode | base_mode));
-}
-
-template<typename Ch>
-bool basic_file<Ch>::is_open() const { return pimpl_->file_.is_open(); }
-
-template<typename Ch>
-void basic_file<Ch>::close() { pimpl_->file_.close(); }
-
-template<typename Ch>
-bool basic_file<Ch>::flush()
-{ return pimpl_->file_.NDNBOOST_IOSTREAMS_PUBSYNC() == 0; }
-
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp> // MSVC
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_FILE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/device/file_descriptor.hpp b/include/ndnboost/iostreams/device/file_descriptor.hpp
deleted file mode 100644
index 165a89e..0000000
--- a/include/ndnboost/iostreams/device/file_descriptor.hpp
+++ /dev/null
@@ -1,318 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Inspired by fdstream.hpp, (C) Copyright Nicolai M. Josuttis 2001,
-// available at http://www.josuttis.com/cppcode/fdstream.html.
-
-#ifndef NDNBOOST_IOSTREAMS_FILE_DESCRIPTOR_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_FILE_DESCRIPTOR_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <string>
-#include <ndnboost/cstdint.hpp>               // intmax_t.
-#include <ndnboost/iostreams/categories.hpp>  // tags.
-#include <ndnboost/iostreams/detail/config/auto_link.hpp>
-#include <ndnboost/iostreams/detail/config/dyn_link.hpp>
-#include <ndnboost/iostreams/detail/config/windows_posix.hpp>
-#include <ndnboost/iostreams/detail/file_handle.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // openmode, seekdir, int types.
-#include <ndnboost/iostreams/detail/path.hpp>
-#include <ndnboost/iostreams/positioning.hpp>
-#include <ndnboost/shared_ptr.hpp>
-
-// Must come last.
-#include <ndnboost/config/abi_prefix.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-// Forward declarations
-class file_descriptor_source;
-class file_descriptor_sink;
-namespace detail { struct file_descriptor_impl; }
-
-enum file_descriptor_flags
-{
-    never_close_handle = 0,
-    close_handle = 3
-};
-
-class NDNBOOST_IOSTREAMS_DECL file_descriptor {
-public:
-    friend class file_descriptor_source;
-    friend class file_descriptor_sink;
-    typedef detail::file_handle  handle_type;
-    typedef char                 char_type;
-    struct category
-        : seekable_device_tag,
-          closable_tag
-        { };
-
-    // Default constructor
-    file_descriptor();
-
-    // Constructors taking file desciptors
-    file_descriptor(handle_type fd, file_descriptor_flags);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    file_descriptor(int fd, file_descriptor_flags);
-#endif
-
-#if defined(NDNBOOST_IOSTREAMS_USE_DEPRECATED)
-    // Constructors taking file desciptors
-    explicit file_descriptor(handle_type fd, bool close_on_exit = false);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    explicit file_descriptor(int fd, bool close_on_exit = false);
-#endif
-#endif
-
-    // Constructor taking a std:: string
-    explicit file_descriptor( const std::string& path,
-                              NDNBOOST_IOS::openmode mode =
-                                  NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-
-    // Constructor taking a C-style string
-    explicit file_descriptor( const char* path,
-                              NDNBOOST_IOS::openmode mode =
-                                  NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-
-    // Constructor taking a Boost.Filesystem path
-    template<typename Path>
-    explicit file_descriptor( const Path& path,
-                              NDNBOOST_IOS::openmode mode =
-                                  NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-    { 
-        init();
-        open(detail::path(path), mode); 
-    }
-
-    // Copy constructor
-    file_descriptor(const file_descriptor& other);
-
-    // open overloads taking file descriptors
-    void open(handle_type fd, file_descriptor_flags);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    void open(int fd, file_descriptor_flags);
-#endif
-
-#if defined(NDNBOOST_IOSTREAMS_USE_DEPRECATED)
-    // open overloads taking file descriptors
-    void open(handle_type fd, bool close_on_exit = false);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    void open(int fd, bool close_on_exit = false);
-#endif
-#endif
-
-    // open overload taking a std::string
-    void open( const std::string& path,
-               NDNBOOST_IOS::openmode mode =
-                   NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-
-    // open overload taking C-style string
-    void open( const char* path,
-               NDNBOOST_IOS::openmode mode =
-                   NDNBOOST_IOS::in | NDNBOOST_IOS::out );
-
-    // open overload taking a Boost.Filesystem path
-    template<typename Path>
-    void open( const Path& path,
-               NDNBOOST_IOS::openmode mode =
-                   NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-    { open(detail::path(path), mode); }
-
-    bool is_open() const;
-    void close();
-    std::streamsize read(char_type* s, std::streamsize n);
-    std::streamsize write(const char_type* s, std::streamsize n);
-    std::streampos seek(stream_offset off, NDNBOOST_IOS::seekdir way);
-    handle_type handle() const;
-private:
-    void init();
-
-    // open overload taking a detail::path
-    void open( const detail::path& path, 
-               NDNBOOST_IOS::openmode, 
-               NDNBOOST_IOS::openmode = NDNBOOST_IOS::openmode(0) );
-
-    typedef detail::file_descriptor_impl impl_type;
-    shared_ptr<impl_type> pimpl_;
-};
-
-class NDNBOOST_IOSTREAMS_DECL file_descriptor_source : private file_descriptor {
-public:
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    typedef void*  handle_type;  // A.k.a HANDLE
-#else
-    typedef int    handle_type;
-#endif
-    typedef char   char_type;
-    struct category
-      : input_seekable,
-        device_tag,
-        closable_tag
-      { };
-    using file_descriptor::is_open;
-    using file_descriptor::close;
-    using file_descriptor::read;
-    using file_descriptor::seek;
-    using file_descriptor::handle;
-
-    // Default constructor
-    file_descriptor_source() { }
-
-    // Constructors taking file desciptors
-    explicit file_descriptor_source(handle_type fd, file_descriptor_flags);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    explicit file_descriptor_source(int fd, file_descriptor_flags);
-#endif
-
-#if defined(NDNBOOST_IOSTREAMS_USE_DEPRECATED)
-    // Constructors taking file desciptors
-    explicit file_descriptor_source(handle_type fd, bool close_on_exit = false);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    explicit file_descriptor_source(int fd, bool close_on_exit = false);
-#endif
-#endif
-
-    // Constructor taking a std:: string
-    explicit file_descriptor_source( const std::string& path,
-                                     NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::in );
-
-    // Constructor taking a C-style string
-    explicit file_descriptor_source( const char* path,
-                                     NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::in );
-
-    // Constructor taking a Boost.Filesystem path
-    template<typename Path>
-    explicit file_descriptor_source( const Path& path,
-                                     NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::in )
-    { open(detail::path(path), mode); }
-
-    // Copy constructor
-    file_descriptor_source(const file_descriptor_source& other);
-
-    // Constructors taking file desciptors
-    void open(handle_type fd, file_descriptor_flags);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    void open(int fd, file_descriptor_flags);
-#endif
-
-#if defined(NDNBOOST_IOSTREAMS_USE_DEPRECATED)
-    // open overloads taking file descriptors
-    void open(handle_type fd, bool close_on_exit = false);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    void open(int fd, bool close_on_exit = false);
-#endif
-#endif
-
-    // open overload taking a std::string
-    void open(const std::string& path, NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::in);
-
-    // open overload taking C-style string
-    void open(const char* path, NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::in);
-
-    // open overload taking a Boost.Filesystem path
-    template<typename Path>
-    void open(const Path& path, NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::in);
-private:
-
-    // open overload taking a detail::path
-    void open(const detail::path& path, NDNBOOST_IOS::openmode);
-};
-
-class NDNBOOST_IOSTREAMS_DECL file_descriptor_sink : private file_descriptor {
-public:
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    typedef void*  handle_type;  // A.k.a HANDLE
-#else
-    typedef int    handle_type;
-#endif
-    typedef char   char_type;
-    struct category
-      : output_seekable,
-        device_tag,
-        closable_tag
-      { };
-    using file_descriptor::is_open;
-    using file_descriptor::close;
-    using file_descriptor::write;
-    using file_descriptor::seek;
-    using file_descriptor::handle;
-
-    // Default constructor
-    file_descriptor_sink() { }
-
-    // Constructors taking file desciptors
-    file_descriptor_sink(handle_type fd, file_descriptor_flags);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    file_descriptor_sink(int fd, file_descriptor_flags);
-#endif
-
-#if defined(NDNBOOST_IOSTREAMS_USE_DEPRECATED)
-    // Constructors taking file desciptors
-    explicit file_descriptor_sink(handle_type fd, bool close_on_exit = false);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    explicit file_descriptor_sink(int fd, bool close_on_exit = false);
-#endif
-#endif
-
-    // Constructor taking a std:: string
-    explicit file_descriptor_sink( const std::string& path,
-                                   NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::out );
-
-    // Constructor taking a C-style string
-    explicit file_descriptor_sink( const char* path,
-                                   NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::out );
-
-    // Constructor taking a Boost.Filesystem path
-    template<typename Path>
-    explicit file_descriptor_sink( const Path& path,
-                                   NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::out )
-    { open(detail::path(path), mode); }
-
-    // Copy constructor
-    file_descriptor_sink(const file_descriptor_sink& other);
-
-    // open overloads taking file descriptors
-    void open(handle_type fd, file_descriptor_flags);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    void open(int fd, file_descriptor_flags);
-#endif
-
-#if defined(NDNBOOST_IOSTREAMS_USE_DEPRECATED)
-    // open overloads taking file descriptors
-    void open(handle_type fd, bool close_on_exit = false);
-#ifdef NDNBOOST_IOSTREAMS_WINDOWS
-    void open(int fd, bool close_on_exit = false);
-#endif
-#endif
-
-    // open overload taking a std::string
-    void open( const std::string& path, 
-               NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::out );
-
-    // open overload taking C-style string
-    void open( const char* path, 
-               NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::out );
-
-    // open overload taking a Boost.Filesystem path
-    template<typename Path>
-    void open( const Path& path, 
-               NDNBOOST_IOS::openmode mode = NDNBOOST_IOS::out )
-    { open(detail::path(path), mode); }
-private:
-
-    // open overload taking a detail::path
-    void open(const detail::path& path, NDNBOOST_IOS::openmode);
-};
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/config/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_FILE_DESCRIPTOR_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/device/mapped_file.hpp b/include/ndnboost/iostreams/device/mapped_file.hpp
deleted file mode 100644
index f8fbd55..0000000
--- a/include/ndnboost/iostreams/device/mapped_file.hpp
+++ /dev/null
@@ -1,599 +0,0 @@
-// (C) Copyright Jorge Lodos 2008.
-// (C) Copyright Jonathan Turkanis 2003.
-// (C) Copyright Craig Henderson 2002.   'boost/memmap.hpp' from sandbox
-// 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 NDNBOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>                   // make sure size_t is in std.
-#include <cstddef>                            // size_t.
-#include <string>                             // pathnames.
-#include <utility>                            // pair.
-#include <ndnboost/config.hpp>                   // NDNBOOST_MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/close.hpp>
-#include <ndnboost/iostreams/concepts.hpp>
-#include <ndnboost/iostreams/detail/config/auto_link.hpp>
-#include <ndnboost/iostreams/detail/config/dyn_link.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>     // openmode, failure
-#include <ndnboost/iostreams/detail/path.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>
-#include <ndnboost/iostreams/positioning.hpp>
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-// Must come last.
-#include <ndnboost/config/abi_prefix.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-//------------------Definition of mapped_file_base and mapped_file_params-----//
-
-// Forward declarations
-class mapped_file_source;
-class mapped_file_sink;
-class mapped_file;
-namespace detail { class mapped_file_impl; }
-
-class mapped_file_base {
-public:
-    enum mapmode {
-        readonly = 1,
-        readwrite = 2,
-        priv = 4
-    };
-};
-
-// Bitmask operations for mapped_file_base::mapmode
-mapped_file_base::mapmode 
-operator|(mapped_file_base::mapmode a, mapped_file_base::mapmode b);
-
-mapped_file_base::mapmode 
-operator&(mapped_file_base::mapmode a, mapped_file_base::mapmode b);
-
-mapped_file_base::mapmode 
-operator^(mapped_file_base::mapmode a, mapped_file_base::mapmode b);
-
-mapped_file_base::mapmode 
-operator~(mapped_file_base::mapmode a);
-
-mapped_file_base::mapmode 
-operator|=(mapped_file_base::mapmode& a, mapped_file_base::mapmode b);
-
-mapped_file_base::mapmode 
-operator&=(mapped_file_base::mapmode& a, mapped_file_base::mapmode b);
-
-mapped_file_base::mapmode 
-operator^=(mapped_file_base::mapmode& a, mapped_file_base::mapmode b);
-
-//------------------Definition of mapped_file_params--------------------------//
-
-namespace detail {
-
-struct mapped_file_params_base {
-    mapped_file_params_base()
-        : flags(static_cast<mapped_file_base::mapmode>(0)), 
-          mode(), offset(0), length(static_cast<std::size_t>(-1)), 
-          new_file_size(0), hint(0)
-        { }
-private:
-    friend class mapped_file_impl;
-    void normalize();
-public:
-    mapped_file_base::mapmode   flags;
-    NDNBOOST_IOS::openmode         mode;  // Deprecated
-    stream_offset               offset;
-    std::size_t                 length;
-    stream_offset               new_file_size;
-    const char*                 hint;
-};
-
-} // End namespace detail.
-
-// This template allows Boost.Filesystem paths to be specified when creating or
-// reopening a memory mapped file, without creating a dependence on
-// Boost.Filesystem. Possible values of Path include std::string,
-// ndnboost::filesystem::path, ndnboost::filesystem::wpath, 
-// and ndnboost::iostreams::detail::path (used to store either a std::string or a
-// std::wstring).
-template<typename Path>
-struct basic_mapped_file_params 
-    : detail::mapped_file_params_base 
-{
-    typedef detail::mapped_file_params_base base_type;
-
-    // For wide paths, instantiate basic_mapped_file_params 
-    // with ndnboost::filesystem::wpath
-#ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS
-    NDNBOOST_STATIC_ASSERT((!is_same<Path, std::wstring>::value));
-#endif
-
-    // Default constructor
-    basic_mapped_file_params() { }
-
-    // Construction from a Path
-    explicit basic_mapped_file_params(const Path& p) : path(p) { }
-
-    // Construction from a path of a different type
-    template<typename PathT>
-    explicit basic_mapped_file_params(const PathT& p) : path(p) { }
-
-    // Copy constructor
-    basic_mapped_file_params(const basic_mapped_file_params& other)
-        : base_type(other), path(other.path)
-        { }
-
-    // Templated copy constructor
-    template<typename PathT>
-    basic_mapped_file_params(const basic_mapped_file_params<PathT>& other)
-        : base_type(other), path(other.path)
-        { }
-
-    typedef Path  path_type;
-    Path          path;
-};
-
-typedef basic_mapped_file_params<std::string> mapped_file_params;
-
-//------------------Definition of mapped_file_source--------------------------//
-
-class NDNBOOST_IOSTREAMS_DECL mapped_file_source : public mapped_file_base {
-private:
-    struct safe_bool_helper { int x; };
-    typedef int safe_bool_helper::*                 safe_bool;
-    typedef detail::mapped_file_impl                impl_type;
-    typedef basic_mapped_file_params<detail::path>  param_type;
-    friend class mapped_file;
-    friend class detail::mapped_file_impl;
-    friend struct ndnboost::iostreams::operations<mapped_file_source>;
-public:
-    typedef char                                    char_type;
-    struct category
-        : public source_tag,
-          public direct_tag,
-          public closable_tag
-        { };
-    typedef std::size_t                             size_type;
-    typedef const char*                             iterator;
-    NDNBOOST_STATIC_CONSTANT(size_type, max_length = static_cast<size_type>(-1));
-
-    // Default constructor
-    mapped_file_source();
-
-    // Constructor taking a parameters object
-    template<typename Path>
-    explicit mapped_file_source(const basic_mapped_file_params<Path>& p);
-
-    // Constructor taking a list of parameters
-    template<typename Path>
-    explicit mapped_file_source( const Path& path,
-                                 size_type length = max_length,
-                                 ndnboost::intmax_t offset = 0 );
-
-    // Copy Constructor
-    mapped_file_source(const mapped_file_source& other);
-
-    //--------------Stream interface------------------------------------------//
-
-    template<typename Path>
-    void open(const basic_mapped_file_params<Path>& p);
-
-    template<typename Path>
-    void open( const Path& path,
-               size_type length = max_length,
-               ndnboost::intmax_t offset = 0 );
-
-    bool is_open() const;
-    void close();
-    operator safe_bool() const;
-    bool operator!() const;
-    mapmode flags() const;
-
-    //--------------Container interface---------------------------------------//
-
-    size_type size() const;
-    const char* data() const;
-    iterator begin() const;
-    iterator end() const;
-
-    //--------------Query admissible offsets----------------------------------//
-
-    // Returns the allocation granularity for virtual memory. Values passed
-    // as offsets must be multiples of this value.
-    static int alignment();
-
-private:
-    void init();
-    void open_impl(const param_type& p);
-
-    ndnboost::shared_ptr<impl_type> pimpl_;
-};
-
-//------------------Definition of mapped_file---------------------------------//
-
-class NDNBOOST_IOSTREAMS_DECL mapped_file : public mapped_file_base {
-private:
-    typedef mapped_file_source                      delegate_type;
-    typedef delegate_type::safe_bool                safe_bool;
-    typedef basic_mapped_file_params<detail::path>  param_type;
-    friend struct ndnboost::iostreams::operations<mapped_file >;
-    friend class mapped_file_sink;
-public:
-    typedef char                                    char_type;
-    struct category
-        : public seekable_device_tag,
-          public direct_tag,
-          public closable_tag
-        { };
-    typedef mapped_file_source::size_type           size_type;
-    typedef char*                                   iterator;
-    typedef const char*                             const_iterator;
-    NDNBOOST_STATIC_CONSTANT(size_type, max_length = delegate_type::max_length);
-
-    // Default constructor
-    mapped_file() { }
-
-    // Construstor taking a parameters object
-    template<typename Path>
-    explicit mapped_file(const basic_mapped_file_params<Path>& p);
-
-    // Constructor taking a list of parameters
-    template<typename Path>
-    mapped_file( const Path& path,
-                 mapmode flags,
-                 size_type length = max_length,
-                 stream_offset offset = 0 );
-
-    // Constructor taking a list of parameters, including a 
-    // std::ios_base::openmode (deprecated)
-    template<typename Path>
-    explicit mapped_file( const Path& path,
-                          NDNBOOST_IOS::openmode mode =
-                              NDNBOOST_IOS::in | NDNBOOST_IOS::out,
-                          size_type length = max_length,
-                          stream_offset offset = 0 );
-
-    // Copy Constructor
-    mapped_file(const mapped_file& other);
-
-    //--------------Conversion to mapped_file_source (deprecated)-------------//
-
-    operator mapped_file_source&() { return delegate_; }
-    operator const mapped_file_source&() const { return delegate_; }
-
-    //--------------Stream interface------------------------------------------//
-
-    // open overload taking a parameters object
-    template<typename Path>
-    void open(const basic_mapped_file_params<Path>& p);
-
-    // open overload taking a list of parameters
-    template<typename Path>
-    void open( const Path& path,
-               mapmode mode,
-               size_type length = max_length,
-               stream_offset offset = 0 );
-
-    // open overload taking a list of parameters, including a 
-    // std::ios_base::openmode (deprecated)
-    template<typename Path>
-    void open( const Path& path,
-               NDNBOOST_IOS::openmode mode =
-                   NDNBOOST_IOS::in | NDNBOOST_IOS::out,
-               size_type length = max_length,
-               stream_offset offset = 0 );
-
-    bool is_open() const { return delegate_.is_open(); }
-    void close() { delegate_.close(); }
-    operator safe_bool() const { return delegate_; }
-    bool operator!() const { return !delegate_; }
-    mapmode flags() const { return delegate_.flags(); }
-
-    //--------------Container interface---------------------------------------//
-
-    size_type size() const { return delegate_.size(); }
-    char* data() const;
-    const char* const_data() const { return delegate_.data(); }
-    iterator begin() const { return data(); }
-    const_iterator const_begin() const { return const_data(); }
-    iterator end() const { return data() + size(); }
-    const_iterator const_end() const { return const_data() + size(); }
-
-    //--------------Query admissible offsets----------------------------------//
-
-    // Returns the allocation granularity for virtual memory. Values passed
-    // as offsets must be multiples of this value.
-    static int alignment() { return mapped_file_source::alignment(); }
-
-    //--------------File access----------------------------------------------//
-
-    void resize(stream_offset new_size);
-private:
-    delegate_type delegate_;
-};
-
-//------------------Definition of mapped_file_sink----------------------------//
-
-class NDNBOOST_IOSTREAMS_DECL mapped_file_sink : private mapped_file {
-public:
-    friend struct ndnboost::iostreams::operations<mapped_file_sink>;
-    using mapped_file::mapmode;
-    using mapped_file::readonly;
-    using mapped_file::readwrite;
-    using mapped_file::priv;
-    using mapped_file::char_type;
-    struct category
-        : public sink_tag,
-          public direct_tag,
-          public closable_tag
-        { };
-    using mapped_file::size_type;
-    using mapped_file::iterator;
-    using mapped_file::max_length;
-    using mapped_file::is_open;
-    using mapped_file::close;
-    using mapped_file::operator safe_bool;
-    using mapped_file::operator !;
-    using mapped_file::flags;
-    using mapped_file::size;
-    using mapped_file::data;
-    using mapped_file::begin;
-    using mapped_file::end;
-    using mapped_file::alignment;
-    using mapped_file::resize;
-
-    // Default constructor
-    mapped_file_sink() { }
-
-    // Constructor taking a parameters object
-    template<typename Path>
-    explicit mapped_file_sink(const basic_mapped_file_params<Path>& p);
-
-    // Constructor taking a list of parameters
-    template<typename Path>
-    explicit mapped_file_sink( const Path& path,
-                               size_type length = max_length,
-                               ndnboost::intmax_t offset = 0,
-                               mapmode flags = readwrite );
-
-    // Copy Constructor
-    mapped_file_sink(const mapped_file_sink& other);
-
-    // open overload taking a parameters object
-    template<typename Path>
-    void open(const basic_mapped_file_params<Path>& p);
-
-    // open overload taking a list of parameters
-    template<typename Path>
-    void open( const Path& path,
-               size_type length = max_length,
-               ndnboost::intmax_t offset = 0,
-               mapmode flags = readwrite );
-};
-
-//------------------Implementation of mapped_file_source----------------------//
-
-template<typename Path>
-mapped_file_source::mapped_file_source(const basic_mapped_file_params<Path>& p)
-{ init(); open(p); }
-
-template<typename Path>
-mapped_file_source::mapped_file_source( 
-    const Path& path, size_type length, ndnboost::intmax_t offset)
-{ init(); open(path, length, offset); }
-
-template<typename Path>
-void mapped_file_source::open(const basic_mapped_file_params<Path>& p)
-{
-    param_type params(p);
-    if (params.flags) {
-        if (params.flags != mapped_file::readonly)
-            ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("invalid flags"));
-    } else {
-        if (params.mode & NDNBOOST_IOS::out)
-            ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("invalid mode"));
-        params.mode |= NDNBOOST_IOS::in;
-    }
-    open_impl(params);
-}
-
-template<typename Path>
-void mapped_file_source::open(
-    const Path& path, size_type length, ndnboost::intmax_t offset)
-{
-    param_type p(path);
-    p.length = length;
-    p.offset = offset;
-    open(p);
-}
-
-//------------------Implementation of mapped_file-----------------------------//
-
-template<typename Path>
-mapped_file::mapped_file(const basic_mapped_file_params<Path>& p)
-{ open(p); }
-
-template<typename Path>
-mapped_file::mapped_file( 
-    const Path& path, mapmode flags, 
-    size_type length, stream_offset offset )
-{ open(path, flags, length, offset); }
-
-template<typename Path>
-mapped_file::mapped_file( 
-    const Path& path, NDNBOOST_IOS::openmode mode, 
-    size_type length, stream_offset offset )
-{ open(path, mode, length, offset); }
-
-template<typename Path>
-void mapped_file::open(const basic_mapped_file_params<Path>& p)
-{ delegate_.open_impl(p); }
-
-template<typename Path>
-void mapped_file::open( 
-    const Path& path, mapmode flags, 
-    size_type length, stream_offset offset )
-{
-    param_type p(path);
-    p.flags = flags;
-    p.length = length;
-    p.offset = offset;
-    open(p);
-}
-
-template<typename Path>
-void mapped_file::open( 
-    const Path& path, NDNBOOST_IOS::openmode mode, 
-    size_type length, stream_offset offset )
-{
-    param_type p(path);
-    p.mode = mode;
-    p.length = length;
-    p.offset = offset;
-    open(p);
-}
-
-inline char* mapped_file::data() const 
-{ return (flags() != readonly) ? const_cast<char*>(delegate_.data()) : 0; }
-
-//------------------Implementation of mapped_file_sink------------------------//
-
-template<typename Path>
-mapped_file_sink::mapped_file_sink(const basic_mapped_file_params<Path>& p)
-{ open(p); }
-
-template<typename Path>
-mapped_file_sink::mapped_file_sink(
-    const Path& path, size_type length,
-    ndnboost::intmax_t offset, mapmode flags )
-{ open(path, length, offset, flags); }
-
-template<typename Path>
-void mapped_file_sink::open(const basic_mapped_file_params<Path>& p)
-{
-    param_type params(p);
-    if (params.flags) {
-        if (params.flags & mapped_file::readonly)
-            ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("invalid flags"));
-    } else {
-        if (params.mode & NDNBOOST_IOS::in)
-            ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("invalid mode"));
-        params.mode |= NDNBOOST_IOS::out;
-    }
-    mapped_file::open(params);
-}
-
-template<typename Path>
-void mapped_file_sink::open(
-    const Path& path, size_type length,
-    ndnboost::intmax_t offset, mapmode flags )
-{
-    param_type p(path);
-    p.flags = flags;
-    p.length = length;
-    p.offset = offset;
-    open(p);
-}
-
-//------------------Specialization of direct_impl-----------------------------//
-
-template<>
-struct operations<mapped_file_source>
-    : ndnboost::iostreams::detail::close_impl<closable_tag>
-{
-    static std::pair<char*, char*>
-    input_sequence(mapped_file_source& src)
-    {
-        return std::make_pair( const_cast<char*>(src.begin()),
-                               const_cast<char*>(src.end()) );
-    }
-};
-
-template<>
-struct operations<mapped_file>
-    : ndnboost::iostreams::detail::close_impl<closable_tag>
-{
-    static std::pair<char*, char*>
-    input_sequence(mapped_file& file)
-    { 
-        return std::make_pair(file.begin(), file.end()); 
-    }
-    static std::pair<char*, char*>
-    output_sequence(mapped_file& file)
-    { 
-        return std::make_pair(file.begin(), file.end()); 
-    }
-};
-
-template<>
-struct operations<mapped_file_sink>
-    : ndnboost::iostreams::detail::close_impl<closable_tag>
-{
-    static std::pair<char*, char*>
-    output_sequence(mapped_file_sink& sink)
-    { 
-        return std::make_pair(sink.begin(), sink.end()); 
-    }
-};
-                    
-//------------------Definition of mapmode operators---------------------------//
-
-inline mapped_file::mapmode 
-operator|(mapped_file::mapmode a, mapped_file::mapmode b)
-{
-    return static_cast<mapped_file::mapmode>
-        (static_cast<int>(a) | static_cast<int>(b));
-}
-
-inline mapped_file::mapmode 
-operator&(mapped_file::mapmode a, mapped_file::mapmode b)
-{
-    return static_cast<mapped_file::mapmode>
-        (static_cast<int>(a) & static_cast<int>(b));
-}
-
-inline mapped_file::mapmode 
-operator^(mapped_file::mapmode a, mapped_file::mapmode b)
-{
-    return static_cast<mapped_file::mapmode>
-        (static_cast<int>(a) ^ static_cast<int>(b));
-}
-
-inline mapped_file::mapmode
-operator~(mapped_file::mapmode a)
-{
-    return static_cast<mapped_file::mapmode>(~static_cast<int>(a));
-}
-
-inline mapped_file::mapmode 
-operator|=(mapped_file::mapmode& a, mapped_file::mapmode b)
-{
-    return a = a | b;
-}
-
-inline mapped_file::mapmode 
-operator&=(mapped_file::mapmode& a, mapped_file::mapmode b)
-{
-    return a = a & b;
-}
-
-inline mapped_file::mapmode 
-operator^=(mapped_file::mapmode& a, mapped_file::mapmode b)
-{
-    return a = a ^ b;
-}
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/config/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/device/null.hpp b/include/ndnboost/iostreams/device/null.hpp
deleted file mode 100644
index 66abd9b..0000000
--- a/include/ndnboost/iostreams/device/null.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2004-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Inspired by Daryle Walker's nullbuf from his More I/O submission.
-
-#ifndef NDNBOOST_IOSTREAMS_NULL_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_NULL_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp> // openmode, streamsize.
-#include <ndnboost/iostreams/positioning.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-template<typename Ch, typename Mode>
-class basic_null_device {
-public:
-    typedef Ch char_type;
-    struct category
-        : public Mode,
-          public device_tag,
-          public closable_tag
-        { };
-    std::streamsize read(Ch*, std::streamsize) { return 0; }
-    std::streamsize write(const Ch*, std::streamsize n) { return n; }
-    std::streampos seek( stream_offset, NDNBOOST_IOS::seekdir,
-                         NDNBOOST_IOS::openmode = 
-                             NDNBOOST_IOS::in | NDNBOOST_IOS::out ) 
-    { return -1; }
-    void close() { }
-    void close(NDNBOOST_IOS::openmode) { }
-};
-
-template<typename Ch>
-struct basic_null_source : private basic_null_device<Ch, input> {
-    typedef Ch          char_type;
-    typedef source_tag  category;
-    using basic_null_device<Ch, input>::read;
-    using basic_null_device<Ch, input>::close;
-};
-
-typedef basic_null_source<char>     null_source;
-typedef basic_null_source<wchar_t>  wnull_source;
-
-template<typename Ch>
-struct basic_null_sink : private basic_null_device<Ch, output> {
-    typedef Ch        char_type;
-    typedef sink_tag  category;
-    using basic_null_device<Ch, output>::write;
-    using basic_null_device<Ch, output>::close;
-};
-
-typedef basic_null_sink<char>     null_sink;
-typedef basic_null_sink<wchar_t>  wnull_sink;
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_NULL_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/aggregate.hpp b/include/ndnboost/iostreams/filter/aggregate.hpp
deleted file mode 100644
index 3cba05f..0000000
--- a/include/ndnboost/iostreams/filter/aggregate.hpp
+++ /dev/null
@@ -1,168 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_AGGREGATE_FILTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_AGGREGATE_FILTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <algorithm>                          // copy, min.
-#include <ndnboost/assert.hpp>
-#include <iterator>                           // back_inserter
-#include <vector>
-#include <ndnboost/iostreams/constants.hpp>      // default_device_buffer_size 
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>     // openmode, streamsize.
-#include <ndnboost/iostreams/pipeline.hpp>
-#include <ndnboost/iostreams/read.hpp>           // check_eof 
-#include <ndnboost/iostreams/write.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-namespace ndnboost { namespace iostreams {
-
-//
-// Template name: aggregate_filter.
-// Template parameters:
-//      Ch - The character type.
-//      Alloc - The allocator type.
-// Description: Utility for defining DualUseFilters which filter an
-//      entire stream at once. To use, override the protected virtual
-//      member do_filter.
-// Note: This filter should not be copied while it is in use.
-//
-template<typename Ch, typename Alloc = std::allocator<Ch> >
-class aggregate_filter  {
-public:
-    typedef Ch char_type;
-    struct category
-        : dual_use,
-          filter_tag,
-          multichar_tag,
-          closable_tag
-        { };
-    aggregate_filter() : ptr_(0), state_(0) { }
-    virtual ~aggregate_filter() { }
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    {
-        using namespace std;
-        NDNBOOST_ASSERT(!(state_ & f_write));
-        state_ |= f_read;
-        if (!(state_ & f_eof))
-            do_read(src);
-        std::streamsize amt =
-            (std::min)(n, static_cast<std::streamsize>(data_.size() - ptr_));
-        if (amt) {
-            NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)::copy(s, &data_[ptr_], amt);
-            ptr_ += amt;
-        }
-        return detail::check_eof(amt);
-    }
-
-    template<typename Sink>
-    std::streamsize write(Sink&, const char_type* s, std::streamsize n)
-    {
-        NDNBOOST_ASSERT(!(state_ & f_read));
-        state_ |= f_write;
-        data_.insert(data_.end(), s, s + n);
-        return n;
-    }
-
-    template<typename Sink>
-    void close(Sink& sink, NDNBOOST_IOS::openmode which)
-    {
-        if ((state_ & f_read) != 0 && which == NDNBOOST_IOS::in)
-            close_impl();
-        if ((state_ & f_write) != 0 && which == NDNBOOST_IOS::out) {
-            try {
-                vector_type filtered;
-                do_filter(data_, filtered);
-                do_write( 
-                    sink, &filtered[0],
-                    static_cast<std::streamsize>(filtered.size())
-                );
-            } catch (...) {
-                close_impl();
-                throw;
-            }
-            close_impl();
-        }
-    }
-
-protected:
-    typedef std::vector<Ch, Alloc>           vector_type;
-    typedef typename vector_type::size_type  size_type;
-private:
-    virtual void do_filter(const vector_type& src, vector_type& dest) = 0;
-    virtual void do_close() { }
-
-    template<typename Source>
-    void do_read(Source& src)
-    {
-        using std::streamsize;
-        vector_type data;
-        while (true) {
-            const std::streamsize  size = default_device_buffer_size;
-            Ch                     buf[size];
-            std::streamsize        amt;
-            if ((amt = ndnboost::iostreams::read(src, buf, size)) == -1)
-                break;
-            data.insert(data.end(), buf, buf + amt);
-        }
-        do_filter(data, data_);
-        state_ |= f_eof;
-    }
-
-    template<typename Sink>
-    void do_write(Sink& sink, const char_type* s, std::streamsize n) 
-    { 
-        typedef typename iostreams::category_of<Sink>::type  category;
-        typedef is_convertible<category, output>             can_write;
-        do_write(sink, s, n, can_write()); 
-    }
-
-    template<typename Sink>
-    void do_write(Sink& sink, const char_type* s, std::streamsize n, mpl::true_) 
-    { iostreams::write(sink, s, n); }
-
-    template<typename Sink>
-    void do_write(Sink&, const char_type*, std::streamsize, mpl::false_) { }
-
-    void close_impl()
-    {
-        data_.clear();
-        ptr_ = 0;
-        state_ = 0;
-        do_close();
-    }
-
-    enum flag_type {
-        f_read   = 1,
-        f_write  = f_read << 1,
-        f_eof    = f_write << 1
-    };
-
-    // Note: typically will not be copied while vector contains data.
-    vector_type  data_;
-    size_type    ptr_;
-    int          state_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(aggregate_filter, 1)
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>  // MSVC.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_AGGREGATE_FILTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/bzip2.hpp b/include/ndnboost/iostreams/filter/bzip2.hpp
deleted file mode 100644
index f26c4d0..0000000
--- a/include/ndnboost/iostreams/filter/bzip2.hpp
+++ /dev/null
@@ -1,414 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Note: custom allocators are not supported on VC6, since that compiler
-// had trouble finding the function zlib_base::do_init.
-
-#ifndef NDNBOOST_IOSTREAMS_BZIP2_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_BZIP2_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-                   
-#include <cassert>                            
-#include <memory>            // allocator.
-#include <new>               // bad_alloc.
-#include <ndnboost/config.hpp>  // MSVC, STATIC_CONSTANT, DEDUCED_TYPENAME, DINKUM.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/constants.hpp>   // buffer size.
-#include <ndnboost/iostreams/detail/config/auto_link.hpp>
-#include <ndnboost/iostreams/detail/config/bzip2.hpp>
-#include <ndnboost/iostreams/detail/config/dyn_link.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // failure, streamsize.
-#include <ndnboost/iostreams/filter/symmetric.hpp>               
-#include <ndnboost/iostreams/pipeline.hpp>       
-#include <ndnboost/type_traits/is_same.hpp>     
-
-// Must come last.
-#ifdef NDNBOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable:4251 4231 4660)
-#endif
-#include <ndnboost/config/abi_prefix.hpp>           
-
-// Temporary fix.
-#undef small
-
-namespace ndnboost { namespace iostreams {
-
-namespace bzip2 {
-
-                    // Typedefs.
-
-typedef void* (*alloc_func)(void*, int, int);
-typedef void (*free_func)(void*, void*);
-
-                    // Status codes
-
-NDNBOOST_IOSTREAMS_DECL extern const int ok;
-NDNBOOST_IOSTREAMS_DECL extern const int run_ok;
-NDNBOOST_IOSTREAMS_DECL extern const int flush_ok;
-NDNBOOST_IOSTREAMS_DECL extern const int finish_ok;
-NDNBOOST_IOSTREAMS_DECL extern const int stream_end;    
-NDNBOOST_IOSTREAMS_DECL extern const int sequence_error;
-NDNBOOST_IOSTREAMS_DECL extern const int param_error;
-NDNBOOST_IOSTREAMS_DECL extern const int mem_error;
-NDNBOOST_IOSTREAMS_DECL extern const int data_error;
-NDNBOOST_IOSTREAMS_DECL extern const int data_error_magic;
-NDNBOOST_IOSTREAMS_DECL extern const int io_error;
-NDNBOOST_IOSTREAMS_DECL extern const int unexpected_eof;
-NDNBOOST_IOSTREAMS_DECL extern const int outbuff_full;
-NDNBOOST_IOSTREAMS_DECL extern const int config_error;
-
-                    // Action codes
-
-NDNBOOST_IOSTREAMS_DECL extern const int finish;
-NDNBOOST_IOSTREAMS_DECL extern const int run;
-
-                    // Default values
-
-const int default_block_size   = 9;
-const int default_work_factor  = 30;
-const bool default_small       = false;
-
-} // End namespace bzip2. 
-
-//
-// Class name: bzip2_params.
-// Description: Encapsulates the parameters passed to deflateInit2
-//      to customize compression.
-//
-struct bzip2_params {
-
-    // Non-explicit constructor for compression.
-    bzip2_params( int block_size   = bzip2::default_block_size,
-                  int work_factor  = bzip2::default_work_factor )
-        : block_size(block_size), work_factor(work_factor)
-        { }
-
-    // Constructor for decompression.
-    bzip2_params(bool small)
-        : small(small), work_factor(0)
-        { }
-
-    union {
-        int   block_size;    // For compression.
-        bool  small;         // For decompression.
-    };
-    int       work_factor;
-};
-
-//
-// Class name: bzip2_error.
-// Description: Subclass of std::ios_base::failure thrown to indicate
-//     bzip2 errors other than out-of-memory conditions.
-//
-class NDNBOOST_IOSTREAMS_DECL bzip2_error : public NDNBOOST_IOSTREAMS_FAILURE {
-public:
-    explicit bzip2_error(int error);
-    int error() const { return error_; }
-    static void check NDNBOOST_PREVENT_MACRO_SUBSTITUTION(int error);
-private:
-    int error_;
-};
-
-namespace detail {
-
-template<typename Alloc>
-struct bzip2_allocator_traits {
-#ifndef NDNBOOST_NO_STD_ALLOCATOR
-    typedef typename Alloc::template rebind<char>::other type;
-#else
-    typedef std::allocator<char> type;
-#endif
-};
-
-template< typename Alloc,
-          typename Base = // VC6 workaround (C2516)
-              NDNBOOST_DEDUCED_TYPENAME bzip2_allocator_traits<Alloc>::type >
-struct bzip2_allocator : private Base {
-private:
-    typedef typename Base::size_type size_type;
-public:
-    NDNBOOST_STATIC_CONSTANT(bool, custom = 
-        (!is_same<std::allocator<char>, Base>::value));
-    typedef typename bzip2_allocator_traits<Alloc>::type allocator_type;
-    static void* allocate(void* self, int items, int size);
-    static void deallocate(void* self, void* address);
-};
-
-class NDNBOOST_IOSTREAMS_DECL bzip2_base  { 
-public:
-    typedef char char_type;
-protected:
-    bzip2_base(const bzip2_params& params);
-    ~bzip2_base();
-    bzip2_params& params() { return params_; }
-    bool& ready() { return ready_; }
-    template<typename Alloc> 
-    void init( bool compress,
-               bzip2_allocator<Alloc>& alloc )
-        {
-            bool custom = bzip2_allocator<Alloc>::custom;
-            do_init( compress,
-                     #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-                         custom ? bzip2_allocator<Alloc>::allocate : 0,
-                         custom ? bzip2_allocator<Alloc>::deallocate : 0,
-                     #endif
-                     custom ? &alloc : 0 );
-        }
-    void before( const char*& src_begin, const char* src_end,
-                 char*& dest_begin, char* dest_end );
-    void after(const char*& src_begin, char*& dest_begin);
-    int check_end(const char* src_begin, const char* dest_begin);
-    int compress(int action);
-    int decompress();
-    void end(bool compress);
-private:
-    void do_init( bool compress, 
-                  #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-                      bzip2::alloc_func, 
-                      bzip2::free_func, 
-                  #endif
-                  void* derived );
-    bzip2_params  params_;
-    void*         stream_; // Actual type: bz_stream*.
-    bool          ready_;
-};
-
-//
-// Template name: bzip2_compressor_impl
-// Description: Model of SymmetricFilter implementing compression by
-//      delegating to the libbzip2 function BZ_bzCompress.
-//
-template<typename Alloc = std::allocator<char> >
-class bzip2_compressor_impl 
-    : public bzip2_base, 
-      #if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-          public
-      #endif
-      bzip2_allocator<Alloc> 
-{
-public: 
-    bzip2_compressor_impl(const bzip2_params&);
-    bool filter( const char*& src_begin, const char* src_end,
-                 char*& dest_begin, char* dest_end, bool flush );
-    void close();
-private:
-    void init();
-    bool eof_; // Guard to make sure filter() isn't called after it returns false.
-};
-
-//
-// Template name: bzip2_compressor
-// Description: Model of SymmetricFilter implementing decompression by
-//      delegating to the libbzip2 function BZ_bzDecompress.
-//
-template<typename Alloc = std::allocator<char> >
-class bzip2_decompressor_impl 
-    : public bzip2_base, 
-      #if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-          public
-      #endif
-      bzip2_allocator<Alloc> 
-{ 
-public:
-    bzip2_decompressor_impl(bool small = bzip2::default_small);
-    bool filter( const char*& begin_in, const char* end_in,
-                 char*& begin_out, char* end_out, bool flush );
-    void close();
-private:
-    void init();
-    bool eof_; // Guard to make sure filter() isn't called after it returns false.
-};
-
-} // End namespace detail.
-
-//
-// Template name: bzip2_compressor
-// Description: Model of InputFilter and OutputFilter implementing
-//      compression using libbzip2.
-//
-template<typename Alloc = std::allocator<char> >
-struct basic_bzip2_compressor 
-    : symmetric_filter<detail::bzip2_compressor_impl<Alloc>, Alloc> 
-{
-private:
-    typedef detail::bzip2_compressor_impl<Alloc>        impl_type;
-    typedef symmetric_filter<impl_type, Alloc>  base_type;
-public:
-    typedef typename base_type::char_type               char_type;
-    typedef typename base_type::category                category;
-    basic_bzip2_compressor( const bzip2_params& = bzip2::default_block_size, 
-                            int buffer_size =  default_device_buffer_size );
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_bzip2_compressor, 1)
-
-typedef basic_bzip2_compressor<> bzip2_compressor;
-
-//
-// Template name: bzip2_decompressor
-// Description: Model of InputFilter and OutputFilter implementing
-//      decompression using libbzip2.
-//
-template<typename Alloc = std::allocator<char> >
-struct basic_bzip2_decompressor 
-    : symmetric_filter<detail::bzip2_decompressor_impl<Alloc>, Alloc> 
-{
-private:
-    typedef detail::bzip2_decompressor_impl<Alloc>      impl_type;
-    typedef symmetric_filter<impl_type, Alloc>  base_type;
-public:
-    typedef typename base_type::char_type               char_type;
-    typedef typename base_type::category                category;
-    basic_bzip2_decompressor( bool small = bzip2::default_small,
-                              int buffer_size = default_device_buffer_size );
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_bzip2_decompressor, 1)
-
-typedef basic_bzip2_decompressor<> bzip2_decompressor;
-
-//----------------------------------------------------------------------------//
-
-//------------------Implementation of bzip2_allocator-------------------------//
-
-namespace detail {
-
-template<typename Alloc, typename Base>
-void* bzip2_allocator<Alloc, Base>::allocate(void* self, int items, int size)
-{ 
-    size_type len = items * size;
-    char* ptr = 
-        static_cast<allocator_type*>(self)->allocate
-            (len + sizeof(size_type)
-            #if NDNBOOST_WORKAROUND(NDNBOOST_DINKUMWARE_STDLIB, == 1)
-                , (char*)0
-            #endif
-            );
-    *reinterpret_cast<size_type*>(ptr) = len;
-    return ptr + sizeof(size_type);
-}
-
-template<typename Alloc, typename Base>
-void bzip2_allocator<Alloc, Base>::deallocate(void* self, void* address)
-{ 
-    char* ptr = reinterpret_cast<char*>(address) - sizeof(size_type);
-    size_type len = *reinterpret_cast<size_type*>(ptr) + sizeof(size_type);
-    static_cast<allocator_type*>(self)->deallocate(ptr, len); 
-}
-
-//------------------Implementation of bzip2_compressor_impl-------------------//
-
-template<typename Alloc>
-bzip2_compressor_impl<Alloc>::bzip2_compressor_impl(const bzip2_params& p)
-    : bzip2_base(p), eof_(false) { }
-
-template<typename Alloc>
-bool bzip2_compressor_impl<Alloc>::filter
-    ( const char*& src_begin, const char* src_end,
-      char*& dest_begin, char* dest_end, bool flush )
-{
-    if (!ready()) init();
-    if (eof_) return false;
-    before(src_begin, src_end, dest_begin, dest_end);
-    int result = compress(flush ? bzip2::finish : bzip2::run);
-    after(src_begin, dest_begin);
-    bzip2_error::check NDNBOOST_PREVENT_MACRO_SUBSTITUTION(result);
-    return !(eof_ = result == bzip2::stream_end);
-}
-
-template<typename Alloc>
-void bzip2_compressor_impl<Alloc>::close() 
-{ 
-    try {
-        end(true);
-    } catch (...) { 
-        eof_ = false; 
-        throw;
-    }
-    eof_ = false;
-}
-
-template<typename Alloc>
-inline void bzip2_compressor_impl<Alloc>::init() 
-{ bzip2_base::init(true, static_cast<bzip2_allocator<Alloc>&>(*this)); }
-
-//------------------Implementation of bzip2_decompressor_impl-----------------//
-
-template<typename Alloc>
-bzip2_decompressor_impl<Alloc>::bzip2_decompressor_impl(bool small)
-    : bzip2_base(bzip2_params(small)), eof_(false) { }
-
-template<typename Alloc>
-bool bzip2_decompressor_impl<Alloc>::filter
-    ( const char*& src_begin, const char* src_end,
-      char*& dest_begin, char* dest_end, bool flush )
-{
-    if (eof_) {
-        // reset the stream if there are more characters
-        if(src_begin == src_end)
-            return false;
-        else
-            close();
-    }
-    if (!ready()) 
-        init();
-    before(src_begin, src_end, dest_begin, dest_end);
-    int result = decompress();
-    if(result == bzip2::ok && flush)
-        result = check_end(src_begin, dest_begin);
-    after(src_begin, dest_begin);
-    bzip2_error::check NDNBOOST_PREVENT_MACRO_SUBSTITUTION(result);
-    eof_ = result == bzip2::stream_end;
-    return true; 
-}
-
-template<typename Alloc>
-void bzip2_decompressor_impl<Alloc>::close() 
-{ 
-    try {
-        end(false);
-    } catch (...) { 
-        eof_ = false; 
-        throw;
-    }
-    eof_ = false;
-}
-
-template<typename Alloc>
-inline void bzip2_decompressor_impl<Alloc>::init()
-{ bzip2_base::init(false, static_cast<bzip2_allocator<Alloc>&>(*this)); }
-} // End namespace detail.
-
-//------------------Implementation of bzip2_decompressor----------------------//
-
-template<typename Alloc>
-basic_bzip2_compressor<Alloc>::basic_bzip2_compressor
-        (const bzip2_params& p, int buffer_size) 
-    : base_type(buffer_size, p) 
-    { }
-
-//------------------Implementation of bzip2_decompressor----------------------//
-
-template<typename Alloc>
-basic_bzip2_decompressor<Alloc>::basic_bzip2_decompressor
-        (bool small, int buffer_size) 
-    : base_type(buffer_size, small)
-    { }
-
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/config/abi_suffix.hpp> // Pops abi_suffix.hpp pragmas.
-#ifdef NDNBOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_BZIP2_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/counter.hpp b/include/ndnboost/iostreams/filter/counter.hpp
deleted file mode 100644
index 4780c16..0000000
--- a/include/ndnboost/iostreams/filter/counter.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_COUNTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_COUNTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <algorithm>  // count.
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/char_traits.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/iostreams/pipeline.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp> // VC7.1 C4244.
-
-namespace ndnboost { namespace iostreams {
-
-//
-// Template name: basic_counter.
-// Template parameters:
-//      Ch - The character type.
-// Description: Filter which counts lines and characters.
-//
-template<typename Ch>
-class basic_counter  {
-public:
-    typedef Ch char_type;
-    struct category
-        : dual_use,
-          filter_tag,
-          multichar_tag,
-          optimally_buffered_tag
-        { };
-    explicit basic_counter(int first_line = 0, int first_char = 0)
-        : lines_(first_line), chars_(first_char)
-        { }
-    int lines() const { return lines_; }
-    int characters() const { return chars_; }
-    std::streamsize optimal_buffer_size() const { return 0; }
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    {
-        std::streamsize result = iostreams::read(src, s, n);
-        if (result == -1)
-            return -1;
-        lines_ += std::count(s, s + result, char_traits<Ch>::newline());
-        chars_ += result;
-        return result;
-    }
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    {
-        std::streamsize result = iostreams::write(snk, s, n);
-        lines_ += std::count(s, s + result, char_traits<Ch>::newline());
-        chars_ += result;
-        return result;
-    }
-private:
-    int lines_;
-    int chars_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_counter, 1)
-
-
-typedef basic_counter<char>     counter;
-typedef basic_counter<wchar_t>  wcounter;
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_COUNTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/grep.hpp b/include/ndnboost/iostreams/filter/grep.hpp
deleted file mode 100644
index e37a296..0000000
--- a/include/ndnboost/iostreams/filter/grep.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
-
- * File:        ndnboost/iostreams/filter/grep.hpp
- * Date:        Mon May 26 17:48:45 MDT 2008
- * Copyright:   2008 CodeRage, LLC
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * Defines the class template basic_grep_filter and its specializations
- * grep_filter and wgrep_filter.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_GREP_FILTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_GREP_FILTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <iostream>
-
-#include <memory>  // allocator.
-#include <ndnboost/iostreams/char_traits.hpp>   
-#include <ndnboost/iostreams/filter/line.hpp>              
-#include <ndnboost/iostreams/pipeline.hpp>
-#include <ndnboost/regex.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace grep {
-
-const int invert      = 1;
-const int whole_line  = invert << 1;
-
-} // End namespace grep.
-
-template< typename Ch,
-          typename Tr = regex_traits<Ch>,
-          typename Alloc = std::allocator<Ch> >
-class basic_grep_filter : public basic_line_filter<Ch, Alloc> {
-private:
-    typedef basic_line_filter<Ch, Alloc>               base_type;
-public:
-    typedef typename base_type::char_type              char_type;
-    typedef typename base_type::category               category;
-    typedef char_traits<char_type>                     traits_type;
-    typedef typename base_type::string_type            string_type;
-    typedef basic_regex<Ch, Tr>                        regex_type;
-    typedef regex_constants::match_flag_type           match_flag_type;
-    basic_grep_filter( const regex_type& re,
-                       match_flag_type match_flags = 
-                           regex_constants::match_default,
-                       int options = 0 );
-    int count() const { return count_; }
-
-    template<typename Sink>
-    void close(Sink& snk, NDNBOOST_IOS::openmode which)
-    {
-        base_type::close(snk, which);
-        options_ &= ~f_initialized;
-    }
-private:
-    virtual string_type do_filter(const string_type& line)
-    {
-        if ((options_ & f_initialized) == 0) {
-            options_ |= f_initialized;
-            count_ = 0;
-        }
-        bool matches = (options_ & grep::whole_line) ?
-            regex_match(line, re_, match_flags_) :
-            regex_search(line, re_, match_flags_);
-        if (options_ & grep::invert)
-            matches = !matches;
-        if (matches)
-            ++count_;
-        return matches ? line + traits_type::newline() : string_type();
-    }
-
-    // Private flags bitwise OR'd with constants from namespace grep
-    enum flags_ {
-        f_initialized = 65536
-    };
-
-    regex_type       re_;
-    match_flag_type  match_flags_;
-    int              options_;
-    int              count_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_grep_filter, 3)
-
-typedef basic_grep_filter<char>     grep_filter;
-typedef basic_grep_filter<wchar_t>  wgrep_filter;
-                    
-//------------------Implementation of basic_grep_filter-----------------------//
-
-template<typename Ch, typename Tr, typename Alloc>
-basic_grep_filter<Ch, Tr, Alloc>::basic_grep_filter
-    (const regex_type& re, match_flag_type match_flags, int options)
-    : base_type(true), re_(re), match_flags_(match_flags), 
-      options_(options), count_(0)
-    { }
-
-} } // End namespaces iostreams, boost.
-
-#endif      // #ifndef NDNBOOST_IOSTREAMS_REGEX_FILTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/gzip.hpp b/include/ndnboost/iostreams/filter/gzip.hpp
deleted file mode 100644
index d4f9fcd..0000000
--- a/include/ndnboost/iostreams/filter/gzip.hpp
+++ /dev/null
@@ -1,757 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains the definitions of the class templates gzip_compressor and
-// gzip_decompressor for reading and writing files in the gzip file format
-// (RFC 1952). Based in part on work of Jonathan de Halleux; see [...]
-
-#ifndef NDNBOOST_IOSTREAMS_GZIP_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_GZIP_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp> // STATIC_CONSTANT, STDC_NAMESPACE, 
-                            // DINKUMWARE_STDLIB, __STL_CONFIG_H.
-#include <algorithm>                      // min.
-#include <ndnboost/assert.hpp>
-#include <cstdio>                         // EOF.
-#include <cstddef>                        // size_t.
-#include <ctime>                          // std::time_t.
-#include <memory>                         // allocator.
-#include <ndnboost/config.hpp>               // Put size_t in std.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/cstdint.hpp>              // uint8_t, uint32_t.
-#include <ndnboost/iostreams/constants.hpp>  // buffer size.
-#include <ndnboost/iostreams/detail/adapter/non_blocking_adapter.hpp>
-#include <ndnboost/iostreams/detail/adapter/range_adapter.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp> // failure.
-#include <ndnboost/iostreams/detail/error.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/iostreams/device/back_inserter.hpp>
-#include <ndnboost/iostreams/filter/zlib.hpp>
-#include <ndnboost/iostreams/pipeline.hpp>     
-#include <ndnboost/iostreams/putback.hpp>
-#include <ndnboost/throw_exception.hpp>
-
-// Must come last.
-#if defined(NDNBOOST_MSVC)
-# pragma warning(push)
-# pragma warning(disable: 4309)    // Truncation of constant value.
-#endif
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::time_t; }
-#endif
-
-namespace ndnboost { namespace iostreams {
-                    
-//------------------Definitions of constants----------------------------------//
-
-namespace gzip {
-
-using namespace ndnboost::iostreams::zlib;
-
-    // Error codes used by gzip_error.
-
-const int zlib_error        = 1;
-const int bad_crc           = 2; // Recorded crc doesn't match data.
-const int bad_length        = 3; // Recorded length doesn't match data.
-const int bad_header        = 4; // Malformed header.
-const int bad_footer        = 5; // Malformed footer.
-const int bad_method        = 6; // Unsupported compression method.
-
-namespace magic {
-
-    // Magic numbers used by gzip header.
-
-const int id1               = 0x1f;
-const int id2               = 0x8b;
-
-} // End namespace magic.
-
-namespace method {
-
-    // Codes used for the 'CM' byte of the gzip header.
-
-const int deflate           = 8;
-
-} // End namespace method.
-
-namespace flags {
-
-    // Codes used for the 'FLG' byte of the gzip header.
-
-const int text              = 1;
-const int header_crc        = 2;
-const int extra             = 4;
-const int name              = 8;
-const int comment           = 16;
-
-} // End namespace flags.
-
-namespace extra_flags {
-
-    // Codes used for the 'XFL' byte of the gzip header.
-
-const int best_compression  = 2;
-const int best_speed        = 4;
-
-} // End namespace extra_flags.
-
-    // Codes used for the 'OS' byte of the gzip header.
-
-const int os_fat            = 0;
-const int os_amiga          = 1;
-const int os_vms            = 2;
-const int os_unix           = 3;
-const int os_vm_cms         = 4;
-const int os_atari          = 5;
-const int os_hpfs           = 6;
-const int os_macintosh      = 7;
-const int os_z_system       = 8;
-const int os_cp_m           = 9;
-const int os_tops_20        = 10;
-const int os_ntfs           = 11;
-const int os_qdos           = 12;
-const int os_acorn          = 13;
-const int os_unknown        = 255;
-
-} // End namespace gzip.
-
-//------------------Definition of gzip_params---------------------------------//
-
-//
-// Class name: gzip_params.
-// Description: Subclass of zlib_params with an additional field
-//      representing a file name.
-//
-struct gzip_params : zlib_params {
-
-    // Non-explicit constructor.
-    gzip_params( int level              = gzip::default_compression,
-                 int method             = gzip::deflated,
-                 int window_bits        = gzip::default_window_bits,
-                 int mem_level          = gzip::default_mem_level,
-                 int strategy           = gzip::default_strategy,
-                 std::string file_name  = "",
-                 std::string comment    = "",
-                 std::time_t mtime      = 0 )
-        : zlib_params(level, method, window_bits, mem_level, strategy),
-          file_name(file_name), comment(comment), mtime(mtime)
-        { }
-    std::string  file_name;
-    std::string  comment;
-    std::time_t  mtime;
-};
-
-//------------------Definition of gzip_error----------------------------------//
-
-//
-// Class name: gzip_error.
-// Description: Subclass of std::ios_base::failure thrown to indicate
-//     zlib errors other than out-of-memory conditions.
-//
-class gzip_error : public NDNBOOST_IOSTREAMS_FAILURE {
-public:
-    explicit gzip_error(int error)
-        : NDNBOOST_IOSTREAMS_FAILURE("gzip error"),
-          error_(error), zlib_error_code_(zlib::okay) { }
-    explicit gzip_error(const zlib_error& e)
-        : NDNBOOST_IOSTREAMS_FAILURE("gzip error"),
-          error_(gzip::zlib_error), zlib_error_code_(e.error())
-        { }
-    int error() const { return error_; }
-    int zlib_error_code() const { return zlib_error_code_; }
-private:
-    int error_;
-    int zlib_error_code_;
-};
-
-//------------------Definition of gzip_compressor-----------------------------//
-
-//
-// Template name: gzip_compressor
-// Description: Model of OutputFilter implementing compression in the
-//      gzip format.
-//
-template<typename Alloc = std::allocator<char> >
-class basic_gzip_compressor : basic_zlib_compressor<Alloc> {
-private:
-    typedef basic_zlib_compressor<Alloc>  base_type;
-public:
-    typedef char char_type;
-    struct category
-        : dual_use,
-          filter_tag,
-          multichar_tag,
-          closable_tag
-        { };
-    basic_gzip_compressor( const gzip_params& = gzip::default_compression,
-                           int buffer_size = default_device_buffer_size );
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    {
-        std::streamsize result = 0;
-
-        // Read header.
-        if (!(flags_ & f_header_done))
-            result += read_string(s, n, header_);
-
-        // Read body.
-        if (!(flags_ & f_body_done)) {
-
-            // Read from basic_zlib_filter.
-            std::streamsize amt = base_type::read(src, s + result, n - result);
-            if (amt != -1) {
-                result += amt;
-                if (amt < n - result) { // Double-check for EOF.
-                    amt = base_type::read(src, s + result, n - result);
-                    if (amt != -1)
-                        result += amt;
-                }
-            }
-            if (amt == -1)
-                prepare_footer();
-        }
-
-        // Read footer.
-        if ((flags_ & f_body_done) != 0 && result < n)
-            result += read_string(s + result, n - result, footer_);
-
-        return result != 0 ? result : -1;
-    }
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    {
-        if (!(flags_ & f_header_done)) {
-            std::streamsize amt = 
-                static_cast<std::streamsize>(header_.size() - offset_);
-            offset_ += ndnboost::iostreams::write(snk, header_.data() + offset_, amt);
-            if (offset_ == header_.size())
-                flags_ |= f_header_done;
-            else
-                return 0;
-        }
-        return base_type::write(snk, s, n);
-    }
-
-    template<typename Sink>
-    void close(Sink& snk, NDNBOOST_IOS::openmode m)
-    {
-        try {
-            // Close zlib compressor.
-            base_type::close(snk, m);
-
-            if (m == NDNBOOST_IOS::out) {
-                if (flags_ & f_header_done) {
-
-                    // Write final fields of gzip file format.
-                    write_long(this->crc(), snk);
-                    write_long(this->total_in(), snk);
-                }
-            }
-        } catch(...) {
-            close_impl();
-            throw;
-        }
-        close_impl();
-    }
-private:
-    static gzip_params normalize_params(gzip_params p);
-    void prepare_footer();
-    std::streamsize read_string(char* s, std::streamsize n, std::string& str);
-
-    template<typename Sink>
-    static void write_long(long n, Sink& next, ndnboost::mpl::true_)
-    {
-        ndnboost::iostreams::put(next, static_cast<char>(0xFF & n));
-        ndnboost::iostreams::put(next, static_cast<char>(0xFF & (n >> 8)));
-        ndnboost::iostreams::put(next, static_cast<char>(0xFF & (n >> 16)));
-        ndnboost::iostreams::put(next, static_cast<char>(0xFF & (n >> 24)));
-    }
-    template<typename Sink>
-    static void write_long(long n, Sink& next, ndnboost::mpl::false_)
-    {
-    }
-    template<typename Sink>
-    static void write_long(long n, Sink& next)
-    {
-        typedef typename category_of<Sink>::type category;
-        typedef is_convertible<category, output> can_write;
-        write_long(n, next, can_write());
-    }
-
-    void close_impl()
-    {
-        #if NDNBOOST_WORKAROUND(__GNUC__, == 2) && defined(__STL_CONFIG_H) || \
-            NDNBOOST_WORKAROUND(NDNBOOST_DINKUMWARE_STDLIB, == 1) \
-            /**/
-            footer_.erase(0, std::string::npos);
-        #else
-            footer_.clear();
-        #endif
-        offset_ = 0;
-        flags_ = 0;
-    }
-
-    enum state_type {
-        f_header_done = 1,
-        f_body_done = f_header_done << 1,
-        f_footer_done = f_body_done << 1
-    };
-    std::string  header_;
-    std::string  footer_;
-    std::size_t  offset_;
-    int          flags_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_gzip_compressor, 1)
-
-typedef basic_gzip_compressor<> gzip_compressor;
-
-//------------------Definition of helper templates for decompression----------//
-
-namespace detail {
-
-// Processes gzip headers
-class NDNBOOST_IOSTREAMS_DECL gzip_header {
-public:
-    gzip_header() { reset(); }
-
-    // Members for processing header data
-    void process(char c);
-    bool done() const { return state_ == s_done; }
-    void reset();
-
-    // Members for accessing header data
-    std::string file_name() const { return file_name_; }
-    std::string comment() const { return comment_; }
-    bool text() const { return (flags_ & gzip::flags::text) != 0; }
-    int os() const { return os_; }
-    std::time_t mtime() const { return mtime_; }
-private:
-    enum state_type {
-        s_id1       = 1,
-        s_id2       = s_id1 + 1,
-        s_cm        = s_id2 + 1,
-        s_flg       = s_cm + 1,
-        s_mtime     = s_flg + 1,
-        s_xfl       = s_mtime + 1,
-        s_os        = s_xfl + 1,
-        s_xlen      = s_os + 1,
-        s_extra     = s_xlen + 1,
-        s_name      = s_extra + 1,
-        s_comment   = s_name + 1,
-        s_hcrc      = s_comment + 1,
-        s_done      = s_hcrc + 1
-    };
-    std::string  file_name_;
-    std::string  comment_;
-    int          os_;
-    std::time_t  mtime_;
-    int          flags_;
-    int          state_;
-    int          offset_;  // Offset within fixed-length region.
-    int          xlen_;    // Bytes remaining in extra field.
-};
-
-// Processes gzip footers
-class NDNBOOST_IOSTREAMS_DECL gzip_footer {
-public:
-    gzip_footer() { reset(); }
-    
-    // Members for processing footer data
-    void process(char c);
-    bool done() const { return state_ == s_done; }
-    void reset();
-    
-    // Members for accessing footer data
-    zlib::ulong crc() const { return crc_; }
-    zlib::ulong uncompressed_size() const { return isize_; }
-private:
-    enum state_type {
-        s_crc     = 1,
-        s_isize   = s_crc + 1,
-        s_done    = s_isize + 1
-    };
-    zlib::ulong  crc_;
-    zlib::ulong  isize_;
-    int          state_;
-    int          offset_; 
-};
-
-} // End namespace ndnboost::iostreams::detail.
-
-//------------------Definition of basic_gzip_decompressor---------------------//
-
-//
-// Template name: basic_gzip_decompressor
-// Description: Model of InputFilter implementing compression in the
-//      gzip format.
-//
-template<typename Alloc = std::allocator<char> >
-class basic_gzip_decompressor : basic_zlib_decompressor<Alloc> {
-private:
-    typedef basic_zlib_decompressor<Alloc>   base_type;
-    typedef typename base_type::string_type  string_type;
-public:
-    typedef char char_type;
-    struct category
-        : dual_use,
-          filter_tag,
-          multichar_tag,
-          closable_tag
-        { };
-    basic_gzip_decompressor( int window_bits = gzip::default_window_bits,
-                             int buffer_size = default_device_buffer_size );
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    {
-        std::streamsize result = 0;
-        while(result < n) {
-            if(state_ == s_start) {
-                state_ = s_header;
-                header_.reset();
-                footer_.reset();
-            }
-            if (state_ == s_header) {
-                int c = s[result++];
-                header_.process(c);
-                if (header_.done())
-                    state_ = s_body;
-            } else if (state_ == s_body) {
-                try {
-                    std::streamsize amt = 
-                        base_type::write(snk, s + result, n - result);
-                    result += amt;
-                    if (!this->eof()) {
-                        break;
-                    } else {
-                        state_ = s_footer;
-                    }
-                } catch (const zlib_error& e) {
-                    ndnboost::throw_exception(gzip_error(e));
-                }
-            } else { // state_ == s_footer
-                if (footer_.done()) {
-                    if (footer_.crc() != this->crc())
-                        ndnboost::throw_exception(gzip_error(gzip::bad_crc));
-
-                    base_type::close(snk, NDNBOOST_IOS::out);
-                    state_ = s_start;
-                } else {
-                    int c = s[result++];
-                    footer_.process(c);
-                }
-            }
-        }
-        return result;
-    }
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    {
-        typedef char_traits<char>  traits_type;
-        std::streamsize            result = 0;
-        peekable_source<Source>    peek(src, putback_);
-        while (result < n && state_ != s_done) {
-            if (state_ == s_start) {
-                state_ = s_header;
-                header_.reset();
-                footer_.reset();
-            }
-            if (state_ == s_header) {
-                int c = ndnboost::iostreams::get(peek);
-                if (traits_type::is_eof(c)) {
-                    ndnboost::throw_exception(gzip_error(gzip::bad_header));
-                } else if (traits_type::would_block(c)) {
-                    break;
-                }
-                header_.process(c);
-                if (header_.done())
-                    state_ = s_body;
-            } else if (state_ == s_body) {
-                try {
-                    std::streamsize amt = 
-                        base_type::read(peek, s + result, n - result);
-                    if (amt != -1) {
-                        result += amt;
-                        if (amt < n - result)
-                            break;
-                    } else {
-                        peek.putback(this->unconsumed_input());
-                        state_ = s_footer;
-                    }
-                } catch (const zlib_error& e) {
-                    ndnboost::throw_exception(gzip_error(e));
-                }
-            } else { // state_ == s_footer
-                int c = ndnboost::iostreams::get(peek);
-                if (traits_type::is_eof(c)) {
-                    ndnboost::throw_exception(gzip_error(gzip::bad_footer));
-                } else if (traits_type::would_block(c)) {
-                    break;
-                }
-                footer_.process(c);
-                if (footer_.done()) {
-                    if (footer_.crc() != this->crc())
-                        ndnboost::throw_exception(gzip_error(gzip::bad_crc));
-                    int c = ndnboost::iostreams::get(peek);
-                    if (traits_type::is_eof(c)) {
-                        state_ = s_done;
-                    } else {
-                        peek.putback(c);
-                        base_type::close(peek, NDNBOOST_IOS::in);
-                        state_ = s_start;
-                        header_.reset();
-                        footer_.reset();
-                    }
-                }
-            }
-        }
-        if (peek.has_unconsumed_input()) {
-            putback_ = peek.unconsumed_input();
-        } else {
-            putback_.clear();
-        }
-        return result != 0 || state_ != s_done ?
-            result :
-            -1;
-    }
-
-    template<typename Source>
-    void close(Source& src, NDNBOOST_IOS::openmode m)
-    {
-        try {
-            base_type::close(src, m);
-        } catch (const zlib_error& e) {
-            state_ = s_start;
-            ndnboost::throw_exception(gzip_error(e));
-        }
-        if (m == NDNBOOST_IOS::out) {
-            if (state_ == s_start || state_ == s_header)
-                ndnboost::throw_exception(gzip_error(gzip::bad_header));
-            else if (state_ == s_body)
-                ndnboost::throw_exception(gzip_error(gzip::bad_footer));
-            else if (state_ == s_footer) {
-                if (!footer_.done())
-                    ndnboost::throw_exception(gzip_error(gzip::bad_footer));
-                else if(footer_.crc() != this->crc())
-                    ndnboost::throw_exception(gzip_error(gzip::bad_crc));
-            } else {
-                NDNBOOST_ASSERT(!"Bad state");
-            }
-        }
-        state_ = s_start;
-    }
-
-    std::string file_name() const { return header_.file_name(); }
-    std::string comment() const { return header_.comment(); }
-    bool text() const { return header_.text(); }
-    int os() const { return header_.os(); }
-    std::time_t mtime() const { return header_.mtime(); }
-private:
-    static gzip_params make_params(int window_bits);
-
-    // Source adapter allowing an arbitrary character sequence to be put back.
-    template<typename Source>
-    struct peekable_source {
-        typedef char char_type;
-        struct category : source_tag, peekable_tag { };
-        explicit peekable_source(Source& src, const string_type& putback = "") 
-            : src_(src), putback_(putback), offset_(0)
-            { }
-        std::streamsize read(char* s, std::streamsize n)
-        {
-            std::streamsize result = 0;
-
-            // Copy characters from putback buffer
-            std::streamsize pbsize = 
-                static_cast<std::streamsize>(putback_.size());
-            if (offset_ < pbsize) {
-                result = (std::min)(n, pbsize - offset_);
-                NDNBOOST_IOSTREAMS_CHAR_TRAITS(char)::copy(
-                    s, putback_.data() + offset_, result);
-                offset_ += result;
-                if (result == n)
-                    return result;
-            }
-
-            // Read characters from src_
-            std::streamsize amt = 
-                ndnboost::iostreams::read(src_, s + result, n - result);
-            return amt != -1 ? 
-                result + amt : 
-                result ? result : -1;
-        }
-        bool putback(char c)
-        {
-            if (offset_) {
-                putback_[--offset_] = c;
-            } else {
-                ndnboost::throw_exception(
-                    ndnboost::iostreams::detail::bad_putback());
-            }
-            return true;
-        }
-        void putback(const string_type& s)
-        {
-            putback_.replace(0, offset_, s);
-            offset_ = 0;
-        }
-
-        // Returns true if some characters have been putback but not re-read.
-        bool has_unconsumed_input() const 
-        {
-            return offset_ < static_cast<std::streamsize>(putback_.size());
-        }
-
-        // Returns the sequence of characters that have been put back but not re-read.
-        string_type unconsumed_input() const
-        {
-            return string_type(putback_, offset_, putback_.size() - offset_);
-        }
-        Source&          src_;
-        string_type      putback_;
-        std::streamsize  offset_;
-    };
-
-    enum state_type {
-        s_start   = 1,
-        s_header  = s_start + 1,
-        s_body    = s_header + 1,
-        s_footer  = s_body + 1,
-        s_done    = s_footer + 1
-    };
-    detail::gzip_header  header_;
-    detail::gzip_footer  footer_;
-    string_type          putback_;
-    int                  state_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_gzip_decompressor, 1)
-
-typedef basic_gzip_decompressor<> gzip_decompressor;
-
-//------------------Implementation of gzip_compressor-------------------------//
-
-template<typename Alloc>
-basic_gzip_compressor<Alloc>::basic_gzip_compressor
-    (const gzip_params& p, int buffer_size)
-    : base_type(normalize_params(p), buffer_size),
-      offset_(0), flags_(0)
-{
-    // Calculate gzip header.
-    bool has_name = !p.file_name.empty();
-    bool has_comment = !p.comment.empty();
-
-    std::string::size_type length =
-        10 +
-        (has_name ? p.file_name.size() + 1 : 0) +
-        (has_comment ? p.comment.size() + 1 : 0);
-        // + 2; // Header crc confuses gunzip.
-    int flags =
-        //gzip::flags::header_crc +
-        (has_name ? gzip::flags::name : 0) +
-        (has_comment ? gzip::flags::comment : 0);
-    int extra_flags =
-        ( p.level == zlib::best_compression ?
-              gzip::extra_flags::best_compression :
-              0 ) +
-        ( p.level == zlib::best_speed ?
-              gzip::extra_flags::best_speed :
-              0 );
-    header_.reserve(length);
-    header_ += gzip::magic::id1;                         // ID1.
-    header_ += gzip::magic::id2;                         // ID2.
-    header_ += gzip::method::deflate;                    // CM.
-    header_ += static_cast<char>(flags);                 // FLG.
-    header_ += static_cast<char>(0xFF & p.mtime);        // MTIME.
-    header_ += static_cast<char>(0xFF & (p.mtime >> 8));
-    header_ += static_cast<char>(0xFF & (p.mtime >> 16));
-    header_ += static_cast<char>(0xFF & (p.mtime >> 24));
-    header_ += static_cast<char>(extra_flags);           // XFL.
-    header_ += static_cast<char>(gzip::os_unknown);      // OS.
-    if (has_name) {
-        header_ += p.file_name;
-        header_ += '\0';
-    }
-    if (has_comment) {
-        header_ += p.comment;
-        header_ += '\0';
-    }
-}
-
-template<typename Alloc>
-gzip_params basic_gzip_compressor<Alloc>::normalize_params(gzip_params p)
-{
-    p.noheader = true;
-    p.calculate_crc = true;
-    return p;
-}
-
-template<typename Alloc>
-void basic_gzip_compressor<Alloc>::prepare_footer()
-{
-    ndnboost::iostreams::back_insert_device<std::string> out(footer_);
-    write_long(this->crc(), out);
-    write_long(this->total_in(), out);
-    flags_ |= f_body_done;
-    offset_ = 0;
-}
-
-template<typename Alloc>
-std::streamsize basic_gzip_compressor<Alloc>::read_string
-    (char* s, std::streamsize n, std::string& str)
-{
-    std::streamsize avail =
-        static_cast<std::streamsize>(str.size() - offset_);
-    std::streamsize amt = (std::min)(avail, n);
-    std::copy( str.data() + offset_,
-               str.data() + offset_ + amt,
-               s );
-    offset_ += amt;
-    if ( !(flags_ & f_header_done) &&
-         offset_ == static_cast<std::size_t>(str.size()) )
-    {
-        flags_ |= f_header_done;
-    }
-    return amt;
-}
-
-//------------------Implementation of gzip_decompressor-----------------------//
-
-template<typename Alloc>
-basic_gzip_decompressor<Alloc>::basic_gzip_decompressor
-    (int window_bits, int buffer_size)
-    : base_type(make_params(window_bits), buffer_size),
-      state_(s_start)
-    { }
-
-template<typename Alloc>
-gzip_params basic_gzip_decompressor<Alloc>::make_params(int window_bits)
-{
-    gzip_params p;
-    p.window_bits = window_bits;
-    p.noheader = true;
-    p.calculate_crc = true;
-    return p;
-}
-
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#if defined(NDNBOOST_MSVC)
-# pragma warning(pop)
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_GZIP_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/line.hpp b/include/ndnboost/iostreams/filter/line.hpp
deleted file mode 100644
index d8399b3..0000000
--- a/include/ndnboost/iostreams/filter/line.hpp
+++ /dev/null
@@ -1,227 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_LINE_FILTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_LINE_FILTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <algorithm>                               // min.
-#include <ndnboost/assert.hpp>
-#include <memory>                                  // allocator.
-#include <string>
-#include <ndnboost/config.hpp>                        // NDNBOOST_STATIC_CONSTANT.
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/checked_operations.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>          // openmode, streamsize.
-#include <ndnboost/iostreams/read.hpp>                // check_eof 
-#include <ndnboost/iostreams/pipeline.hpp>
-#include <ndnboost/iostreams/write.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp> // VC7.1 C4244.
-
-namespace ndnboost { namespace iostreams {
-
-//
-// Template name: line_filter.
-// Template parameters:
-//      Ch - The character type.
-//      Alloc - The allocator type.
-// Description: Filter which processes data one line at a time.
-//
-template< typename Ch,
-          typename Alloc =
-          #if NDNBOOST_WORKAROUND(__GNUC__, < 3)
-              typename std::basic_string<Ch>::allocator_type
-          #else
-              std::allocator<Ch>
-          #endif
-          >
-class basic_line_filter {
-private:
-    typedef typename std::basic_string<Ch>::traits_type  string_traits;
-public:
-    typedef Ch                                           char_type;
-    typedef char_traits<char_type>                       traits_type;
-    typedef std::basic_string<
-                Ch,
-                string_traits,
-                Alloc
-            >                                            string_type;
-    struct category
-        : dual_use,
-          filter_tag,
-          multichar_tag,
-          closable_tag
-        { };
-protected:
-    basic_line_filter(bool suppress_newlines = false) 
-        : pos_(string_type::npos), 
-          flags_(suppress_newlines ? f_suppress : 0) 
-        { }
-public:
-    virtual ~basic_line_filter() { }
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    {
-        using namespace std;
-        NDNBOOST_ASSERT(!(flags_ & f_write));
-        flags_ |= f_read;
-
-        // Handle unfinished business.
-        std::streamsize result = 0;
-        if (!cur_line_.empty() && (result = read_line(s, n)) == n)
-            return n;
-
-        typename traits_type::int_type status = traits_type::good();
-        while (result < n && !traits_type::is_eof(status)) {
-
-            // Call next_line() to retrieve a line of filtered text, and
-            // read_line() to copy it into buffer s.
-            if (traits_type::would_block(status = next_line(src)))
-                return result;
-            result += read_line(s + result, n - result);
-        }
-
-        return detail::check_eof(result);
-    }
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    {
-        using namespace std;
-        NDNBOOST_ASSERT(!(flags_ & f_read));
-        flags_ |= f_write;
-
-        // Handle unfinished business.
-        if (pos_ != string_type::npos && !write_line(snk))
-            return 0;
-
-        const char_type *cur = s, *next;
-        while (true) {
-
-            // Search for the next full line in [cur, s + n), filter it
-            // and write it to snk.
-            typename string_type::size_type rest = n - (cur - s);
-            if ((next = traits_type::find(cur, rest, traits_type::newline()))) {
-                cur_line_.append(cur, next - cur);
-                cur = next + 1;
-                if (!write_line(snk))
-                    return static_cast<std::streamsize>(cur - s);
-            } else {
-                cur_line_.append(cur, rest);
-                return n;
-            }
-        }
-    }
-
-    template<typename Sink>
-    void close(Sink& snk, NDNBOOST_IOS::openmode which)
-    {
-        if ((flags_ & f_read) && which == NDNBOOST_IOS::in)
-            close_impl();
-
-        if ((flags_ & f_write) && which == NDNBOOST_IOS::out) {
-            try {
-                if (!cur_line_.empty())
-                    write_line(snk);
-            } catch (...) {
-                try {
-                    close_impl();
-                } catch (...) { }
-                throw;
-            }
-            close_impl();
-        }
-    }
-private:
-    virtual string_type do_filter(const string_type& line) = 0;
-
-    // Copies filtered characters fron the current line into
-    // the given buffer.
-    std::streamsize read_line(char_type* s, std::streamsize n)
-    {
-        using namespace std;
-        std::streamsize result =
-            (std::min) (n, static_cast<std::streamsize>(cur_line_.size()));
-        traits_type::copy(s, cur_line_.data(), result);
-        cur_line_.erase(0, result);
-        return result;
-    }
-
-    // Attempts to retrieve a line of text from the given source; returns
-    // an int_type as a good/eof/would_block status code.
-    template<typename Source>
-    typename traits_type::int_type next_line(Source& src)
-    {
-        using namespace std;
-        typename traits_type::int_type c;
-        while ( traits_type::is_good(c = iostreams::get(src)) &&
-                c != traits_type::newline() )
-        {
-            cur_line_ += traits_type::to_int_type(c);
-        }
-        if (!traits_type::would_block(c)) {
-            if (!cur_line_.empty() || c == traits_type::newline())
-                cur_line_ = do_filter(cur_line_);
-            if (c == traits_type::newline() && (flags_ & f_suppress) == 0)
-                cur_line_ += c;
-        }
-        return c; // status indicator.
-    }
-
-    // Filters the current line and attemps to write it to the given sink.
-    // Returns true for success.
-    template<typename Sink>
-    bool write_line(Sink& snk)
-    {
-        string_type line = do_filter(cur_line_);
-        if ((flags_ & f_suppress) == 0)
-            line += traits_type::newline();
-        std::streamsize amt = static_cast<std::streamsize>(line.size());
-        bool result = iostreams::write_if(snk, line.data(), amt) == amt;
-        if (result)
-            clear();
-        return result;
-    }
-
-    void close_impl()
-    {
-        clear();
-        flags_ &= f_suppress;
-    }
-
-    void clear()
-    {
-        cur_line_.erase();
-        pos_ = string_type::npos;
-    }
-
-    enum flag_type {
-        f_read      = 1,
-        f_write     = f_read << 1,
-        f_suppress  = f_write << 1
-    };
-
-    string_type                      cur_line_;
-    typename string_type::size_type  pos_;
-    int                              flags_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_line_filter, 2)
-
-typedef basic_line_filter<char>     line_filter;
-typedef basic_line_filter<wchar_t>  wline_filter;
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_LINE_FILTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/newline.hpp b/include/ndnboost/iostreams/filter/newline.hpp
deleted file mode 100644
index f47a5ef..0000000
--- a/include/ndnboost/iostreams/filter/newline.hpp
+++ /dev/null
@@ -1,442 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// NOTE: I hope to replace the current implementation with a much simpler
-// one.
-
-#ifndef NDNBOOST_IOSTREAMS_NEWLINE_FILTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_NEWLINE_FILTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/assert.hpp>
-#include <cstdio>
-#include <stdexcept>                       // logic_error.
-#include <ndnboost/config.hpp>                // NDNBOOST_STATIC_CONSTANT.
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // NDNBOOST_IOSTREAMS_FAILURE 
-#include <ndnboost/iostreams/read.hpp>        // get 
-#include <ndnboost/iostreams/write.hpp>       // put 
-#include <ndnboost/iostreams/pipeline.hpp>
-#include <ndnboost/iostreams/putback.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-#define NDNBOOST_IOSTREAMS_ASSERT_UNREACHABLE(val) \
-    (NDNBOOST_ASSERT("unreachable code" == 0), val) \
-    /**/
-
-namespace ndnboost { namespace iostreams {
-
-namespace newline {
-
-const char CR                   = 0x0D;
-const char LF                   = 0x0A;
-
-    // Flags for configuring newline_filter.
-
-// Exactly one of the following three flags must be present.
-
-const int posix             = 1;    // Use CR as line separator.
-const int mac               = 2;    // Use LF as line separator.
-const int dos               = 4;    // Use CRLF as line separator.
-const int mixed             = 8;    // Mixed line endings.
-const int final_newline     = 16;
-const int platform_mask     = posix | dos | mac;
-
-} // End namespace newline.
-
-namespace detail {
-
-class newline_base {
-public:
-    bool is_posix() const
-    {
-        return !is_mixed() && (flags_ & newline::posix) != 0;
-    }
-    bool is_dos() const
-    {
-        return !is_mixed() && (flags_ & newline::dos) != 0;
-    }
-    bool is_mac() const
-    {
-        return !is_mixed() && (flags_ & newline::mac) != 0;
-    }
-    bool is_mixed_posix() const { return (flags_ & newline::posix) != 0; }
-    bool is_mixed_dos() const { return (flags_ & newline::dos) != 0; }
-    bool is_mixed_mac() const { return (flags_ & newline::mac) != 0; }
-    bool is_mixed() const
-    {
-        int platform =
-            (flags_ & newline::posix) != 0 ?
-                newline::posix :
-                (flags_ & newline::dos) != 0 ?
-                    newline::dos :
-                    (flags_ & newline::mac) != 0 ?
-                        newline::mac :
-                        0;
-        return (flags_ & ~platform & newline::platform_mask) != 0;
-    }
-    bool has_final_newline() const
-    {
-        return (flags_ & newline::final_newline) != 0;
-    }
-protected:
-    newline_base(int flags) : flags_(flags) { }
-    int flags_;
-};
-
-} // End namespace detail.
-
-class newline_error
-    : public NDNBOOST_IOSTREAMS_FAILURE, public detail::newline_base
-{
-private:
-    friend class newline_checker;
-    newline_error(int flags)
-        : NDNBOOST_IOSTREAMS_FAILURE("bad line endings"),
-          detail::newline_base(flags)
-        { }
-};
-
-class newline_filter {
-public:
-    typedef char char_type;
-    struct category
-        : dual_use,
-          filter_tag,
-          closable_tag
-        { };
-
-    explicit newline_filter(int target) : flags_(target)
-    {
-        if ( target != iostreams::newline::posix &&
-             target != iostreams::newline::dos &&
-             target != iostreams::newline::mac )
-        {
-            ndnboost::throw_exception(std::logic_error("bad flags"));
-        }
-    }
-
-    template<typename Source>
-    int get(Source& src)
-    {
-        using iostreams::newline::CR;
-        using iostreams::newline::LF;
-
-        NDNBOOST_ASSERT((flags_ & f_write) == 0);
-        flags_ |= f_read;
-
-        if (flags_ & (f_has_LF | f_has_EOF)) {
-            if (flags_ & f_has_LF)
-                return newline();
-            else
-                return EOF;
-        }
-
-        int c =
-            (flags_ & f_has_CR) == 0 ?
-                iostreams::get(src) :
-                CR;
-
-        if (c == WOULD_BLOCK )
-            return WOULD_BLOCK;
-
-        if (c == CR) {
-            flags_ |= f_has_CR;
-
-            int d;
-            if ((d = iostreams::get(src)) == WOULD_BLOCK)
-                return WOULD_BLOCK;
-
-            if (d == LF) {
-                flags_ &= ~f_has_CR;
-                return newline();
-            }
-
-            if (d == EOF) {
-                flags_ |= f_has_EOF;
-            } else {
-                iostreams::putback(src, d);
-            }
-
-            flags_ &= ~f_has_CR;
-            return newline();
-        }
-
-        if (c == LF)
-            return newline();
-
-        return c;
-    }
-
-    template<typename Sink>
-    bool put(Sink& dest, char c)
-    {
-        using iostreams::newline::CR;
-        using iostreams::newline::LF;
-
-        NDNBOOST_ASSERT((flags_ & f_read) == 0);
-        flags_ |= f_write;
-
-        if ((flags_ & f_has_LF) != 0)
-            return c == LF ?
-                newline(dest) :
-                newline(dest) && this->put(dest, c);
-
-        if (c == LF)
-           return newline(dest);
-
-        if ((flags_ & f_has_CR) != 0)
-            return newline(dest) ?
-                this->put(dest, c) :
-                false;
-
-        if (c == CR) {
-            flags_ |= f_has_CR;
-            return true;
-        }
-
-        return iostreams::put(dest, c);
-    }
-
-    template<typename Sink>
-    void close(Sink& dest, NDNBOOST_IOS::openmode)
-    {
-        typedef typename iostreams::category_of<Sink>::type category;
-        if ((flags_ & f_write) != 0 && (flags_ & f_has_CR) != 0)
-            newline_if_sink(dest);
-        flags_ &= ~f_has_LF; // Restore original flags.
-    }
-private:
-
-    // Returns the appropriate element of a newline sequence.
-    int newline()
-    {
-        using iostreams::newline::CR;
-        using iostreams::newline::LF;
-
-        switch (flags_ & iostreams::newline::platform_mask) {
-        case iostreams::newline::posix:
-            return LF;
-        case iostreams::newline::mac:
-            return CR;
-        case iostreams::newline::dos:
-            if (flags_ & f_has_LF) {
-                flags_ &= ~f_has_LF;
-                return LF;
-            } else {
-                flags_ |= f_has_LF;
-                return CR;
-            }
-        }
-        return NDNBOOST_IOSTREAMS_ASSERT_UNREACHABLE(0);
-    }
-
-    // Writes a newline sequence.
-    template<typename Sink>
-    bool newline(Sink& dest)
-    {
-        using iostreams::newline::CR;
-        using iostreams::newline::LF;
-
-        bool success = false;
-        switch (flags_ & iostreams::newline::platform_mask) {
-        case iostreams::newline::posix:
-            success = ndnboost::iostreams::put(dest, LF);
-            break;
-        case iostreams::newline::mac:
-            success = ndnboost::iostreams::put(dest, CR);
-            break;
-        case iostreams::newline::dos:
-            if ((flags_ & f_has_LF) != 0) {
-                if ((success = ndnboost::iostreams::put(dest, LF)))
-                    flags_ &= ~f_has_LF;
-            } else if (ndnboost::iostreams::put(dest, CR)) {
-                if (!(success = ndnboost::iostreams::put(dest, LF)))
-                    flags_ |= f_has_LF;
-            }
-            break;
-        }
-        if (success)
-            flags_ &= ~f_has_CR;
-        return success;
-    }
-
-    // Writes a newline sequence if the given device is a Sink.
-    template<typename Device>
-    void newline_if_sink(Device& dest) 
-    { 
-        typedef typename iostreams::category_of<Device>::type category;
-        newline_if_sink(dest, is_convertible<category, output>()); 
-    }
-
-    template<typename Sink>
-    void newline_if_sink(Sink& dest, mpl::true_) { newline(dest); }
-
-    template<typename Source>
-    void newline_if_sink(Source&, mpl::false_) { }
-
-    enum flags {
-        f_has_LF         = 32768,
-        f_has_CR         = f_has_LF << 1,
-        f_has_newline    = f_has_CR << 1,
-        f_has_EOF        = f_has_newline << 1,
-        f_read           = f_has_EOF << 1,
-        f_write          = f_read << 1
-    };
-    int       flags_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(newline_filter, 0)
-
-class newline_checker : public detail::newline_base {
-public:
-    typedef char                 char_type;
-    struct category
-        : dual_use_filter_tag,
-          closable_tag
-        { };
-    explicit newline_checker(int target = newline::mixed)
-        : detail::newline_base(0), target_(target), open_(false)
-        { }
-    template<typename Source>
-    int get(Source& src)
-    {
-        using newline::CR;
-        using newline::LF;
-
-        if (!open_) {
-            open_ = true;
-            source() = 0;
-        }
-
-        int c;
-        if ((c = iostreams::get(src)) == WOULD_BLOCK)
-            return WOULD_BLOCK;
-
-        // Update source flags.
-        if (c != EOF)
-            source() &= ~f_line_complete;
-        if ((source() & f_has_CR) != 0) {
-            if (c == LF) {
-                source() |= newline::dos;
-                source() |= f_line_complete;
-            } else {
-                source() |= newline::mac;
-                if (c == EOF)
-                    source() |= f_line_complete;
-            }
-        } else if (c == LF) {
-            source() |= newline::posix;
-            source() |= f_line_complete;
-        }
-        source() = (source() & ~f_has_CR) | (c == CR ? f_has_CR : 0);
-
-        // Check for errors.
-        if ( c == EOF &&
-            (target_ & newline::final_newline) != 0 &&
-            (source() & f_line_complete) == 0 )
-        {
-            fail();
-        }
-        if ( (target_ & newline::platform_mask) != 0 &&
-             (source() & ~target_ & newline::platform_mask) != 0 )
-        {
-            fail();
-        }
-
-        return c;
-    }
-
-    template<typename Sink>
-    bool put(Sink& dest, int c)
-    {
-        using iostreams::newline::CR;
-        using iostreams::newline::LF;
-
-        if (!open_) {
-            open_ = true;
-            source() = 0;
-        }
-
-        if (!iostreams::put(dest, c))
-            return false;
-
-         // Update source flags.
-        source() &= ~f_line_complete;
-        if ((source() & f_has_CR) != 0) {
-            if (c == LF) {
-                source() |= newline::dos;
-                source() |= f_line_complete;
-            } else {
-                source() |= newline::mac;
-            }
-        } else if (c == LF) {
-            source() |= newline::posix;
-            source() |= f_line_complete;
-        }
-        source() = (source() & ~f_has_CR) | (c == CR ? f_has_CR : 0);
-
-        // Check for errors.
-        if ( (target_ & newline::platform_mask) != 0 &&
-             (source() & ~target_ & newline::platform_mask) != 0 )
-        {
-            fail();
-        }
-
-        return true;
-    }
-
-    template<typename Sink>
-    void close(Sink&, NDNBOOST_IOS::openmode)
-    {
-        using iostreams::newline::final_newline;
-
-        // Update final_newline flag.
-        if ( (source() & f_has_CR) != 0 ||
-             (source() & f_line_complete) != 0 )
-        {
-            source() |= final_newline;
-        }
-
-        // Clear non-sticky flags.
-        source() &= ~(f_has_CR | f_line_complete);
-
-        // Check for errors.
-        if ( (target_ & final_newline) != 0 &&
-             (source() & final_newline) == 0 )
-        {
-            fail();
-        }
-    }
-private:
-    void fail() { ndnboost::throw_exception(newline_error(source())); }
-    int& source() { return flags_; }
-    int source() const { return flags_; }
-
-    enum flags {
-        f_has_CR = 32768,
-        f_line_complete = f_has_CR << 1
-    };
-
-    int   target_;  // Represents expected input.
-    bool  open_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(newline_checker, 0)
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_NEWLINE_FILTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/regex.hpp b/include/ndnboost/iostreams/filter/regex.hpp
deleted file mode 100644
index 3bc599a..0000000
--- a/include/ndnboost/iostreams/filter/regex.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_REGEX_FILTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_REGEX_FILTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <memory>                         // allocator.
-#include <ndnboost/function.hpp>        
-#include <ndnboost/iostreams/filter/aggregate.hpp>              
-#include <ndnboost/iostreams/pipeline.hpp>                
-#include <ndnboost/regex.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-template< typename Ch,
-          typename Tr = regex_traits<Ch>,
-          typename Alloc = std::allocator<Ch> >
-class basic_regex_filter : public aggregate_filter<Ch, Alloc> {
-private:
-    typedef aggregate_filter<Ch, Alloc>                 base_type;
-public:
-    typedef typename base_type::char_type              char_type;
-    typedef typename base_type::category               category;
-    typedef std::basic_string<Ch>                      string_type;
-    typedef basic_regex<Ch, Tr>                        regex_type;
-    typedef regex_constants::match_flag_type           flag_type;
-    typedef match_results<const Ch*>                   match_type;
-    typedef function1<string_type, const match_type&>  formatter;
-
-    basic_regex_filter( const regex_type& re,
-                        const formatter& replace,
-                        flag_type flags = regex_constants::match_default )
-        : re_(re), replace_(replace), flags_(flags) { }
-    basic_regex_filter( const regex_type& re,
-                        const string_type& fmt,
-                        flag_type flags = regex_constants::match_default,
-                        flag_type fmt_flags = regex_constants::format_default )
-        : re_(re), replace_(simple_formatter(fmt, fmt_flags)), flags_(flags) { }
-    basic_regex_filter( const regex_type& re,
-                        const char_type* fmt,
-                        flag_type flags = regex_constants::match_default,
-                        flag_type fmt_flags = regex_constants::format_default )
-        : re_(re), replace_(simple_formatter(fmt, fmt_flags)), flags_(flags) { }
-private:
-    typedef typename base_type::vector_type       vector_type;
-    void do_filter(const vector_type& src, vector_type& dest)
-        {
-            typedef regex_iterator<const Ch*, Ch, Tr> iterator;
-            if (src.empty())
-                return;
-            iterator first(&src[0], &src[0] + src.size(), re_, flags_);
-            iterator last;
-            const Ch* suffix = 0;
-            for (; first != last; ++first) {
-                dest.insert( dest.end(), 
-                             first->prefix().first,
-                             first->prefix().second );
-                string_type replacement = replace_(*first);
-                dest.insert( dest.end(), 
-                             replacement.begin(),
-                             replacement.end() );
-                suffix = first->suffix().first;
-            }
-            if (suffix) {
-                dest.insert(dest.end(), suffix, &src[0] + src.size());
-            } else {
-                dest.insert(dest.end(), &src[0], &src[0] + src.size());
-            }
-        }
-    struct simple_formatter {
-        simple_formatter(const string_type& fmt, flag_type fmt_flags) 
-            : fmt_(fmt), fmt_flags_(fmt_flags) { }
-        string_type operator() (const match_type& match) const
-        { return match.format(fmt_, fmt_flags_); }
-        string_type  fmt_;
-        flag_type    fmt_flags_;
-    };
-    regex_type  re_;
-    formatter   replace_;
-    flag_type   flags_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_regex_filter, 3)
-
-typedef basic_regex_filter<char>     regex_filter;
-typedef basic_regex_filter<wchar_t>  wregex_filter;
-
-
-} } // End namespaces iostreams, boost.
-
-#endif      // #ifndef NDNBOOST_IOSTREAMS_REGEX_FILTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/stdio.hpp b/include/ndnboost/iostreams/filter/stdio.hpp
deleted file mode 100644
index 33e8426..0000000
--- a/include/ndnboost/iostreams/filter/stdio.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Based on the work of Christopher Diggins.
-
-#ifndef NDNBOOST_IOSTREAMS_STDIO_FILTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_STDIO_FILTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <iostream>
-#include <memory>    // allocator.
-#include <vector>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>
-#include <ndnboost/iostreams/device/array.hpp>
-#include <ndnboost/iostreams/device/back_inserter.hpp>
-#include <ndnboost/iostreams/filter/aggregate.hpp>
-#include <ndnboost/iostreams/pipeline.hpp>
-#include <ndnboost/iostreams/stream_buffer.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-} // End namespace detail.
-
-template<typename Ch, typename Alloc = std::allocator<Ch> >
-class basic_stdio_filter : public aggregate_filter<Ch, Alloc> {
-private:
-    typedef aggregate_filter<Ch, Alloc>       base_type;
-public:
-    typedef typename base_type::char_type    char_type;
-    typedef typename base_type::category     category;
-    typedef typename base_type::vector_type  vector_type;
-private:
-    static std::istream& standard_input(char*) { return std::cin; }
-    static std::ostream& standard_output(char*) { return std::cout; }
-#ifndef NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS
-    static std::wistream& standard_input(wchar_t*) { return std::wcin; }
-    static std::wostream& standard_output(wchar_t*) { return std::wcout; }
-#endif // NDNBOOST_IOSTREAMS_NO_WIDE_STREAMS
-
-    struct scoped_redirector { // Thanks to Maxim Egorushkin.
-        typedef NDNBOOST_IOSTREAMS_CHAR_TRAITS(Ch)                  traits_type;
-        typedef NDNBOOST_IOSTREAMS_BASIC_IOS(Ch, traits_type)       ios_type;
-        typedef NDNBOOST_IOSTREAMS_BASIC_STREAMBUF(Ch, traits_type) streambuf_type;
-        scoped_redirector( ios_type& ios,
-                           streambuf_type* newbuf )
-            : ios_(ios), old_(ios.rdbuf(newbuf))
-            { }
-        ~scoped_redirector() { ios_.rdbuf(old_); }
-        scoped_redirector& operator=(const scoped_redirector&);
-        ios_type&        ios_;
-        streambuf_type*  old_;
-    };
-
-    virtual void do_filter() = 0;
-    virtual void do_filter(const vector_type& src, vector_type& dest)
-    {
-        stream_buffer< basic_array_source<Ch> >
-                          srcbuf(&src[0], &src[0] + src.size());
-        stream_buffer< back_insert_device<vector_type> >
-                          destbuf(iostreams::back_inserter(dest));
-        scoped_redirector redirect_input(standard_input((Ch*)0), &srcbuf);
-        scoped_redirector redirect_output(standard_output((Ch*)0), &destbuf);
-        do_filter();
-    }
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_stdio_filter, 2)
-
-typedef basic_stdio_filter<char>     stdio_filter;
-typedef basic_stdio_filter<wchar_t>  wstdio_wfilter;
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_STDIO_FILTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/symmetric.hpp b/include/ndnboost/iostreams/filter/symmetric.hpp
deleted file mode 100644
index 9c59900..0000000
--- a/include/ndnboost/iostreams/filter/symmetric.hpp
+++ /dev/null
@@ -1,310 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Contains the definitions of the class templates symmetric_filter,
-// which models DualUseFilter based on a model of the Symmetric Filter.
-
-//
-// Roughly, a Symmetric Filter is a class type with the following interface:
-//
-//   struct symmetric_filter {
-//       typedef xxx char_type;
-//
-//       bool filter( const char*& begin_in, const char* end_in,
-//                    char*& begin_out, char* end_out, bool flush )
-//       {
-//          // Consume as many characters as possible from the interval
-//          // [begin_in, end_in), without exhausting the output range
-//          // [begin_out, end_out). If flush is true, write as mush output
-//          // as possible. 
-//          // A return value of true indicates that filter should be called 
-//          // again. More precisely, if flush is false, a return value of 
-//          // false indicates that the natural end of stream has been reached
-//          // and that all filtered data has been forwarded; if flush is
-//          // true, a return value of false indicates that all filtered data 
-//          // has been forwarded.
-//       }
-//       void close() { /* Reset filter's state. */ }
-//   };
-//
-// Symmetric Filter filters need not be CopyConstructable.
-//
-
-#ifndef NDNBOOST_IOSTREAMS_SYMMETRIC_FILTER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_SYMMETRIC_FILTER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/assert.hpp>
-#include <memory>                               // allocator, auto_ptr.
-#include <ndnboost/config.hpp>                     // NDNBOOST_DEDUCED_TYPENAME.
-#include <ndnboost/iostreams/char_traits.hpp>
-#include <ndnboost/iostreams/constants.hpp>        // buffer size.
-#include <ndnboost/iostreams/detail/buffer.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/config/limits.hpp>
-#include <ndnboost/iostreams/detail/template_params.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/iostreams/operations.hpp>       // read, write.
-#include <ndnboost/iostreams/pipeline.hpp>
-#include <ndnboost/preprocessor/iteration/local.hpp>
-#include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-#include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/shared_ptr.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-namespace ndnboost { namespace iostreams {
-
-template< typename SymmetricFilter,
-          typename Alloc =
-              std::allocator<
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<SymmetricFilter>::type
-              > >
-class symmetric_filter {
-public:
-    typedef typename char_type_of<SymmetricFilter>::type      char_type;
-    typedef NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)            traits_type;
-    typedef std::basic_string<char_type, traits_type, Alloc>  string_type;
-    struct category
-        : dual_use,
-          filter_tag,
-          multichar_tag,
-          closable_tag
-        { };
-
-    // Expands to a sequence of ctors which forward to impl.
-    #define NDNBOOST_PP_LOCAL_MACRO(n) \
-        NDNBOOST_IOSTREAMS_TEMPLATE_PARAMS(n, T) \
-        explicit symmetric_filter( \
-              int buffer_size NDNBOOST_PP_COMMA_IF(n) \
-              NDNBOOST_PP_ENUM_BINARY_PARAMS(n, const T, &t) ) \
-            : pimpl_(new impl(buffer_size NDNBOOST_PP_COMMA_IF(n) \
-                     NDNBOOST_PP_ENUM_PARAMS(n, t))) \
-            { NDNBOOST_ASSERT(buffer_size > 0); } \
-        /**/
-    #define NDNBOOST_PP_LOCAL_LIMITS (0, NDNBOOST_IOSTREAMS_MAX_FORWARDING_ARITY)
-    #include NDNBOOST_PP_LOCAL_ITERATE()
-    #undef NDNBOOST_PP_LOCAL_MACRO
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    {
-        using namespace std;
-        if (!(state() & f_read))
-            begin_read();
-
-        buffer_type&  buf = pimpl_->buf_;
-        int           status = (state() & f_eof) != 0 ? f_eof : f_good;
-        char_type    *next_s = s,
-                     *end_s = s + n;
-        while (true)
-        {
-            // Invoke filter if there are unconsumed characters in buffer or if
-            // filter must be flushed.
-            bool flush = status == f_eof;
-            if (buf.ptr() != buf.eptr() || flush) {
-                const char_type* next = buf.ptr();
-                bool done =
-                    !filter().filter(next, buf.eptr(), next_s, end_s, flush);
-                buf.ptr() = buf.data() + (next - buf.data());
-                if (done)
-                    return detail::check_eof(
-                               static_cast<std::streamsize>(next_s - s)
-                           );
-            }
-
-            // If no more characters are available without blocking, or
-            // if read request has been satisfied, return.
-            if ( (status == f_would_block && buf.ptr() == buf.eptr()) ||
-                 next_s == end_s )
-            {
-                return static_cast<std::streamsize>(next_s - s);
-            }
-
-            // Fill buffer.
-            if (status == f_good)
-                status = fill(src);
-        }
-    }
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    {
-        if (!(state() & f_write))
-            begin_write();
-
-        buffer_type&     buf = pimpl_->buf_;
-        const char_type *next_s, *end_s;
-        for (next_s = s, end_s = s + n; next_s != end_s; ) {
-            if (buf.ptr() == buf.eptr() && !flush(snk))
-                break;
-            if(!filter().filter(next_s, end_s, buf.ptr(), buf.eptr(), false)) {
-                flush(snk);
-                break;
-            }
-        }
-        return static_cast<std::streamsize>(next_s - s);
-    }
-
-    template<typename Sink>
-    void close(Sink& snk, NDNBOOST_IOS::openmode mode)
-    {
-        if (mode == NDNBOOST_IOS::out) {
-
-            if (!(state() & f_write))
-                begin_write();
-
-            // Repeatedly invoke filter() with no input.
-            try {
-                buffer_type&     buf = pimpl_->buf_;
-                char_type        dummy;
-                const char_type* end = &dummy;
-                bool             again = true;
-                while (again) {
-                    if (buf.ptr() != buf.eptr())
-                        again = filter().filter( end, end, buf.ptr(),
-                                                 buf.eptr(), true );
-                    flush(snk);
-                }
-            } catch (...) {
-                try { close_impl(); } catch (...) { }
-                throw;
-            }
-            close_impl();
-        } else {
-            close_impl();
-        }
-    }
-    SymmetricFilter& filter() { return *pimpl_; }
-    string_type unconsumed_input() const;
-
-// Give impl access to buffer_type on Tru64
-#if !NDNBOOST_WORKAROUND(__DECCXX_VER, NDNBOOST_TESTED_AT(60590042)) 
-    private:
-#endif
-    typedef detail::buffer<char_type, Alloc> buffer_type;
-private:
-    buffer_type& buf() { return pimpl_->buf_; }
-    const buffer_type& buf() const { return pimpl_->buf_; }
-    int& state() { return pimpl_->state_; }
-    void begin_read();
-    void begin_write();
-
-    template<typename Source>
-    int fill(Source& src)
-    {
-        std::streamsize amt = iostreams::read(src, buf().data(), buf().size());
-        if (amt == -1) {
-            state() |= f_eof;
-            return f_eof;
-        }
-        buf().set(0, amt);
-        return amt != 0 ? f_good : f_would_block;
-    }
-
-    // Attempts to write the contents of the buffer the given Sink.
-    // Returns true if at least on character was written.
-    template<typename Sink>
-    bool flush(Sink& snk)
-    {
-        typedef typename iostreams::category_of<Sink>::type  category;
-        typedef is_convertible<category, output>             can_write;
-        return flush(snk, can_write());
-    }
-
-    template<typename Sink>
-    bool flush(Sink& snk, mpl::true_)
-    {
-        std::streamsize amt =
-            static_cast<std::streamsize>(buf().ptr() - buf().data());
-        std::streamsize result =
-            ndnboost::iostreams::write(snk, buf().data(), amt);
-        if (result < amt && result > 0)
-            traits_type::move(buf().data(), buf().data() + result, amt - result);
-        buf().set(amt - result, buf().size());
-        return result != 0;
-    }
-
-    template<typename Sink>
-    bool flush(Sink&, mpl::false_) { return true;}
-
-    void close_impl();
-
-    enum flag_type {
-        f_read   = 1,
-        f_write  = f_read << 1,
-        f_eof    = f_write << 1,
-        f_good,
-        f_would_block
-    };
-
-    struct impl : SymmetricFilter {
-
-    // Expands to a sequence of ctors which forward to SymmetricFilter.
-    #define NDNBOOST_PP_LOCAL_MACRO(n) \
-        NDNBOOST_IOSTREAMS_TEMPLATE_PARAMS(n, T) \
-        impl( int buffer_size NDNBOOST_PP_COMMA_IF(n) \
-              NDNBOOST_PP_ENUM_BINARY_PARAMS(n, const T, &t) ) \
-            : SymmetricFilter(NDNBOOST_PP_ENUM_PARAMS(n, t)), \
-              buf_(buffer_size), state_(0) \
-            { } \
-        /**/
-    #define NDNBOOST_PP_LOCAL_LIMITS (0, NDNBOOST_IOSTREAMS_MAX_FORWARDING_ARITY)
-    #include NDNBOOST_PP_LOCAL_ITERATE()
-    #undef NDNBOOST_PP_LOCAL_MACRO
-
-        buffer_type  buf_;
-        int          state_;
-    };
-
-    shared_ptr<impl> pimpl_;
-};
-NDNBOOST_IOSTREAMS_PIPABLE(symmetric_filter, 2)
-
-//------------------Implementation of symmetric_filter----------------//
-
-template<typename SymmetricFilter, typename Alloc>
-void symmetric_filter<SymmetricFilter, Alloc>::begin_read()
-{
-    NDNBOOST_ASSERT(!(state() & f_write));
-    state() |= f_read;
-    buf().set(0, 0);
-}
-
-template<typename SymmetricFilter, typename Alloc>
-void symmetric_filter<SymmetricFilter, Alloc>::begin_write()
-{
-    NDNBOOST_ASSERT(!(state() & f_read));
-    state() |= f_write;
-    buf().set(0, buf().size());
-}
-
-template<typename SymmetricFilter, typename Alloc>
-void symmetric_filter<SymmetricFilter, Alloc>::close_impl()
-{
-    state() = 0;
-    buf().set(0, 0);
-    filter().close();
-}
-
-template<typename SymmetricFilter, typename Alloc>
-typename symmetric_filter<SymmetricFilter, Alloc>::string_type
-symmetric_filter<SymmetricFilter, Alloc>::unconsumed_input() const
-{ return string_type(buf().ptr(), buf().eptr()); }
-
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>  // MSVC.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_SYMMETRIC_FILTER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/test.hpp b/include/ndnboost/iostreams/filter/test.hpp
deleted file mode 100644
index 2ad7b5d..0000000
--- a/include/ndnboost/iostreams/filter/test.hpp
+++ /dev/null
@@ -1,322 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_FILTER_TEST_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>               // NDNBOOST_MSVC,put size_t in std.
-#include <ndnboost/detail/workaround.hpp>
-#include <algorithm>                      // min.
-#include <cstddef>                        // size_t.
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) || \
-    NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) || \
-    NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
-    /**/
-# include <cstdlib>                       // rand.
-#endif
-#include <cstring>                        // memcpy, strlen.
-#include <iterator>
-#include <string>
-#include <vector>
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) && \
-    !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
-    /**/
-# include <ndnboost/random/linear_congruential.hpp>
-# include <ndnboost/random/uniform_smallint.hpp>
-#endif
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/compose.hpp>
-#include <ndnboost/iostreams/copy.hpp>
-#include <ndnboost/iostreams/detail/bool_trait_def.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>
-#include <ndnboost/iostreams/device/array.hpp>
-#include <ndnboost/iostreams/device/back_inserter.hpp>
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-#undef memcpy
-#undef rand
-#undef strlen
-
-#if defined(NDNBOOST_NO_STDC_NAMESPACE) && !defined(__LIBCOMO__)
-namespace std { 
-    using ::memcpy; 
-    using ::strlen; 
-    #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) || \
-        NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) || \
-        NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
-        /**/
-        using ::rand; 
-    #endif
-}
-#endif
-
-namespace ndnboost { namespace iostreams {
-
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_string, std::basic_string, 3)
-
-const std::streamsize default_increment = 5;
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) && \
-    !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
-    /**/
-    std::streamsize rand(int inc)
-    {
-        static rand48                random_gen;
-        static uniform_smallint<int> random_dist(0, inc);
-        return random_dist(random_gen);
-    }
-#else
-    std::streamsize rand(int inc) 
-    { 
-        return (std::rand() * inc + 1) / RAND_MAX; 
-    }
-#endif
-
-class non_blocking_source {
-public:
-    typedef char char_type;
-    struct category
-        : source_tag,
-          peekable_tag
-        { };
-    explicit non_blocking_source( const std::string& data, 
-                                  std::streamsize inc = default_increment ) 
-        : data_(data), inc_(inc), pos_(0)
-        { }
-    std::streamsize read(char* s, std::streamsize n)
-    {
-        if (pos_ == static_cast<std::streamsize>(data_.size()))
-            return -1;
-        std::streamsize avail = 
-            (std::min) (n, static_cast<std::streamsize>(data_.size() - pos_));
-        std::streamsize amt = (std::min) (rand(inc_), avail);
-        if (amt)
-            std::memcpy(s, data_.c_str() + pos_, amt);
-        pos_ += amt;
-        return amt;
-    }
-
-    bool putback(char c)
-    {
-        if (pos_ > 0) {
-            data_[--pos_] = c;
-            return true;
-        }
-        return false;
-    }
-private:
-    std::string      data_;
-    std::streamsize  inc_, pos_;
-};
-
-class non_blocking_sink : public sink {
-public:
-    non_blocking_sink( std::string& dest,
-                       std::streamsize inc = default_increment ) 
-        : dest_(dest), inc_(inc) 
-        { }
-    std::streamsize write(const char* s, std::streamsize n)
-    {
-        std::streamsize amt = (std::min) (rand(inc_), n);
-        dest_.insert(dest_.end(), s, s + amt);
-        return amt;
-    }
-private:
-    non_blocking_sink& operator=(const non_blocking_sink&);
-    std::string&     dest_;
-    std::streamsize  inc_;
-};
-                
-//--------------Definition of test_input_filter-------------------------------//
-
-template<typename Filter>
-bool test_input_filter( Filter filter, 
-                        const std::string& input, 
-                        const std::string& output, 
-                        mpl::true_ )
-{
-    for ( int inc = default_increment; 
-          inc < default_increment * 40; 
-          inc += default_increment )
-    {
-        non_blocking_source  src(input, inc);
-        std::string          dest;
-        iostreams::copy(compose(filter, src), iostreams::back_inserter(dest));
-        if (dest != output)
-            return false;
-    }
-    return true;
-}
-
-template<typename Filter, typename Source1, typename Source2>
-bool test_input_filter( Filter filter, 
-                        const Source1& input, 
-                        const Source2& output, 
-                        mpl::false_ )
-{
-    std::string in;
-    std::string out;
-    iostreams::copy(input, iostreams::back_inserter(in));
-    iostreams::copy(output, iostreams::back_inserter(out));
-    return test_input_filter(filter, in, out);
-}
-
-template<typename Filter, typename Source1, typename Source2>
-bool test_input_filter( Filter filter, 
-                        const Source1& input, 
-                        const Source2& output )
-{
-    // Use tag dispatch to compensate for bad overload resolution.
-    return test_input_filter( filter, input, output,    
-                              is_string<Source1>() );
-}
-
-//--------------Definition of test_output_filter------------------------------//
-
-template<typename Filter>
-bool test_output_filter( Filter filter, 
-                         const std::string& input, 
-                         const std::string& output, 
-                         mpl::true_ )
-{
-    for ( int inc = default_increment; 
-          inc < default_increment * 40; 
-          inc += default_increment )
-    {
-        array_source  src(input.data(), input.data() + input.size());
-        std::string   dest;
-        iostreams::copy(src, compose(filter, non_blocking_sink(dest, inc)));
-        if (dest != output )
-            return false;
-    }
-    return true;
-}
-
-template<typename Filter, typename Source1, typename Source2>
-bool test_output_filter( Filter filter, 
-                         const Source1& input, 
-                         const Source2& output, 
-                         mpl::false_ )
-{
-    std::string in;
-    std::string out;
-    iostreams::copy(input, iostreams::back_inserter(in));
-    iostreams::copy(output, iostreams::back_inserter(out));
-    return test_output_filter(filter, in, out);
-}
-
-template<typename Filter, typename Source1, typename Source2>
-bool test_output_filter( Filter filter, 
-                         const Source1& input, 
-                         const Source2& output )
-{
-    // Use tag dispatch to compensate for bad overload resolution.
-    return test_output_filter( filter, input, output,    
-                               is_string<Source1>() );
-}
-
-//--------------Definition of test_filter_pair--------------------------------//
-
-template<typename OutputFilter, typename InputFilter>
-bool test_filter_pair( OutputFilter out, 
-                       InputFilter in, 
-                       const std::string& data, 
-                       mpl::true_ )
-{
-    for ( int inc = default_increment; 
-          inc <= default_increment * 40; 
-          inc += default_increment )
-    {
-        {
-            array_source  src(data.data(), data.data() + data.size());
-            std::string   temp;
-            std::string   dest;
-            iostreams::copy(src, compose(out, non_blocking_sink(temp, inc)));
-            iostreams::copy( 
-                compose(in, non_blocking_source(temp, inc)),
-                iostreams::back_inserter(dest)
-            );
-            if (dest != data)
-                return false;
-        }
-        {
-            array_source  src(data.data(), data.data() + data.size());
-            std::string   temp;
-            std::string   dest;
-            iostreams::copy(src, compose(out, non_blocking_sink(temp, inc)));
-            // truncate the file, this should not loop, it may throw
-            // std::ios_base::failure, which we swallow.
-            try {
-                temp.resize(temp.size() / 2);
-                iostreams::copy( 
-                    compose(in, non_blocking_source(temp, inc)),
-                    iostreams::back_inserter(dest)
-                );
-            } catch(std::ios_base::failure&) {}
-        }
-        {
-            array_source  src(data.data(), data.data() + data.size());
-            std::string   temp;
-            std::string   dest;
-            iostreams::copy(compose(out, src), non_blocking_sink(temp, inc));
-            iostreams::copy( 
-                non_blocking_source(temp, inc),
-                compose(in, iostreams::back_inserter(dest))
-            );
-            if (dest != data)
-                return false;
-        }
-        {
-            array_source  src(data.data(), data.data() + data.size());
-            std::string   temp;
-            std::string   dest;
-            iostreams::copy(compose(out, src), non_blocking_sink(temp, inc));
-            // truncate the file, this should not loop, it may throw
-            // std::ios_base::failure, which we swallow.
-            try {
-                temp.resize(temp.size() / 2);
-                iostreams::copy( 
-                    non_blocking_source(temp, inc),
-                    compose(in, iostreams::back_inserter(dest))
-                );
-            } catch(std::ios_base::failure&) {}
-        }
-    }
-    return true;
-}
-
-template<typename OutputFilter, typename InputFilter, typename Source>
-bool test_filter_pair( OutputFilter out, 
-                       InputFilter in, 
-                       const Source& data, 
-                       mpl::false_ )
-{
-    std::string str;
-    iostreams::copy(data, iostreams::back_inserter(str));
-    return test_filter_pair(out, in, str);
-}
-
-template<typename OutputFilter, typename InputFilter, typename Source>
-bool test_filter_pair( OutputFilter out, 
-                       InputFilter in, 
-                       const Source& data )
-{
-    // Use tag dispatch to compensate for bad overload resolution.
-    return test_filter_pair(out, in, data, is_string<Source>());
-}
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_FILTER_TEST_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filter/zlib.hpp b/include/ndnboost/iostreams/filter/zlib.hpp
deleted file mode 100644
index 6c5ed39..0000000
--- a/include/ndnboost/iostreams/filter/zlib.hpp
+++ /dev/null
@@ -1,427 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Note: custom allocators are not supported on VC6, since that compiler
-// had trouble finding the function zlib_base::do_init.
-
-#ifndef NDNBOOST_IOSTREAMS_ZLIB_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_ZLIB_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <cassert>                            
-#include <iosfwd>            // streamsize.                 
-#include <memory>            // allocator, bad_alloc.
-#include <new>          
-#include <ndnboost/config.hpp>  // MSVC, STATIC_CONSTANT, DEDUCED_TYPENAME, DINKUM.
-#include <ndnboost/cstdint.hpp> // uint*_t
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/constants.hpp>   // buffer size.
-#include <ndnboost/iostreams/detail/config/auto_link.hpp>
-#include <ndnboost/iostreams/detail/config/dyn_link.hpp>
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/config/zlib.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // failure, streamsize.
-#include <ndnboost/iostreams/filter/symmetric.hpp>                
-#include <ndnboost/iostreams/pipeline.hpp>                
-#include <ndnboost/type_traits/is_same.hpp>
-
-// Must come last.
-#ifdef NDNBOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable:4251 4231 4660)         // Dependencies not exported.
-#endif
-#include <ndnboost/config/abi_prefix.hpp>           
-
-namespace ndnboost { namespace iostreams {
-
-namespace zlib {
-                    // Typedefs
-
-typedef uint32_t uint;
-typedef uint8_t byte;
-typedef uint32_t ulong;
-
-// Prefix 'x' prevents symbols from being redefined when Z_PREFIX is defined
-typedef void* (*xalloc_func)(void*, zlib::uint, zlib::uint);
-typedef void (*xfree_func)(void*, void*);
-
-                    // Compression levels
-
-NDNBOOST_IOSTREAMS_DECL extern const int no_compression;
-NDNBOOST_IOSTREAMS_DECL extern const int best_speed;
-NDNBOOST_IOSTREAMS_DECL extern const int best_compression;
-NDNBOOST_IOSTREAMS_DECL extern const int default_compression;
-
-                    // Compression methods
-
-NDNBOOST_IOSTREAMS_DECL extern const int deflated;
-
-                    // Compression strategies
-
-NDNBOOST_IOSTREAMS_DECL extern const int default_strategy;
-NDNBOOST_IOSTREAMS_DECL extern const int filtered;
-NDNBOOST_IOSTREAMS_DECL extern const int huffman_only;
-
-                    // Status codes
-
-NDNBOOST_IOSTREAMS_DECL extern const int okay;
-NDNBOOST_IOSTREAMS_DECL extern const int stream_end;
-NDNBOOST_IOSTREAMS_DECL extern const int stream_error;
-NDNBOOST_IOSTREAMS_DECL extern const int version_error;
-NDNBOOST_IOSTREAMS_DECL extern const int data_error;
-NDNBOOST_IOSTREAMS_DECL extern const int mem_error;
-NDNBOOST_IOSTREAMS_DECL extern const int buf_error;
-
-                    // Flush codes
-
-NDNBOOST_IOSTREAMS_DECL extern const int finish;
-NDNBOOST_IOSTREAMS_DECL extern const int no_flush;
-NDNBOOST_IOSTREAMS_DECL extern const int sync_flush;
-
-                    // Code for current OS
-
-//NDNBOOST_IOSTREAMS_DECL extern const int os_code;
-
-                    // Null pointer constant.
-
-const int null                               = 0;
-
-                    // Default values
-
-const int default_window_bits                = 15;
-const int default_mem_level                  = 8;
-const bool default_crc                       = false;
-const bool default_noheader                  = false;
-
-} // End namespace zlib. 
-
-//
-// Class name: zlib_params.
-// Description: Encapsulates the parameters passed to deflateInit2
-//      and inflateInit2 to customize compression and decompression.
-//
-struct zlib_params {
-
-    // Non-explicit constructor.
-    zlib_params( int level           = zlib::default_compression,
-                 int method          = zlib::deflated,
-                 int window_bits     = zlib::default_window_bits, 
-                 int mem_level       = zlib::default_mem_level, 
-                 int strategy        = zlib::default_strategy,
-                 bool noheader       = zlib::default_noheader,
-                 bool calculate_crc  = zlib::default_crc )
-        : level(level), method(method), window_bits(window_bits),
-          mem_level(mem_level), strategy(strategy),  
-          noheader(noheader), calculate_crc(calculate_crc)
-        { }
-    int level;
-    int method;
-    int window_bits;
-    int mem_level;
-    int strategy;
-    bool noheader;
-    bool calculate_crc;
-};
-
-//
-// Class name: zlib_error.
-// Description: Subclass of std::ios::failure thrown to indicate
-//     zlib errors other than out-of-memory conditions.
-//
-class NDNBOOST_IOSTREAMS_DECL zlib_error : public NDNBOOST_IOSTREAMS_FAILURE {
-public:
-    explicit zlib_error(int error);
-    int error() const { return error_; }
-    static void check NDNBOOST_PREVENT_MACRO_SUBSTITUTION(int error);
-private:
-    int error_;
-};
-
-namespace detail {
-
-template<typename Alloc>
-struct zlib_allocator_traits {
-#ifndef NDNBOOST_NO_STD_ALLOCATOR
-    typedef typename Alloc::template rebind<char>::other type;
-#else
-    typedef std::allocator<char> type;
-#endif
-};
-
-template< typename Alloc,
-          typename Base = // VC6 workaround (C2516)
-              NDNBOOST_DEDUCED_TYPENAME zlib_allocator_traits<Alloc>::type >
-struct zlib_allocator : private Base {
-private:
-    typedef typename Base::size_type size_type;
-public:
-    NDNBOOST_STATIC_CONSTANT(bool, custom = 
-        (!is_same<std::allocator<char>, Base>::value));
-    typedef typename zlib_allocator_traits<Alloc>::type allocator_type;
-    static void* allocate(void* self, zlib::uint items, zlib::uint size);
-    static void deallocate(void* self, void* address);
-};
-
-class NDNBOOST_IOSTREAMS_DECL zlib_base { 
-public:
-    typedef char char_type;
-protected:
-    zlib_base();
-    ~zlib_base();
-    void* stream() { return stream_; }
-    template<typename Alloc> 
-    void init( const zlib_params& p, 
-               bool compress,
-               zlib_allocator<Alloc>& zalloc )
-        {
-            bool custom = zlib_allocator<Alloc>::custom;
-            do_init( p, compress,
-                     #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-                         custom ? zlib_allocator<Alloc>::allocate : 0,
-                         custom ? zlib_allocator<Alloc>::deallocate : 0,
-                     #endif
-                     &zalloc );
-        }
-    void before( const char*& src_begin, const char* src_end,
-                 char*& dest_begin, char* dest_end );
-    void after( const char*& src_begin, char*& dest_begin, 
-                bool compress );
-    int xdeflate(int flush);  // Prefix 'x' prevents symbols from being 
-    int xinflate(int flush);  // redefined when Z_PREFIX is defined
-    void reset(bool compress, bool realloc);
-public:
-    zlib::ulong crc() const { return crc_; }
-    int total_in() const { return total_in_; }
-    int total_out() const { return total_out_; }
-private:
-    void do_init( const zlib_params& p, bool compress, 
-                  #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-                      zlib::xalloc_func, 
-                      zlib::xfree_func, 
-                  #endif
-                  void* derived );
-    void*        stream_;         // Actual type: z_stream*.
-    bool         calculate_crc_;
-    zlib::ulong  crc_;
-    zlib::ulong  crc_imp_;
-    int          total_in_;
-    int          total_out_;
-};
-
-//
-// Template name: zlib_compressor_impl
-// Description: Model of C-Style Filte implementing compression by
-//      delegating to the zlib function deflate.
-//
-template<typename Alloc = std::allocator<char> >
-class zlib_compressor_impl : public zlib_base, public zlib_allocator<Alloc> { 
-public: 
-    zlib_compressor_impl(const zlib_params& = zlib::default_compression);
-    ~zlib_compressor_impl();
-    bool filter( const char*& src_begin, const char* src_end,
-                 char*& dest_begin, char* dest_end, bool flush );
-    void close();
-};
-
-//
-// Template name: zlib_compressor
-// Description: Model of C-Style Filte implementing decompression by
-//      delegating to the zlib function inflate.
-//
-template<typename Alloc = std::allocator<char> >
-class zlib_decompressor_impl : public zlib_base, public zlib_allocator<Alloc> {
-public:
-    zlib_decompressor_impl(const zlib_params&);
-    zlib_decompressor_impl(int window_bits = zlib::default_window_bits);
-    ~zlib_decompressor_impl();
-    bool filter( const char*& begin_in, const char* end_in,
-                 char*& begin_out, char* end_out, bool flush );
-    void close();
-    bool eof() const { return eof_; }
-private:
-    bool eof_;
-};
-
-} // End namespace detail.
-
-//
-// Template name: zlib_compressor
-// Description: Model of InputFilter and OutputFilter implementing
-//      compression using zlib.
-//
-template<typename Alloc = std::allocator<char> >
-struct basic_zlib_compressor 
-    : symmetric_filter<detail::zlib_compressor_impl<Alloc>, Alloc> 
-{
-private:
-    typedef detail::zlib_compressor_impl<Alloc>         impl_type;
-    typedef symmetric_filter<impl_type, Alloc>  base_type;
-public:
-    typedef typename base_type::char_type               char_type;
-    typedef typename base_type::category                category;
-    basic_zlib_compressor( const zlib_params& = zlib::default_compression, 
-                           int buffer_size = default_device_buffer_size );
-    zlib::ulong crc() { return this->filter().crc(); }
-    int total_in() {  return this->filter().total_in(); }
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_zlib_compressor, 1)
-
-typedef basic_zlib_compressor<> zlib_compressor;
-
-//
-// Template name: zlib_decompressor
-// Description: Model of InputFilter and OutputFilter implementing
-//      decompression using zlib.
-//
-template<typename Alloc = std::allocator<char> >
-struct basic_zlib_decompressor 
-    : symmetric_filter<detail::zlib_decompressor_impl<Alloc>, Alloc> 
-{
-private:
-    typedef detail::zlib_decompressor_impl<Alloc>       impl_type;
-    typedef symmetric_filter<impl_type, Alloc>  base_type;
-public:
-    typedef typename base_type::char_type               char_type;
-    typedef typename base_type::category                category;
-    basic_zlib_decompressor( int window_bits = zlib::default_window_bits,
-                             int buffer_size = default_device_buffer_size );
-    basic_zlib_decompressor( const zlib_params& p,
-                             int buffer_size = default_device_buffer_size );
-    zlib::ulong crc() { return this->filter().crc(); }
-    int total_out() {  return this->filter().total_out(); }
-    bool eof() { return this->filter().eof(); }
-};
-NDNBOOST_IOSTREAMS_PIPABLE(basic_zlib_decompressor, 1)
-
-typedef basic_zlib_decompressor<> zlib_decompressor;
-
-//----------------------------------------------------------------------------//
-
-//------------------Implementation of zlib_allocator--------------------------//
-
-namespace detail {
-
-template<typename Alloc, typename Base>
-void* zlib_allocator<Alloc, Base>::allocate
-    (void* self, zlib::uint items, zlib::uint size)
-{ 
-    size_type len = items * size;
-    char* ptr = 
-        static_cast<allocator_type*>(self)->allocate
-            (len + sizeof(size_type)
-            #if NDNBOOST_WORKAROUND(NDNBOOST_DINKUMWARE_STDLIB, == 1)
-                , (char*)0
-            #endif
-            );
-    *reinterpret_cast<size_type*>(ptr) = len;
-    return ptr + sizeof(size_type);
-}
-
-template<typename Alloc, typename Base>
-void zlib_allocator<Alloc, Base>::deallocate(void* self, void* address)
-{ 
-    char* ptr = reinterpret_cast<char*>(address) - sizeof(size_type);
-    size_type len = *reinterpret_cast<size_type*>(ptr) + sizeof(size_type);
-    static_cast<allocator_type*>(self)->deallocate(ptr, len); 
-}
-
-//------------------Implementation of zlib_compressor_impl--------------------//
-
-template<typename Alloc>
-zlib_compressor_impl<Alloc>::zlib_compressor_impl(const zlib_params& p)
-{ init(p, true, static_cast<zlib_allocator<Alloc>&>(*this)); }
-
-template<typename Alloc>
-zlib_compressor_impl<Alloc>::~zlib_compressor_impl()
-{ reset(true, false); }
-
-template<typename Alloc>
-bool zlib_compressor_impl<Alloc>::filter
-    ( const char*& src_begin, const char* src_end,
-      char*& dest_begin, char* dest_end, bool flush )
-{
-    before(src_begin, src_end, dest_begin, dest_end);
-    int result = xdeflate(flush ? zlib::finish : zlib::no_flush);
-    after(src_begin, dest_begin, true);
-    zlib_error::check NDNBOOST_PREVENT_MACRO_SUBSTITUTION(result);
-    return result != zlib::stream_end; 
-}
-
-template<typename Alloc>
-void zlib_compressor_impl<Alloc>::close() { reset(true, true); }
-
-//------------------Implementation of zlib_decompressor_impl------------------//
-
-template<typename Alloc>
-zlib_decompressor_impl<Alloc>::zlib_decompressor_impl(const zlib_params& p)
-  : eof_(false)
-{ init(p, false, static_cast<zlib_allocator<Alloc>&>(*this)); }
-
-template<typename Alloc>
-zlib_decompressor_impl<Alloc>::~zlib_decompressor_impl()
-{ reset(false, false); }
-
-template<typename Alloc>
-zlib_decompressor_impl<Alloc>::zlib_decompressor_impl(int window_bits)
-{ 
-    zlib_params p;
-    p.window_bits = window_bits;
-    init(p, false, static_cast<zlib_allocator<Alloc>&>(*this)); 
-}
-
-template<typename Alloc>
-bool zlib_decompressor_impl<Alloc>::filter
-    ( const char*& src_begin, const char* src_end,
-      char*& dest_begin, char* dest_end, bool /* flush */ )
-{
-    before(src_begin, src_end, dest_begin, dest_end);
-    int result = xinflate(zlib::sync_flush);
-    after(src_begin, dest_begin, false);
-    zlib_error::check NDNBOOST_PREVENT_MACRO_SUBSTITUTION(result);
-    return !(eof_ = result == zlib::stream_end);
-}
-
-template<typename Alloc>
-void zlib_decompressor_impl<Alloc>::close() {
-    eof_ = false;
-    reset(false, true);
-}
-
-} // End namespace detail.
-
-//------------------Implementation of zlib_decompressor-----------------------//
-
-template<typename Alloc>
-basic_zlib_compressor<Alloc>::basic_zlib_compressor
-    (const zlib_params& p, int buffer_size) 
-    : base_type(buffer_size, p) { }
-
-//------------------Implementation of zlib_decompressor-----------------------//
-
-template<typename Alloc>
-basic_zlib_decompressor<Alloc>::basic_zlib_decompressor
-    (int window_bits, int buffer_size) 
-    : base_type(buffer_size, window_bits) { }
-
-template<typename Alloc>
-basic_zlib_decompressor<Alloc>::basic_zlib_decompressor
-    (const zlib_params& p, int buffer_size) 
-    : base_type(buffer_size, p) { }
-
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/config/abi_suffix.hpp> // Pops abi_suffix.hpp pragmas.
-#ifdef NDNBOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_ZLIB_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filtering_stream.hpp b/include/ndnboost/iostreams/filtering_stream.hpp
deleted file mode 100644
index 3d085a1..0000000
--- a/include/ndnboost/iostreams/filtering_stream.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2004-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_FILTER_STREAM_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_FILTER_STREAM_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <memory>                                     // allocator.
-#include <ndnboost/iostreams/detail/access_control.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/iostream.hpp>        // standard streams.
-#include <ndnboost/iostreams/detail/push.hpp>
-#include <ndnboost/iostreams/detail/select.hpp>
-#include <ndnboost/iostreams/detail/streambuf.hpp>       // pubsync.
-#include <ndnboost/iostreams/filtering_streambuf.hpp>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-namespace ndnboost { namespace iostreams {
-
-//--------------Definition of filtered_istream--------------------------------//
-
-namespace detail {
-
-template<typename Mode, typename Ch, typename Tr>
-struct filtering_stream_traits {
-    typedef typename 
-            iostreams::select<  // Disambiguation for Tru64  
-                mpl::and_< 
-                    is_convertible<Mode, input>, 
-                    is_convertible<Mode, output> 
-                >,          
-                NDNBOOST_IOSTREAMS_BASIC_IOSTREAM(Ch, Tr),
-                is_convertible<Mode, input>, 
-                NDNBOOST_IOSTREAMS_BASIC_ISTREAM(Ch, Tr),
-                else_,        
-                NDNBOOST_IOSTREAMS_BASIC_OSTREAM(Ch, Tr)
-            >::type stream_type;
-    typedef typename
-            iostreams::select< // Dismbiguation required for Tru64.
-                mpl::and_<
-                    is_convertible<Mode, input>,
-                    is_convertible<Mode, output>
-                >,
-                iostream_tag,
-                is_convertible<Mode, input>,
-                istream_tag,
-                else_,
-                ostream_tag
-            >::type stream_tag;
-};
-
-template<typename Chain, typename Access>
-class filtering_stream_base 
-    : public access_control<
-                 ndnboost::iostreams::detail::chain_client<Chain>,
-                 Access
-             >,
-      public filtering_stream_traits<
-                 typename Chain::mode, 
-                 typename Chain::char_type, 
-                 typename Chain::traits_type
-             >::stream_type
-{
-public:
-    typedef Chain                                         chain_type;
-    typedef access_control<
-                 ndnboost::iostreams::detail::chain_client<Chain>,
-                 Access
-             >                                            client_type;
-protected:
-    typedef typename 
-            filtering_stream_traits<
-                 typename Chain::mode, 
-                 typename Chain::char_type, 
-                 typename Chain::traits_type
-            >::stream_type                                stream_type;
-    filtering_stream_base() : stream_type(0) { this->set_chain(&chain_); }
-private:
-    void notify() { this->rdbuf(chain_.empty() ? 0 : &chain_.front()); }
-    Chain chain_;
-};
-
-} // End namespace detail.
-
-//
-// Macro: NDNBOOST_IOSTREAMS_DEFINE_FILTER_STREAM(name_, chain_type_, default_char_)
-// Description: Defines a template derived from std::basic_streambuf which uses
-//      a chain to perform i/o. The template has the following parameters:
-//      Mode - the i/o mode.
-//      Ch - The character type.
-//      Tr - The character traits type.
-//      Alloc - The allocator type.
-//      Access - Indicates accessibility of the chain interface; must be either
-//          public_ or protected_; defaults to public_.
-// Macro parameters:
-//      name_ - The name of the template to be defined.
-//      chain_type_ - The name of the chain template.
-//      default_char_ - The default value for the char template parameter.
-//
-#define NDNBOOST_IOSTREAMS_DEFINE_FILTER_STREAM(name_, chain_type_, default_char_) \
-    template< typename Mode, \
-              typename Ch = default_char_, \
-              typename Tr = NDNBOOST_IOSTREAMS_CHAR_TRAITS(Ch), \
-              typename Alloc = std::allocator<Ch>, \
-              typename Access = public_ > \
-    class name_ \
-        : public ndnboost::iostreams::detail::filtering_stream_base< \
-                     chain_type_<Mode, Ch, Tr, Alloc>, Access \
-                 > \
-    { \
-    public: \
-        typedef Ch                                char_type; \
-        struct category \
-            : Mode, \
-              closable_tag, \
-              detail::filtering_stream_traits<Mode, Ch, Tr>::stream_tag \
-            { }; \
-        NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr) \
-        typedef Mode                              mode; \
-        typedef chain_type_<Mode, Ch, Tr, Alloc>  chain_type; \
-        name_() { } \
-        NDNBOOST_IOSTREAMS_DEFINE_PUSH_CONSTRUCTOR(name_, mode, Ch, push_impl) \
-        ~name_() { \
-            if (this->is_complete()) \
-                 this->rdbuf()->NDNBOOST_IOSTREAMS_PUBSYNC(); \
-        } \
-    private: \
-        typedef access_control< \
-                    ndnboost::iostreams::detail::chain_client< \
-                        chain_type_<Mode, Ch, Tr, Alloc> \
-                    >, \
-                    Access \
-                > client_type; \
-        template<typename T> \
-        void push_impl(const T& t NDNBOOST_IOSTREAMS_PUSH_PARAMS()) \
-        { client_type::push(t NDNBOOST_IOSTREAMS_PUSH_ARGS()); } \
-    }; \
-    /**/    
-NDNBOOST_IOSTREAMS_DEFINE_FILTER_STREAM(filtering_stream, ndnboost::iostreams::chain, char)
-NDNBOOST_IOSTREAMS_DEFINE_FILTER_STREAM(wfiltering_stream, ndnboost::iostreams::chain, wchar_t)
-
-typedef filtering_stream<input>    filtering_istream;
-typedef filtering_stream<output>   filtering_ostream;
-typedef wfiltering_stream<input>   filtering_wistream;
-typedef wfiltering_stream<output>  filtering_wostream;
-
-//----------------------------------------------------------------------------//
-
-} } // End namespace iostreams, boost
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp> // MSVC
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_FILTER_STREAM_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/filtering_streambuf.hpp b/include/ndnboost/iostreams/filtering_streambuf.hpp
deleted file mode 100644
index c54fd3f..0000000
--- a/include/ndnboost/iostreams/filtering_streambuf.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_FILTERING_STREAMBUF_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_FILTERING_STREAMBUF_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <exception>
-#include <memory>                               // allocator.
-#include <ndnboost/iostreams/chain.hpp>
-#include <ndnboost/iostreams/detail/access_control.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/push.hpp>
-#include <ndnboost/iostreams/detail/streambuf.hpp> // pubsync.
-#include <ndnboost/iostreams/detail/streambuf/chainbuf.hpp>
-#include <ndnboost/mpl/if.hpp>                    
-
-namespace ndnboost { namespace iostreams {
-
-//
-// Macro: NDNBOOST_IOSTREAMS_DEFINE_FILTERBUF(name_, chain_type_, default_char_)
-// Description: Defines a template derived from std::basic_streambuf which uses
-//      a chain to perform i/o. The template has the following parameters:
-//      Ch - The character type.
-//      Tr - The character traits type.
-//      Alloc - The allocator type.
-//      Access - Indicates accessibility of the chain interface; must be either
-//          public_ or protected_; defaults to public_.
-//
-#define NDNBOOST_IOSTREAMS_DEFINE_FILTER_STREAMBUF(name_, chain_type_, default_char_) \
-    template< typename Mode, \
-              typename Ch = default_char_, \
-              typename Tr = NDNBOOST_IOSTREAMS_CHAR_TRAITS(Ch), \
-              typename Alloc = std::allocator<Ch>, \
-              typename Access = public_ > \
-    class name_ : public ndnboost::iostreams::detail::chainbuf< \
-                             chain_type_<Mode, Ch, Tr, Alloc>, Mode, Access \
-                         > \
-    { \
-    public: \
-        typedef Ch                                             char_type; \
-        struct category \
-            : Mode, closable_tag, streambuf_tag \
-            { }; \
-        NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr) \
-        typedef Mode                                           mode; \
-        typedef chain_type_<Mode, Ch, Tr, Alloc>               chain_type; \
-        name_() { } \
-        NDNBOOST_IOSTREAMS_DEFINE_PUSH_CONSTRUCTOR(name_, mode, Ch, push_impl) \
-        ~name_() { if (this->is_complete()) this->NDNBOOST_IOSTREAMS_PUBSYNC(); } \
-    }; \
-    /**/ 
-NDNBOOST_IOSTREAMS_DEFINE_FILTER_STREAMBUF(filtering_streambuf, ndnboost::iostreams::chain, char)
-NDNBOOST_IOSTREAMS_DEFINE_FILTER_STREAMBUF(filtering_wstreambuf, ndnboost::iostreams::chain, wchar_t)
-
-typedef filtering_streambuf<input>    filtering_istreambuf;
-typedef filtering_streambuf<output>   filtering_ostreambuf;
-typedef filtering_wstreambuf<input>   filtering_wistreambuf;
-typedef filtering_wstreambuf<output>  filtering_wostreambuf;
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_FILTERING_STREAMBUF_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/flush.hpp b/include/ndnboost/iostreams/flush.hpp
deleted file mode 100644
index e10df64..0000000
--- a/include/ndnboost/iostreams/flush.hpp
+++ /dev/null
@@ -1,125 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_FLUSH_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_FLUSH_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/dispatch.hpp>
-#include <ndnboost/iostreams/detail/streambuf.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T>
-struct flush_device_impl;
-
-template<typename T>
-struct flush_filter_impl;
-
-} // End namespace detail.
-
-template<typename T>
-bool flush(T& t)
-{ return detail::flush_device_impl<T>::flush(detail::unwrap(t)); }
-
-template<typename T, typename Sink>
-bool flush(T& t, Sink& snk)
-{ return detail::flush_filter_impl<T>::flush(detail::unwrap(t), snk); }
-
-namespace detail {
-
-//------------------Definition of flush_device_impl---------------------------//
-
-template<typename T>
-struct flush_device_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          flush_device_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<
-                  T, ostream_tag, streambuf_tag, flushable_tag, any_tag
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct flush_device_impl<ostream_tag> {
-    template<typename T>
-    static bool flush(T& t)
-    { return t.rdbuf()->NDNBOOST_IOSTREAMS_PUBSYNC() == 0; }
-};
-
-template<>
-struct flush_device_impl<streambuf_tag> {
-    template<typename T>
-    static bool flush(T& t)
-    { return t.NDNBOOST_IOSTREAMS_PUBSYNC() == 0; }
-};
-
-template<>
-struct flush_device_impl<flushable_tag> {
-    template<typename T>
-    static bool flush(T& t) { return t.flush(); }
-};
-
-template<>
-struct flush_device_impl<any_tag> {
-    template<typename T>
-    static bool flush(T&) { return true; }
-};
-
-//------------------Definition of flush_filter_impl---------------------------//
-
-template<typename T>
-struct flush_filter_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          flush_filter_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<
-                  T, flushable_tag, any_tag
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct flush_filter_impl<flushable_tag> {
-    template<typename T, typename Sink>
-    static bool flush(T& t, Sink& snk) { return t.flush(snk); }
-};
-
-template<>
-struct flush_filter_impl<any_tag> {
-    template<typename T, typename Sink>
-    static bool flush(T&, Sink&) { return false; }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_FLUSH_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/get.hpp b/include/ndnboost/iostreams/get.hpp
deleted file mode 100644
index 8af8f7a..0000000
--- a/include/ndnboost/iostreams/get.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_GET_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_GET_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/read.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_GET_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/imbue.hpp b/include/ndnboost/iostreams/imbue.hpp
deleted file mode 100644
index de9ffb3..0000000
--- a/include/ndnboost/iostreams/imbue.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_IMBUE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_IMBUE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/dispatch.hpp>
-#include <ndnboost/iostreams/detail/streambuf.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams { 
-
-namespace detail {
-
-// Implementation templates for simulated tag dispatch.
-template<typename T> 
-struct imbue_impl;
-
-} // End namespace detail.
-
-template<typename T, typename Locale>
-void imbue(T& t, const Locale& loc)
-{ detail::imbue_impl<T>::imbue(detail::unwrap(t), loc); }
-
-namespace detail {
-
-//------------------Definition of imbue_impl----------------------------------//
-
-template<typename T>
-struct imbue_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          imbue_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<
-                  T, streambuf_tag, localizable_tag, any_tag
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct imbue_impl<any_tag> {
-    template<typename T, typename Locale>
-    static void imbue(T&, const Locale&) { }
-};
-
-template<>
-struct imbue_impl<streambuf_tag> {
-    template<typename T, typename Locale>
-    static void imbue(T& t, const Locale& loc) { t.pubimbue(loc); }
-};
-
-template<>
-struct imbue_impl<localizable_tag> {
-    template<typename T, typename Locale>
-    static void imbue(T& t, const Locale& loc) { t.imbue(loc); }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_IMBUE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/input_sequence.hpp b/include/ndnboost/iostreams/input_sequence.hpp
deleted file mode 100644
index 7950c6f..0000000
--- a/include/ndnboost/iostreams/input_sequence.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_INPUT_SEQUENCE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_INPUT_SEQUENCE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <utility>           // pair.
-#include <ndnboost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>  // is_custom 
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T>
-struct input_sequence_impl;
-
-} // End namespace detail.
-
-template<typename T>
-inline std::pair<
-    NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type*,
-    NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type*
->
-input_sequence(T& t)
-{ return detail::input_sequence_impl<T>::input_sequence(t); }
-
-namespace detail {
-
-//------------------Definition of direct_impl-------------------------------//
-
-template<typename T>
-struct input_sequence_impl
-    : mpl::if_<
-          detail::is_custom<T>,
-          operations<T>,
-          input_sequence_impl<direct_tag>
-      >::type
-    { };
-
-template<>
-struct input_sequence_impl<direct_tag> {
-    template<typename U>
-    static std::pair<
-        NDNBOOST_DEDUCED_TYPENAME char_type_of<U>::type*,
-        NDNBOOST_DEDUCED_TYPENAME char_type_of<U>::type*
-    >
-    input_sequence(U& u) { return u.input_sequence(); }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_INPUT_SEQUENCE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/invert.hpp b/include/ndnboost/iostreams/invert.hpp
deleted file mode 100644
index 8b0e5fd..0000000
--- a/include/ndnboost/iostreams/invert.hpp
+++ /dev/null
@@ -1,167 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_INVERT_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_INVERT_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <algorithm>                             // copy, min.  
-#include <ndnboost/assert.hpp>
-#include <ndnboost/config.hpp>                      // NDNBOOST_DEDUCED_TYPENAME.       
-#include <ndnboost/detail/workaround.hpp>           // default_filter_buffer_size.
-#include <ndnboost/iostreams/char_traits.hpp>
-#include <ndnboost/iostreams/compose.hpp>
-#include <ndnboost/iostreams/constants.hpp>
-#include <ndnboost/iostreams/device/array.hpp>
-#include <ndnboost/iostreams/detail/buffer.hpp>
-#include <ndnboost/iostreams/detail/counted_array.hpp>
-#include <ndnboost/iostreams/detail/execute.hpp>
-#include <ndnboost/iostreams/detail/functional.hpp> // clear_flags, call_reset
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/ref.hpp>
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-namespace ndnboost { namespace iostreams {
-
-//
-// Template name: inverse.
-// Template parameters:
-//      Filter - A model of InputFilter or OutputFilter.
-// Description: Generates an InputFilter from an OutputFilter or
-//      vice versa.
-//
-template<typename Filter>
-class inverse {
-private:
-    NDNBOOST_STATIC_ASSERT(is_filter<Filter>::value);
-    typedef typename category_of<Filter>::type   base_category;
-    typedef reference_wrapper<Filter>            filter_ref;
-public:
-    typedef typename char_type_of<Filter>::type  char_type;
-    typedef typename int_type_of<Filter>::type   int_type;
-    typedef char_traits<char_type>               traits_type;
-    typedef typename 
-            mpl::if_<
-                is_convertible<
-                    base_category,
-                    input
-                >,
-                output,
-                input
-            >::type                              mode;
-    struct category 
-        : mode, 
-          filter_tag, 
-          multichar_tag, 
-          closable_tag 
-        { };
-    explicit inverse( const Filter& filter, 
-                      std::streamsize buffer_size = 
-                          default_filter_buffer_size) 
-        : pimpl_(new impl(filter, buffer_size))
-        { }
-
-    template<typename Source>
-    std::streamsize read(Source& src, char* s, std::streamsize n)
-    {
-        typedef detail::counted_array_sink<char_type>  array_sink;
-        typedef composite<filter_ref, array_sink>      filtered_array_sink;
-
-        NDNBOOST_ASSERT((flags() & f_write) == 0);
-        if (flags() == 0) {
-            flags() = f_read;
-            buf().set(0, 0);
-        }
-
-        filtered_array_sink snk(filter(), array_sink(s, n));
-        int_type status;
-        for ( status = traits_type::good();
-              snk.second().count() < n && status == traits_type::good(); )
-        {
-            status = buf().fill(src);
-            buf().flush(snk);
-        }
-        return snk.second().count() == 0 &&
-               status == traits_type::eof() 
-                   ? 
-               -1
-                   : 
-               snk.second().count();
-    }
-
-    template<typename Sink>
-    std::streamsize write(Sink& dest, const char* s, std::streamsize n)
-    {
-        typedef detail::counted_array_source<char_type>  array_source;
-        typedef composite<filter_ref, array_source>      filtered_array_source;
-
-        NDNBOOST_ASSERT((flags() & f_read) == 0);
-        if (flags() == 0) {
-            flags() = f_write;
-            buf().set(0, 0);
-        }
-        
-        filtered_array_source src(filter(), array_source(s, n));
-        for (bool good = true; src.second().count() < n && good; ) {
-            buf().fill(src);
-            good = buf().flush(dest);
-        }
-        return src.second().count();
-    }
-
-    template<typename Device>
-    void close(Device& dev)
-    {
-        detail::execute_all(
-            detail::flush_buffer(buf(), dev, (flags() & f_write) != 0),
-            detail::call_close_all(pimpl_->filter_, dev),
-            detail::clear_flags(flags())
-        );
-    }
-private:
-    filter_ref filter() { return ndnboost::ref(pimpl_->filter_); }
-    detail::buffer<char_type>& buf() { return pimpl_->buf_; }
-    int& flags() { return pimpl_->flags_; }
-    
-    enum flags_ {
-        f_read = 1, f_write = 2
-    };
-
-    struct impl {
-        impl(const Filter& filter, std::streamsize n) 
-            : filter_(filter), buf_(n), flags_(0)
-        { buf_.set(0, 0); }
-        Filter                     filter_;
-        detail::buffer<char_type>  buf_;
-        int                        flags_;
-    };
-    shared_ptr<impl> pimpl_;
-};
-
-//
-// Template name: invert.
-// Template parameters:
-//      Filter - A model of InputFilter or OutputFilter.
-// Description: Returns an instance of an appropriate specialization of inverse.
-//
-template<typename Filter>
-inverse<Filter> invert(const Filter& f) { return inverse<Filter>(f); }
-                    
-//----------------------------------------------------------------------------//
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>  // MSVC.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_INVERT_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/operations.hpp b/include/ndnboost/iostreams/operations.hpp
deleted file mode 100644
index ab11dee..0000000
--- a/include/ndnboost/iostreams/operations.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_OPERATIONS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_OPERATIONS_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/operations_fwd.hpp>
-#include <ndnboost/iostreams/close.hpp>
-#include <ndnboost/iostreams/flush.hpp>
-#include <ndnboost/iostreams/imbue.hpp>
-#include <ndnboost/iostreams/input_sequence.hpp>
-#include <ndnboost/iostreams/optimal_buffer_size.hpp>
-#include <ndnboost/iostreams/output_sequence.hpp>
-#include <ndnboost/iostreams/read.hpp>
-#include <ndnboost/iostreams/seek.hpp>
-#include <ndnboost/iostreams/write.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_OPERATIONS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/operations_fwd.hpp b/include/ndnboost/iostreams/operations_fwd.hpp
deleted file mode 100644
index aee7990..0000000
--- a/include/ndnboost/iostreams/operations_fwd.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_OPERATIONS_FWD_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_OPERATIONS_FWD_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/mpl/not.hpp>
-#include <ndnboost/type_traits/is_base_and_derived.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-template<typename T>
-struct operations;
-
-namespace detail {
-
-struct custom_tag { };
-
-template<typename T>
-struct is_custom
-    : mpl::not_<
-          is_base_and_derived< custom_tag, operations<T> >
-      >
-    { };
-
-} // End namespace detail.
-
-template<typename T>
-struct operations : detail::custom_tag { };
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_OPERATIONS_FWD_HPP_INCLUDED //--------------//
diff --git a/include/ndnboost/iostreams/optimal_buffer_size.hpp b/include/ndnboost/iostreams/optimal_buffer_size.hpp
deleted file mode 100644
index edf4a80..0000000
--- a/include/ndnboost/iostreams/optimal_buffer_size.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_OPTIMAL_BUFFER_SIZE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_OPTIMAL_BUFFER_SIZE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/constants.hpp>  // constants.
-#include <ndnboost/iostreams/detail/dispatch.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T>
-struct optimal_buffer_size_impl;
-
-} // End namespace detail.
-
-template<typename T>
-std::streamsize optimal_buffer_size(const T& t)
-{
-    typedef detail::optimal_buffer_size_impl<T> impl;
-    return impl::optimal_buffer_size(detail::unwrap(t));
-}
-
-namespace detail {
-
-//------------------Definition of optimal_buffer_size_impl--------------------//
-
-template<typename T>
-struct optimal_buffer_size_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          optimal_buffer_size_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<
-                  T, optimally_buffered_tag, device_tag, filter_tag
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct optimal_buffer_size_impl<optimally_buffered_tag> {
-    template<typename T>
-    static std::streamsize optimal_buffer_size(const T& t)
-    { return t.optimal_buffer_size(); }
-};
-
-template<>
-struct optimal_buffer_size_impl<device_tag> {
-    template<typename T>
-    static std::streamsize optimal_buffer_size(const T&)
-    { return default_device_buffer_size; }
-};
-
-template<>
-struct optimal_buffer_size_impl<filter_tag> {
-    template<typename T>
-    static std::streamsize optimal_buffer_size(const T&)
-    { return default_filter_buffer_size; }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_OPTIMAL_BUFFER_SIZE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/output_sequence.hpp b/include/ndnboost/iostreams/output_sequence.hpp
deleted file mode 100644
index fa0e522..0000000
--- a/include/ndnboost/iostreams/output_sequence.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_OUTPUT_SEQUENCE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_OUTPUT_SEQUENCE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <utility>           // pair.
-#include <ndnboost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>  // is_custom 
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T>
-struct output_sequence_impl;
-
-} // End namespace detail.
-
-template<typename T>
-inline std::pair<
-    NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type*,
-    NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type*
->
-output_sequence(T& t)
-{ return detail::output_sequence_impl<T>::output_sequence(t); }
-
-namespace detail {
-
-//------------------Definition of output_sequence_impl------------------------//
-
-template<typename T>
-struct output_sequence_impl
-    : mpl::if_<
-          detail::is_custom<T>,
-          operations<T>,
-          output_sequence_impl<direct_tag>
-      >::type
-    { };
-
-template<>
-struct output_sequence_impl<direct_tag> {
-    template<typename U>
-    static std::pair<
-        NDNBOOST_DEDUCED_TYPENAME char_type_of<U>::type*,
-        NDNBOOST_DEDUCED_TYPENAME char_type_of<U>::type*
-    >
-    output_sequence(U& u) { return u.output_sequence(); }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_OUTPUT_SEQUENCE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/pipeline.hpp b/include/ndnboost/iostreams/pipeline.hpp
deleted file mode 100644
index e95d3c0..0000000
--- a/include/ndnboost/iostreams/pipeline.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_PIPABLE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_PIPABLE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp> // NDNBOOST_MSVC.
-#include <ndnboost/detail/workaround.hpp>           
-#include <ndnboost/iostreams/detail/template_params.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/static_assert.hpp>
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-# include <ndnboost/type_traits/is_base_and_derived.hpp>
-#endif
-
-#define NDNBOOST_IOSTREAMS_PIPABLE(filter, arity) \
-    template< NDNBOOST_PP_ENUM_PARAMS(arity, typename T) \
-              NDNBOOST_PP_COMMA_IF(arity) typename Component> \
-    ::ndnboost::iostreams::pipeline< \
-        ::ndnboost::iostreams::detail::pipeline_segment< \
-            filter NDNBOOST_IOSTREAMS_TEMPLATE_ARGS(arity, T) \
-        >, \
-        Component \
-    > operator|( const filter NDNBOOST_IOSTREAMS_TEMPLATE_ARGS(arity, T)& f, \
-                 const Component& c ) \
-    { \
-        typedef ::ndnboost::iostreams::detail::pipeline_segment< \
-                    filter NDNBOOST_IOSTREAMS_TEMPLATE_ARGS(arity, T) \
-                > segment; \
-        return ::ndnboost::iostreams::pipeline<segment, Component> \
-                   (segment(f), c); \
-    } \
-    /**/
-
-namespace ndnboost { namespace iostreams {
-
-template<typename Pipeline, typename Component>
-struct pipeline;
-    
-namespace detail {
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) 
-    struct pipeline_base { };
-
-    template<typename T>
-    struct is_pipeline 
-        : is_base_and_derived<pipeline_base, T>
-        { };
-#endif 
-#if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-    template<typename T>
-    struct is_pipeline : mpl::false_ { };
-
-    template<typename Pipeline, typename Component>
-    struct is_pipeline< pipeline<Pipeline, Component> > : mpl::true_ { };
-#endif
-
-template<typename Component>
-class pipeline_segment 
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-    : pipeline_base 
-#endif 
-{
-public:
-    pipeline_segment(const Component& component) 
-        : component_(component) 
-        { }
-    template<typename Fn>
-    void for_each(Fn fn) const { fn(component_); }
-    template<typename Chain>
-    void push(Chain& chn) const { chn.push(component_); }
-private:
-    pipeline_segment operator=(const pipeline_segment&);
-    const Component& component_;
-};
-
-} // End namespace detail.
-                    
-//------------------Definition of Pipeline------------------------------------//
-
-template<typename Pipeline, typename Component>
-struct pipeline : Pipeline {
-    typedef Pipeline   pipeline_type;
-    typedef Component  component_type;
-    pipeline(const Pipeline& p, const Component& component)
-        : Pipeline(p), component_(component)
-        { }
-    template<typename Fn>
-    void for_each(Fn fn) const
-    {
-        Pipeline::for_each(fn);
-        fn(component_);
-    }
-    template<typename Chain>
-    void push(Chain& chn) const
-    { 
-        Pipeline::push(chn);
-        chn.push(component_);
-    }
-    const Pipeline& tail() const { return *this; }
-    const Component& head() const { return component_; }
-private:
-    pipeline operator=(const pipeline&);
-    const Component& component_;
-};
-
-template<typename Pipeline, typename Filter, typename Component>
-pipeline<pipeline<Pipeline, Filter>, Component>
-operator|(const pipeline<Pipeline, Filter>& p, const Component& cmp)
-{
-    NDNBOOST_STATIC_ASSERT(is_filter<Filter>::value);
-    return pipeline<pipeline<Pipeline, Filter>, Component>(p, cmp);
-}
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_PIPABLE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/positioning.hpp b/include/ndnboost/iostreams/positioning.hpp
deleted file mode 100644
index 178f9e4..0000000
--- a/include/ndnboost/iostreams/positioning.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Thanks to Gareth Sylvester-Bradley for the Dinkumware versions of the
-// positioning functions.
-
-#ifndef NDNBOOST_IOSTREAMS_POSITIONING_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_POSITIONING_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/integer_traits.hpp>
-#include <ndnboost/iostreams/detail/config/codecvt.hpp> // mbstate_t.
-#include <ndnboost/iostreams/detail/config/fpos.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp> // streamoff, streampos.
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp> 
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::fpos_t; }
-#endif
-
-namespace ndnboost { namespace iostreams {
-                    
-//------------------Definition of stream_offset-------------------------------//
-
-typedef ndnboost::intmax_t stream_offset;
-
-//------------------Definition of stream_offset_to_streamoff------------------//
-
-inline std::streamoff stream_offset_to_streamoff(stream_offset off)
-{ return static_cast<stream_offset>(off); }
-
-//------------------Definition of offset_to_position--------------------------//
-
-# ifndef NDNBOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
-
-inline std::streampos offset_to_position(stream_offset off) { return off; }
-
-# else // # ifndef NDNBOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
-
-inline std::streampos offset_to_position(stream_offset off)
-{ return std::streampos(std::mbstate_t(), off); }
-
-# endif // # ifndef NDNBOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
-
-//------------------Definition of position_to_offset--------------------------//
-
-// Hande custom pos_type's
-template<typename PosType> 
-inline stream_offset position_to_offset(PosType pos)
-{ return std::streamoff(pos); }
-
-# ifndef NDNBOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
-
-inline stream_offset position_to_offset(std::streampos pos) { return pos; }
-
-# else // # ifndef NDNBOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS
-
-// In the Dinkumware standard library, a std::streampos consists of two stream
-// offsets -- _Fpos, of type std::fpos_t, and _Myoff, of type std::streamoff --
-// together with a conversion state. A std::streampos is converted to a 
-// ndnboost::iostreams::stream_offset by extracting the two stream offsets and
-// summing them. The value of _Fpos can be extracted using the implementation-
-// defined member functions seekpos() or get_fpos_t(), depending on the 
-// Dinkumware version. The value of _Myoff cannot be extracted directly, but can
-// be calculated as the difference between the result of converting the 
-// std::fpos to a std::streamoff and the result of converting the member _Fpos
-// to a long. The latter operation is accomplished with the macro _FPOSOFF, 
-// which works correctly on platforms where std::fpos_t is an integral type and 
-// platforms where it is a struct
-
-// Converts a std::fpos_t to a stream_offset
-inline stream_offset fpos_t_to_offset(std::fpos_t pos)
-{
-#  if defined(_POSIX_) || (_INTEGRAL_MAX_BITS >= 64) || defined(__IBMCPP__)
-    return pos;
-#  else
-    return _FPOSOFF(pos);
-#  endif
-}
-
-// Extracts the member _Fpos from a std::fpos
-inline std::fpos_t streampos_to_fpos_t(std::streampos pos)
-{
-#  if defined (_CPPLIB_VER) || defined(__IBMCPP__)
-    return pos.seekpos();
-#  else
-    return pos.get_fpos_t();
-#  endif
-}
-
-inline stream_offset position_to_offset(std::streampos pos)
-{
-    return fpos_t_to_offset(streampos_to_fpos_t(pos)) +
-        static_cast<stream_offset>(
-            static_cast<std::streamoff>(pos) -
-            _FPOSOFF(streampos_to_fpos_t(pos))
-        );
-}
-
-# endif // # ifndef NDNBOOST_IOSTREAMS_HAS_DINKUMWARE_FPOS 
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp> 
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_POSITIONING_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/put.hpp b/include/ndnboost/iostreams/put.hpp
deleted file mode 100644
index 893fed5..0000000
--- a/include/ndnboost/iostreams/put.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_PUT_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_PUT_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/write.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_PUT_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/putback.hpp b/include/ndnboost/iostreams/putback.hpp
deleted file mode 100644
index 986924d..0000000
--- a/include/ndnboost/iostreams/putback.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_PUTBACK_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_PUTBACK_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/read.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_PUTBACK_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/read.hpp b/include/ndnboost/iostreams/read.hpp
deleted file mode 100644
index c11edf4..0000000
--- a/include/ndnboost/iostreams/read.hpp
+++ /dev/null
@@ -1,247 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_READ_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_READ_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/char_traits.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/dispatch.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // streamsize.
-#include <ndnboost/iostreams/detail/streambuf.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //-----------------------------------//
-# include <ndnboost/iostreams/detail/vc6/read.hpp>
-#else // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //--------------------------//
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T>
-struct read_device_impl;
-
-template<typename T>
-struct read_filter_impl;
-
-} // End namespace detail.
-
-template<typename T>
-typename int_type_of<T>::type get(T& t)
-{ return detail::read_device_impl<T>::get(detail::unwrap(t)); }
-
-template<typename T>
-inline std::streamsize
-read(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-{ return detail::read_device_impl<T>::read(detail::unwrap(t), s, n); }
-
-template<typename T, typename Source>
-std::streamsize
-read(T& t, Source& src, typename char_type_of<T>::type* s, std::streamsize n)
-{ return detail::read_filter_impl<T>::read(detail::unwrap(t), src, s, n); }
-
-template<typename T>
-bool putback(T& t, typename char_type_of<T>::type c)
-{ return detail::read_device_impl<T>::putback(detail::unwrap(t), c); }
-
-//----------------------------------------------------------------------------//
-
-namespace detail {
-
-// Helper function for adding -1 as EOF indicator.
-inline std::streamsize check_eof(std::streamsize n) { return n != 0 ? n : -1; }
-
-// Helper templates for reading from streambufs.
-template<bool IsLinked>
-struct true_eof_impl;
-
-template<>
-struct true_eof_impl<true> {
-    template<typename T>
-    static bool true_eof(T& t) { return t.true_eof(); }
-};
-
-template<>
-struct true_eof_impl<false> {
-    template<typename T>
-    static bool true_eof(T&) { return true; }
-};
-
-template<typename T>
-inline bool true_eof(T& t)
-{
-    const bool linked = is_linked<T>::value;
-    return true_eof_impl<linked>::true_eof(t);
-}
-
-//------------------Definition of read_device_impl----------------------------//
-
-template<typename T>
-struct read_device_impl
-    : mpl::if_<
-          detail::is_custom<T>,
-          operations<T>,
-          read_device_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              detail::dispatch<
-                  T, istream_tag, streambuf_tag, input
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct read_device_impl<istream_tag> {
-    template<typename T>
-    static typename int_type_of<T>::type get(T& t)
-    { return t.get(); }
-
-    template<typename T>
-    static std::streamsize
-    read(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-    { return check_eof(t.rdbuf()->sgetn(s, n)); }
-
-    template<typename T>
-    static bool putback(T& t, typename char_type_of<T>::type c)
-    {
-        typedef typename char_type_of<T>::type          char_type;
-        typedef NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)  traits_type;
-        return !traits_type::eq_int_type( t.rdbuf()->sputbackc(c),
-                                          traits_type::eof() );
-    }
-};
-
-template<>
-struct read_device_impl<streambuf_tag> {
-    template<typename T>
-    static typename int_type_of<T>::type
-    get(T& t)
-    {   // gcc 2.95 needs namespace qualification for char_traits.
-        typedef typename char_type_of<T>::type     char_type;
-        typedef iostreams::char_traits<char_type>  traits_type;
-        typename int_type_of<T>::type c;
-        return !traits_type::is_eof(c = t.sbumpc()) ||
-                detail::true_eof(t)
-                    ?
-                c : traits_type::would_block();
-    }
-
-    template<typename T>
-    static std::streamsize
-    read(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-    {
-        std::streamsize amt;
-        return (amt = t.sgetn(s, n)) != 0 ?
-            amt :
-            detail::true_eof(t) ?
-                -1 :
-                0;
-    }
-
-    template<typename T>
-    static bool putback(T& t, typename char_type_of<T>::type c)
-    {   // gcc 2.95 needs namespace qualification for char_traits.
-        typedef typename char_type_of<T>::type     char_type;
-        typedef iostreams::char_traits<char_type>  traits_type;
-        return !traits_type::is_eof(t.sputbackc(c));
-    }
-};
-
-template<>
-struct read_device_impl<input> {
-    template<typename T>
-    static typename int_type_of<T>::type
-    get(T& t)
-    {   // gcc 2.95 needs namespace qualification for char_traits.
-        typedef typename char_type_of<T>::type     char_type;
-        typedef iostreams::char_traits<char_type>  traits_type;
-        char_type c;
-        std::streamsize amt;
-        return (amt = t.read(&c, 1)) == 1 ?
-            traits_type::to_int_type(c) :
-            amt == -1 ?
-                traits_type::eof() :
-                traits_type::would_block();
-    }
-
-    template<typename T>
-    static std::streamsize
-    read(T& t, typename char_type_of<T>::type* s, std::streamsize n)
-    { return t.read(s, n); }
-
-    template<typename T>
-    static bool putback(T& t, typename char_type_of<T>::type c)
-    {   // T must be Peekable.
-        return t.putback(c);
-    }
-};
-
-//------------------Definition of read_filter_impl----------------------------//
-
-template<typename T>
-struct read_filter_impl
-    : mpl::if_<
-          detail::is_custom<T>,
-          operations<T>,
-          read_filter_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              detail::dispatch<
-                  T, multichar_tag, any_tag
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct read_filter_impl<multichar_tag> {
-    template<typename T, typename Source>
-    static std::streamsize read
-       (T& t, Source& src, typename char_type_of<T>::type* s, std::streamsize n)
-    { return t.read(src, s, n); }
-};
-
-template<>
-struct read_filter_impl<any_tag> {
-    template<typename T, typename Source>
-    static std::streamsize read
-       (T& t, Source& src, typename char_type_of<T>::type* s, std::streamsize n)
-    {   // gcc 2.95 needs namespace qualification for char_traits.
-        typedef typename char_type_of<T>::type     char_type;
-        typedef iostreams::char_traits<char_type>  traits_type;
-        for (std::streamsize off = 0; off < n; ++off) {
-            typename traits_type::int_type c = t.get(src);
-            if (traits_type::is_eof(c))
-                return check_eof(off);
-            if (traits_type::would_block(c))
-                return off;
-            s[off] = traits_type::to_char_type(c);
-        }
-        return n;
-    }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#endif // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //-------------------------//
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_READ_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/restrict.hpp b/include/ndnboost/iostreams/restrict.hpp
deleted file mode 100644
index 8b0fde4..0000000
--- a/include/ndnboost/iostreams/restrict.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
- *
- * File:        ndnboost/iostreams/detail/restrict.hpp
- * Date:        Sun Jan 06 12:57:30 MST 2008
- * Copyright:   2008 CodeRage, LLC
-                2004-2007 Jonathan Turkanis
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * Defines the class template ndnboost::iostreams::restriction and the 
- * overloaded function template ndnboost::iostreams::restrict
- */
-
-#ifndef NDNBOOST_IOSTREAMS_RESTRICT_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_RESTRICT_HPP_INCLUDED
-
-#include <ndnboost/iostreams/detail/restrict_impl.hpp>
-#define NDNBOOST_IOSTREAMS_RESTRICT restrict
-#include <ndnboost/iostreams/detail/restrict_impl.hpp>
-#undef NDNBOOST_IOSTREAMS_RESTRICT
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_RESTRICT_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/seek.hpp b/include/ndnboost/iostreams/seek.hpp
deleted file mode 100644
index 6ff19b1..0000000
--- a/include/ndnboost/iostreams/seek.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_SEEK_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_SEEK_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
-#include <ndnboost/integer_traits.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/dispatch.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>       // streamsize, seekdir, openmode.
-#include <ndnboost/iostreams/detail/streambuf.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>
-#include <ndnboost/iostreams/positioning.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T>
-struct seek_device_impl;
-
-template<typename T>
-struct seek_filter_impl;
-
-} // End namespace detail.
-
-template<typename T>
-inline std::streampos
-seek( T& t, stream_offset off, NDNBOOST_IOS::seekdir way,
-      NDNBOOST_IOS::openmode which = NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-{ 
-    using namespace detail;
-    return seek_device_impl<T>::seek(detail::unwrap(t), off, way, which); 
-}
-
-template<typename T, typename Device>
-inline std::streampos
-seek( T& t, Device& dev, stream_offset off, NDNBOOST_IOS::seekdir way,
-      NDNBOOST_IOS::openmode which = NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-{ 
-    using namespace detail;
-    return seek_filter_impl<T>::seek(detail::unwrap(t), dev, off, way, which);
-}
-
-namespace detail {
-
-//------------------Definition of seek_device_impl----------------------------//
-
-template<typename T>
-struct seek_device_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          seek_device_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<
-                  T, iostream_tag, istream_tag, ostream_tag,
-                  streambuf_tag, two_head, any_tag
-              >::type
-          >
-      >::type
-    { };
-
-struct seek_impl_basic_ios {
-    template<typename T>
-    static std::streampos seek( T& t, stream_offset off,
-                                NDNBOOST_IOS::seekdir way,
-                                NDNBOOST_IOS::openmode which )
-    {
-        if ( way == NDNBOOST_IOS::beg &&
-             ( off < integer_traits<std::streamoff>::const_min ||
-               off > integer_traits<std::streamoff>::const_max ) )
-        {
-            return t.rdbuf()->pubseekpos(offset_to_position(off));
-        } else {
-            return t.rdbuf()->pubseekoff(off, way, which);
-        }
-    }
-};
-
-template<>
-struct seek_device_impl<iostream_tag> : seek_impl_basic_ios { };
-
-template<>
-struct seek_device_impl<istream_tag> : seek_impl_basic_ios { };
-
-template<>
-struct seek_device_impl<ostream_tag> : seek_impl_basic_ios { };
-
-template<>
-struct seek_device_impl<streambuf_tag> {
-    template<typename T>
-    static std::streampos seek( T& t, stream_offset off,
-                                NDNBOOST_IOS::seekdir way,
-                                NDNBOOST_IOS::openmode which )
-    {
-        if ( way == NDNBOOST_IOS::beg &&
-             ( off < integer_traits<std::streamoff>::const_min ||
-               off > integer_traits<std::streamoff>::const_max ) )
-        {
-            return t.NDNBOOST_IOSTREAMS_PUBSEEKPOS(offset_to_position(off));
-        } else {
-            return t.NDNBOOST_IOSTREAMS_PUBSEEKOFF(off, way, which);
-        }
-    }
-};
-
-template<>
-struct seek_device_impl<two_head> {
-    template<typename T>
-    static std::streampos seek( T& t, stream_offset off,
-                                NDNBOOST_IOS::seekdir way,
-                                NDNBOOST_IOS::openmode which )
-    { return t.seek(off, way, which); }
-};
-
-template<>
-struct seek_device_impl<any_tag> {
-    template<typename T>
-    static std::streampos seek( T& t, stream_offset off,
-                                NDNBOOST_IOS::seekdir way,
-                                NDNBOOST_IOS::openmode )
-    { return t.seek(off, way); }
-};
-
-//------------------Definition of seek_filter_impl----------------------------//
-
-template<typename T>
-struct seek_filter_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          seek_filter_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<T, two_head, any_tag>::type
-          >
-      >::type
-    { };
-
-template<>
-struct seek_filter_impl<two_head> {
-    template<typename T, typename Device>
-    static std::streampos seek( T& t, Device& d,
-                                stream_offset off,
-                                NDNBOOST_IOS::seekdir way,
-                                NDNBOOST_IOS::openmode which )
-    { return t.seek(d, off, way, which); }
-};
-
-template<>
-struct seek_filter_impl<any_tag> {
-    template<typename T, typename Device>
-    static std::streampos seek( T& t, Device& d,
-                                stream_offset off,
-                                NDNBOOST_IOS::seekdir way,
-                                NDNBOOST_IOS::openmode )
-    { return t.seek(d, off, way); }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_SEEK_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/skip.hpp b/include/ndnboost/iostreams/skip.hpp
deleted file mode 100644
index 6b5a600..0000000
--- a/include/ndnboost/iostreams/skip.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// To do: handle bidirection streams and output-seekable components.
-
-#ifndef NDNBOOST_IOSTREAMS_SKIP_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_SKIP_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/char_traits.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // failure.
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/iostreams/seek.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/or.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename Device>
-void skip(Device& dev, stream_offset off, mpl::true_)
-{ iostreams::seek(dev, off, NDNBOOST_IOS::cur); }
-
-template<typename Device>
-void skip(Device& dev, stream_offset off, mpl::false_)
-{   // gcc 2.95 needs namespace qualification for char_traits.
-    typedef typename char_type_of<Device>::type  char_type;
-    typedef iostreams::char_traits<char_type>    traits_type;
-    for (stream_offset z = 0; z < off; ) {
-        typename traits_type::int_type c;
-        if (traits_type::is_eof(c = iostreams::get(dev)))
-            ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("bad skip offset"));
-        if (!traits_type::would_block(c))
-            ++z;
-    }
-}
-
-template<typename Filter, typename Device>
-void skip( Filter& flt, Device& dev, stream_offset off,
-           NDNBOOST_IOS::openmode which, mpl::true_ )
-{ ndnboost::iostreams::seek(flt, dev, off, NDNBOOST_IOS::cur, which); }
-
-template<typename Filter, typename Device>
-void skip( Filter& flt, Device& dev, stream_offset off,
-           NDNBOOST_IOS::openmode, mpl::false_ )
-{ 
-    typedef typename char_type_of<Device>::type char_type;
-    char_type c;
-    for (stream_offset z = 0; z < off; ) {
-        std::streamsize amt;
-        if ((amt = iostreams::read(flt, dev, &c, 1)) == -1)
-            ndnboost::throw_exception(NDNBOOST_IOSTREAMS_FAILURE("bad skip offset"));
-        if (amt == 1)
-            ++z;
-    }
-}
-
-} // End namespace detail.
-
-template<typename Device>
-void skip(Device& dev, stream_offset off)
-{ 
-    typedef typename mode_of<Device>::type     mode;
-    typedef mpl::or_<
-        is_convertible<mode, input_seekable>,
-        is_convertible<mode, output_seekable>
-    >                                          can_seek;
-    NDNBOOST_STATIC_ASSERT(
-        (can_seek::value || is_convertible<mode, input>::value)
-    );
-    detail::skip(dev, off, can_seek());
-}
-
-template<typename Filter, typename Device>
-void skip( Filter& flt, Device& dev, stream_offset off, 
-           NDNBOOST_IOS::openmode which = NDNBOOST_IOS::in | NDNBOOST_IOS::out )
-{ 
-    typedef typename mode_of<Filter>::type                 filter_mode;
-    typedef typename mode_of<Device>::type                 device_mode;
-    typedef mpl::or_<
-        mpl::and_<
-            is_convertible<filter_mode, input_seekable>,
-            is_convertible<device_mode, input_seekable>
-        >,
-        mpl::and_<
-            is_convertible<filter_mode, output_seekable>,
-            is_convertible<device_mode, output_seekable>
-        >
-    >                                                      can_seek;
-    NDNBOOST_STATIC_ASSERT(
-        ( can_seek::value || 
-          (is_convertible<filter_mode, input>::value &&
-          is_convertible<device_mode, input>::value) )
-    );
-    detail::skip(flt, dev, off, which, can_seek());
-}
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_SKIP_HPP_INCLUDED //------------------------//
diff --git a/include/ndnboost/iostreams/slice.hpp b/include/ndnboost/iostreams/slice.hpp
deleted file mode 100644
index cf16ea9..0000000
--- a/include/ndnboost/iostreams/slice.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.)
- * 
- * See http://www.boost.org/libs/iostreams for documentation.
- *
- * File:        ndnboost/iostreams/detail/restrict.hpp
- * Date:        Sun Jan 06 12:57:30 MST 2008
- * Copyright:   2008 CodeRage, LLC
-                2004-2007 Jonathan Turkanis
- * Author:      Jonathan Turkanis
- * Contact:     turkanis at coderage dot com
- *
- * Defines the class template ndnboost::iostreams::restriction and the 
- * overloaded function template ndnboost::iostreams::slice.
- *
- * This header is provided for platforms on which "restrict" is a keyword.
- */
-
-#ifndef NDNBOOST_IOSTREAMS_RESTRICT_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_RESTRICT_HPP_INCLUDED
-
-#include <ndnboost/iostreams/detail/restrict_impl.hpp>
-#define NDNBOOST_IOSTREAMS_RESTRICT slice
-#include <ndnboost/iostreams/detail/restrict_impl.hpp>
-#undef NDNBOOST_IOSTREAMS_RESTRICT
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_RESTRICT_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/stream.hpp b/include/ndnboost/iostreams/stream.hpp
deleted file mode 100644
index e158117..0000000
--- a/include/ndnboost/iostreams/stream.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_STREAM_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_STREAM_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/iostreams/constants.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/config/overload_resolution.hpp>
-#include <ndnboost/iostreams/detail/forward.hpp>
-#include <ndnboost/iostreams/detail/iostream.hpp>  // standard streams.
-#include <ndnboost/iostreams/detail/select.hpp>
-#include <ndnboost/iostreams/stream_buffer.hpp>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/utility/base_from_member.hpp>
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename Device, typename Tr>
-struct stream_traits {
-    typedef typename char_type_of<Device>::type                char_type;
-    typedef Tr                                                 traits_type;
-    typedef typename category_of<Device>::type                 mode;
-    typedef typename
-            iostreams::select< // Disambiguation required for Tru64.
-                mpl::and_<
-                    is_convertible<mode, input>,
-                    is_convertible<mode, output>
-                >,
-                NDNBOOST_IOSTREAMS_BASIC_IOSTREAM(char_type, traits_type),
-                is_convertible<mode, input>,
-                NDNBOOST_IOSTREAMS_BASIC_ISTREAM(char_type, traits_type),
-                else_,
-                NDNBOOST_IOSTREAMS_BASIC_OSTREAM(char_type, traits_type)
-            >::type stream_type;
-    typedef typename
-            iostreams::select< // Disambiguation required for Tru64.
-                mpl::and_<
-                    is_convertible<mode, input>,
-                    is_convertible<mode, output>
-                >,
-                iostream_tag,
-                is_convertible<mode, input>,
-                istream_tag,
-                else_,
-                ostream_tag
-            >::type stream_tag;
-};
-
-// By encapsulating initialization in a base, we can define the macro
-// NDNBOOST_IOSTREAMS_DEFINE_FORWARDING_FUNCTIONS to generate constructors
-// without base member initializer lists.
-template< typename Device,
-          typename Tr =
-              NDNBOOST_IOSTREAMS_CHAR_TRAITS(
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<Device>::type
-              ),
-          typename Alloc =
-              std::allocator<
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<Device>::type
-              >,
-          typename Base = // VC6 Workaround.
-              NDNBOOST_DEDUCED_TYPENAME
-              detail::stream_traits<Device, Tr>::stream_type >
-class stream_base
-    : protected base_from_member< stream_buffer<Device, Tr, Alloc> >,
-      public Base
-{
-private:
-    typedef base_from_member< stream_buffer<Device, Tr, Alloc> >  pbase_type;
-    typedef typename stream_traits<Device, Tr>::stream_type       stream_type;
-protected:
-    using pbase_type::member; // Avoid warning about 'this' in initializer list.
-public:
-    stream_base() : pbase_type(), stream_type(&member) { }
-};
-
-} } } // End namespaces detail, iostreams, boost.
-
-#ifdef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION
-# include <ndnboost/iostreams/detail/broken_overload_resolution/stream.hpp>
-#else
-
-namespace ndnboost { namespace iostreams {
-
-//
-// Template name: stream.
-// Description: A iostream which reads from and writes to an instance of a
-//      designated device type.
-// Template parameters:
-//      Device - A device type.
-//      Alloc - The allocator type.
-//
-template< typename Device,
-          typename Tr =
-              NDNBOOST_IOSTREAMS_CHAR_TRAITS(
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<Device>::type
-              ),
-          typename Alloc =
-              std::allocator<
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<Device>::type
-              > >
-struct stream : detail::stream_base<Device, Tr, Alloc> {
-public:
-    typedef typename char_type_of<Device>::type  char_type;
-    struct category 
-        : mode_of<Device>::type,
-          closable_tag,
-          detail::stream_traits<Device, Tr>::stream_tag
-        { };
-    NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
-private:
-    typedef typename
-            detail::stream_traits<
-                Device, Tr
-            >::stream_type                       stream_type;
-public:
-    stream() { }
-    NDNBOOST_IOSTREAMS_FORWARD( stream, open_impl, Device,
-                             NDNBOOST_IOSTREAMS_PUSH_PARAMS,
-                             NDNBOOST_IOSTREAMS_PUSH_ARGS )
-    bool is_open() const { return this->member.is_open(); }
-    void close() { this->member.close(); }
-    bool auto_close() const { return this->member.auto_close(); }
-    void set_auto_close(bool close) { this->member.set_auto_close(close); }
-    bool strict_sync() { return this->member.strict_sync(); }
-    Device& operator*() { return *this->member; }
-    Device* operator->() { return &*this->member; }
-    Device* component() { return this->member.component(); }
-private:
-    void open_impl(const Device& dev NDNBOOST_IOSTREAMS_PUSH_PARAMS()) // For forwarding.
-    { 
-        this->clear(); 
-        this->member.open(dev NDNBOOST_IOSTREAMS_PUSH_ARGS()); 
-    }
-};
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifdef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_stream_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/stream_buffer.hpp b/include/ndnboost/iostreams/stream_buffer.hpp
deleted file mode 100644
index 8b12972..0000000
--- a/include/ndnboost/iostreams/stream_buffer.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_STREAM_BUFFER_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_STREAM_BUFFER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <memory>            // allocator.
-#include <ndnboost/config.hpp>  // NDNBOOST_DEDUCED_TYPENAME.
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/config/overload_resolution.hpp>
-#include <ndnboost/iostreams/detail/forward.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // failure, streamsize.
-#include <ndnboost/iostreams/detail/streambuf/direct_streambuf.hpp>
-#include <ndnboost/iostreams/detail/streambuf/indirect_streambuf.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>  // MSVC.
-
-namespace ndnboost { namespace iostreams { namespace detail {
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-struct stream_buffer_traits {
-    typedef typename
-            mpl::if_<
-                is_convertible<
-                    NDNBOOST_DEDUCED_TYPENAME category_of<T>::type,
-                    direct_tag
-                >,
-                direct_streambuf<T, Tr>,
-                indirect_streambuf<T, Tr, Alloc, Mode>
-            >::type type;
-};
-
-} } } // End namespaces detail, iostreams, boost
-
-#ifdef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION
-# include <ndnboost/iostreams/detail/broken_overload_resolution/stream_buffer.hpp>
-#else
-
-namespace ndnboost { namespace iostreams {
-
-template< typename T,
-          typename Tr =
-              NDNBOOST_IOSTREAMS_CHAR_TRAITS(
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type
-              ),
-          typename Alloc =
-              std::allocator<
-                  NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type
-              >,
-          typename Mode = NDNBOOST_DEDUCED_TYPENAME mode_of<T>::type >
-class stream_buffer
-    : public detail::stream_buffer_traits<T, Tr, Alloc, Mode>::type
-{
-private:
-    NDNBOOST_STATIC_ASSERT((
-        is_convertible<
-            NDNBOOST_DEDUCED_TYPENAME iostreams::category_of<T>::type, Mode
-        >::value
-    ));
-    typedef typename
-            detail::stream_buffer_traits<
-                T, Tr, Alloc, Mode
-            >::type                           base_type;
-public:
-    typedef typename char_type_of<T>::type    char_type;
-    struct category 
-        : Mode,
-          closable_tag,
-          streambuf_tag
-        { };
-    NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr)
-public:
-    stream_buffer() { }
-    ~stream_buffer()
-    { 
-        try { 
-            if (this->is_open() && this->auto_close()) 
-                this->close(); 
-        } catch (...) { } 
-    }
-    NDNBOOST_IOSTREAMS_FORWARD( stream_buffer, open_impl, T,
-                             NDNBOOST_IOSTREAMS_PUSH_PARAMS,
-                             NDNBOOST_IOSTREAMS_PUSH_ARGS )
-    T& operator*() { return *this->component(); }
-    T* operator->() { return this->component(); }
-private:
-    void open_impl(const T& t NDNBOOST_IOSTREAMS_PUSH_PARAMS())
-        {   // Used for forwarding.
-            if (this->is_open())
-                ndnboost::throw_exception(
-                    NDNBOOST_IOSTREAMS_FAILURE("already open")
-                );
-            base_type::open(t NDNBOOST_IOSTREAMS_PUSH_ARGS());
-        }
-};
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifdef NDNBOOST_IOSTREAMS_BROKEN_OVERLOAD_RESOLUTION
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>  // MSVC.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_STREAM_BUFFER_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/tee.hpp b/include/ndnboost/iostreams/tee.hpp
deleted file mode 100644
index a7c3cbb..0000000
--- a/include/ndnboost/iostreams/tee.hpp
+++ /dev/null
@@ -1,232 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2005-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_TEE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_TEE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/assert.hpp>
-#include <ndnboost/config.hpp>  // NDNBOOST_DEDUCE_TYPENAME.
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/adapter/device_adapter.hpp>
-#include <ndnboost/iostreams/detail/adapter/filter_adapter.hpp>
-#include <ndnboost/iostreams/detail/call_traits.hpp>
-#include <ndnboost/iostreams/detail/execute.hpp>
-#include <ndnboost/iostreams/detail/functional.hpp>  // call_close_all 
-#include <ndnboost/iostreams/operations.hpp>
-#include <ndnboost/iostreams/pipeline.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-//
-// Template name: tee_filter.
-// Template parameters:
-//      Device - A blocking Sink.
-//
-template<typename Device>
-class tee_filter : public detail::filter_adapter<Device> {
-public:
-    typedef typename detail::param_type<Device>::type  param_type;
-    typedef typename char_type_of<Device>::type        char_type;
-    struct category
-        : dual_use_filter_tag,
-          multichar_tag,
-          closable_tag,
-          flushable_tag,
-          localizable_tag,
-          optimally_buffered_tag
-        { };
-
-    NDNBOOST_STATIC_ASSERT(is_device<Device>::value);
-    NDNBOOST_STATIC_ASSERT((
-        is_convertible< // Using mode_of causes failures on VC6-7.0.
-            NDNBOOST_DEDUCED_TYPENAME iostreams::category_of<Device>::type, output
-        >::value
-    ));
-
-    explicit tee_filter(param_type dev) 
-        : detail::filter_adapter<Device>(dev) 
-        { }
-
-    template<typename Source>
-    std::streamsize read(Source& src, char_type* s, std::streamsize n)
-    {
-        std::streamsize result = iostreams::read(src, s, n);
-        if (result != -1) {
-            std::streamsize result2 = iostreams::write(this->component(), s, result);
-            (void) result2; // Suppress 'unused variable' warning.
-            NDNBOOST_ASSERT(result == result2);
-        }
-        return result;
-    }
-
-    template<typename Sink>
-    std::streamsize write(Sink& snk, const char_type* s, std::streamsize n)
-    {
-        std::streamsize result = iostreams::write(snk, s, n);
-        std::streamsize result2 = iostreams::write(this->component(), s, result);
-        (void) result2; // Suppress 'unused variable' warning.
-        NDNBOOST_ASSERT(result == result2);
-        return result;
-    }
-
-    template<typename Next>
-    void close(Next&, NDNBOOST_IOS::openmode)
-    { 
-        detail::close_all(this->component());
-    }
-
-    template<typename Sink>
-    bool flush(Sink& snk)
-    {
-        bool r1 = iostreams::flush(snk);
-        bool r2 = iostreams::flush(this->component());
-        return r1 && r2;
-    }
-};
-NDNBOOST_IOSTREAMS_PIPABLE(tee_filter, 1)
-
-//
-// Template name: tee_device.
-// Template parameters:
-//      Device - A blocking Device.
-//      Sink - A blocking Sink.
-//
-template<typename Device, typename Sink>
-class tee_device {
-public:
-    typedef typename detail::param_type<Device>::type  device_param;
-    typedef typename detail::param_type<Sink>::type    sink_param;
-    typedef typename detail::value_type<Device>::type  device_value;
-    typedef typename detail::value_type<Sink>::type    sink_value;
-    typedef typename char_type_of<Device>::type        char_type;
-    typedef typename
-            mpl::if_<
-                 is_convertible<
-                     NDNBOOST_DEDUCED_TYPENAME 
-                         iostreams::category_of<Device>::type, 
-                     output
-                 >,
-                 output,
-                 input
-            >::type                                    mode;
-    NDNBOOST_STATIC_ASSERT(is_device<Device>::value);
-    NDNBOOST_STATIC_ASSERT(is_device<Sink>::value);
-    NDNBOOST_STATIC_ASSERT((
-        is_same<
-            char_type, 
-            NDNBOOST_DEDUCED_TYPENAME char_type_of<Sink>::type
-        >::value
-    ));
-    NDNBOOST_STATIC_ASSERT((
-        is_convertible<
-            NDNBOOST_DEDUCED_TYPENAME iostreams::category_of<Sink>::type, 
-            output
-        >::value
-    ));
-    struct category
-        : mode,
-          device_tag,
-          closable_tag,
-          flushable_tag,
-          localizable_tag,
-          optimally_buffered_tag
-        { };
-    tee_device(device_param device, sink_param sink) 
-        : dev_(device), sink_(sink)
-        { }
-    std::streamsize read(char_type* s, std::streamsize n)
-    {
-        NDNBOOST_STATIC_ASSERT((
-            is_convertible<
-                NDNBOOST_DEDUCED_TYPENAME iostreams::category_of<Device>::type, input
-            >::value
-        ));
-        std::streamsize result1 = iostreams::read(dev_, s, n);
-        if (result1 != -1) {
-            std::streamsize result2 = iostreams::write(sink_, s, result1);
-            (void) result1; // Suppress 'unused variable' warning.
-            (void) result2;
-            NDNBOOST_ASSERT(result1 == result2);
-        }
-        return result1;
-    }
-    std::streamsize write(const char_type* s, std::streamsize n)
-    {
-        NDNBOOST_STATIC_ASSERT((
-            is_convertible<
-                NDNBOOST_DEDUCED_TYPENAME iostreams::category_of<Device>::type, output
-            >::value
-        ));
-        std::streamsize result1 = iostreams::write(dev_, s, n);
-        std::streamsize result2 = iostreams::write(sink_, s, n);
-        (void) result1; // Suppress 'unused variable' warning.
-        (void) result2;
-        NDNBOOST_ASSERT(result1 == n && result2 == n);
-        return n;
-    }
-    void close()
-    {
-        detail::execute_all( detail::call_close_all(dev_),
-                             detail::call_close_all(sink_) );
-    }
-    bool flush()
-    {
-        bool r1 = iostreams::flush(dev_);
-        bool r2 = iostreams::flush(sink_);
-        return r1 && r2;
-    }
-    template<typename Locale>
-    void imbue(const Locale& loc)
-    {
-        iostreams::imbue(dev_, loc);
-        iostreams::imbue(sink_, loc);
-    }
-    std::streamsize optimal_buffer_size() const 
-    {
-        return (std::max) ( iostreams::optimal_buffer_size(dev_), 
-                            iostreams::optimal_buffer_size(sink_) );
-    }
-private:
-    device_value  dev_;
-    sink_value    sink_;
-};
-
-template<typename Sink>
-tee_filter<Sink> tee(Sink& snk) 
-{ return tee_filter<Sink>(snk); }
-
-template<typename Sink>
-tee_filter<Sink> tee(const Sink& snk) 
-{ return tee_filter<Sink>(snk); }
-
-template<typename Device, typename Sink>
-tee_device<Device, Sink> tee(Device& dev, Sink& sink) 
-{ return tee_device<Device, Sink>(dev, sink); }
-
-template<typename Device, typename Sink>
-tee_device<Device, Sink> tee(const Device& dev, Sink& sink) 
-{ return tee_device<Device, Sink>(dev, sink); }
-
-template<typename Device, typename Sink>
-tee_device<Device, Sink> tee(Device& dev, const Sink& sink) 
-{ return tee_device<Device, Sink>(dev, sink); }
-
-template<typename Device, typename Sink>
-tee_device<Device, Sink> tee(const Device& dev, const Sink& sink) 
-{ return tee_device<Device, Sink>(dev, sink); }
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_TEE_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/traits.hpp b/include/ndnboost/iostreams/traits.hpp
deleted file mode 100644
index 515eb07..0000000
--- a/include/ndnboost/iostreams/traits.hpp
+++ /dev/null
@@ -1,391 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// 
-// Contains metafunctions char_type_of, category_of and mode_of used for
-// deducing the i/o category and i/o mode of a model of Filter or Device.
-//
-// Also contains several utility metafunctions, functions and macros.
-//
-
-#ifndef NDNBOOST_IOSTREAMS_IO_TRAITS_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_IO_TRAITS_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <iosfwd>            // stream types, char_traits.
-#include <ndnboost/config.hpp>  // partial spec, deduced typename.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/bool_trait_def.hpp> 
-#include <ndnboost/iostreams/detail/config/wide_streams.hpp>
-#include <ndnboost/iostreams/detail/is_iterator_range.hpp>    
-#include <ndnboost/iostreams/detail/select.hpp>        
-#include <ndnboost/iostreams/detail/select_by_size.hpp>      
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>       
-#include <ndnboost/iostreams/traits_fwd.hpp> 
-#include <ndnboost/mpl/bool.hpp>   
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/identity.hpp>      
-#include <ndnboost/mpl/int.hpp>  
-#include <ndnboost/mpl/or.hpp>                 
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-# include <ndnboost/range/iterator_range.hpp>
-# include <ndnboost/range/value_type.hpp>
-#endif // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-#include <ndnboost/ref.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-namespace ndnboost { namespace iostreams {
-
-//----------Definitions of predicates for streams and stream buffers----------//
-
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------------------//
-
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_istream, std::basic_istream, 2)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ostream, std::basic_ostream, 2)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_iostream, std::basic_iostream, 2)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_streambuf, std::basic_streambuf, 2)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ifstream, std::basic_ifstream, 2)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ofstream, std::basic_ofstream, 2)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_fstream, std::basic_fstream, 2)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_filebuf, std::basic_filebuf, 2)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_istringstream, std::basic_istringstream, 3)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ostringstream, std::basic_ostringstream, 3)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_stringstream, std::basic_stringstream, 3)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_stringbuf, std::basic_stringbuf, 3)
-
-#else // #ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-----------------------//
-
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_istream, std::istream, 0)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_ostream, std::ostream, 0)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_iostream, std::iostream, 0)
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_streambuf, std::streambuf, 0)
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //----------------------//
-
-template<typename T>
-struct is_std_io
-    : mpl::or_< is_istream<T>, is_ostream<T>, is_streambuf<T> >
-    { };
-
-template<typename T>
-struct is_std_file_device
-    : mpl::or_< 
-          is_ifstream<T>, 
-          is_ofstream<T>, 
-          is_fstream<T>, 
-          is_filebuf<T>
-      >
-    { };
-
-template<typename T>
-struct is_std_string_device
-    : mpl::or_< 
-          is_istringstream<T>, 
-          is_ostringstream<T>, 
-          is_stringstream<T>, 
-          is_stringbuf<T>
-      >
-    { };
-
-template<typename Device, typename Tr, typename Alloc>
-struct stream;
-
-template<typename T, typename Tr, typename Alloc, typename Mode>
-class stream_buffer;
-
-template< typename Mode, typename Ch, typename Tr, 
-          typename Alloc, typename Access >
-class filtering_stream;
-
-template< typename Mode, typename Ch, typename Tr, 
-          typename Alloc, typename Access >
-class wfiltering_stream;
-
-template< typename Mode, typename Ch, typename Tr, 
-          typename Alloc, typename Access >
-class filtering_streambuf;
-
-template< typename Mode, typename Ch, typename Tr, 
-          typename Alloc, typename Access >
-class filtering_wstreambuf;
-
-namespace detail {
-
-template<typename T, typename Tr>
-class linked_streambuf;
-
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_boost_stream,
-                                ndnboost::iostreams::stream,
-                                3 )
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_boost_stream_buffer,
-                                ndnboost::iostreams::stream_buffer,
-                                4 )
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_filtering_stream_impl,
-                                ndnboost::iostreams::filtering_stream,
-                                5 )
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_filtering_wstream_impl,
-                                ndnboost::iostreams::wfiltering_stream,
-                                5 )
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_filtering_streambuf_impl,
-                                ndnboost::iostreams::filtering_streambuf,
-                                5 )
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF( is_filtering_wstreambuf_impl,
-                                ndnboost::iostreams::filtering_wstreambuf,
-                                5 )
-NDNBOOST_IOSTREAMS_BOOL_TRAIT_DEF(is_linked, linked_streambuf, 2)
-
-template<typename T>
-struct is_filtering_stream
-    : mpl::or_<
-          is_filtering_stream_impl<T>,
-          is_filtering_wstream_impl<T>
-      >
-    { };
-
-template<typename T>
-struct is_filtering_streambuf
-    : mpl::or_<
-          is_filtering_streambuf_impl<T>,
-          is_filtering_wstreambuf_impl<T>
-      >
-    { };
-
-template<typename T>
-struct is_boost
-    : mpl::or_<
-          is_boost_stream<T>, 
-          is_boost_stream_buffer<T>, 
-          is_filtering_stream<T>, 
-          is_filtering_streambuf<T>
-      >
-    { };
-
-} // End namespace detail.
-                    
-//------------------Definitions of char_type_of-------------------------------//
-
-namespace detail {
-
-template<typename T>
-struct member_char_type { typedef typename T::char_type type; };
-
-} // End namespace detail.
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //---------------------------//
-# ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //-------------------------------//
-
-template<typename T>
-struct char_type_of 
-    : detail::member_char_type<
-          typename detail::unwrapped_type<T>::type
-      > 
-    { };
-
-# else // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //---------------------//
-
-template<typename T>
-struct char_type_of {
-    typedef typename detail::unwrapped_type<T>::type U;
-    typedef typename 
-            mpl::eval_if<
-                is_std_io<U>,
-                mpl::identity<char>,
-                detail::member_char_type<U>
-            >::type type;
-};
-
-# endif // # ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES //--------------------//
-
-template<typename Iter>
-struct char_type_of< iterator_range<Iter> > {
-    typedef typename iterator_value<Iter>::type type;
-};
-
-#else // #ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //------------------//
-
-template<typename T>
-struct char_type_of {
-    template<typename U>
-    struct get_value_type {
-        #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-            typedef typename range_value<U>::type type;
-        #endif // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-    };
-    typedef typename 
-            mpl::eval_if<
-                is_iterator_range<T>,
-                get_value_type<T>,
-                detail::member_char_type<
-                    NDNBOOST_DEDUCED_TYPENAME detail::unwrapped_type<T>::type
-                >
-            >::type type;
-};
-
-#endif // #ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //-----------------//
-
-//------------------Definitions of category_of--------------------------------//
-
-namespace detail {
-
-template<typename T>
-struct member_category { typedef typename T::category type; };
-
-} // End namespace detail.
-
-template<typename T>
-struct category_of {
-    template<typename U>
-    struct member_category { 
-        typedef typename U::category type; 
-    };
-    typedef typename detail::unwrapped_type<T>::type U;
-    typedef typename  
-            mpl::eval_if<
-                mpl::and_<
-                    is_std_io<U>,
-                    mpl::not_< detail::is_boost<U> >
-                >,
-                iostreams::select<  // Disambiguation for Tru64
-                    is_filebuf<U>,        filebuf_tag,
-                    is_ifstream<U>,       ifstream_tag,
-                    is_ofstream<U>,       ofstream_tag,
-                    is_fstream<U>,        fstream_tag,
-                    is_stringbuf<U>,      stringbuf_tag,
-                    is_istringstream<U>,  istringstream_tag,
-                    is_ostringstream<U>,  ostringstream_tag,
-                    is_stringstream<U>,   stringstream_tag,
-                    is_streambuf<U>,      generic_streambuf_tag,
-                    is_iostream<U>,       generic_iostream_tag,
-                    is_istream<U>,        generic_istream_tag, 
-                    is_ostream<U>,        generic_ostream_tag
-                >,
-                detail::member_category<U>
-            >::type type;
-};
-
-// Partial specialization for reference wrappers
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //---------------------------//
-
-template<typename T>
-struct category_of< reference_wrapper<T> >
-    : category_of<T>
-    { };
-
-#endif // #ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //-----------------//
-
-//------------------Definition of get_category--------------------------------//
-
-// 
-// Returns an object of type category_of<T>::type.
-// 
-template<typename T>
-inline typename category_of<T>::type get_category(const T&) 
-{ typedef typename category_of<T>::type category; return category(); }
-
-//------------------Definition of int_type_of---------------------------------//
-
-template<typename T>
-struct int_type_of { 
-#ifndef NDNBOOST_IOSTREAMS_NO_STREAM_TEMPLATES
-    typedef std::char_traits<
-                NDNBOOST_DEDUCED_TYPENAME char_type_of<T>::type
-            > traits_type;      
-    typedef typename traits_type::int_type type; 
-#else  
-    typedef int                            type; 
-#endif
-};
-
-//------------------Definition of mode_of-------------------------------------//
-
-namespace detail {
-
-template<int N> struct io_mode_impl;
-
-#define NDNBOOST_IOSTREAMS_MODE_HELPER(tag_, id_) \
-    case_<id_> io_mode_impl_helper(tag_); \
-    template<> struct io_mode_impl<id_> { typedef tag_ type; }; \
-    /**/
-NDNBOOST_IOSTREAMS_MODE_HELPER(input, 1)
-NDNBOOST_IOSTREAMS_MODE_HELPER(output, 2)
-NDNBOOST_IOSTREAMS_MODE_HELPER(bidirectional, 3)
-NDNBOOST_IOSTREAMS_MODE_HELPER(input_seekable, 4)
-NDNBOOST_IOSTREAMS_MODE_HELPER(output_seekable, 5)
-NDNBOOST_IOSTREAMS_MODE_HELPER(seekable, 6)
-NDNBOOST_IOSTREAMS_MODE_HELPER(dual_seekable, 7)
-NDNBOOST_IOSTREAMS_MODE_HELPER(bidirectional_seekable, 8)
-NDNBOOST_IOSTREAMS_MODE_HELPER(dual_use, 9)
-#undef NDNBOOST_IOSTREAMS_MODE_HELPER
-
-template<typename T>
-struct io_mode_id {
-    typedef typename category_of<T>::type category;
-    NDNBOOST_SELECT_BY_SIZE(int, value, detail::io_mode_impl_helper(category()));
-};
-
-} // End namespace detail.
-
-template<typename T> // Borland 5.6.4 requires this circumlocution.
-struct mode_of : detail::io_mode_impl< detail::io_mode_id<T>::value > { };
-
-// Partial specialization for reference wrappers
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //---------------------------//
-
-template<typename T>
-struct mode_of< reference_wrapper<T> >
-    : mode_of<T>
-    { };
-
-#endif // #ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION //-----------------//
-                    
-//------------------Definition of is_device, is_filter and is_direct----------//
-
-namespace detail {
-
-template<typename T, typename Tag>
-struct has_trait_impl {
-    typedef typename category_of<T>::type category;
-    NDNBOOST_STATIC_CONSTANT(bool, value = (is_convertible<category, Tag>::value));
-};
-
-template<typename T, typename Tag>
-struct has_trait 
-    : mpl::bool_<has_trait_impl<T, Tag>::value>
-    { }; 
-
-} // End namespace detail.
-
-template<typename T>
-struct is_device : detail::has_trait<T, device_tag> { };
-
-template<typename T>
-struct is_filter : detail::has_trait<T, filter_tag> { };
-
-template<typename T>
-struct is_direct : detail::has_trait<T, direct_tag> { };
-                    
-//------------------Definition of NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS----------//
-
-#define NDNBOOST_IOSTREAMS_STREAMBUF_TYPEDEFS(Tr) \
-    typedef Tr                              traits_type; \
-    typedef typename traits_type::int_type  int_type; \
-    typedef typename traits_type::off_type  off_type; \
-    typedef typename traits_type::pos_type  pos_type; \
-    /**/
-
-} } // End namespaces iostreams, boost.
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_IO_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/traits_fwd.hpp b/include/ndnboost/iostreams/traits_fwd.hpp
deleted file mode 100644
index fd2acea..0000000
--- a/include/ndnboost/iostreams/traits_fwd.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-// Forward declarations of templates defined in traits.hpp.
-
-#ifndef NDNBOOST_IOSTREAMS_IO_TRAITS_FWD_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_IO_TRAITS_FWD_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif              
-
-#include <iosfwd> // stream types, char_traits.
-
-namespace ndnboost { namespace iostreams {      
-
-template<typename T>
-struct is_istream;
-
-template<typename T>
-struct is_ostream;
-
-template<typename T>
-struct is_iostream;
-
-template<typename T>
-struct is_streambuf;
-
-template<typename T>
-struct is_istringstream;
-
-template<typename T>
-struct is_ostringstream;
-
-template<typename T>
-struct is_stringstream;
-
-template<typename T>
-struct is_stringbuf;
-
-template<typename T>
-struct is_ifstream;
-
-template<typename T>
-struct is_ofstream;
-
-template<typename T>
-struct is_fstream;
-
-template<typename T>
-struct is_filebuf;
-
-template<typename T>
-struct is_std_io;
-
-template<typename T>
-struct is_std_file_device;
-
-template<typename T>
-struct is_std_string_device;
-
-template<typename T>
-struct char_type_of;
-
-template<typename T>
-struct category_of;
-
-template<typename T>
-struct int_type_of;
-
-template<typename T>
-struct mode_of;
-
-template<typename T>
-struct is_device;
-
-template<typename T>
-struct is_filter;
-
-template<typename T>
-struct is_direct;
-
-namespace detail {
-
-template<typename T>
-struct is_boost_stream;
-
-template<typename T>
-struct is_boost_stream_buffer;
-
-template<typename T>
-struct is_filtering_stream;
-
-template<typename T>
-struct is_filtering_streambuf;
-
-template<typename T>
-struct is_linked;
-
-template<typename T>
-struct is_boost;
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_IO_TRAITS_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/iostreams/write.hpp b/include/ndnboost/iostreams/write.hpp
deleted file mode 100644
index b2d812e..0000000
--- a/include/ndnboost/iostreams/write.hpp
+++ /dev/null
@@ -1,171 +0,0 @@
-// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)
-// (C) Copyright 2003-2007 Jonathan Turkanis
-// 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.)
-
-// See http://www.boost.org/libs/iostreams for documentation.
-
-#ifndef NDNBOOST_IOSTREAMS_WRITE_HPP_INCLUDED
-#define NDNBOOST_IOSTREAMS_WRITE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>  // DEDUCED_TYPENAME, MSVC.
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/iostreams/categories.hpp>
-#include <ndnboost/iostreams/detail/char_traits.hpp>
-#include <ndnboost/iostreams/detail/dispatch.hpp>
-#include <ndnboost/iostreams/detail/ios.hpp>  // streamsize.
-#include <ndnboost/iostreams/detail/streambuf.hpp>
-#include <ndnboost/iostreams/detail/wrap_unwrap.hpp>
-#include <ndnboost/iostreams/operations_fwd.hpp>
-#include <ndnboost/iostreams/traits.hpp>
-#include <ndnboost/mpl/if.hpp>
-
-// Must come last.
-#include <ndnboost/iostreams/detail/config/disable_warnings.hpp>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //-----------------------------------//
-# include <ndnboost/iostreams/detail/vc6/write.hpp>
-#else // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //--------------------------//
-
-namespace ndnboost { namespace iostreams {
-
-namespace detail {
-
-template<typename T> 
-struct write_device_impl;
-
-template<typename T> 
-struct write_filter_impl;
-
-} // End namespace detail.
-
-template<typename T>
-bool put(T& t, typename char_type_of<T>::type c)
-{ return detail::write_device_impl<T>::put(detail::unwrap(t), c); }
-
-template<typename T>
-inline std::streamsize write
-    (T& t, const typename char_type_of<T>::type* s, std::streamsize n)
-{ return detail::write_device_impl<T>::write(detail::unwrap(t), s, n); }
-
-template<typename T, typename Sink>
-inline std::streamsize
-write( T& t, Sink& snk, const typename char_type_of<T>::type* s, 
-       std::streamsize n )
-{ return detail::write_filter_impl<T>::write(detail::unwrap(t), snk, s, n); }
-
-namespace detail {
-
-//------------------Definition of write_device_impl---------------------------//
-
-template<typename T>
-struct write_device_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          write_device_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<
-                  T, ostream_tag, streambuf_tag, output
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct write_device_impl<ostream_tag> {
-    template<typename T>
-    static bool put(T& t, typename char_type_of<T>::type c)
-    {
-        typedef typename char_type_of<T>::type          char_type;
-        typedef NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)  traits_type;
-        return !traits_type::eq_int_type( t.rdbuf()->sputc(c),
-                                          traits_type::eof() );
-    }
-
-    template<typename T>
-    static std::streamsize write
-        (T& t, const typename char_type_of<T>::type* s, std::streamsize n)
-    { return t.rdbuf()->sputn(s, n); }
-};
-
-template<>
-struct write_device_impl<streambuf_tag> {
-    template<typename T>
-    static bool put(T& t, typename char_type_of<T>::type c)
-    {
-        typedef typename char_type_of<T>::type          char_type;
-        typedef NDNBOOST_IOSTREAMS_CHAR_TRAITS(char_type)  traits_type;
-        return !traits_type::eq_int_type(t.sputc(c), traits_type::eof());
-    }
-
-    template<typename T>
-    static std::streamsize write
-        (T& t, const typename char_type_of<T>::type* s, std::streamsize n)
-    { return t.sputn(s, n); }
-};
-
-template<>
-struct write_device_impl<output> {
-    template<typename T>
-    static bool put(T& t, typename char_type_of<T>::type c)
-    { return t.write(&c, 1) == 1; }
-
-    template<typename T>
-    static std::streamsize
-    write(T& t, const typename char_type_of<T>::type* s, std::streamsize n)
-    { return t.write(s, n); }
-};
-
-//------------------Definition of write_filter_impl---------------------------//
-
-template<typename T>
-struct write_filter_impl
-    : mpl::if_<
-          is_custom<T>,
-          operations<T>,
-          write_filter_impl<
-              NDNBOOST_DEDUCED_TYPENAME
-              dispatch<
-                  T, multichar_tag, any_tag
-              >::type
-          >
-      >::type
-    { };
-
-template<>
-struct write_filter_impl<multichar_tag> {
-    template<typename T, typename Sink>
-    static std::streamsize
-    write( T& t, Sink& snk, const typename char_type_of<T>::type* s,
-           std::streamsize n )
-    { return t.write(snk, s, n); }
-};
-
-template<>
-struct write_filter_impl<any_tag> {
-    template<typename T, typename Sink>
-    static std::streamsize
-    write( T& t, Sink& snk, const typename char_type_of<T>::type* s,
-           std::streamsize n )
-    {
-        for (std::streamsize off = 0; off < n; ++off)
-            if (!t.put(snk, s[off]))
-                return off;
-        return n;
-    }
-};
-
-} // End namespace detail.
-
-} } // End namespaces iostreams, boost.
-
-#endif // #if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) //-------------------------//
-
-#include <ndnboost/iostreams/detail/config/enable_warnings.hpp>
-
-#endif // #ifndef NDNBOOST_IOSTREAMS_WRITE_HPP_INCLUDED
diff --git a/include/ndnboost/is_placeholder.hpp b/include/ndnboost/is_placeholder.hpp
deleted file mode 100644
index cc40821..0000000
--- a/include/ndnboost/is_placeholder.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef NDNBOOST_IS_PLACEHOLDER_HPP_INCLUDED
-#define NDNBOOST_IS_PLACEHOLDER_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined( _MSC_VER ) && ( _MSC_VER >= 1020 )
-# pragma once
-#endif
-
-
-//  is_placeholder.hpp - TR1 is_placeholder metafunction
-//
-//  Copyright (c) 2006 Peter Dimov
-//
-//  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
-
-
-namespace ndnboost
-{
-
-template< class T > struct is_placeholder
-{
-    enum _vt { value = 0 };
-};
-
-} // namespace ndnboost
-
-#endif // #ifndef NDNBOOST_IS_PLACEHOLDER_HPP_INCLUDED
diff --git a/include/ndnboost/iterator.hpp b/include/ndnboost/iterator.hpp
deleted file mode 100644
index ded629c..0000000
--- a/include/ndnboost/iterator.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//  iterator.hpp workarounds for non-conforming standard libraries  ---------//
-
-//  (C) Copyright Beman Dawes 2000. 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)
-
-//  See http://www.boost.org/libs/utility for documentation.
-
-//  Revision History
-//  12 Jan 01 added <cstddef> for std::ptrdiff_t (Jens Maurer)
-//  28 Jun 00 Workarounds to deal with known MSVC bugs (David Abrahams)
-//  26 Jun 00 Initial version (Jeremy Siek)
-
-#ifndef NDNBOOST_ITERATOR_HPP
-#define NDNBOOST_ITERATOR_HPP
-
-#include <iterator>
-#include <cstddef>           // std::ptrdiff_t
-#include <ndnboost/config.hpp>
-
-namespace ndnboost
-{
-# 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&>
-  struct iterator
-  {
-    typedef T         value_type;
-    typedef Distance  difference_type;
-    typedef Pointer   pointer;
-    typedef Reference reference;
-    typedef Category  iterator_category;
-  };
-# else
-
-  // declare iterator_base in namespace detail to work around MSVC bugs which
-  // 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(NDNBOOST_MSVC_STD_ITERATOR)
-   struct iterator_base : std::iterator<Category, T, Distance, Pointer, Reference> {};
-#  else
-   struct iterator_base : std::iterator<Category, T, Distance>
-   {
-     typedef Reference reference;
-     typedef Pointer pointer;
-     typedef Distance difference_type;
-   };
-#  endif
-  }
-
-  template <class Category, class T, class Distance = std::ptrdiff_t,
-            class Pointer = T*, class Reference = T&>
-  struct iterator : ndnboost::detail::iterator_base<Category, T, Distance, Pointer, Reference> {};
-# endif
-} // namespace ndnboost
-
-#endif // NDNBOOST_ITERATOR_HPP
diff --git a/include/ndnboost/iterator/detail/config_def.hpp b/include/ndnboost/iterator/detail/config_def.hpp
deleted file mode 100644
index f4af926..0000000
--- a/include/ndnboost/iterator/detail/config_def.hpp
+++ /dev/null
@@ -1,137 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// 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)
-
-// no include guard multiple inclusion intended
-
-//
-// This is a temporary workaround until the bulk of this is
-// available in boost config.
-// 23/02/03 thw
-//
-
-#include <ndnboost/config.hpp> // for prior
-#include <ndnboost/detail/workaround.hpp>
-
-#ifdef NDNBOOST_ITERATOR_CONFIG_DEF
-# error you have nested config_def #inclusion.
-#else 
-# 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(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
-// passes a const Value to iterator_facade.  As a result, any code
-// which makes a std::vector of the iterator's value_type will fail
-// when its allocator declares functions overloaded on reference and
-// const_reference (the same type).
-//
-// Furthermore, Borland 5.5.1 drops constness in enough ways that we
-// end up using a proxy for operator[] when we otherwise shouldn't.
-// Using reference constness gives it an extra hint that it can
-// return the value_type from operator[] directly, but is not
-// strictly necessary.  Not sure how best to resolve this one.
-
-# define NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 1
-
-#endif
-
-#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 NDNBOOST_NO_LVALUE_RETURN_DETECTION
-
-# if 0 // test code
-  struct v  {};
-
-  typedef  char (&no)[3];
-
-  template <class T>
-  no foo(T const&, ...);
-
-  template <class T>
-  char foo(T&, int);
-
-
-  struct value_iterator
-  {
-      v operator*() const;
-  };
-
-  template <class T>
-  struct lvalue_deref_helper
-  {
-      static T& x;
-      enum { value = (sizeof(foo(*x,0)) == 1) };
-  };
-
-  int z2[(lvalue_deref_helper<v*>::value == 1) ? 1 : -1];
-  int z[(lvalue_deref_helper<value_iterator>::value) == 1 ? -1 : 1 ];
-# endif 
-
-#endif
-
-#if NDNBOOST_WORKAROUND(__MWERKS__, <=0x2407)
-#  define NDNBOOST_NO_IS_CONVERTIBLE // "is_convertible doesn't work for simple types"
-#endif
-
-#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>
-    template <class T>
-    struct foo
-    {
-        foo(T);
-
-        template <class U>
-        foo(foo<U> const& other) : p(other.p) { }
-
-        T p;
-    };
-
-    bool x = ndnboost::is_convertible<foo<int const*>, foo<int*> >::value;
-#  endif
-
-#endif
-
-
-#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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-#  define NDNBOOST_ARG_DEPENDENT_TYPENAME typename
-# else
-#  define NDNBOOST_ARG_DEPENDENT_TYPENAME
-# endif
-
-# 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.
-//
-// 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 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
deleted file mode 100644
index 0e828aa..0000000
--- a/include/ndnboost/iterator/detail/config_undef.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// (C) Copyright Thomas Witt    2002.
-// 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)
-
-// no include guard multiple inclusion intended
-
-//
-// This is a temporary workaround until the bulk of this is
-// available in boost config.
-// 23/02/03 thw
-//
-
-#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 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
deleted file mode 100644
index 2b041ab..0000000
--- a/include/ndnboost/iterator/detail/enable_if.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// 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 NDNBOOST_ENABLE_IF_23022003THW_HPP
-#define NDNBOOST_ENABLE_IF_23022003THW_HPP
-
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/mpl/identity.hpp>
-
-#include <ndnboost/iterator/detail/config_def.hpp>
-
-//
-// Boost iterators uses its own enable_if cause we need
-// special semantics for deficient compilers.
-// 23/02/03 thw
-//
-
-namespace ndnboost
-{
-
-  namespace iterators
-  {
-    //
-    // Base machinery for all kinds of enable if
-    //
-    template<bool>
-    struct enabled
-    {
-      template<typename T>
-      struct base
-      {
-        typedef T type;
-      };
-    };
-    
-    //
-    // For compilers that don't support "Substitution Failure Is Not An Error"
-    // enable_if falls back to always enabled. See comments
-    // on operator implementation for consequences.
-    //
-    template<>
-    struct enabled<false>
-    {
-      template<typename T>
-      struct base
-      {
-#ifdef NDNBOOST_NO_SFINAE
-
-        typedef T type;
-
-        // This way to do it would give a nice error message containing
-        // invalid overload, but has the big disadvantage that
-        // there is no reference to user code in the error message.
-        //
-        // struct invalid_overload;
-        // typedef invalid_overload type;
-        //
-#endif
-      };
-    };
-
-
-    template <class Cond,
-              class Return>
-    struct enable_if
-# if !defined(NDNBOOST_NO_SFINAE) && !defined(NDNBOOST_NO_IS_CONVERTIBLE)
-      : enabled<(Cond::value)>::template base<Return>
-# else
-      : mpl::identity<Return>
-# endif 
-    {
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-        typedef Return type;
-# endif 
-    };
-
-  } // namespace iterators
-
-} // namespace ndnboost
-
-#include <ndnboost/iterator/detail/config_undef.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
deleted file mode 100644
index 4148793..0000000
--- a/include/ndnboost/iterator/detail/facade_iterator_category.hpp
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright David Abrahams 2003. Use, modification and distribution is
-// subject to 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 FACADE_ITERATOR_CATEGORY_NDNBOOST_DWA20031118_HPP
-# define FACADE_ITERATOR_CATEGORY_NDNBOOST_DWA20031118_HPP
-
-# include <ndnboost/iterator/iterator_categories.hpp>
-
-# include <ndnboost/mpl/or.hpp>  // used in iterator_tag inheritance logic
-# include <ndnboost/mpl/and.hpp>
-# include <ndnboost/mpl/if.hpp>
-# include <ndnboost/mpl/eval_if.hpp>
-# include <ndnboost/mpl/identity.hpp>
-# include <ndnboost/mpl/assert.hpp>
-
-# include <ndnboost/type_traits/is_same.hpp>
-# include <ndnboost/type_traits/is_const.hpp>
-# include <ndnboost/type_traits/is_reference.hpp>
-# include <ndnboost/type_traits/is_convertible.hpp>
-
-# include <ndnboost/type_traits/is_same.hpp>
-
-# include <ndnboost/iterator/detail/config_def.hpp> // try to keep this last
-
-# ifdef NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
-#  include <ndnboost/detail/indirect_traits.hpp>
-# endif
-
-//
-// iterator_category deduction for iterator_facade
-//
-
-// forward declaration
-namespace ndnboost { struct use_default; }
-
-namespace ndnboost { namespace detail  {
-
-struct input_output_iterator_tag
-  : std::input_iterator_tag
-{
-    // Using inheritance for only input_iterator_tag helps to avoid
-    // ambiguities when a stdlib implementation dispatches on a
-    // function which is overloaded on both input_iterator_tag and
-    // output_iterator_tag, as STLPort does, in its __valid_range
-    // function.  I claim it's better to avoid the ambiguity in these
-    // cases.
-    operator std::output_iterator_tag() const
-    {
-        return std::output_iterator_tag();
-    }
-};
-
-//
-// True iff the user has explicitly disabled writability of this
-// iterator.  Pass the iterator_facade's Value parameter and its
-// nested ::reference type.
-//
-template <class ValueParam, class Reference>
-struct iterator_writability_disabled
-# ifdef NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY // Adding Thomas' logic?
-  : mpl::or_<
-        is_const<Reference>
-      , ndnboost::detail::indirect_traits::is_reference_to_const<Reference>
-      , is_const<ValueParam>
-    >
-# else 
-  : is_const<ValueParam>
-# endif 
-{};
-
-
-//
-// Convert an iterator_facade's traversal category, Value parameter,
-// and ::reference type to an appropriate old-style category.
-//
-// If writability has been disabled per the above metafunction, the
-// result will not be convertible to output_iterator_tag.
-//
-// Otherwise, if Traversal == single_pass_traversal_tag, the following
-// conditions will result in a tag that is convertible both to
-// input_iterator_tag and output_iterator_tag:
-//
-//    1. Reference is a reference to non-const
-//    2. Reference is not a reference and is convertible to Value
-//
-template <class Traversal, class ValueParam, class Reference>
-struct iterator_facade_default_category
-  : mpl::eval_if<
-        mpl::and_<
-            is_reference<Reference>
-          , is_convertible<Traversal,forward_traversal_tag>
-        >
-      , mpl::eval_if<
-            is_convertible<Traversal,random_access_traversal_tag>
-          , mpl::identity<std::random_access_iterator_tag>
-          , mpl::if_<
-                is_convertible<Traversal,bidirectional_traversal_tag>
-              , std::bidirectional_iterator_tag
-              , std::forward_iterator_tag
-            >
-        >
-      , typename mpl::eval_if<
-            mpl::and_<
-                is_convertible<Traversal, single_pass_traversal_tag>
-                
-                // check for readability
-              , is_convertible<Reference, ValueParam>
-            >
-          , mpl::identity<std::input_iterator_tag>
-          , mpl::identity<Traversal>
-        >
-    >
-{
-};
-
-// True iff T is convertible to an old-style iterator category.
-template <class T>
-struct is_iterator_category
-  : mpl::or_<
-        is_convertible<T,std::input_iterator_tag>
-      , is_convertible<T,std::output_iterator_tag>
-    >
-{
-};
-
-template <class T>
-struct is_iterator_traversal
-  : is_convertible<T,incrementable_traversal_tag>
-{};
-
-//
-// A composite iterator_category tag convertible to Category (a pure
-// old-style category) and Traversal (a pure traversal tag).
-// Traversal must be a strict increase of the traversal power given by
-// Category.
-//
-template <class Category, class Traversal>
-struct iterator_category_with_traversal
-  : Category, Traversal
-{
-# 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.
-    NDNBOOST_MPL_ASSERT_NOT((
-        is_convertible<
-              typename iterator_category_to_traversal<Category>::type
-            , 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 
-};
-
-// Computes an iterator_category tag whose traversal is Traversal and
-// which is appropriate for an iterator
-template <class Traversal, class ValueParam, class Reference>
-struct facade_iterator_category_impl
-{
-# if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-    NDNBOOST_MPL_ASSERT_NOT((is_iterator_category<Traversal>));
-# endif 
-    
-    typedef typename iterator_facade_default_category<
-        Traversal,ValueParam,Reference
-    >::type category;
-    
-    typedef typename mpl::if_<
-        is_same<
-            Traversal
-          , typename iterator_category_to_traversal<category>::type
-        >
-      , category
-      , iterator_category_with_traversal<category,Traversal>
-    >::type type;
-};
-
-//
-// Compute an iterator_category for iterator_facade
-//
-template <class CategoryOrTraversal, class ValueParam, class Reference>
-struct facade_iterator_category
-  : mpl::eval_if<
-        is_iterator_category<CategoryOrTraversal>
-      , mpl::identity<CategoryOrTraversal> // old-style categories are fine as-is
-      , facade_iterator_category_impl<CategoryOrTraversal,ValueParam,Reference>
-    >
-{
-};
-
-}} // namespace ndnboost::detail
-
-# include <ndnboost/iterator/detail/config_undef.hpp>
-
-#endif // FACADE_ITERATOR_CATEGORY_NDNBOOST_DWA20031118_HPP
diff --git a/include/ndnboost/iterator/interoperable.hpp b/include/ndnboost/iterator/interoperable.hpp
deleted file mode 100644
index 25b2104..0000000
--- a/include/ndnboost/iterator/interoperable.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// 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 NDNBOOST_INTEROPERABLE_23022003THW_HPP
-# define NDNBOOST_INTEROPERABLE_23022003THW_HPP
-
-# include <ndnboost/mpl/bool.hpp>
-# include <ndnboost/mpl/or.hpp>
-
-# include <ndnboost/type_traits/is_convertible.hpp>
-
-# include <ndnboost/iterator/detail/config_def.hpp> // must appear last
-
-namespace ndnboost
-{
-
-  //
-  // Meta function that determines whether two
-  // iterator types are considered interoperable.
-  //
-  // Two iterator types A,B are considered interoperable if either
-  // A is convertible to B or vice versa.
-  // This interoperability definition is in sync with the
-  // standards requirements on constant/mutable container
-  // iterators (23.1 [lib.container.requirements]).
-  //
-  // For compilers that don't support is_convertible 
-  // is_interoperable gives false positives. See comments
-  // on operator implementation for consequences.
-  //
-  template <typename A, typename B>
-  struct is_interoperable
-# ifdef NDNBOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-    : mpl::true_
-# else
-    : mpl::or_<
-          is_convertible< A, B >
-        , is_convertible< B, A > >
-# endif
-  { 
-  };
-
-} // namespace ndnboost
-
-# include <ndnboost/iterator/detail/config_undef.hpp>
-
-#endif // NDNBOOST_INTEROPERABLE_23022003THW_HPP
diff --git a/include/ndnboost/iterator/iterator_adaptor.hpp b/include/ndnboost/iterator/iterator_adaptor.hpp
deleted file mode 100644
index 1a9bd54..0000000
--- a/include/ndnboost/iterator/iterator_adaptor.hpp
+++ /dev/null
@@ -1,365 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// 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 NDNBOOST_ITERATOR_ADAPTOR_23022003THW_HPP
-#define NDNBOOST_ITERATOR_ADAPTOR_23022003THW_HPP
-
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/iterator.hpp>
-#include <ndnboost/detail/iterator.hpp>
-
-#include <ndnboost/iterator/iterator_categories.hpp>
-#include <ndnboost/iterator/iterator_facade.hpp>
-#include <ndnboost/iterator/detail/enable_if.hpp>
-
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/not.hpp>
-#include <ndnboost/mpl/or.hpp>
-
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-#ifdef NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
-# include <ndnboost/type_traits/remove_reference.hpp>
-#endif
-
-#include <ndnboost/type_traits/add_reference.hpp>
-#include <ndnboost/iterator/detail/config_def.hpp>
-
-#include <ndnboost/iterator/iterator_traits.hpp>
-
-namespace ndnboost
-{
-  // Used as a default template argument internally, merely to
-  // indicate "use the default", this can also be passed by users
-  // explicitly in order to specify that the default should be used.
-  struct use_default;
-  
-# 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.
-  template<class To>
-  struct is_convertible<use_default,To>
-    : mpl::false_ {};
-# endif 
-  
-  namespace detail
-  {
-
-    // 
-    // Result type used in enable_if_convertible meta function.
-    // This can be an incomplete type, as only pointers to 
-    // enable_if_convertible< ... >::type are used.
-    // We could have used void for this, but conversion to
-    // void* is just to easy.
-    //
-    struct enable_type;
-  }
-
-
-  //
-  // enable_if for use in adapted iterators constructors.
-  //
-  // In order to provide interoperability between adapted constant and
-  // mutable iterators, adapted iterators will usually provide templated
-  // conversion constructors of the following form
-  //
-  // template <class BaseIterator>
-  // class adapted_iterator :
-  //   public iterator_adaptor< adapted_iterator<Iterator>, Iterator >
-  // {
-  // public:
-  //   
-  //   ...
-  //
-  //   template <class OtherIterator>
-  //   adapted_iterator(
-  //       OtherIterator const& it
-  //     , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0);
-  //
-  //   ...
-  // };
-  //
-  // enable_if_convertible is used to remove those overloads from the overload
-  // set that cannot be instantiated. For all practical purposes only overloads
-  // for constant/mutable interaction will remain. This has the advantage that
-  // meta functions like ndnboost::is_convertible do not return false positives,
-  // as they can only look at the signature of the conversion constructor
-  // and not at the actual instantiation.
-  //
-  // enable_if_interoperable can be safely used in user code. It falls back to
-  // always enabled for compilers that don't support enable_if or is_convertible. 
-  // There is no need for compiler specific workarounds in user code. 
-  //
-  // The operators implementation relies on ndnboost::is_convertible not returning
-  // false positives for user/library defined iterator types. See comments
-  // on operator implementation for consequences.
-  //
-#  if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-  
-  template<typename From, typename To>
-  struct enable_if_convertible
-  {
-     typedef typename mpl::if_<
-         mpl::or_<
-             is_same<From,To>
-           , is_convertible<From, To>
-         >
-      , ndnboost::detail::enable_type
-      , int&
-     >::type type;
-  };
-  
-#  elif defined(NDNBOOST_NO_IS_CONVERTIBLE) || defined(NDNBOOST_NO_SFINAE)
-  
-  template <class From, class To>
-  struct enable_if_convertible
-  {
-      typedef ndnboost::detail::enable_type type;
-  };
-  
-#  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.
-  template<typename From, typename To>
-  struct enable_if_convertible
-    : iterators::enable_if<
-        mpl::or_<
-            is_same<From,To>
-          , is_convertible<From, To>
-        >
-      , ndnboost::detail::enable_type
-    >
-  {};
-  
-#  else 
-  
-  template<typename From, typename To>
-  struct enable_if_convertible
-    : iterators::enable_if<
-          is_convertible<From, To>
-        , ndnboost::detail::enable_type
-      >
-  {};
-      
-# endif
-  
-  //
-  // Default template argument handling for iterator_adaptor
-  //
-  namespace detail
-  {
-    // If T is use_default, return the result of invoking
-    // DefaultNullaryFn, otherwise return T.
-    template <class T, class DefaultNullaryFn>
-    struct ia_dflt_help
-      : mpl::eval_if<
-            is_same<T, use_default>
-          , DefaultNullaryFn
-          , mpl::identity<T>
-        >
-    {
-    };
-
-    // A metafunction which computes an iterator_adaptor's base class,
-    // a specialization of iterator_facade.
-    template <
-        class Derived
-      , class Base
-      , class Value
-      , class Traversal
-      , class Reference
-      , class Difference
-    >
-    struct iterator_adaptor_base
-    {
-        typedef iterator_facade<
-            Derived
-            
-# ifdef NDNBOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
-          , typename ndnboost::detail::ia_dflt_help<
-                Value
-              , mpl::eval_if<
-                    is_same<Reference,use_default>
-                  , iterator_value<Base>
-                  , remove_reference<Reference>
-                >
-            >::type
-# else
-          , typename ndnboost::detail::ia_dflt_help<
-                Value, iterator_value<Base>
-            >::type
-# endif
-            
-          , typename ndnboost::detail::ia_dflt_help<
-                Traversal
-              , iterator_traversal<Base>
-            >::type
-
-          , typename ndnboost::detail::ia_dflt_help<
-                Reference
-              , mpl::eval_if<
-                    is_same<Value,use_default>
-                  , iterator_reference<Base>
-                  , add_reference<Value>
-                >
-            >::type
-
-          , typename ndnboost::detail::ia_dflt_help<
-                Difference, iterator_difference<Base>
-            >::type
-        >
-        type;
-    };
-  
-    // workaround for aC++ CR JAGaf33512
-    template <class Tr1, class Tr2>
-    inline void iterator_adaptor_assert_traversal ()
-    {
-      NDNBOOST_STATIC_ASSERT((is_convertible<Tr1, Tr2>::value));
-    }
-  }
-  
-  //
-  // Iterator Adaptor
-  //
-  // The parameter ordering changed slightly with respect to former
-  // versions of iterator_adaptor The idea is that when the user needs
-  // to fiddle with the reference type it is highly likely that the
-  // iterator category has to be adjusted as well.  Any of the
-  // following four template arguments may be ommitted or explicitly
-  // replaced by use_default.
-  //
-  //   Value - if supplied, the value_type of the resulting iterator, unless
-  //      const. If const, a conforming compiler strips constness for the
-  //      value_type. If not supplied, iterator_traits<Base>::value_type is used
-  //
-  //   Category - the traversal category of the resulting iterator. If not
-  //      supplied, iterator_traversal<Base>::type is used.
-  //
-  //   Reference - the reference type of the resulting iterator, and in
-  //      particular, the result type of operator*(). If not supplied but
-  //      Value is supplied, Value& is used. Otherwise
-  //      iterator_traits<Base>::reference is used.
-  //
-  //   Difference - the difference_type of the resulting iterator. If not
-  //      supplied, iterator_traits<Base>::difference_type is used.
-  //
-  template <
-      class Derived
-    , class Base
-    , class Value        = use_default
-    , class Traversal    = use_default
-    , class Reference    = use_default
-    , class Difference   = use_default
-  >
-  class iterator_adaptor
-    : public ndnboost::detail::iterator_adaptor_base<
-        Derived, Base, Value, Traversal, Reference, Difference
-      >::type
-  {
-      friend class iterator_core_access;
-
-   protected:
-      typedef typename ndnboost::detail::iterator_adaptor_base<
-          Derived, Base, Value, Traversal, Reference, Difference
-      >::type super_t;
-   public:
-      iterator_adaptor() {}
-
-      explicit iterator_adaptor(Base const &iter)
-          : m_iterator(iter)
-      {
-      }
-
-      typedef Base base_type;
-
-      Base const& base() const
-        { return m_iterator; }
-
-   protected:
-      // for convenience in derived classes
-      typedef iterator_adaptor<Derived,Base,Value,Traversal,Reference,Difference> iterator_adaptor_;
-      
-      //
-      // lvalue access to the Base object for Derived
-      //
-      Base const& base_reference() const
-        { return m_iterator; }
-
-      Base& base_reference()
-        { return m_iterator; }
-
-   private:
-      //
-      // Core iterator interface for iterator_facade.  This is private
-      // to prevent temptation for Derived classes to use it, which
-      // will often result in an error.  Derived classes should use
-      // base_reference(), above, to get direct access to m_iterator.
-      // 
-      typename super_t::reference dereference() const
-        { return *m_iterator; }
-
-      template <
-      class OtherDerived, class OtherIterator, class V, class C, class R, class D
-      >   
-      bool equal(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& x) const
-      {
-        // Maybe readd with same_distance
-        //           NDNBOOST_STATIC_ASSERT(
-        //               (detail::same_category_and_difference<Derived,OtherDerived>::value)
-        //               );
-          return m_iterator == x.base();
-      }
-
-      typedef typename iterator_category_to_traversal<
-          typename super_t::iterator_category
-      >::type my_traversal;
-
-# define NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(cat) \
-      ndnboost::detail::iterator_adaptor_assert_traversal<my_traversal, cat>();
-
-      void advance(typename super_t::difference_type n)
-      {
-          NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
-          m_iterator += n;
-      }
-  
-      void increment() { ++m_iterator; }
-
-      void decrement() 
-      {
-          NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(bidirectional_traversal_tag)
-           --m_iterator;
-      }
-
-      template <
-          class OtherDerived, class OtherIterator, class V, class C, class R, class D
-      >   
-      typename super_t::difference_type distance_to(
-          iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& y) const
-      {
-          NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
-          // Maybe readd with same_distance
-          //           NDNBOOST_STATIC_ASSERT(
-          //               (detail::same_category_and_difference<Derived,OtherDerived>::value)
-          //               );
-          return y.base() - m_iterator;
-      }
-
-# undef NDNBOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL
-      
-   private: // data members
-      Base m_iterator;
-  };
-
-} // namespace ndnboost
-
-#include <ndnboost/iterator/detail/config_undef.hpp>
-
-#endif // NDNBOOST_ITERATOR_ADAPTOR_23022003THW_HPP
diff --git a/include/ndnboost/iterator/iterator_categories.hpp b/include/ndnboost/iterator/iterator_categories.hpp
deleted file mode 100644
index 1602e54..0000000
--- a/include/ndnboost/iterator/iterator_categories.hpp
+++ /dev/null
@@ -1,188 +0,0 @@
-// (C) Copyright Jeremy Siek 2002.
-// 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 NDNBOOST_ITERATOR_CATEGORIES_HPP
-# define NDNBOOST_ITERATOR_CATEGORIES_HPP
-
-# include <ndnboost/config.hpp>
-# include <ndnboost/detail/iterator.hpp>
-# include <ndnboost/iterator/detail/config_def.hpp>
-
-# include <ndnboost/detail/workaround.hpp>
-
-# include <ndnboost/mpl/eval_if.hpp>
-# include <ndnboost/mpl/identity.hpp>
-# include <ndnboost/mpl/placeholders.hpp>
-# include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-# include <ndnboost/type_traits/is_convertible.hpp>
-
-# include <ndnboost/static_assert.hpp>
-
-namespace ndnboost {
-
-//
-// Traversal Categories
-//
-
-struct no_traversal_tag {};
-
-struct incrementable_traversal_tag 
-  : no_traversal_tag
-{
-//     incrementable_traversal_tag() {}
-//     incrementable_traversal_tag(std::output_iterator_tag const&) {};
-};
-  
-struct single_pass_traversal_tag
-  : incrementable_traversal_tag
-{
-//     single_pass_traversal_tag() {}
-//     single_pass_traversal_tag(std::input_iterator_tag const&) {};
-};
-  
-struct forward_traversal_tag
-  : single_pass_traversal_tag
-{
-//     forward_traversal_tag() {}
-//     forward_traversal_tag(std::forward_iterator_tag const&) {};
-};
-  
-struct bidirectional_traversal_tag
-  : forward_traversal_tag
-{
-//     bidirectional_traversal_tag() {};
-//     bidirectional_traversal_tag(std::bidirectional_iterator_tag const&) {};
-};
-  
-struct random_access_traversal_tag
-  : bidirectional_traversal_tag
-{
-//     random_access_traversal_tag() {};
-//     random_access_traversal_tag(std::random_access_iterator_tag const&) {};
-};
-
-namespace detail
-{  
-  //
-  // Convert a "strictly old-style" iterator category to a traversal
-  // tag.  This is broken out into a separate metafunction to reduce
-  // the cost of instantiating iterator_category_to_traversal, below,
-  // for new-style types.
-  //
-  template <class Cat>
-  struct old_category_to_traversal
-    : mpl::eval_if<
-          is_convertible<Cat,std::random_access_iterator_tag>
-        , mpl::identity<random_access_traversal_tag>
-        , mpl::eval_if<
-              is_convertible<Cat,std::bidirectional_iterator_tag>
-            , mpl::identity<bidirectional_traversal_tag>
-            , mpl::eval_if<
-                  is_convertible<Cat,std::forward_iterator_tag>
-                , mpl::identity<forward_traversal_tag>
-                , mpl::eval_if<
-                      is_convertible<Cat,std::input_iterator_tag>
-                    , mpl::identity<single_pass_traversal_tag>
-                    , mpl::eval_if<
-                          is_convertible<Cat,std::output_iterator_tag>
-                        , mpl::identity<incrementable_traversal_tag>
-                        , void
-                      >
-                  >
-              >
-          >
-      >
-  {};
-
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-  template <>
-  struct old_category_to_traversal<int>
-  {
-      typedef int type;
-  };
-# endif
-
-  template <class Traversal>
-  struct pure_traversal_tag
-    : mpl::eval_if<
-          is_convertible<Traversal,random_access_traversal_tag>
-        , mpl::identity<random_access_traversal_tag>
-        , mpl::eval_if<
-              is_convertible<Traversal,bidirectional_traversal_tag>
-            , mpl::identity<bidirectional_traversal_tag>
-            , mpl::eval_if<
-                  is_convertible<Traversal,forward_traversal_tag>
-                , mpl::identity<forward_traversal_tag>
-                , mpl::eval_if<
-                      is_convertible<Traversal,single_pass_traversal_tag>
-                    , mpl::identity<single_pass_traversal_tag>
-                    , mpl::eval_if<
-                          is_convertible<Traversal,incrementable_traversal_tag>
-                        , mpl::identity<incrementable_traversal_tag>
-                        , void
-                      >
-                  >
-              >
-          >
-      >
-  {
-  };
-  
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-  template <>
-  struct pure_traversal_tag<int>
-  {
-      typedef int type;
-  };
-# endif
-
-} // namespace detail
-
-
-//
-// Convert an iterator category into a traversal tag
-//
-template <class Cat>
-struct iterator_category_to_traversal
-  : mpl::eval_if< // if already convertible to a traversal tag, we're done.
-        is_convertible<Cat,incrementable_traversal_tag>
-      , mpl::identity<Cat>
-      , ndnboost::detail::old_category_to_traversal<Cat>
-    >
-{};
-
-// Trait to get an iterator's traversal category
-template <class Iterator = mpl::_1>
-struct iterator_traversal
-  : iterator_category_to_traversal<
-        typename ndnboost::detail::iterator_traits<Iterator>::iterator_category
-    >
-{};
-
-# 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
-// class.
-template <>
-struct iterator_traversal<mpl::_1>
-{
-    template <class T>
-    struct apply : iterator_traversal<T>
-    {};
-};
-template <>
-struct iterator_traversal<mpl::_>
-  : iterator_traversal<mpl::_1>
-{};
-# endif
-
-} // namespace ndnboost
-
-#include <ndnboost/iterator/detail/config_undef.hpp>
-
-#endif // NDNBOOST_ITERATOR_CATEGORIES_HPP
diff --git a/include/ndnboost/iterator/iterator_concepts.hpp b/include/ndnboost/iterator/iterator_concepts.hpp
deleted file mode 100644
index 58d4589..0000000
--- a/include/ndnboost/iterator/iterator_concepts.hpp
+++ /dev/null
@@ -1,284 +0,0 @@
-// (C) Copyright Jeremy Siek 2002.
-// 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 NDNBOOST_ITERATOR_CONCEPTS_HPP
-#define NDNBOOST_ITERATOR_CONCEPTS_HPP
-
-#include <ndnboost/concept_check.hpp>
-#include <ndnboost/iterator/iterator_categories.hpp>
-
-// Use ndnboost::detail::iterator_traits to work around some MSVC/Dinkumware problems.
-#include <ndnboost/detail/iterator.hpp>
-
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/or.hpp>
-
-#include <ndnboost/static_assert.hpp>
-
-// Use ndnboost/limits to work around missing limits headers on some compilers
-#include <ndnboost/limits.hpp>
-#include <ndnboost/config.hpp>
-
-#include <algorithm>
-
-#include <ndnboost/concept/detail/concept_def.hpp>
-
-namespace ndnboost_concepts
-{
-  // Used a different namespace here (instead of "boost") so that the
-  // concept descriptions do not take for granted the names in
-  // namespace ndnboost.
-
-  //===========================================================================
-  // Iterator Access Concepts
-
-  NDNBOOST_concept(ReadableIterator,(Iterator))
-    : ndnboost::Assignable<Iterator>
-    , ndnboost::CopyConstructible<Iterator>
-
-  {
-      typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::value_type value_type;
-      typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference reference;
-
-      NDNBOOST_CONCEPT_USAGE(ReadableIterator)
-      {
-
-          value_type v = *i;
-          ndnboost::ignore_unused_variable_warning(v);
-      }
-  private:
-      Iterator i;
-  };
-  
-  template <
-      typename Iterator
-    , typename ValueType = NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::value_type
-  >
-  struct WritableIterator
-    : ndnboost::CopyConstructible<Iterator>
-  {
-      NDNBOOST_CONCEPT_USAGE(WritableIterator)
-      {
-          *i = v;
-      }
-  private:
-      ValueType v;
-      Iterator i;
-  };
-
-  template <
-      typename Iterator
-    , typename ValueType = NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::value_type
-  >
-  struct WritableIteratorConcept : WritableIterator<Iterator,ValueType> {};
-  
-  NDNBOOST_concept(SwappableIterator,(Iterator))
-  {
-      NDNBOOST_CONCEPT_USAGE(SwappableIterator)
-      {
-          std::iter_swap(i1, i2);
-      }
-  private:
-      Iterator i1;
-      Iterator i2;
-  };
-
-  NDNBOOST_concept(LvalueIterator,(Iterator))
-  {
-      typedef typename ndnboost::detail::iterator_traits<Iterator>::value_type value_type;
-      
-      NDNBOOST_CONCEPT_USAGE(LvalueIterator)
-      {
-        value_type& r = const_cast<value_type&>(*i);
-        ndnboost::ignore_unused_variable_warning(r);
-      }
-  private:
-      Iterator i;
-  };
-
-  
-  //===========================================================================
-  // Iterator Traversal Concepts
-
-  NDNBOOST_concept(IncrementableIterator,(Iterator))
-    : ndnboost::Assignable<Iterator>
-    , ndnboost::CopyConstructible<Iterator>
-  {
-      typedef typename ndnboost::iterator_traversal<Iterator>::type traversal_category;
-
-      NDNBOOST_CONCEPT_ASSERT((
-        ndnboost::Convertible<
-            traversal_category
-          , ndnboost::incrementable_traversal_tag
-        >));
-
-      NDNBOOST_CONCEPT_USAGE(IncrementableIterator)
-      {
-          ++i;
-          (void)i++;
-      }
-  private:
-      Iterator i;
-  };
-
-  NDNBOOST_concept(SinglePassIterator,(Iterator))
-    : IncrementableIterator<Iterator>
-    , ndnboost::EqualityComparable<Iterator>
-
-  {
-      NDNBOOST_CONCEPT_ASSERT((
-          ndnboost::Convertible<
-             NDNBOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category
-           , ndnboost::single_pass_traversal_tag
-          > ));
-  };
-
-  NDNBOOST_concept(ForwardTraversal,(Iterator))
-    : SinglePassIterator<Iterator>
-    , ndnboost::DefaultConstructible<Iterator>
-  {
-      typedef typename ndnboost::detail::iterator_traits<Iterator>::difference_type difference_type;
-      
-      NDNBOOST_MPL_ASSERT((ndnboost::is_integral<difference_type>));
-      NDNBOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);
-
-      NDNBOOST_CONCEPT_ASSERT((
-          ndnboost::Convertible<
-             NDNBOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category
-           , ndnboost::forward_traversal_tag
-          > ));
-  };
-  
-  NDNBOOST_concept(BidirectionalTraversal,(Iterator))
-    : ForwardTraversal<Iterator>
-  {
-      NDNBOOST_CONCEPT_ASSERT((
-          ndnboost::Convertible<
-             NDNBOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category
-           , ndnboost::bidirectional_traversal_tag
-          > ));
-
-      NDNBOOST_CONCEPT_USAGE(BidirectionalTraversal)
-      {
-          --i;
-          (void)i--;
-      }
-   private:
-      Iterator i;
-  };
-
-  NDNBOOST_concept(RandomAccessTraversal,(Iterator))
-    : BidirectionalTraversal<Iterator>
-  {
-      NDNBOOST_CONCEPT_ASSERT((
-          ndnboost::Convertible<
-             NDNBOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category
-           , ndnboost::random_access_traversal_tag
-          > ));
-
-      NDNBOOST_CONCEPT_USAGE(RandomAccessTraversal)
-      {
-          i += n;
-          i = i + n;
-          i = n + i;
-          i -= n;
-          i = i - n;
-          n = i - j;
-      }
-      
-   private:
-      typename BidirectionalTraversal<Iterator>::difference_type n;
-      Iterator i, j;
-  };
-
-  //===========================================================================
-  // Iterator Interoperability 
-
-  namespace detail
-  {
-    template <typename Iterator1, typename Iterator2>
-    void interop_single_pass_constraints(Iterator1 const& i1, Iterator2 const& i2)
-    {
-        bool b;
-        b = i1 == i2;
-        b = i1 != i2;
-
-        b = i2 == i1;
-        b = i2 != i1;
-        ndnboost::ignore_unused_variable_warning(b);
-    }
-
-    template <typename Iterator1, typename Iterator2>
-    void interop_rand_access_constraints(
-        Iterator1 const& i1, Iterator2 const& i2,
-        ndnboost::random_access_traversal_tag, ndnboost::random_access_traversal_tag)
-    {
-        bool b;
-        typename ndnboost::detail::iterator_traits<Iterator2>::difference_type n;
-        b = i1 <  i2;
-        b = i1 <= i2;
-        b = i1 >  i2;
-        b = i1 >= i2;
-        n = i1 -  i2;
-
-        b = i2 <  i1;
-        b = i2 <= i1;
-        b = i2 >  i1;
-        b = i2 >= i1;
-        n = i2 -  i1;
-        ndnboost::ignore_unused_variable_warning(b);
-        ndnboost::ignore_unused_variable_warning(n);
-    }
-
-    template <typename Iterator1, typename Iterator2>
-    void interop_rand_access_constraints(
-        Iterator1 const&, Iterator2 const&,
-        ndnboost::single_pass_traversal_tag, ndnboost::single_pass_traversal_tag)
-    { }
-
-  } // namespace detail
-
-  NDNBOOST_concept(InteroperableIterator,(Iterator)(ConstIterator))
-  {
-   private:
-      typedef typename ndnboost::detail::pure_traversal_tag<
-          typename ndnboost::iterator_traversal<
-              Iterator
-          >::type
-      >::type traversal_category;
-
-      typedef typename ndnboost::detail::pure_traversal_tag<
-          typename ndnboost::iterator_traversal<
-              ConstIterator
-          >::type
-      >::type const_traversal_category;
-      
-  public:
-      NDNBOOST_CONCEPT_ASSERT((SinglePassIterator<Iterator>));
-      NDNBOOST_CONCEPT_ASSERT((SinglePassIterator<ConstIterator>));
-
-      NDNBOOST_CONCEPT_USAGE(InteroperableIterator)
-      {
-          detail::interop_single_pass_constraints(i, ci);
-          detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category());
-
-          ci = i;
-      }
-      
-   private:
-      Iterator      i;
-      ConstIterator ci;
-  };
-
-} // namespace ndnboost_concepts
-
-#include <ndnboost/concept/detail/concept_undef.hpp>
-
-#endif // NDNBOOST_ITERATOR_CONCEPTS_HPP
diff --git a/include/ndnboost/iterator/iterator_facade.hpp b/include/ndnboost/iterator/iterator_facade.hpp
deleted file mode 100644
index eca6466..0000000
--- a/include/ndnboost/iterator/iterator_facade.hpp
+++ /dev/null
@@ -1,874 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// 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 NDNBOOST_ITERATOR_FACADE_23022003THW_HPP
-#define NDNBOOST_ITERATOR_FACADE_23022003THW_HPP
-
-#include <ndnboost/iterator.hpp>
-#include <ndnboost/iterator/interoperable.hpp>
-#include <ndnboost/iterator/iterator_traits.hpp>
-
-#include <ndnboost/iterator/detail/facade_iterator_category.hpp>
-#include <ndnboost/iterator/detail/enable_if.hpp>
-
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/utility/addressof.hpp>
-
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/type_traits/add_const.hpp>
-#include <ndnboost/type_traits/add_pointer.hpp>
-#include <ndnboost/type_traits/remove_const.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_pod.hpp>
-
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/or.hpp>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/not.hpp>
-#include <ndnboost/mpl/always.hpp>
-#include <ndnboost/mpl/apply.hpp>
-#include <ndnboost/mpl/identity.hpp>
-
-#include <ndnboost/iterator/detail/config_def.hpp> // this goes last
-
-namespace ndnboost
-{
-  // This forward declaration is required for the friend declaration
-  // in iterator_core_access
-  template <class I, class V, class TC, class R, class D> class iterator_facade;
-
-  namespace detail
-  {
-    // A binary metafunction class that always returns bool.  VC6
-    // ICEs on mpl::always<bool>, probably because of the default
-    // parameters.
-    struct always_bool2
-    {
-        template <class T, class U>
-        struct apply
-        {
-            typedef bool type;
-        };
-    };
-
-    //
-    // enable if for use in operator implementation.
-    //
-    template <
-        class Facade1
-      , class Facade2
-      , class Return
-    >
-    struct enable_if_interoperable
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-    {
-        typedef typename mpl::if_<
-            mpl::or_<
-                is_convertible<Facade1, Facade2>
-              , is_convertible<Facade2, Facade1>
-            >
-          , Return
-          , int[3]
-        >::type type;
-    };        
-#else
-      : ::ndnboost::iterators::enable_if<
-           mpl::or_<
-               is_convertible<Facade1, Facade2>
-             , is_convertible<Facade2, Facade1>
-           >
-         , Return
-        >
-    {};
-#endif 
-
-    //
-    // Generates associated types for an iterator_facade with the
-    // given parameters.
-    //
-    template <
-        class ValueParam
-      , class CategoryOrTraversal
-      , class Reference 
-      , class Difference
-    >
-    struct iterator_facade_types
-    {
-        typedef typename facade_iterator_category<
-            CategoryOrTraversal, ValueParam, Reference
-        >::type iterator_category;
-        
-        typedef typename remove_const<ValueParam>::type value_type;
-        
-        // Not the real associated pointer type
-        typedef typename mpl::eval_if<
-            ndnboost::detail::iterator_writability_disabled<ValueParam,Reference>
-          , add_pointer<const value_type>
-          , add_pointer<value_type>
-        >::type pointer;
-      
-# 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 NDNBOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE 1
-
-        typedef
-           iterator<iterator_category, value_type, Difference, pointer, Reference>
-        base;
-# endif
-    };
-
-    // iterators whose dereference operators reference the same value
-    // for all iterators into the same sequence (like many input
-    // iterators) need help with their postfix ++: the referenced
-    // value must be read and stored away before the increment occurs
-    // so that *a++ yields the originally referenced element and not
-    // the next one.
-    template <class Iterator>
-    class postfix_increment_proxy
-    {
-        typedef typename iterator_value<Iterator>::type value_type;
-     public:
-        explicit postfix_increment_proxy(Iterator const& x)
-          : stored_value(*x)
-        {}
-
-        // Returning a mutable reference allows nonsense like
-        // (*r++).mutate(), but it imposes fewer assumptions about the
-        // behavior of the value_type.  In particular, recall that
-        // (*r).mutate() is legal if operator* returns by value.
-        value_type&
-        operator*() const
-        {
-            return this->stored_value;
-        }
-     private:
-        mutable value_type stored_value;
-    };
-    
-    //
-    // In general, we can't determine that such an iterator isn't
-    // writable -- we also need to store a copy of the old iterator so
-    // that it can be written into.
-    template <class Iterator>
-    class writable_postfix_increment_proxy
-    {
-        typedef typename iterator_value<Iterator>::type value_type;
-     public:
-        explicit writable_postfix_increment_proxy(Iterator const& x)
-          : stored_value(*x)
-          , stored_iterator(x)
-        {}
-
-        // Dereferencing must return a proxy so that both *r++ = o and
-        // value_type(*r++) can work.  In this case, *r is the same as
-        // *r++, and the conversion operator below is used to ensure
-        // readability.
-        writable_postfix_increment_proxy const&
-        operator*() const
-        {
-            return *this;
-        }
-
-        // Provides readability of *r++
-        operator value_type&() const
-        {
-            return stored_value;
-        }
-
-        // Provides writability of *r++
-        template <class T>
-        T const& operator=(T const& x) const
-        {
-            *this->stored_iterator = x;
-            return x;
-        }
-
-        // This overload just in case only non-const objects are writable
-        template <class T>
-        T& operator=(T& x) const
-        {
-            *this->stored_iterator = x;
-            return x;
-        }
-
-        // Provides X(r++)
-        operator Iterator const&() const
-        {
-            return stored_iterator;
-        }
-        
-     private:
-        mutable value_type stored_value;
-        Iterator stored_iterator;
-    };
-
-# ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-    template <class Reference, class Value>
-    struct is_non_proxy_reference_impl
-    {
-        static Reference r;
-        
-        template <class R>
-        static typename mpl::if_<
-            is_convertible<
-                R const volatile*
-              , Value const volatile*
-            >
-          , char[1]
-          , char[2]
-        >::type& helper(R const&);
-        
-        NDNBOOST_STATIC_CONSTANT(bool, value = sizeof(helper(r)) == 1);
-    };
-        
-    template <class Reference, class Value>
-    struct is_non_proxy_reference
-      : mpl::bool_<
-            is_non_proxy_reference_impl<Reference, Value>::value
-        >
-    {};
-# else 
-    template <class Reference, class Value>
-    struct is_non_proxy_reference
-      : is_convertible<
-            typename remove_reference<Reference>::type
-            const volatile*
-          , Value const volatile*
-        >
-    {};
-# endif 
-        
-    // A metafunction to choose the result type of postfix ++
-    //
-    // Because the C++98 input iterator requirements say that *r++ has
-    // type T (value_type), implementations of some standard
-    // algorithms like lexicographical_compare may use constructions
-    // like:
-    //
-    //          *r++ < *s++
-    //
-    // If *r++ returns a proxy (as required if r is writable but not
-    // multipass), this sort of expression will fail unless the proxy
-    // supports the operator<.  Since there are any number of such
-    // operations, we're not going to try to support them.  Therefore,
-    // even if r++ returns a proxy, *r++ will only return a proxy if
-    // *r also returns a proxy.
-    template <class Iterator, class Value, class Reference, class CategoryOrTraversal>
-    struct postfix_increment_result
-      : mpl::eval_if<
-            mpl::and_<
-                // A proxy is only needed for readable iterators
-                is_convertible<Reference,Value const&>
-                
-                // No multipass iterator can have values that disappear
-                // before positions can be re-visited
-              , mpl::not_<
-                    is_convertible<
-                        typename iterator_category_to_traversal<CategoryOrTraversal>::type
-                      , forward_traversal_tag
-                    >
-                >
-            >
-          , mpl::if_<
-                is_non_proxy_reference<Reference,Value>
-              , postfix_increment_proxy<Iterator>
-              , writable_postfix_increment_proxy<Iterator>
-            >
-          , mpl::identity<Iterator>
-        >
-    {};
-
-    // operator->() needs special support for input iterators to strictly meet the
-    // standard's requirements. If *i is not a reference type, we must still
-    // produce an lvalue to which a pointer can be formed.  We do that by
-    // returning a proxy object containing an instance of the reference object.
-    template <class Reference, class Pointer>
-    struct operator_arrow_dispatch // proxy references
-    {
-        struct proxy
-        {
-            explicit proxy(Reference const & x) : m_ref(x) {}
-            Reference* operator->() { return ndnboost::addressof(m_ref); }
-            // This function is needed for MWCW and BCC, which won't call
-            // operator-> again automatically per 13.3.1.2 para 8
-            operator Reference*() { return ndnboost::addressof(m_ref); }
-            Reference m_ref;
-        };
-        typedef proxy result_type;
-        static result_type apply(Reference const & x)
-        {
-            return result_type(x);
-        }
-    };
-
-    template <class T, class Pointer>
-    struct operator_arrow_dispatch<T&, Pointer> // "real" references
-    {
-        typedef Pointer result_type;
-        static result_type apply(T& x)
-        {
-            return ndnboost::addressof(x);
-        }
-    };
-
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    // Deal with ETI
-    template<>
-    struct operator_arrow_dispatch<int, int>
-    {
-        typedef int result_type;
-    };
-# endif
-
-    // A proxy return type for operator[], needed to deal with
-    // iterators that may invalidate referents upon destruction.
-    // Consider the temporary iterator in *(a + n)
-    template <class Iterator>
-    class operator_brackets_proxy
-    {
-        // Iterator is actually an iterator_facade, so we do not have to
-        // go through iterator_traits to access the traits.
-        typedef typename Iterator::reference  reference;
-        typedef typename Iterator::value_type value_type;
-
-     public:
-        operator_brackets_proxy(Iterator const& iter)
-          : m_iter(iter)
-        {}
-
-        operator reference() const
-        {
-            return *m_iter;
-        }
-
-        operator_brackets_proxy& operator=(value_type const& val)
-        {
-            *m_iter = val;
-            return *this;
-        }
-
-     private:
-        Iterator m_iter;
-    };
-
-    // A metafunction that determines whether operator[] must return a
-    // proxy, or whether it can simply return a copy of the value_type.
-    template <class ValueType, class Reference>
-    struct use_operator_brackets_proxy
-      : mpl::not_<
-            mpl::and_<
-                // Really we want an is_copy_constructible trait here,
-                // but is_POD will have to suffice in the meantime.
-                ndnboost::is_POD<ValueType>
-              , iterator_writability_disabled<ValueType,Reference>
-            >
-        >
-    {};
-        
-    template <class Iterator, class Value, class Reference>
-    struct operator_brackets_result
-    {
-        typedef typename mpl::if_<
-            use_operator_brackets_proxy<Value,Reference>
-          , operator_brackets_proxy<Iterator>
-          , Value
-        >::type type;
-    };
-
-    template <class Iterator>
-    operator_brackets_proxy<Iterator> make_operator_brackets_result(Iterator const& iter, mpl::true_)
-    {
-        return operator_brackets_proxy<Iterator>(iter);
-    }
-
-    template <class Iterator>
-    typename Iterator::value_type make_operator_brackets_result(Iterator const& iter, mpl::false_)
-    {
-      return *iter;
-    }
-
-    struct choose_difference_type
-    {
-        template <class I1, class I2>
-        struct apply
-          :
-# ifdef NDNBOOST_NO_ONE_WAY_ITERATOR_INTEROP
-          iterator_difference<I1>
-# elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-          mpl::if_<
-              is_convertible<I2,I1>
-            , typename I1::difference_type
-            , typename I2::difference_type
-          >
-# else 
-          mpl::eval_if<
-              is_convertible<I2,I1>
-            , iterator_difference<I1>
-            , iterator_difference<I2>
-          >
-# endif 
-        {};
-
-    };
-  } // namespace detail
-
-
-  // Macros which describe the declarations of binary operators
-# 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 \
-    >                                                                       \
-    prefix typename mpl::apply2<result_type,Derived1,Derived2>::type \
-    operator op(                                                            \
-        iterator_facade<Derived1, V1, TC1, Reference1, Difference1> const& lhs   \
-      , iterator_facade<Derived2, V2, TC2, Reference2, Difference2> const& rhs)
-# else 
-#  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 \
-    >                                                                   \
-    prefix typename ndnboost::detail::enable_if_interoperable<             \
-        Derived1, Derived2                                              \
-      , typename mpl::apply2<result_type,Derived1,Derived2>::type       \
-    >::type                                                             \
-    operator op(                                                        \
-        iterator_facade<Derived1, V1, TC1, Reference1, Difference1> const& lhs   \
-      , iterator_facade<Derived2, V2, TC2, Reference2, Difference2> const& rhs)
-# endif 
-
-#  define NDNBOOST_ITERATOR_FACADE_PLUS_HEAD(prefix,args)              \
-    template <class Derived, class V, class TC, class R, class D>   \
-    prefix Derived operator+ args
-
-  //
-  // Helper class for granting access to the iterator core interface.
-  //
-  // The simple core interface is used by iterator_facade. The core
-  // interface of a user/library defined iterator type should not be made public
-  // so that it does not clutter the public interface. Instead iterator_core_access
-  // should be made friend so that iterator_facade can access the core
-  // interface through iterator_core_access.
-  //
-  class iterator_core_access
-  {
-# 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:
-# else
-      
-      template <class I, class V, class TC, class R, class D> friend class iterator_facade;
-
-#  define NDNBOOST_ITERATOR_FACADE_RELATION(op)                                \
-      NDNBOOST_ITERATOR_FACADE_INTEROP_HEAD(friend,op, ndnboost::detail::always_bool2);
-
-      NDNBOOST_ITERATOR_FACADE_RELATION(==)
-      NDNBOOST_ITERATOR_FACADE_RELATION(!=)
-
-      NDNBOOST_ITERATOR_FACADE_RELATION(<)
-      NDNBOOST_ITERATOR_FACADE_RELATION(>)
-      NDNBOOST_ITERATOR_FACADE_RELATION(<=)
-      NDNBOOST_ITERATOR_FACADE_RELATION(>=)
-#  undef NDNBOOST_ITERATOR_FACADE_RELATION
-
-      NDNBOOST_ITERATOR_FACADE_INTEROP_HEAD(
-          friend, -, ndnboost::detail::choose_difference_type)
-      ;
-
-      NDNBOOST_ITERATOR_FACADE_PLUS_HEAD(
-          friend inline
-          , (iterator_facade<Derived, V, TC, R, D> const&
-           , typename Derived::difference_type)
-      )
-      ;
-
-      NDNBOOST_ITERATOR_FACADE_PLUS_HEAD(
-          friend inline
-        , (typename Derived::difference_type
-           , iterator_facade<Derived, V, TC, R, D> const&)
-      )
-      ;
-
-# endif
-
-      template <class Facade>
-      static typename Facade::reference dereference(Facade const& f)
-      {
-          return f.dereference();
-      }
-
-      template <class Facade>
-      static void increment(Facade& f)
-      {
-          f.increment();
-      }
-
-      template <class Facade>
-      static void decrement(Facade& f)
-      {
-          f.decrement();
-      }
-
-      template <class Facade1, class Facade2>
-      static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::true_)
-      {
-          return f1.equal(f2);
-      }
-
-      template <class Facade1, class Facade2>
-      static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::false_)
-      {
-          return f2.equal(f1);
-      }
-
-      template <class Facade>
-      static void advance(Facade& f, typename Facade::difference_type n)
-      {
-          f.advance(n);
-      }
-
-      template <class Facade1, class Facade2>
-      static typename Facade1::difference_type distance_from(
-          Facade1 const& f1, Facade2 const& f2, mpl::true_)
-      {
-          return -f1.distance_to(f2);
-      }
-
-      template <class Facade1, class Facade2>
-      static typename Facade2::difference_type distance_from(
-          Facade1 const& f1, Facade2 const& f2, mpl::false_)
-      {
-          return f2.distance_to(f1);
-      }
-
-      //
-      // Curiously Recurring Template interface.
-      //
-      template <class I, class V, class TC, class R, class D>
-      static I& derived(iterator_facade<I,V,TC,R,D>& facade)
-      {
-          return *static_cast<I*>(&facade);
-      }
-
-      template <class I, class V, class TC, class R, class D>
-      static I const& derived(iterator_facade<I,V,TC,R,D> const& facade)
-      {
-          return *static_cast<I const*>(&facade);
-      }
-
-   private:
-      // objects of this class are useless
-      iterator_core_access(); //undefined
-  };
-
-  //
-  // iterator_facade - use as a public base class for defining new
-  // standard-conforming iterators.
-  //
-  template <
-      class Derived             // The derived iterator type being constructed
-    , class Value
-    , class CategoryOrTraversal
-    , class Reference   = Value&
-    , class Difference  = std::ptrdiff_t
-  >
-  class iterator_facade
-# ifdef NDNBOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
-    : public ndnboost::detail::iterator_facade_types<
-         Value, CategoryOrTraversal, Reference, Difference
-      >::base
-#  undef NDNBOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
-# endif
-  {
-   private:
-      //
-      // Curiously Recurring Template interface.
-      //
-      Derived& derived()
-      {
-          return *static_cast<Derived*>(this);
-      }
-
-      Derived const& derived() const
-      {
-          return *static_cast<Derived const*>(this);
-      }
-
-      typedef ndnboost::detail::iterator_facade_types<
-         Value, CategoryOrTraversal, Reference, Difference
-      > associated_types;
-
-      typedef ndnboost::detail::operator_arrow_dispatch<
-          Reference
-        , typename associated_types::pointer
-      > operator_arrow_dispatch_;
-
-   protected:
-      // For use by derived classes
-      typedef iterator_facade<Derived,Value,CategoryOrTraversal,Reference,Difference> iterator_facade_;
-      
-   public:
-
-      typedef typename associated_types::value_type value_type;
-      typedef Reference reference;
-      typedef Difference difference_type;
-
-      typedef typename operator_arrow_dispatch_::result_type pointer;
-
-      typedef typename associated_types::iterator_category iterator_category;
-
-      reference operator*() const
-      {
-          return iterator_core_access::dereference(this->derived());
-      }
-
-      pointer operator->() const
-      {
-          return operator_arrow_dispatch_::apply(*this->derived());
-      }
-        
-      typename ndnboost::detail::operator_brackets_result<Derived,Value,reference>::type
-      operator[](difference_type n) const
-      {
-          typedef ndnboost::detail::use_operator_brackets_proxy<Value,Reference> use_proxy;
-          
-          return ndnboost::detail::make_operator_brackets_result<Derived>(
-              this->derived() + n
-            , use_proxy()
-          );
-      }
-
-      Derived& operator++()
-      {
-          iterator_core_access::increment(this->derived());
-          return this->derived();
-      }
-
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-      typename ndnboost::detail::postfix_increment_result<Derived,Value,Reference,CategoryOrTraversal>::type
-      operator++(int)
-      {
-          typename ndnboost::detail::postfix_increment_result<Derived,Value,Reference,CategoryOrTraversal>::type
-          tmp(this->derived());
-          ++*this;
-          return tmp;
-      }
-# endif
-      
-      Derived& operator--()
-      {
-          iterator_core_access::decrement(this->derived());
-          return this->derived();
-      }
-
-      Derived operator--(int)
-      {
-          Derived tmp(this->derived());
-          --*this;
-          return tmp;
-      }
-
-      Derived& operator+=(difference_type n)
-      {
-          iterator_core_access::advance(this->derived(), n);
-          return this->derived();
-      }
-
-      Derived& operator-=(difference_type n)
-      {
-          iterator_core_access::advance(this->derived(), -n);
-          return this->derived();
-      }
-
-      Derived operator-(difference_type x) const
-      {
-          Derived result(this->derived());
-          return result -= x;
-      }
-
-# 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
-      // (so far) in STLPort debug mode, but it's clearly a codegen
-      // problem so we apply the workaround for all MSVC6.
-      iterator_facade& operator=(iterator_facade const&)
-      {
-          return *this;
-      }
-# endif
-  };
-
-# 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++(
-      iterator_facade<I,V,TC,R,D>& i
-    , int
-  )
-  {
-      typename ndnboost::detail::postfix_increment_result<I,V,R,TC>::type
-          tmp(*static_cast<I*>(&i));
-      
-      ++i;
-      
-      return tmp;
-  }
-# endif 
-
-  
-  //
-  // Comparison operator implementation. The library supplied operators
-  // enables the user to provide fully interoperable constant/mutable
-  // iterator types. I.e. the library provides all operators
-  // for all mutable/constant iterator combinations.
-  //
-  // Note though that this kind of interoperability for constant/mutable
-  // iterators is not required by the standard for container iterators.
-  // All the standard asks for is a conversion mutable -> constant.
-  // Most standard library implementations nowadays provide fully interoperable
-  // iterator implementations, but there are still heavily used implementations
-  // that do not provide them. (Actually it's even worse, they do not provide
-  // them for only a few iterators.)
-  //
-  // ?? 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.
-  // I.e.
-  //
-  // bool operator==(Iterator,      Iterator);
-  // bool operator==(ConstIterator, Iterator);
-  // bool operator==(Iterator,      ConstIterator);
-  // bool operator==(ConstIterator, ConstIterator);
-  //
-  //   ...
-  //
-  // In order to do so it uses c++ idioms that are not yet widely supported
-  // by current compiler releases. The library is designed to degrade gracefully
-  // in the face of compiler deficiencies. In general compiler
-  // deficiencies result in less strict error checking and more obscure
-  // error messages, functionality is not affected.
-  //
-  // For full operation compiler support for "Substitution Failure Is Not An Error"
-  // (aka. enable_if) and ndnboost::is_convertible is required.
-  //
-  // The following problems occur if support is lacking.
-  //
-  // Pseudo code
-  //
-  // ---------------
-  // AdaptorA<Iterator1> a1;
-  // AdaptorA<Iterator2> a2;
-  //
-  // // This will result in a no such overload error in full operation
-  // // If enable_if or is_convertible is not supported
-  // // The instantiation will fail with an error hopefully indicating that
-  // // there is no operator== for Iterator1, Iterator2
-  // // The same will happen if no enable_if is used to remove
-  // // false overloads from the templated conversion constructor
-  // // of AdaptorA.
-  //
-  // a1 == a2;
-  // ----------------
-  //
-  // AdaptorA<Iterator> a;
-  // AdaptorB<Iterator> b;
-  //
-  // // This will result in a no such overload error in full operation
-  // // If enable_if is not supported the static assert used
-  // // in the operator implementation will fail.
-  // // This will accidently work if is_convertible is not supported.
-  //
-  // a == b;
-  // ----------------
-  //
-
-# ifdef NDNBOOST_NO_ONE_WAY_ITERATOR_INTEROP
-#  define NDNBOOST_ITERATOR_CONVERTIBLE(a,b) mpl::true_()
-# else
-#  define NDNBOOST_ITERATOR_CONVERTIBLE(a,b) is_convertible<a,b>()
-# endif
-
-# 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 */                   \
-      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)                                   \
-        , NDNBOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1)                         \
-      );                                                                        \
-  }
-
-# define NDNBOOST_ITERATOR_FACADE_RELATION(op, return_prefix, base_op) \
-  NDNBOOST_ITERATOR_FACADE_INTEROP(                                    \
-      op                                                            \
-    , ndnboost::detail::always_bool2                                   \
-    , return_prefix                                                 \
-    , base_op                                                       \
-  )
-
-  NDNBOOST_ITERATOR_FACADE_RELATION(==, return, equal)
-  NDNBOOST_ITERATOR_FACADE_RELATION(!=, return !, equal)
-
-  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
-  NDNBOOST_ITERATOR_FACADE_INTEROP(
-      -
-    , ndnboost::detail::choose_difference_type
-    , return
-    , distance_from
-  )
-# undef NDNBOOST_ITERATOR_FACADE_INTEROP
-# undef NDNBOOST_ITERATOR_FACADE_INTEROP_HEAD
-
-# define NDNBOOST_ITERATOR_FACADE_PLUS(args)           \
-  NDNBOOST_ITERATOR_FACADE_PLUS_HEAD(inline, args)     \
-  {                                                 \
-      Derived tmp(static_cast<Derived const&>(i));  \
-      return tmp += n;                              \
-  }
-
-NDNBOOST_ITERATOR_FACADE_PLUS((
-  iterator_facade<Derived, V, TC, R, D> const& i
-  , typename Derived::difference_type n
-))
-
-NDNBOOST_ITERATOR_FACADE_PLUS((
-    typename Derived::difference_type n
-    , iterator_facade<Derived, V, TC, R, D> const& i
-))
-# undef NDNBOOST_ITERATOR_FACADE_PLUS
-# undef NDNBOOST_ITERATOR_FACADE_PLUS_HEAD
-
-} // namespace ndnboost
-
-#include <ndnboost/iterator/detail/config_undef.hpp>
-
-#endif // NDNBOOST_ITERATOR_FACADE_23022003THW_HPP
diff --git a/include/ndnboost/iterator/iterator_traits.hpp b/include/ndnboost/iterator/iterator_traits.hpp
deleted file mode 100644
index 4d8fb61..0000000
--- a/include/ndnboost/iterator/iterator_traits.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright David Abrahams 2003.
-// 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 ITERATOR_TRAITS_NDNBOOST_DWA200347_HPP
-# define ITERATOR_TRAITS_NDNBOOST_DWA200347_HPP
-
-# include <ndnboost/detail/iterator.hpp>
-# include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost { 
-
-// Unfortunately, g++ 2.95.x chokes when we define a class template
-// 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
-// NDNBOOST_ITERATOR_CATEGORY to write code that's portable to older
-// GCCs.
-
-# if NDNBOOST_WORKAROUND(__GNUC__, <= 2)
-#  define NDNBOOST_ITERATOR_CATEGORY iterator_category_
-# else
-#  define NDNBOOST_ITERATOR_CATEGORY iterator_category
-# endif
-
-
-template <class Iterator>
-struct iterator_value
-{
-    typedef typename ndnboost::detail::iterator_traits<Iterator>::value_type type;
-};
-  
-template <class Iterator>
-struct iterator_reference
-{
-    typedef typename ndnboost::detail::iterator_traits<Iterator>::reference type;
-};
-  
-  
-template <class Iterator>
-struct iterator_pointer
-{
-    typedef typename ndnboost::detail::iterator_traits<Iterator>::pointer type;
-};
-  
-template <class Iterator>
-struct iterator_difference
-{
-    typedef typename ndnboost::detail::iterator_traits<Iterator>::difference_type type;
-};
-
-template <class Iterator>
-struct NDNBOOST_ITERATOR_CATEGORY
-{
-    typedef typename ndnboost::detail::iterator_traits<Iterator>::iterator_category type;
-};
-
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-template <>
-struct iterator_value<int>
-{
-    typedef void type;
-};
-  
-template <>
-struct iterator_reference<int>
-{
-    typedef void type;
-};
-
-template <>
-struct iterator_pointer<int>
-{
-    typedef void type;
-};
-  
-template <>
-struct iterator_difference<int>
-{
-    typedef void type;
-};
-  
-template <>
-struct NDNBOOST_ITERATOR_CATEGORY<int>
-{
-    typedef void type;
-};
-# endif
-
-} // namespace ndnboost::iterator
-
-#endif // ITERATOR_TRAITS_NDNBOOST_DWA200347_HPP
diff --git a/include/ndnboost/iterator/reverse_iterator.hpp b/include/ndnboost/iterator/reverse_iterator.hpp
deleted file mode 100644
index c9b765d..0000000
--- a/include/ndnboost/iterator/reverse_iterator.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// 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 NDNBOOST_REVERSE_ITERATOR_23022003THW_HPP
-#define NDNBOOST_REVERSE_ITERATOR_23022003THW_HPP
-
-#include <ndnboost/next_prior.hpp>
-#include <ndnboost/iterator.hpp>
-#include <ndnboost/iterator/iterator_adaptor.hpp>
-
-namespace ndnboost
-{
-
-  //
-  //
-  //
-  template <class Iterator>
-  class reverse_iterator
-      : public iterator_adaptor< reverse_iterator<Iterator>, Iterator >
-  {
-      typedef iterator_adaptor< reverse_iterator<Iterator>, Iterator > super_t;
-
-      friend class iterator_core_access;
-
-   public:
-      reverse_iterator() {}
-
-      explicit reverse_iterator(Iterator x) 
-          : super_t(x) {}
-
-      template<class OtherIterator>
-      reverse_iterator(
-          reverse_iterator<OtherIterator> const& r
-          , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0
-          )
-          : super_t(r.base())
-      {}
-
-   private:
-      typename super_t::reference dereference() const { return *ndnboost::prior(this->base()); }
-    
-      void increment() { --this->base_reference(); }
-      void decrement() { ++this->base_reference(); }
-
-      void advance(typename super_t::difference_type n)
-      {
-          this->base_reference() += -n;
-      }
-
-      template <class OtherIterator>
-      typename super_t::difference_type
-      distance_to(reverse_iterator<OtherIterator> const& y) const
-      {
-          return this->base_reference() - y.base();
-      }
-  };
-
-  template <class BidirectionalIterator>
-  reverse_iterator<BidirectionalIterator> make_reverse_iterator(BidirectionalIterator x)
-  {
-      return reverse_iterator<BidirectionalIterator>(x);
-  }
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_REVERSE_ITERATOR_23022003THW_HPP
diff --git a/include/ndnboost/lambda/bind.hpp b/include/ndnboost/lambda/bind.hpp
deleted file mode 100644
index 3b2c814..0000000
--- a/include/ndnboost/lambda/bind.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-// -- bind.hpp -- Boost Lambda Library --------------------------------------
-
-// Copyright (C) 1999-2001 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//                         Gary Powell (gwpowell@hotmail.com)
-//
-// 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)
-//
-// For more information, see http://www.boost.org 
-
-#ifndef NDNBOOST_LAMBDA_BIND_HPP
-#define NDNBOOST_LAMBDA_BIND_HPP
-
-#include "ndnboost/lambda/core.hpp"
-
-#include "ndnboost/lambda/detail/bind_functions.hpp"
-    
-#endif
diff --git a/include/ndnboost/lambda/core.hpp b/include/ndnboost/lambda/core.hpp
deleted file mode 100644
index 301ec43..0000000
--- a/include/ndnboost/lambda/core.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// -- core.hpp -- Boost Lambda Library -------------------------------------
-//
-// Copyright (C) 2000 Gary Powell (powellg@amazon.com)
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-// 
-// Includes the core of LL, without any real features for client:
-// 
-// tuples, lambda functors, return type deduction templates,
-// argument substitution mechanism (select functions)
-// 
-// Some functionality comes as well:
-// Assignment and subscript operators, as well as function
-// call operator for placeholder variables.
-// -------------------------------------------------------------------------
-
-#ifndef NDNBOOST_LAMBDA_CORE_HPP
-#define NDNBOOST_LAMBDA_CORE_HPP
-
-#include "ndnboost/type_traits/transform_traits.hpp"
-#include "ndnboost/type_traits/cv_traits.hpp"
-
-#include "ndnboost/tuple/tuple.hpp"
-
-// inject some of the tuple names into lambda 
-namespace ndnboost {
-namespace lambda {
-
-using ::ndnboost::tuples::tuple;
-using ::ndnboost::tuples::null_type;
-
-} // lambda
-} // boost
-
-#include "ndnboost/lambda/detail/lambda_config.hpp"
-#include "ndnboost/lambda/detail/lambda_fwd.hpp"
-
-#include "ndnboost/lambda/detail/arity_code.hpp"
-#include "ndnboost/lambda/detail/actions.hpp"
-
-#include "ndnboost/lambda/detail/lambda_traits.hpp"
-
-#include "ndnboost/lambda/detail/function_adaptors.hpp"
-#include "ndnboost/lambda/detail/return_type_traits.hpp"
-
-#include "ndnboost/lambda/detail/select_functions.hpp"
-
-#include "ndnboost/lambda/detail/lambda_functor_base.hpp"
-
-#include "ndnboost/lambda/detail/lambda_functors.hpp"
-
-#include "ndnboost/lambda/detail/ret.hpp"
-
-namespace ndnboost {
-namespace lambda {
-
-namespace {
-
-  // These are constants types and need to be initialised
-  ndnboost::lambda::placeholder1_type free1 = ndnboost::lambda::placeholder1_type();
-  ndnboost::lambda::placeholder2_type free2 = ndnboost::lambda::placeholder2_type();
-  ndnboost::lambda::placeholder3_type free3 = ndnboost::lambda::placeholder3_type();
-
-  ndnboost::lambda::placeholder1_type& _1 = free1;
-  ndnboost::lambda::placeholder2_type& _2 = free2;
-  ndnboost::lambda::placeholder3_type& _3 = free3;
-  // _1, _2, ... naming scheme by Peter Dimov
-} // unnamed
-   
-} // lambda
-} // boost
-   
-   
-#endif //NDNBOOST_LAMBDA_CORE_HPP
diff --git a/include/ndnboost/lambda/detail/actions.hpp b/include/ndnboost/lambda/detail/actions.hpp
deleted file mode 100644
index 322820b..0000000
--- a/include/ndnboost/lambda/detail/actions.hpp
+++ /dev/null
@@ -1,174 +0,0 @@
-// -- Boost Lambda Library - actions.hpp ----------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-
-// For more information, see www.boost.org
-
-// ----------------------------------------------------------------
-
-#ifndef NDNBOOST_LAMBDA_ACTIONS_HPP
-#define NDNBOOST_LAMBDA_ACTIONS_HPP
-
-namespace ndnboost { 
-namespace lambda {
-
-
-
-template<int Arity, class Act> class action;
-
-// these need to be defined here, since the corresponding lambda 
-// functions are members of lambda_functor classes
-
-class assignment_action {};
-class subscript_action {};
-
-template <class Action> class other_action;
-
-// action for specifying the explicit return type
-template <class RET> class explicit_return_type_action {};
-
-// action for preventing the expansion of a lambda expression
-struct protect_action {};
-
-  // must be defined here, comma is a special case
-struct comma_action {};
-
-
-  // actions, for which the existence of protect is checked in return type 
-  // deduction.
-
-template <class Action> struct is_protectable {
-  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> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-
-namespace detail {
-
-  // this type is used in return type deductions to signal that deduction 
-  // did not find a result. It does not necessarily mean an error, it commonly
-  // means that something else should be tried.
-  class unspecified {};
-}
-
-  // function action is a special case: bind functions can be called with 
-  // the return type specialized explicitly e.g. bind<int>(foo);
-  // If this call syntax is used, the return type is stored in the latter
-  // argument of function_action template. Otherwise the argument gets the type
-  // 'unspecified'.
-  // This argument is only relevant in the return type deduction code
-template <int I, class Result_type = detail::unspecified> 
-class function_action {};
-   
-template<class T> class function_action<1, T> {
-public:
-  template<class RET, class A1>
-  static RET apply(A1& a1) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1);
-  }
-};
-
-template<class T> class function_action<2, T> {
-public:
-  template<class RET, class A1, class A2>
-  static RET apply(A1& a1, A2& a2) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1, a2);
-  }
-};
-
-template<class T> class function_action<3, T> {
-public:
-  template<class RET, class A1, class A2, class A3>
-  static RET apply(A1& a1, A2& a2, A3& a3) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1, a2, a3);
-  }
-};
-
-template<class T> class function_action<4, T> {
-public:
-  template<class RET, class A1, class A2, class A3, class A4>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1, a2, a3, a4);
-  }
-};
-
-template<class T> class function_action<5, T> {
-public:
-  template<class RET, class A1, class A2, class A3, class A4, class A5>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1, a2, a3, a4, a5);
-  }
-};
-
-template<class T> class function_action<6, T> {
-public:
-  template<class RET, class A1, class A2, class A3, class A4, class A5, 
-           class A6>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1, a2, a3, a4, a5, a6);
-  }
-};
-
-template<class T> class function_action<7, T> {
-public:
-  template<class RET, class A1, class A2, class A3, class A4, class A5,  
-           class A6, class A7>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1, a2, a3, a4, a5, a6, a7);
-  }
-};
-
-template<class T> class function_action<8, T> {
-public:
-  template<class RET, class A1, class A2, class A3, class A4, class A5, 
-           class A6, class A7, class A8>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, 
-                   A8& a8) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1, a2, a3, a4, a5, a6, a7, a8);
-  }
-};
-
-template<class T> class function_action<9, T> {
-public:
-  template<class RET, class A1, class A2, class A3, class A4, class A5, 
-           class A6, class A7, class A8, class A9>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, 
-                   A8& a8, A9& a9) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-  }
-};
-
-template<class T> class function_action<10, T> {
-public:
-  template<class RET, class A1, class A2, class A3, class A4, class A5, 
-           class A6, class A7, class A8, class A9, class A10>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, 
-                   A8& a8, A9& a9, A10& a10) {
-    return function_adaptor<typename ndnboost::remove_cv<A1>::type>::
-      template apply<RET>(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
-  }
-};
-
-} // namespace lambda
-} // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/lambda/detail/arity_code.hpp b/include/ndnboost/lambda/detail/arity_code.hpp
deleted file mode 100644
index 5735608..0000000
--- a/include/ndnboost/lambda/detail/arity_code.hpp
+++ /dev/null
@@ -1,110 +0,0 @@
-// -- Boost Lambda Library -------------------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-// --------------------------------------------------
-
-#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"
-
-namespace ndnboost { 
-namespace lambda {
-
-// These constants state, whether a lambda_functor instantiation results from 
-// an expression which contains no placeholders (NONE), 
-// only free1 placeholders (FIRST), 
-// free2 placeholders and maybe free1 placeholders (SECOND),
-// free3 and maybe free1 and free2 placeholders (THIRD),
-// freeE placeholders and maybe free1 and free2  (EXCEPTION).
-// RETHROW means, that a rethrow expression is used somewhere in the lambda_functor.
-
-enum { NONE             = 0x00, // Notice we are using bits as flags here.
-       FIRST            = 0x01, 
-       SECOND           = 0x02, 
-       THIRD            = 0x04, 
-       EXCEPTION        = 0x08, 
-       RETHROW          = 0x10};
-
-
-template<class T>
-struct get_tuple_arity;
-
-namespace detail {
-
-template <class T> struct get_arity_;
-
-} // end detail;
-
-template <class T> struct get_arity {
-
-  NDNBOOST_STATIC_CONSTANT(int, value = detail::get_arity_<typename ndnboost::remove_cv<typename ndnboost::remove_reference<T>::type>::type>::value);
-
-};
-
-namespace detail {
-
-template<class T>
-struct get_arity_ {
-  NDNBOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-template<class T>
-struct get_arity_<lambda_functor<T> > {
-  NDNBOOST_STATIC_CONSTANT(int, value = get_arity<T>::value);
-};
-
-template<class Action, class Args>
-struct get_arity_<lambda_functor_base<Action, Args> > {
-  NDNBOOST_STATIC_CONSTANT(int, value = get_tuple_arity<Args>::value);
-};
-
-template<int I>
-struct get_arity_<placeholder<I> > {
-  NDNBOOST_STATIC_CONSTANT(int, value = I);
-};
-
-} // detail 
-
-template<class T>
-struct get_tuple_arity {
-  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> {
-  NDNBOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-
-  // Does T have placeholder<I> as it's subexpression?
-
-template<class T, int I>
-struct has_placeholder {
-  NDNBOOST_STATIC_CONSTANT(bool, value = (get_arity<T>::value & I) != 0);
-}; 
-
-template<int I, int J>
-struct includes_placeholder {
-  NDNBOOST_STATIC_CONSTANT(bool, value = (J & I) != 0);
-};
-
-template<int I, int J>
-struct lacks_placeholder {
-  NDNBOOST_STATIC_CONSTANT(bool, value = ((J & I) == 0));
-};
-
-
-} // namespace lambda
-} // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/lambda/detail/bind_functions.hpp b/include/ndnboost/lambda/detail/bind_functions.hpp
deleted file mode 100644
index ec7f4e9..0000000
--- a/include/ndnboost/lambda/detail/bind_functions.hpp
+++ /dev/null
@@ -1,1879 +0,0 @@
-// -- bind_functions.hpp -- Boost Lambda Library
-//
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see http://www.boost.org
-
-// ----------------------------------------------------------------
-
-#ifndef NDNBOOST_LAMBDA_BIND_FUNCTIONS_HPP
-#define NDNBOOST_LAMBDA_BIND_FUNCTIONS_HPP
-
-
-namespace ndnboost { 
-namespace lambda {
-
-#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, 
-  // and a compilation error results. 
-  // This tweaking is to prevent the formation of the erroneous type.
-namespace detail {
-
-template<class T> struct constify_non_funcs {
-  typedef typename 
-  detail::IF_type<ndnboost::is_function<T>::value,
-    ndnboost::add_reference<T>,
-    ndnboost::add_const<T>
-  >::type type;
-};
-
-}
-#endif
-// 1-argument bind functions --------------------------
-#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
-template <class Result>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<1, function_action<1, Result> >,
-    typename detail::bind_tuple_mapper<Result(&)()>::type
-  >
->
-
-bind(Result(& a1)()) {
-  return
-    lambda_functor_base<
-      action<1, function_action<1, Result> >,
-      typename detail::bind_tuple_mapper<Result(&)()>::type
-    >
-    ( typename detail::bind_tuple_mapper<Result(&)()>::type
-      (a1)
-    );
-}
-#endif
-
- #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
-template <class Arg1>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<1, function_action<1> >,
-    typename detail::bind_tuple_mapper<const Arg1>::type
-  >
->
-
-bind(const Arg1& a1) {
-  return
-    lambda_functor_base<
-      action<1, function_action<1> >,
-      typename detail::bind_tuple_mapper<const Arg1>::type
-    >
-    ( typename detail::bind_tuple_mapper<const Arg1>::type
-      (a1)
-    );
-}
-
-template <class Result, class Arg1>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<1, function_action<1, Result> >,
-    typename detail::bind_tuple_mapper<const Arg1>::type
-  >
->
-
-bind(const Arg1& a1) {
-  return
-    lambda_functor_base<
-      action<1, function_action<1, Result> >,
-      typename detail::bind_tuple_mapper<const Arg1>::type
-    >
-    ( typename detail::bind_tuple_mapper<const Arg1>::type
-      (a1)
-    );
-}
-
-
- #else 
-template <class Arg1>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<1, function_action<1> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type
-    >::type
-  >
->
-
-bind(const Arg1& a1) {
-  return
-    lambda_functor_base<
-      action<1, function_action<1> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type
-      >::type
-      (a1)
-    );
-}
-
-template <class Result, class Arg1>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<1, function_action<1, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type
-    >::type
-  >
->
-
-bind(const Arg1& a1) {
-  return
-    lambda_functor_base<
-      action<1, function_action<1, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type
-      >::type
-      (a1)
-    );
-}
-
-template <class Result>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<1, function_action<1, Result> >,
-    typename detail::bind_tuple_mapper<Result(*)()>::type
-  >
->
-
-bind(Result(* const & a1)()) {
-  return
-    lambda_functor_base<
-      action<1, function_action<1, Result> >,
-      typename detail::bind_tuple_mapper<Result(*)()>::type
-    >
-    ( typename detail::bind_tuple_mapper<Result(*)()>::type
-      (a1)
-    );
-}
-
-
-#endif 
-
-// 2-argument bind functions --------------------------
-#ifndef NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
-template <class Result, class Par1, class Arg2>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<2, function_action<2, Result> >,
-    typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
-  >
->
-
-bind(Result(&a1)(Par1), const Arg2& a2) {
-  return
-    lambda_functor_base<
-      action<2, function_action<2, Result> >,
-      typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
-    >
-    ( typename detail::bind_tuple_mapper<Result(&)(Par1), const Arg2>::type
-      (a1, a2)
-    );
-}
-#endif
-
-#ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
-template <class Arg1, class Arg2>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<2, function_action<2> >,
-    typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2) {
-  return
-    lambda_functor_base<
-      action<2, function_action<2> >,
-      typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
-    >
-    ( typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
-      (a1, a2)
-    );
-}
-
-template <class Result, class Arg1, class Arg2>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<2, function_action<2, Result> >,
-    typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2) {
-  return
-    lambda_functor_base<
-      action<2, function_action<2, Result> >,
-      typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
-    >
-    ( typename detail::bind_tuple_mapper<const Arg1, const Arg2>::type
-      (a1, a2)
-    );
-}
-
-
- #else 
-template <class Arg1, class Arg2>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<2, function_action<2> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2) {
-  return
-    lambda_functor_base<
-      action<2, function_action<2> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2
-      >::type
-      (a1, a2)
-    );
-}
-
-template <class Result, class Arg1, class Arg2>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<2, function_action<2, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2) {
-  return
-    lambda_functor_base<
-      action<2, function_action<2, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2
-      >::type
-      (a1, a2)
-    );
-}
-
-template <class Result, class Par1, class Arg2>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<2, function_action<2, Result> >,
-    typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
-  >
->
-
-bind(Result(* const & a1)(Par1), const Arg2& a2) {
-  return
-    lambda_functor_base<
-      action<2, function_action<2, Result> >,
-      typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
-    >
-    ( typename detail::bind_tuple_mapper<Result(*)(Par1), const Arg2>::type
-      (a1, a2)
-    );
-}
-
-
- #endif 
-
-// 3-argument bind functions --------------------------
-#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<
-  lambda_functor_base<
-    action<3, function_action<3, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(&)(Par1, Par2), const Arg2, const Arg3
-    >::type
-  >
->
-
-bind(Result(&a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) {
-  return
-    lambda_functor_base<
-      action<3, function_action<3, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2), const Arg2, const Arg3
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2), const Arg2, const Arg3
-      >::type
-      (a1, a2, a3)
-    );
-}
-#endif
-
- #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
-template <class Arg1, class Arg2, class Arg3>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<3, function_action<3> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
-  return
-    lambda_functor_base<
-      action<3, function_action<3> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3
-      >::type
-      (a1, a2, a3)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<3, function_action<3, Result> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
-  return
-    lambda_functor_base<
-      action<3, function_action<3, Result> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3
-      >::type
-      (a1, a2, a3)
-    );
-}
-
-
- #else 
-template <class Arg1, class Arg2, class Arg3>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<3, function_action<3> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
-  return
-    lambda_functor_base<
-      action<3, function_action<3> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3
-      >::type
-      (a1, a2, a3)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<3, function_action<3, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3) {
-  return
-    lambda_functor_base<
-      action<3, function_action<3, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3
-      >::type
-      (a1, a2, a3)
-    );
-}
-
-template <class Result, class Par1, class Par2, class Arg2, class Arg3>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<3, function_action<3, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(*)(Par1, Par2), const Arg2, const Arg3
-    >::type
-  >
->
-
-bind(Result(* const & a1)(Par1, Par2), const Arg2& a2, const Arg3& a3) {
-  return
-    lambda_functor_base<
-      action<3, function_action<3, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2), const Arg2, const Arg3
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2), const Arg2, const Arg3
-      >::type
-      (a1, a2, a3)
-    );
-}
-
-
- #endif 
-
-// 4-argument bind functions --------------------------
-#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
-lambda_functor<
-  lambda_functor_base<
-    action<4, function_action<4, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
-    >::type
-  >
->
-
-bind(Result(&a1)(Par1, Par2, Par3), const Arg2& a2, const Arg3& a3,
-     const Arg4& a4) {
-  return
-    lambda_functor_base<
-      action<4, function_action<4, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
-      >::type
-      (a1, a2, a3, a4)
-    );
-}
-#endif
-
- #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
-template <class Arg1, class Arg2, class Arg3, class Arg4>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<4, function_action<4> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
-  return
-    lambda_functor_base<
-      action<4, function_action<4> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4
-      >::type
-      (a1, a2, a3, a4)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<4, function_action<4, Result> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
-  return
-    lambda_functor_base<
-      action<4, function_action<4, Result> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4
-      >::type
-      (a1, a2, a3, a4)
-    );
-}
-
-
- #else 
-template <class Arg1, class Arg2, class Arg3, class Arg4>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<4, function_action<4> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
-  return
-    lambda_functor_base<
-      action<4, function_action<4> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4
-      >::type
-      (a1, a2, a3, a4)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<4, function_action<4, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4) {
-  return
-    lambda_functor_base<
-      action<4, function_action<4, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4
-      >::type
-      (a1, a2, a3, a4)
-    );
-}
-
-template <class Result, class Par1, class Par2, class Par3, class Arg2,
-          class Arg3, class Arg4>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<4, function_action<4, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
-    >::type
-  >
->
-
-bind(Result(* const & a1)(Par1, Par2, Par3), const Arg2& a2,
-     const Arg3& a3, const Arg4& a4) {
-  return
-    lambda_functor_base<
-      action<4, function_action<4, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3), const Arg2, const Arg3, const Arg4
-      >::type
-      (a1, a2, a3, a4)
-    );
-}
-
-
- #endif 
-
-// 5-argument bind functions --------------------------
-#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
-lambda_functor<
-  lambda_functor_base<
-    action<5, function_action<5, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
-      const Arg5
-    >::type
-  >
->
-
-bind(Result(&a1)(Par1, Par2, Par3, Par4), const Arg2& a2, const Arg3& a3,
-     const Arg4& a4, const Arg5& a5) {
-  return
-    lambda_functor_base<
-      action<5, function_action<5, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
-        const Arg5
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
-        const Arg5
-      >::type
-      (a1, a2, a3, a4, a5)
-    );
-}
-#endif
-
- #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<5, function_action<5> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5) {
-  return
-    lambda_functor_base<
-      action<5, function_action<5> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
-      >::type
-      (a1, a2, a3, a4, a5)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<5, function_action<5, Result> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5) {
-  return
-    lambda_functor_base<
-      action<5, function_action<5, Result> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5
-      >::type
-      (a1, a2, a3, a4, a5)
-    );
-}
-
-
- #else 
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<5, function_action<5> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5) {
-  return
-    lambda_functor_base<
-      action<5, function_action<5> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5
-      >::type
-      (a1, a2, a3, a4, a5)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<5, function_action<5, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5) {
-  return
-    lambda_functor_base<
-      action<5, function_action<5, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5
-      >::type
-      (a1, a2, a3, a4, a5)
-    );
-}
-
-template <class Result, class Par1, class Par2, class Par3, class Par4,
-          class Arg2, class Arg3, class Arg4, class Arg5>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<5, function_action<5, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
-      const Arg5
-    >::type
-  >
->
-
-bind(Result(* const & a1)(Par1, Par2, Par3, Par4), const Arg2& a2,
-     const Arg3& a3, const Arg4& a4, const Arg5& a5) {
-  return
-    lambda_functor_base<
-      action<5, function_action<5, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
-        const Arg5
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4), const Arg2, const Arg3, const Arg4,
-        const Arg5
-      >::type
-      (a1, a2, a3, a4, a5)
-    );
-}
-
-
- #endif 
-
-// 6-argument bind functions --------------------------
-#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>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<6, function_action<6, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6
-    >::type
-  >
->
-
-bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5), const Arg2& a2,
-     const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) {
-  return
-    lambda_functor_base<
-      action<6, function_action<6, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
-        const Arg4, const Arg5, const Arg6
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
-        const Arg4, const Arg5, const Arg6
-      >::type
-      (a1, a2, a3, a4, a5, a6)
-    );
-}
-#endif
-
- #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
-          class Arg6>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<6, function_action<6> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6) {
-  return
-    lambda_functor_base<
-      action<6, function_action<6> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
-      >::type
-      (a1, a2, a3, a4, a5, a6)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<6, function_action<6, Result> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6) {
-  return
-    lambda_functor_base<
-      action<6, function_action<6, Result> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6
-      >::type
-      (a1, a2, a3, a4, a5, a6)
-    );
-}
-
-
- #else 
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
-          class Arg6>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<6, function_action<6> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6) {
-  return
-    lambda_functor_base<
-      action<6, function_action<6> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6
-      >::type
-      (a1, a2, a3, a4, a5, a6)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<6, function_action<6, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6) {
-  return
-    lambda_functor_base<
-      action<6, function_action<6, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6
-      >::type
-      (a1, a2, a3, a4, a5, a6)
-    );
-}
-
-template <class Result, class Par1, class Par2, class Par3, class Par4,
-          class Par5, class Arg2, class Arg3, class Arg4, class Arg5,
-          class Arg6>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<6, function_action<6, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6
-    >::type
-  >
->
-
-bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5), const Arg2& a2,
-     const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6) {
-  return
-    lambda_functor_base<
-      action<6, function_action<6, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
-        const Arg4, const Arg5, const Arg6
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5), const Arg2, const Arg3,
-        const Arg4, const Arg5, const Arg6
-      >::type
-      (a1, a2, a3, a4, a5, a6)
-    );
-}
-
-
- #endif 
-
-// 7-argument bind functions --------------------------
-#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>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<7, function_action<7, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7
-    >::type
-  >
->
-
-bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2& a2,
-     const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6,
-     const Arg7& a7) {
-  return
-    lambda_functor_base<
-      action<7, function_action<7, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
-        const Arg4, const Arg5, const Arg6, const Arg7
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
-        const Arg4, const Arg5, const Arg6, const Arg7
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7)
-    );
-}
-#endif
-
- #ifndef NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING 
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
-          class Arg6, class Arg7>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<7, function_action<7> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-      const Arg7
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7) {
-  return
-    lambda_functor_base<
-      action<7, function_action<7> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6, class Arg7>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<7, function_action<7, Result> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-      const Arg7
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7) {
-  return
-    lambda_functor_base<
-      action<7, function_action<7, Result> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7)
-    );
-}
-
-
- #else 
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
-          class Arg6, class Arg7>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<7, function_action<7> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7) {
-  return
-    lambda_functor_base<
-      action<7, function_action<7> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6, class Arg7>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<7, function_action<7, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7) {
-  return
-    lambda_functor_base<
-      action<7, function_action<7, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7)
-    );
-}
-
-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>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<7, function_action<7, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7
-    >::type
-  >
->
-
-bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6),
-     const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
-     const Arg6& a6, const Arg7& a7) {
-  return
-    lambda_functor_base<
-      action<7, function_action<7, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
-        const Arg4, const Arg5, const Arg6, const Arg7
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5, Par6), const Arg2, const Arg3,
-        const Arg4, const Arg5, const Arg6, const Arg7
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7)
-    );
-}
-
-
- #endif 
-
-// 8-argument bind functions --------------------------
-#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>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<8, function_action<8, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
-      const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-    >::type
-  >
->
-
-bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2& a2,
-     const Arg3& a3, const Arg4& a4, const Arg5& a5, const Arg6& a6,
-     const Arg7& a7, const Arg8& a8) {
-  return
-    lambda_functor_base<
-      action<8, function_action<8, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8)
-    );
-}
-#endif
-
- #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
-lambda_functor<
-  lambda_functor_base<
-    action<8, function_action<8> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-      const Arg7, const Arg8
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
-  return
-    lambda_functor_base<
-      action<8, function_action<8> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6, class Arg7, class Arg8>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<8, function_action<8, Result> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-      const Arg7, const Arg8
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
-  return
-    lambda_functor_base<
-      action<8, function_action<8, Result> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8)
-    );
-}
-
-
- #else 
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
-          class Arg6, class Arg7, class Arg8>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<8, function_action<8> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
-  return
-    lambda_functor_base<
-      action<8, function_action<8> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6, class Arg7, class Arg8>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<8, function_action<8, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8) {
-  return
-    lambda_functor_base<
-      action<8, function_action<8, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8)
-    );
-}
-
-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>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<8, function_action<8, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
-      const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-    >::type
-  >
->
-
-bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7),
-     const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
-     const Arg6& a6, const Arg7& a7, const Arg8& a8) {
-  return
-    lambda_functor_base<
-      action<8, function_action<8, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7), const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8)
-    );
-}
-
-
- #endif 
-
-// 9-argument bind functions --------------------------
-#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,
-          class Arg8, class Arg9>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<9, function_action<9, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
-      const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8,
-      const Arg9
-    >::type
-  >
->
-
-bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8),
-     const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
-     const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) {
-  return
-    lambda_functor_base<
-      action<9, function_action<9, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9)
-    );
-}
-#endif
-
- #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
-lambda_functor<
-  lambda_functor_base<
-    action<9, function_action<9> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-      const Arg7, const Arg8, const Arg9
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
-     const Arg9& a9) {
-  return
-    lambda_functor_base<
-      action<9, function_action<9> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8, const Arg9
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8, const Arg9
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<9, function_action<9, Result> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-      const Arg7, const Arg8, const Arg9
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
-     const Arg9& a9) {
-  return
-    lambda_functor_base<
-      action<9, function_action<9, Result> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8, const Arg9
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8, const Arg9
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9)
-    );
-}
-
-
- #else 
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
-          class Arg6, class Arg7, class Arg8, class Arg9>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<9, function_action<9> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
-     const Arg9& a9) {
-  return
-    lambda_functor_base<
-      action<9, function_action<9> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<9, function_action<9, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
-     const Arg9& a9) {
-  return
-    lambda_functor_base<
-      action<9, function_action<9, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9)
-    );
-}
-
-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,
-          class Arg8, class Arg9>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<9, function_action<9, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
-      const Arg3, const Arg4, const Arg5, const Arg6, const Arg7, const Arg8,
-      const Arg9
-    >::type
-  >
->
-
-bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8),
-     const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
-     const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9) {
-  return
-    lambda_functor_base<
-      action<9, function_action<9, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8), const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9)
-    );
-}
-
-
- #endif 
-
-// 10-argument bind functions --------------------------
-#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,
-          class Arg7, class Arg8, class Arg9, class Arg10>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<10, function_action<10, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
-      const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-      const Arg8, const Arg9, const Arg10
-    >::type
-  >
->
-
-bind(Result(&a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
-     const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
-     const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9,
-     const Arg10& a10) {
-  return
-    lambda_functor_base<
-      action<10, function_action<10, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
-        const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-        const Arg7, const Arg8, const Arg9, const Arg10
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(&)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
-        const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-        const Arg7, const Arg8, const Arg9, const Arg10
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
-    );
-}
-#endif
-
- #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
-lambda_functor<
-  lambda_functor_base<
-    action<10, function_action<10> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-      const Arg7, const Arg8, const Arg9, const Arg10
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
-     const Arg9& a9, const Arg10& a10) {
-  return
-    lambda_functor_base<
-      action<10, function_action<10> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6, class Arg7, class Arg8, class Arg9,
-          class Arg10>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<10, function_action<10, Result> >,
-    typename detail::bind_tuple_mapper<
-      const Arg1, const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-      const Arg7, const Arg8, const Arg9, const Arg10
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
-     const Arg9& a9, const Arg10& a10) {
-  return
-    lambda_functor_base<
-      action<10, function_action<10, Result> >,
-      typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        const Arg1, const Arg2, const Arg3, const Arg4, const Arg5,
-        const Arg6, const Arg7, const Arg8, const Arg9, const Arg10
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
-    );
-}
-
-
- #else 
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5,
-          class Arg6, class Arg7, class Arg8, class Arg9, class Arg10>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<10, function_action<10> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9,
-      const Arg10
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
-     const Arg9& a9, const Arg10& a10) {
-  return
-    lambda_functor_base<
-      action<10, function_action<10> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9, const Arg10
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9, const Arg10
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
-    );
-}
-
-template <class Result, class Arg1, class Arg2, class Arg3, class Arg4,
-          class Arg5, class Arg6, class Arg7, class Arg8, class Arg9,
-          class Arg10>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<10, function_action<10, Result> >,
-    typename detail::bind_tuple_mapper<
-      typename detail::constify_non_funcs<Arg1>::type, const Arg2, const Arg3,
-      const Arg4, const Arg5, const Arg6, const Arg7, const Arg8, const Arg9,
-      const Arg10
-    >::type
-  >
->
-
-bind(const Arg1& a1, const Arg2& a2, const Arg3& a3, const Arg4& a4,
-     const Arg5& a5, const Arg6& a6, const Arg7& a7, const Arg8& a8,
-     const Arg9& a9, const Arg10& a10) {
-  return
-    lambda_functor_base<
-      action<10, function_action<10, Result> >,
-      typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9, const Arg10
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        typename detail::constify_non_funcs<Arg1>::type, const Arg2,
-        const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-        const Arg8, const Arg9, const Arg10
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
-    );
-}
-
-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,
-          class Arg7, class Arg8, class Arg9, class Arg10>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<10, function_action<10, Result> >,
-    typename detail::bind_tuple_mapper<
-      Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
-      const Arg2, const Arg3, const Arg4, const Arg5, const Arg6, const Arg7,
-      const Arg8, const Arg9, const Arg10
-    >::type
-  >
->
-
-bind(Result(* const & a1)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8,
-     Par9), const Arg2& a2, const Arg3& a3, const Arg4& a4, const Arg5& a5,
-     const Arg6& a6, const Arg7& a7, const Arg8& a8, const Arg9& a9,
-     const Arg10& a10) {
-  return
-    lambda_functor_base<
-      action<10, function_action<10, Result> >,
-      typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
-        const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-        const Arg7, const Arg8, const Arg9, const Arg10
-      >::type
-    >
-    ( typename detail::bind_tuple_mapper<
-        Result(*)(Par1, Par2, Par3, Par4, Par5, Par6, Par7, Par8, Par9),
-        const Arg2, const Arg3, const Arg4, const Arg5, const Arg6,
-        const Arg7, const Arg8, const Arg9, const Arg10
-      >::type
-      (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
-    );
-}
-
-
- #endif 
-
-} // namespace lambda 
-} // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/lambda/detail/function_adaptors.hpp b/include/ndnboost/lambda/detail/function_adaptors.hpp
deleted file mode 100644
index c527354..0000000
--- a/include/ndnboost/lambda/detail/function_adaptors.hpp
+++ /dev/null
@@ -1,789 +0,0 @@
-// Boost Lambda Library -  function_adaptors.hpp ----------------------------
- 
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-
-#ifndef NDNBOOST_LAMBDA_FUNCTION_ADAPTORS_HPP
-#define NDNBOOST_LAMBDA_FUNCTION_ADAPTORS_HPP
-
-#include "ndnboost/mpl/has_xxx.hpp"
-#include "ndnboost/tuple/tuple.hpp"
-#include "ndnboost/type_traits/same_traits.hpp"
-#include "ndnboost/type_traits/remove_reference.hpp"
-#include "ndnboost/type_traits/remove_cv.hpp"
-#include "ndnboost/type_traits/add_const.hpp"
-#include "ndnboost/type_traits/add_volatile.hpp"
-#include "ndnboost/utility/result_of.hpp"
-
-namespace ndnboost { 
-namespace lambda {
-
-namespace detail {
-
-NDNBOOST_MPL_HAS_XXX_TEMPLATE_DEF(sig)
-
-template<class Tuple>
-struct remove_references_from_elements {
-  typedef typename ndnboost::tuples::cons<
-    typename ndnboost::remove_reference<typename Tuple::head_type>::type,
-    typename remove_references_from_elements<typename Tuple::tail_type>::type
-  > type;
-};
-
-template<>
-struct remove_references_from_elements<ndnboost::tuples::null_type> {
-  typedef ndnboost::tuples::null_type type;
-};
-
-}
-
-template <class Func> struct function_adaptor {
-
-  typedef typename detail::remove_reference_and_cv<Func>::type plainF;
-
-#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;
-  template<class Tuple, int Length>
-  struct result_converter<Tuple, Length, true>
-    : plainF::template sig<
-        typename detail::remove_references_from_elements<Tuple>::type
-      >
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 0, false>
-    : result_of<plainF()>
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 1, false>
-    : result_of<plainF(
-        typename tuples::element<1, Tuple>::type)
-      >
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 2, false>
-    : result_of<plainF(
-        typename tuples::element<1, Tuple>::type,
-        typename tuples::element<2, Tuple>::type)
-      >
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 3, false>
-    : result_of<plainF(
-        typename tuples::element<1, Tuple>::type,
-        typename tuples::element<2, Tuple>::type,
-        typename tuples::element<3, Tuple>::type)
-      >
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 4, false>
-    : result_of<plainF(
-        typename tuples::element<1, Tuple>::type,
-        typename tuples::element<2, Tuple>::type,
-        typename tuples::element<3, Tuple>::type,
-        typename tuples::element<4, Tuple>::type)
-      >
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 5, false>
-    : result_of<plainF(
-        typename tuples::element<1, Tuple>::type,
-        typename tuples::element<2, Tuple>::type,
-        typename tuples::element<3, Tuple>::type,
-        typename tuples::element<4, Tuple>::type,
-        typename tuples::element<5, Tuple>::type)
-      >
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 6, false>
-    : result_of<plainF(
-        typename tuples::element<1, Tuple>::type,
-        typename tuples::element<2, Tuple>::type,
-        typename tuples::element<3, Tuple>::type,
-        typename tuples::element<4, Tuple>::type,
-        typename tuples::element<5, Tuple>::type,
-        typename tuples::element<6, Tuple>::type)
-      >
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 7, false>
-    : result_of<plainF(
-        typename tuples::element<1, Tuple>::type,
-        typename tuples::element<2, Tuple>::type,
-        typename tuples::element<3, Tuple>::type,
-        typename tuples::element<4, Tuple>::type,
-        typename tuples::element<5, Tuple>::type,
-        typename tuples::element<6, Tuple>::type,
-        typename tuples::element<7, Tuple>::type)
-      >
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 8, false>
-    : result_of<plainF(
-        typename tuples::element<1, Tuple>::type,
-        typename tuples::element<2, Tuple>::type,
-        typename tuples::element<3, Tuple>::type,
-        typename tuples::element<4, Tuple>::type,
-        typename tuples::element<5, Tuple>::type,
-        typename tuples::element<6, Tuple>::type,
-        typename tuples::element<7, Tuple>::type,
-        typename tuples::element<8, Tuple>::type)
-      >
-  {};
-  template<class Tuple>
-  struct result_converter<Tuple, 9, false>
-    : result_of<plainF(
-        typename tuples::element<1, Tuple>::type,
-        typename tuples::element<2, Tuple>::type,
-        typename tuples::element<3, Tuple>::type,
-        typename tuples::element<4, Tuple>::type,
-        typename tuples::element<5, Tuple>::type,
-        typename tuples::element<6, Tuple>::type,
-        typename tuples::element<7, Tuple>::type,
-        typename tuples::element<8, Tuple>::type,
-        typename tuples::element<9, Tuple>::type)
-      >
-  {};
-
-  // we do not know the return type off-hand, we must ask it from Func
-  // To sig we pass a cons list, where the head is the function object type
-  // itself (potentially cv-qualified)
-  // and the tail contains the types of the actual arguments to be passed
-  // to the function object. The arguments can be cv qualified
-  // as well.
-  template <class Args>
-  struct sig
-    : result_converter<
-        Args
-      , tuples::length<typename Args::tail_type>::value
-      , detail::has_sig<plainF>::value
-      >
-  {};
-#else // NDNBOOST_NO_RESULT_OF
-
-  template <class Args> class sig {
-    typedef typename detail::remove_reference_and_cv<Func>::type plainF;
-  public:
-    typedef typename plainF::template sig<
-      typename detail::remove_references_from_elements<Args>::type
-    >::type type;
-  };
-#endif
-
-  template<class RET, class A1>
-  static RET apply(A1& a1) {
-    return a1();
-  }
-  template<class RET, class A1, class A2>
-  static RET apply(A1& a1, A2& a2) {
-    return a1(a2);
-  }
-  template<class RET, class A1, class A2, class A3>
-  static RET apply(A1& a1, A2& a2, A3& a3) {
-    return a1(a2, a3);
-  }
-  template<class RET, class A1, class A2, class A3, class A4>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4) {
-    return a1(a2, a3, a4);
-  }
-  template<class RET, class A1, class A2, class A3, class A4, class A5>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) {
-    return a1(a2, a3, a4, a5);
-  }
-  template<class RET, class A1, class A2, class A3, class A4, class A5, class A6>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) {
-    return a1(a2, a3, a4, a5, a6);
-  }
-  template<class RET, class A1, class A2, class A3, class A4, class A5, class A6, 
-           class A7>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, 
-                           A7& a7) {
-    return a1(a2, a3, a4, a5, a6, a7);
-  }
-  template<class RET, class A1, class A2, class A3, class A4, class A5, class A6, 
-           class A7, class A8>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, 
-                           A7& a7, A8& a8) {
-    return a1(a2, a3, a4, a5, a6, a7, a8);
-  }
-  template<class RET, class A1, class A2, class A3, class A4, class A5, class A6, 
-           class A7, class A8, class A9>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, 
-                           A7& a7, A8& a8, A9& a9) {
-    return a1(a2, a3, a4, a5, a6, a7, a8, a9);
-  }
-  template<class RET, class A1, class A2, class A3, class A4, class A5, class A6, 
-           class A7, class A8, class A9, class A10>
-  static RET apply(A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, 
-                           A7& a7, A8& a8, A9& a9, A10& a10) {
-    return a1(a2, a3, a4, a5, a6, a7, a8, a9, a10);
-  }
-};
-
-template <class Func> struct function_adaptor<const Func>; // error 
-
-// -- function adaptors with data member access
-template <class Object, class T>
-struct function_adaptor<T Object::*> {
-
-  //  typedef detail::unspecified type;
-
-  // T can have qualifiers and can be a reference type
-  // We get the return type by adding const, if the object through which
-  // the data member is accessed is const, and finally adding a reference
-  template<class Args> class sig { 
-    typedef typename ndnboost::tuples::element<1, Args>::type argument_type;
-    typedef typename ndnboost::remove_reference<
-      argument_type
-    >::type unref_type;
-
-    typedef typename detail::IF<ndnboost::is_const<unref_type>::value,
-      typename ndnboost::add_const<T>::type,
-      T
-    >::RET properly_consted_return_type;
-
-    typedef typename detail::IF<ndnboost::is_volatile<unref_type>::value,
-      typename ndnboost::add_volatile<properly_consted_return_type>::type,
-      properly_consted_return_type
-    >::RET properly_cvd_return_type;
-
-
-  public:
-    typedef typename detail::IF<ndnboost::is_reference<argument_type>::value,
-      typename ndnboost::add_reference<properly_cvd_return_type>::type,
-      typename ndnboost::remove_cv<T>::type
-    >::RET type;
-  };
-
-  template <class RET>
-  static RET apply( T Object::*data, Object& o) {
-    return o.*data;
-  }
-  template <class RET>
-  static RET apply( T Object::*data, const Object& o) {
-    return o.*data;
-  }
-  template <class RET>
-  static RET apply( T Object::*data, volatile Object& o) {
-    return o.*data;
-  }
-  template <class RET>
-  static RET apply( T Object::*data, const volatile Object& o) {
-    return o.*data;
-  }
-  template <class RET>
-  static RET apply( T Object::*data, Object* o) {
-    return o->*data;
-  }
-  template <class RET>
-  static RET apply( T Object::*data, const Object* o) {
-    return o->*data;
-  }
-  template <class RET>
-  static RET apply( T Object::*data, volatile Object* o) {
-    return o->*data;
-  }
-  template <class RET>
-  static RET apply( T Object::*data, const volatile Object* o) {
-    return o->*data;
-  }
-};
-
-// -- function adaptors with 1 argument apply
-   
-template <class Result>
-struct function_adaptor<Result (void)> {
-  
-  template<class T> struct sig { typedef Result type; };
-  template <class RET>
-  static Result apply(Result (*func)()) {
-    return func();
-  }
-};
-
-template <class Result>
-struct function_adaptor<Result (*)(void)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET>
-  static Result apply(Result (*func)()) {
-    return func();
-  }
-};
-
-
-// -- function adaptors with 2 argument apply
-template <class Object, class Result>
-struct function_adaptor<Result (Object::*)() const> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET>
-  static Result apply( Result (Object::*func)() const, const Object* o) {
-    return (o->*func)();
-  }
-  template <class RET>
-  static Result apply( Result (Object::*func)() const, const Object& o) {
-    return (o.*func)();
-  }
-};
-
-template <class Object, class Result>
-struct function_adaptor<Result (Object::*)()> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET>
-  static Result apply( Result (Object::*func)(), Object* o) {
-    return (o->*func)();
-  }
-  template <class RET>
-  static Result apply( Result (Object::*func)(), Object& o) {
-    return (o.*func)();
-  }
-};
-
-template <class Arg1, class Result>
-struct function_adaptor<Result (Arg1)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1>
-  static Result apply(Result (*func)(Arg1), A1& a1) {
-    return func(a1);
-  }
-};
-
-template <class Arg1, class Result>
-struct function_adaptor<Result (*)(Arg1)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1>
-  static Result apply(Result (*func)(Arg1), A1& a1) {
-    return func(a1);
-  }
-};
-
-
-// -- function adaptors with 3 argument apply
-template <class Object, class Arg1, class Result>
-struct function_adaptor<Result (Object::*)(Arg1) const> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1>
-  static Result apply( Result (Object::*func)(Arg1) const, const Object* o, 
-    A1& a1) {
-    return (o->*func)(a1);
-  }
-  template <class RET, class A1>
-  static Result apply( Result (Object::*func)(Arg1) const, const Object& o, 
-    A1& a1) {
-    return (o.*func)(a1);
-  }
-};
-
-template <class Object, class Arg1, class Result>
-struct function_adaptor<Result (Object::*)(Arg1)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1>
-  static Result apply( Result (Object::*func)(Arg1), Object* o, A1& a1) {
-    return (o->*func)(a1);
-  }
-  template <class RET, class A1>
-  static Result apply( Result (Object::*func)(Arg1), Object& o, A1& a1) {
-    return (o.*func)(a1);
-  }
-};
-
-template <class Arg1, class Arg2, class Result>
-struct function_adaptor<Result (Arg1, Arg2)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2>
-  static Result apply(Result (*func)(Arg1, Arg2), A1& a1, A2& a2) {
-    return func(a1, a2);
-  }
-};
-
-template <class Arg1, class Arg2, class Result>
-struct function_adaptor<Result (*)(Arg1, Arg2)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2>
-  static Result apply(Result (*func)(Arg1, Arg2), A1& a1, A2& a2) {
-    return func(a1, a2);
-  }
-};
-
-
-// -- function adaptors with 4 argument apply
-template <class Object, class Arg1, class Arg2, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2) const> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2>
-  static Result apply( Result (Object::*func)(Arg1, Arg2) const, const Object* o, A1& a1, A2& a2) {
-    return (o->*func)(a1, a2);
-  }
-  template <class RET, class A1, class A2>
-  static Result apply( Result (Object::*func)(Arg1, Arg2) const, const Object& o, A1& a1, A2& a2) {
-    return (o.*func)(a1, a2);
-  }
-};
-
-template <class Object, class Arg1, class Arg2, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2>
-  static Result apply( Result (Object::*func)(Arg1, Arg2), Object* o, A1& a1, A2& a2) {
-    return (o->*func)(a1, a2);
-  }
-  template <class RET, class A1, class A2>
-  static Result apply( Result (Object::*func)(Arg1, Arg2), Object& o, A1& a1, A2& a2) {
-    return (o.*func)(a1, a2);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Result>
-struct function_adaptor<Result (Arg1, Arg2, Arg3)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3), A1& a1, A2& a2, A3& a3) {
-    return func(a1, a2, a3);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Result>
-struct function_adaptor<Result (*)(Arg1, Arg2, Arg3)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3), A1& a1, A2& a2, A3& a3) {
-    return func(a1, a2, a3);
-  }
-};
-
-
-// -- function adaptors with 5 argument apply
-template <class Object, class Arg1, class Arg2, class Arg3, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3) const> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3) const, const Object* o, A1& a1, A2& a2, A3& a3) {
-    return (o->*func)(a1, a2, a3);
-  }
-  template <class RET, class A1, class A2, class A3>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3) const, const Object& o, A1& a1, A2& a2, A3& a3) {
-    return (o.*func)(a1, a2, a3);
-  }
-};
-
-template <class Object, class Arg1, class Arg2, class Arg3, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3), Object* o, A1& a1, A2& a2, A3& a3) {
-    return (o->*func)(a1, a2, a3);
-  }
-  template <class RET, class A1, class A2, class A3>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3), Object& o, A1& a1, A2& a2, A3& a3) {
-    return (o.*func)(a1, a2, a3);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Result>
-struct function_adaptor<Result (Arg1, Arg2, Arg3, Arg4)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4), A1& a1, A2& a2, A3& a3, A4& a4) {
-    return func(a1, a2, a3, a4);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Result>
-struct function_adaptor<Result (*)(Arg1, Arg2, Arg3, Arg4)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4), A1& a1, A2& a2, A3& a3, A4& a4) {
-    return func(a1, a2, a3, a4);
-  }
-};
-
-
-// -- function adaptors with 6 argument apply
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4) const> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4) const, const Object* o, A1& a1, A2& a2, A3& a3, A4& a4) {
-    return (o->*func)(a1, a2, a3, a4);
-  }
-  template <class RET, class A1, class A2, class A3, class A4>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4) const, const Object& o, A1& a1, A2& a2, A3& a3, A4& a4) {
-    return (o.*func)(a1, a2, a3, a4);
-  }
-};
-
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4), Object* o, A1& a1, A2& a2, A3& a3, A4& a4) {
-    return (o->*func)(a1, a2, a3, a4);
-  }
-  template <class RET, class A1, class A2, class A3, class A4>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4), Object& o, A1& a1, A2& a2, A3& a3, A4& a4) {
-    return (o.*func)(a1, a2, a3, a4);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Result>
-struct function_adaptor<Result (Arg1, Arg2, Arg3, Arg4, Arg5)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) {
-    return func(a1, a2, a3, a4, a5);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Result>
-struct function_adaptor<Result (*)(Arg1, Arg2, Arg3, Arg4, Arg5)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) {
-    return func(a1, a2, a3, a4, a5);
-  }
-};
-
-
-// -- function adaptors with 7 argument apply
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4, Arg5) const> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5) const, const Object* o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) {
-    return (o->*func)(a1, a2, a3, a4, a5);
-  }
-  template <class RET, class A1, class A2, class A3, class A4, class A5>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5) const, const Object& o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) {
-    return (o.*func)(a1, a2, a3, a4, a5);
-  }
-};
-
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4, Arg5)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5), Object* o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) {
-    return (o->*func)(a1, a2, a3, a4, a5);
-  }
-  template <class RET, class A1, class A2, class A3, class A4, class A5>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5), Object& o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5) {
-    return (o.*func)(a1, a2, a3, a4, a5);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Result>
-struct function_adaptor<Result (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) {
-    return func(a1, a2, a3, a4, a5, a6);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Result>
-struct function_adaptor<Result (*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) {
-    return func(a1, a2, a3, a4, a5, a6);
-  }
-};
-
-
-// -- function adaptors with 8 argument apply
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) const> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) const, const Object* o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) {
-    return (o->*func)(a1, a2, a3, a4, a5, a6);
-  }
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6) const, const Object& o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) {
-    return (o.*func)(a1, a2, a3, a4, a5, a6);
-  }
-};
-
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6), Object* o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) {
-    return (o->*func)(a1, a2, a3, a4, a5, a6);
-  }
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6), Object& o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6) {
-    return (o.*func)(a1, a2, a3, a4, a5, a6);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Result>
-struct function_adaptor<Result (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) {
-    return func(a1, a2, a3, a4, a5, a6, a7);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Result>
-struct function_adaptor<Result (*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) {
-    return func(a1, a2, a3, a4, a5, a6, a7);
-  }
-};
-
-
-// -- function adaptors with 9 argument apply
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) const> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) const, const Object* o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) {
-    return (o->*func)(a1, a2, a3, a4, a5, a6, a7);
-  }
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) const, const Object& o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) {
-    return (o.*func)(a1, a2, a3, a4, a5, a6, a7);
-  }
-};
-
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7), Object* o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) {
-    return (o->*func)(a1, a2, a3, a4, a5, a6, a7);
-  }
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7), Object& o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7) {
-    return (o.*func)(a1, a2, a3, a4, a5, a6, a7);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8, class Result>
-struct function_adaptor<Result (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) {
-    return func(a1, a2, a3, a4, a5, a6, a7, a8);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8, class Result>
-struct function_adaptor<Result (*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) {
-    return func(a1, a2, a3, a4, a5, a6, a7, a8);
-  }
-};
-
-
-// -- function adaptors with 10 argument apply
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8) const> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8) const, const Object* o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) {
-    return (o->*func)(a1, a2, a3, a4, a5, a6, a7, a8);
-  }
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8) const, const Object& o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) {
-    return (o.*func)(a1, a2, a3, a4, a5, a6, a7, a8);
-  }
-};
-
-template <class Object, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8, class Result>
-struct function_adaptor<Result (Object::*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8), Object* o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) {
-    return (o->*func)(a1, a2, a3, a4, a5, a6, a7, a8);
-  }
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-  static Result apply( Result (Object::*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8), Object& o, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8) {
-    return (o.*func)(a1, a2, a3, a4, a5, a6, a7, a8);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8, class Arg9, class Result>
-struct function_adaptor<Result (Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9) {
-    return func(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-  }
-};
-
-template <class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8, class Arg9, class Result>
-struct function_adaptor<Result (*)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9)> {
-
-  template<class T> struct sig { typedef Result type; };
-  template <class RET, class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
-  static Result apply(Result (*func)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9), A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9) {
-    return func(a1, a2, a3, a4, a5, a6, a7, a8, a9);
-  }
-};
-
-} // namespace lambda
-} // namespace ndnboost
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/include/ndnboost/lambda/detail/is_instance_of.hpp b/include/ndnboost/lambda/detail/is_instance_of.hpp
deleted file mode 100644
index 1b03597..0000000
--- a/include/ndnboost/lambda/detail/is_instance_of.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// Boost Lambda Library - is_instance_of.hpp ---------------------
-
-// Copyright (C) 2001 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-// ---------------------------------------------------------------
-
-#ifndef NDNBOOST_LAMBDA_IS_INSTANCE_OF
-#define NDNBOOST_LAMBDA_IS_INSTANCE_OF
-
-#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"
-
-// is_instance_of --------------------------------
-// 
-// is_instance_of_n<A, B>::value is true, if type A is 
-// an instantiation of a template B, or A derives from an instantiation 
-// of template B
-//
-// n is the number of template arguments for B
-// 
-// Example:
-// is_instance_of_2<std::istream, basic_stream>::value == true
-
-// The original implementation was somewhat different, with different versions
-// for different compilers. However, there was still a problem
-// with gcc.3.0.2 and 3.0.3 compilers, which didn't think regard
-// is_instance_of_N<...>::value was a constant.
-// John Maddock suggested the way around this problem by building 
-// is_instance_of templates using ndnboost::is_convertible.
-// Now we only have one version of is_instance_of templates, which delagate
-// all the nasty compiler tricks to is_convertible. 
-
-#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 NDNBOOST_LAMBDA_CLASS_LIST(n, NAME) NDNBOOST_PP_REPEAT(n, NDNBOOST_LAMBDA_CLASS, NAME)
-
-#define NDNBOOST_LAMBDA_CLASS_ARG_LIST(n, NAME) NDNBOOST_PP_REPEAT(n, NDNBOOST_LAMBDA_CLASS_ARG, NAME)
-
-#define NDNBOOST_LAMBDA_ARG_LIST(n, NAME) NDNBOOST_PP_REPEAT(n, NDNBOOST_LAMBDA_ARG, NAME)
-
-namespace ndnboost {
-namespace lambda {
-
-#define NDNBOOST_LAMBDA_IS_INSTANCE_OF_TEMPLATE(INDEX)                         \
-                                                                            \
-namespace detail {                                                          \
-                                                                            \
-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 <NDNBOOST_LAMBDA_CLASS_LIST(INDEX,T)> class To> \
-struct NDNBOOST_PP_CAT(is_instance_of_,INDEX)                                  \
-{                                                                           \
- private:                                                                   \
-   typedef ::ndnboost::is_convertible<                                         \
-     From,                                                                  \
-     NDNBOOST_PP_CAT(detail::conversion_tester_,INDEX)<To>                     \
-   > helper_type;                                                           \
-                                                                            \
-public:                                                                     \
-  NDNBOOST_STATIC_CONSTANT(bool, value = helper_type::value);                  \
-};
-
-
-#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
-
-NDNBOOST_PP_REPEAT_2ND(4,NDNBOOST_LAMBDA_HELPER,FOO)
-
-#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
-
-#endif
-
-
-
-
-
diff --git a/include/ndnboost/lambda/detail/lambda_config.hpp b/include/ndnboost/lambda/detail/lambda_config.hpp
deleted file mode 100644
index ce5dce2..0000000
--- a/include/ndnboost/lambda/detail/lambda_config.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-// Boost Lambda Library - lambda_config.hpp ------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-// ---------------------------------------------------------------
-
-#ifndef NDNBOOST_LAMBDA_LAMBDA_CONFIG_HPP
-#define NDNBOOST_LAMBDA_LAMBDA_CONFIG_HPP
-
-// add to ndnboost/config.hpp
-// for now
-
-
-# if defined __GNUC__
-#   if (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) 
-#     define NDNBOOST_REF_TO_FUNC_CONFLICTS_WITH_REF_TO_T
-#     define NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
-#   endif
-#   if (__GNUC__ == 2 && __GNUC_MINOR__ <= 97) 
-#     define NDNBOOST_NO_TEMPLATED_STREAMS
-#     define NDNBOOST_LAMBDA_INCORRECT_BIND_OVERLOADING
-#   endif
-#   if (__GNUC__ == 2 && __GNUC_MINOR__ <= 95) 
-#     define NDNBOOST_LAMBDA_FAILS_IN_TEMPLATE_KEYWORD_AFTER_SCOPE_OPER
-#   endif
-# endif  // __GNUC__
- 
-
-#if defined __KCC
-
-#define NDNBOOST_NO_FDECL_TEMPLATES_AS_TEMPLATE_TEMPLATE_PARAMS
-
-#endif  // __KCC
-
-#endif
-
-
-
-
-
-
-
diff --git a/include/ndnboost/lambda/detail/lambda_functor_base.hpp b/include/ndnboost/lambda/detail/lambda_functor_base.hpp
deleted file mode 100644
index bfb012f..0000000
--- a/include/ndnboost/lambda/detail/lambda_functor_base.hpp
+++ /dev/null
@@ -1,615 +0,0 @@
-// Boost Lambda Library  lambda_functor_base.hpp -----------------------------
-//
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-// ------------------------------------------------------------
-
-#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"
-#include "ndnboost/type_traits/remove_const.hpp"
-#include "ndnboost/lambda/detail/lambda_fwd.hpp"
-#include "ndnboost/lambda/detail/lambda_traits.hpp"
-
-namespace ndnboost { 
-namespace lambda {
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
-#pragma warning(push)
-#pragma warning(disable:4512) //assignment operator could not be generated
-#endif
-
-  // for return type deductions we wrap bound argument to this class,
-  // which fulfils the base class contract for lambda_functors
-template <class T>
-class identity {
-
-  T elem;
-public:
-  
-  typedef T element_t;
-
-  // take all parameters as const references. Note that non-const references
-  // stay as they are.
-  typedef typename ndnboost::add_reference<
-    typename ndnboost::add_const<T>::type
-  >::type par_t;
-
-  explicit identity(par_t t) : elem(t) {}
-
-  template <typename SigArgs> 
-  struct sig { typedef typename ndnboost::remove_const<element_t>::type type; };
-
-  template<class RET, CALL_TEMPLATE_ARGS>
-  RET call(CALL_FORMAL_ARGS) const { CALL_USE_ARGS; return elem; }
-};
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
-#pragma warning(pop)
-#endif
-
-template <class T> 
-inline lambda_functor<identity<T&> > var(T& t) { return identity<T&>(t); }
-
-  // for lambda functors, var is an identity operator. It was forbidden
-  // at some point, but we might want to var something that can be a 
-  // non-lambda functor or a lambda functor.
-template <class T>
-lambda_functor<T> var(const lambda_functor<T>& t) { return t; }
-
-template <class T> struct var_type {
-  typedef lambda_functor<identity<T&> > type;
-};
-
-
-template <class T> 
-inline 
-lambda_functor<identity<typename bound_argument_conversion<const T>::type> >
-constant(const T& t) { 
-  return identity<typename bound_argument_conversion<const T>::type>(t); 
-}
-template <class T>
-lambda_functor<T> constant(const lambda_functor<T>& t) { return t; }
-
-template <class T> struct constant_type {
-  typedef 
-   lambda_functor<
-     identity<typename bound_argument_conversion<const T>::type> 
-   > type;
-};
-
-
-
-template <class T> 
-inline lambda_functor<identity<const T&> > constant_ref(const T& t) { 
-  return identity<const T&>(t); 
-}
-template <class T>
-lambda_functor<T> constant_ref(const lambda_functor<T>& t) { return t; }
-
-template <class T> struct constant_ref_type {
-  typedef 
-   lambda_functor<identity<const T&> > type;
-};
-
-
-
-  // as_lambda_functor turns any types to lambda functors 
-  // non-lambda_functors will be bound argument types
-template <class T>
-struct as_lambda_functor { 
-  typedef typename 
-    detail::remove_reference_and_cv<T>::type plain_T;
-  typedef typename 
-    detail::IF<is_lambda_functor<plain_T>::value, 
-      plain_T,
-      lambda_functor<
-        identity<typename bound_argument_conversion<T>::type> 
-      >
-    >::RET type; 
-};
-
-// turns arbitrary objects into lambda functors
-template <class T> 
-inline 
-lambda_functor<identity<typename bound_argument_conversion<const T>::type> > 
-to_lambda_functor(const T& t) { 
-  return identity<typename bound_argument_conversion<const T>::type>(t);
-}
-
-template <class T> 
-inline lambda_functor<T> 
-to_lambda_functor(const lambda_functor<T>& t) { 
-  return t;
-}
-
-namespace detail {   
-
-
-
-// In a call constify_rvals<T>::go(x)
-// x should be of type T. If T is a non-reference type, do
-// returns x as const reference. 
-// Otherwise the type doesn't change.
-// The purpose of this class is to avoid 
-// 'cannot bind temporaries to non-const references' errors.
-template <class T> struct constify_rvals {
-  template<class U>
-  static inline const U& go(const U& u) { return u; }
-};
-
-template <class T> struct constify_rvals<T&> {
-  template<class U>
-  static inline U& go(U& u) { return u; }
-};
-
-  // check whether one of the elements of a tuple (cons list) is of type
-  // null_type. Needed, because the compiler goes ahead and instantiates
-  // sig template for nullary case even if the nullary operator() is not
-  // called
-template <class T> struct is_null_type 
-{ NDNBOOST_STATIC_CONSTANT(bool, value = false); };
-
-template <> struct is_null_type<null_type> 
-{ NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-
-template<class Tuple> struct has_null_type {
-  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> {
-  NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-
-// helpers -------------------
-
-
-template<class Args, class SigArgs>
-class deduce_argument_types_ {
-  typedef typename as_lambda_functor<typename Args::head_type>::type lf_t;
-  typedef typename lf_t::inherited::template sig<SigArgs>::type el_t;  
-public:
-  typedef
-    ndnboost::tuples::cons<
-      el_t, 
-      typename deduce_argument_types_<typename Args::tail_type, SigArgs>::type
-    > type;
-};
-
-template<class SigArgs>
-class deduce_argument_types_<null_type, SigArgs> {
-public:
-  typedef null_type type; 
-};
-
-
-//  // note that tuples cannot have plain function types as elements.
-//  // Hence, all other types will be non-const, except references to 
-//  // functions.
-//  template <class T> struct remove_reference_except_from_functions {
-//    typedef typename ndnboost::remove_reference<T>::type t;
-//    typedef typename detail::IF<ndnboost::is_function<t>::value, T, t>::RET type;
-//  };
-
-template<class Args, class SigArgs>
-class deduce_non_ref_argument_types_ {
-  typedef typename as_lambda_functor<typename Args::head_type>::type lf_t;
-  typedef typename lf_t::inherited::template sig<SigArgs>::type el_t;  
-public:
-  typedef
-    ndnboost::tuples::cons<
-  //      typename detail::remove_reference_except_from_functions<el_t>::type, 
-      typename ndnboost::remove_reference<el_t>::type, 
-      typename deduce_non_ref_argument_types_<typename Args::tail_type, SigArgs>::type
-    > type;
-};
-
-template<class SigArgs>
-class deduce_non_ref_argument_types_<null_type, SigArgs> {
-public:
-  typedef null_type type; 
-};
-
-  // -------------
-
-// take stored Args and Open Args, and return a const list with 
-// deduced elements (real return types)
-template<class Args, class SigArgs>
-class deduce_argument_types {
-  typedef typename deduce_argument_types_<Args, SigArgs>::type t1;
-public:
-  typedef typename detail::IF<
-    has_null_type<t1>::value, null_type, t1
-  >::RET type; 
-};
-
-// take stored Args and Open Args, and return a const list with 
-// deduced elements (references are stripped from the element types)
-
-template<class Args, class SigArgs>
-class deduce_non_ref_argument_types {
-  typedef typename deduce_non_ref_argument_types_<Args, SigArgs>::type t1;
-public:
-  typedef typename detail::IF<
-    has_null_type<t1>::value, null_type, t1
-  >::RET type; 
-};
-
-template <int N, class Args, class SigArgs>
-struct nth_return_type_sig {
-  typedef typename 
-          as_lambda_functor<
-            typename ndnboost::tuples::element<N, Args>::type 
-  //            typename tuple_element_as_reference<N, Args>::type 
-        >::type lf_type;
-
-  typedef typename lf_type::inherited::template sig<SigArgs>::type type;  
-};
-
-template<int N, class Tuple> struct element_or_null {
-  typedef typename ndnboost::tuples::element<N, Tuple>::type type;
-};
-
-template<int N> struct element_or_null<N, null_type> {
-  typedef null_type type;
-};
-
-
-   
-   
-} // end detail
-   
- // -- lambda_functor base ---------------------
-
-// the explicit_return_type_action case -----------------------------------
-template<class RET, class Args>
-class lambda_functor_base<explicit_return_type_action<RET>, Args> 
-{
-public:
-  Args args;
-
-  typedef RET result_type;
-
-  explicit lambda_functor_base(const Args& a) : args(a) {}
-
-  template <class SigArgs> struct sig { typedef RET type; };
-
-  template<class RET_, CALL_TEMPLATE_ARGS>
-  RET call(CALL_FORMAL_ARGS) const 
-  {
-    return detail::constify_rvals<RET>::go(
-     detail::r_select<RET>::go(ndnboost::tuples::get<0>(args), CALL_ACTUAL_ARGS));
-  }
-};
-
-// the protect_action case -----------------------------------
-template<class Args>
-class lambda_functor_base<protect_action, Args>
-{
-public:
-  Args args;
-public:
-
-  explicit lambda_functor_base(const Args& a) : args(a) {}
-
-
-  template<class RET, CALL_TEMPLATE_ARGS>
-  RET call(CALL_FORMAL_ARGS) const 
-  {
-     CALL_USE_ARGS;
-     return ndnboost::tuples::get<0>(args);
-  }
-
-  template<class SigArgs> struct sig { 
-    //    typedef typename detail::tuple_element_as_reference<0, SigArgs>::type type;
-    typedef typename ndnboost::tuples::element<0, Args>::type type;
-  };
-};
-
-// Do nothing --------------------------------------------------------
-class do_nothing_action {};
-
-template<class Args>
-class lambda_functor_base<do_nothing_action, Args> {
-  //  Args args;
-public:
-  //  explicit lambda_functor_base(const Args& a) {}
-  lambda_functor_base() {}
-
-
-  template<class RET, CALL_TEMPLATE_ARGS> RET call(CALL_FORMAL_ARGS) const {
-    return CALL_USE_ARGS;
-  }
-
-  template<class SigArgs> struct sig { typedef void type; };
-};  
-
-
-//  These specializations provide a shorter notation to define actions.
-//  These lambda_functor_base instances take care of the recursive evaluation
-//  of the arguments and pass the evaluated arguments to the apply function
-//  of an action class. To make action X work with these classes, one must
-//  instantiate the lambda_functor_base as:
-//  lambda_functor_base<action<ARITY, X>, Args>
-//  Where ARITY is the arity of the apply function in X
-
-//  The return type is queried as:
-//  return_type_N<X, EvaluatedArgumentTypes>::type
-//  for which there must be a specialization.
-
-//  Function actions, casts, throws,... all go via these classes.
-
-
-template<class Act, class Args>  
-class lambda_functor_base<action<0, Act>, Args>           
-{  
-public:  
-//  Args args; not needed
-  explicit lambda_functor_base(const Args& /*a*/) {}  
-  
-  template<class SigArgs> struct sig {  
-    typedef typename return_type_N<Act, null_type>::type type;
-  };
-  
-  template<class RET, CALL_TEMPLATE_ARGS>  
-  RET call(CALL_FORMAL_ARGS) const {  
-    CALL_USE_ARGS;
-    return Act::template apply<RET>();
-  }
-};
-
-
-#if defined NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART  
-#error "Multiple defines of NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART"  
-#endif  
-  
-  
-#define NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(ARITY)             \
-template<class Act, class Args>                                        \
-class lambda_functor_base<action<ARITY, Act>, Args>                    \
-{                                                                      \
-public:                                                                \
-  Args args;                                                           \
-                                                                       \
-  explicit lambda_functor_base(const Args& a) : args(a) {}             \
-                                                                       \
-  template<class SigArgs> struct sig {                                 \
-    typedef typename                                                   \
-    detail::deduce_argument_types<Args, SigArgs>::type rets_t;         \
-  public:                                                              \
-    typedef typename                                                   \
-      return_type_N_prot<Act, rets_t>::type type;                      \
-  };                                                                   \
-                                                                       \
-                                                                       \
-  template<class RET, CALL_TEMPLATE_ARGS>                              \
-  RET call(CALL_FORMAL_ARGS) const {                                   \
-    using ndnboost::tuples::get;                                          \
-    using detail::constify_rvals;                                      \
-    using detail::r_select;                                            \
-    using detail::element_or_null;                                     \
-    using detail::deduce_argument_types;                                
-
-NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(1)
-
-  typedef typename
-    deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
-  typedef typename element_or_null<0, rets_t>::type rt0;
-
-  return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS))
-    );
-  }
-};
-
-
-NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(2)
-  
-  typedef typename 
-    deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
-  typedef typename element_or_null<0, rets_t>::type rt0;
-  typedef typename element_or_null<1, rets_t>::type rt1;
-
-  return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt1>::go(r_select<rt1>::go(get<1>(args), CALL_ACTUAL_ARGS))
-    );
-  }
-};
-
-NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(3)
-
-  typedef typename 
-    deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
-
-  typedef typename element_or_null<0, rets_t>::type rt0;
-  typedef typename element_or_null<1, rets_t>::type rt1;
-  typedef typename element_or_null<2, rets_t>::type rt2;
-
-  return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt1>::go(r_select<rt1>::go(get<1>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt2>::go(r_select<rt2>::go(get<2>(args), CALL_ACTUAL_ARGS))
-    );
-  }
-};
-
-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;
-  typedef typename element_or_null<1, rets_t>::type rt1;
-  typedef typename element_or_null<2, rets_t>::type rt2;
-  typedef typename element_or_null<3, rets_t>::type rt3;
-
-  return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt1>::go(r_select<rt1>::go(get<1>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt2>::go(r_select<rt2>::go(get<2>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt3>::go(r_select<rt3>::go(get<3>(args), CALL_ACTUAL_ARGS))
-    );
-  }
-};
-
-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;
-  typedef typename element_or_null<1, rets_t>::type rt1;
-  typedef typename element_or_null<2, rets_t>::type rt2;
-  typedef typename element_or_null<3, rets_t>::type rt3;
-  typedef typename element_or_null<4, rets_t>::type rt4;
-
-  return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt1>::go(r_select<rt1>::go(get<1>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt2>::go(r_select<rt2>::go(get<2>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt3>::go(r_select<rt3>::go(get<3>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt4>::go(r_select<rt4>::go(get<4>(args), CALL_ACTUAL_ARGS))
-    );
-  }
-};
-
-NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART(6)
-
-  typedef typename 
-    deduce_argument_types<Args, tuple<CALL_REFERENCE_TYPES> >::type rets_t;
-  typedef typename element_or_null<0, rets_t>::type rt0;
-  typedef typename element_or_null<1, rets_t>::type rt1;
-  typedef typename element_or_null<2, rets_t>::type rt2;
-  typedef typename element_or_null<3, rets_t>::type rt3;
-  typedef typename element_or_null<4, rets_t>::type rt4;
-  typedef typename element_or_null<5, rets_t>::type rt5;
-
-
-    return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt1>::go(r_select<rt1>::go(get<1>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt2>::go(r_select<rt2>::go(get<2>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt3>::go(r_select<rt3>::go(get<3>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt4>::go(r_select<rt4>::go(get<4>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt5>::go(r_select<rt5>::go(get<5>(args), CALL_ACTUAL_ARGS)) 
-    );
-  }
-};
-
-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;
-  typedef typename element_or_null<1, rets_t>::type rt1;
-  typedef typename element_or_null<2, rets_t>::type rt2;
-  typedef typename element_or_null<3, rets_t>::type rt3;
-  typedef typename element_or_null<4, rets_t>::type rt4;
-  typedef typename element_or_null<5, rets_t>::type rt5;
-  typedef typename element_or_null<6, rets_t>::type rt6;
-
-
-  return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt1>::go(r_select<rt1>::go(get<1>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt2>::go(r_select<rt2>::go(get<2>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt3>::go(r_select<rt3>::go(get<3>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt4>::go(r_select<rt4>::go(get<4>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt5>::go(r_select<rt5>::go(get<5>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt6>::go(r_select<rt6>::go(get<6>(args), CALL_ACTUAL_ARGS))
-    );
-  }
-};
-
-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;
-  typedef typename element_or_null<1, rets_t>::type rt1;
-  typedef typename element_or_null<2, rets_t>::type rt2;
-  typedef typename element_or_null<3, rets_t>::type rt3;
-  typedef typename element_or_null<4, rets_t>::type rt4;
-  typedef typename element_or_null<5, rets_t>::type rt5;
-  typedef typename element_or_null<6, rets_t>::type rt6;
-  typedef typename element_or_null<7, rets_t>::type rt7;
-
-  return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt1>::go(r_select<rt1>::go(get<1>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt2>::go(r_select<rt2>::go(get<2>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt3>::go(r_select<rt3>::go(get<3>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt4>::go(r_select<rt4>::go(get<4>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt5>::go(r_select<rt5>::go(get<5>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt6>::go(r_select<rt6>::go(get<6>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt7>::go(r_select<rt7>::go(get<7>(args), CALL_ACTUAL_ARGS))
-    );
-  }
-};
-
-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;
-  typedef typename element_or_null<1, rets_t>::type rt1;
-  typedef typename element_or_null<2, rets_t>::type rt2;
-  typedef typename element_or_null<3, rets_t>::type rt3;
-  typedef typename element_or_null<4, rets_t>::type rt4;
-  typedef typename element_or_null<5, rets_t>::type rt5;
-  typedef typename element_or_null<6, rets_t>::type rt6;
-  typedef typename element_or_null<7, rets_t>::type rt7;
-  typedef typename element_or_null<8, rets_t>::type rt8;
-
-  return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt1>::go(r_select<rt1>::go(get<1>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt2>::go(r_select<rt2>::go(get<2>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt3>::go(r_select<rt3>::go(get<3>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt4>::go(r_select<rt4>::go(get<4>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt5>::go(r_select<rt5>::go(get<5>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt6>::go(r_select<rt6>::go(get<6>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt7>::go(r_select<rt7>::go(get<7>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt8>::go(r_select<rt8>::go(get<8>(args), CALL_ACTUAL_ARGS))
-    );
-  }
-};
-
-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;
-  typedef typename element_or_null<1, rets_t>::type rt1;
-  typedef typename element_or_null<2, rets_t>::type rt2;
-  typedef typename element_or_null<3, rets_t>::type rt3;
-  typedef typename element_or_null<4, rets_t>::type rt4;
-  typedef typename element_or_null<5, rets_t>::type rt5;
-  typedef typename element_or_null<6, rets_t>::type rt6;
-  typedef typename element_or_null<7, rets_t>::type rt7;
-  typedef typename element_or_null<8, rets_t>::type rt8;
-  typedef typename element_or_null<9, rets_t>::type rt9;
-
-  return Act::template apply<RET>(
-    constify_rvals<rt0>::go(r_select<rt0>::go(get<0>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt1>::go(r_select<rt1>::go(get<1>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt2>::go(r_select<rt2>::go(get<2>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt3>::go(r_select<rt3>::go(get<3>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt4>::go(r_select<rt4>::go(get<4>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt5>::go(r_select<rt5>::go(get<5>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt6>::go(r_select<rt6>::go(get<6>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt7>::go(r_select<rt7>::go(get<7>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt8>::go(r_select<rt8>::go(get<8>(args), CALL_ACTUAL_ARGS)),
-    constify_rvals<rt9>::go(r_select<rt9>::go(get<9>(args), CALL_ACTUAL_ARGS)) 
-    );
-  }
-};
-
-#undef NDNBOOST_LAMBDA_LAMBDA_FUNCTOR_BASE_FIRST_PART
-
-
-} // namespace lambda
-} // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/lambda/detail/lambda_functors.hpp b/include/ndnboost/lambda/detail/lambda_functors.hpp
deleted file mode 100644
index 020e86e..0000000
--- a/include/ndnboost/lambda/detail/lambda_functors.hpp
+++ /dev/null
@@ -1,357 +0,0 @@
-// Boost Lambda Library -  lambda_functors.hpp -------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see http://www.boost.org
-
-// ------------------------------------------------
-
-#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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
-
-#include <ndnboost/mpl/or.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-
-#define NDNBOOST_LAMBDA_DISABLE_IF_ARRAY1(A1, R1)\
-  typename lazy_disable_if<is_array<A1>, typename R1 >::type
-#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 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 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
-
-namespace ndnboost { 
-namespace lambda {
-
-// -- lambda_functor --------------------------------------------
-// --------------------------------------------------------------
-
-//inline const null_type const_null_type() { return null_type(); }
-
-namespace detail {
-namespace {
-
-  static const null_type constant_null_type = null_type();
-
-} // unnamed
-} // detail
-
-class unused {};
-
-#define cnull_type() detail::constant_null_type
-
-// -- free variables types -------------------------------------------------- 
- 
-  // helper to work around the case where the nullary return type deduction 
-  // is always performed, even though the functor is not nullary  
-namespace detail {
-  template<int N, class Tuple> struct get_element_or_null_type {
-    typedef typename 
-      detail::tuple_element_as_reference<N, Tuple>::type type;
-  };
-  template<int N> struct get_element_or_null_type<N, null_type> {
-    typedef null_type type;
-  };
-}
-
-template <int I> struct placeholder;
-
-template<> struct placeholder<FIRST> {
-
-  template<class SigArgs> struct sig {
-    typedef typename detail::get_element_or_null_type<0, SigArgs>::type type;
-  };
-
-  template<class RET, CALL_TEMPLATE_ARGS> 
-  RET call(CALL_FORMAL_ARGS) const { 
-    NDNBOOST_STATIC_ASSERT(ndnboost::is_reference<RET>::value); 
-    CALL_USE_ARGS; // does nothing, prevents warnings for unused args
-    return a; 
-  }
-};
-
-template<> struct placeholder<SECOND> {
-
-  template<class SigArgs> struct sig {
-    typedef typename detail::get_element_or_null_type<1, SigArgs>::type type;
-  };
-
-  template<class RET, CALL_TEMPLATE_ARGS> 
-  RET call(CALL_FORMAL_ARGS) const { CALL_USE_ARGS; return b; }
-};
-
-template<> struct placeholder<THIRD> {
-
-  template<class SigArgs> struct sig {
-    typedef typename detail::get_element_or_null_type<2, SigArgs>::type type;
-  };
-
-  template<class RET, CALL_TEMPLATE_ARGS> 
-  RET call(CALL_FORMAL_ARGS) const { CALL_USE_ARGS; return c; }
-};
-
-template<> struct placeholder<EXCEPTION> {
-
-  template<class SigArgs> struct sig {
-    typedef typename detail::get_element_or_null_type<3, SigArgs>::type type;
-  };
-
-  template<class RET, CALL_TEMPLATE_ARGS> 
-  RET call(CALL_FORMAL_ARGS) const { CALL_USE_ARGS; return env; }
-};
-   
-typedef const lambda_functor<placeholder<FIRST> >  placeholder1_type;
-typedef const lambda_functor<placeholder<SECOND> > placeholder2_type;
-typedef const lambda_functor<placeholder<THIRD> >  placeholder3_type;
-   
-
-///////////////////////////////////////////////////////////////////////////////
-
-
-// free variables are lambda_functors. This is to allow uniform handling with 
-// other lambda_functors.
-// -------------------------------------------------------------------
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
-#pragma warning(push)
-#pragma warning(disable:4512) //assignment operator could not be generated
-#endif
-
-// -- lambda_functor NONE ------------------------------------------------
-template <class T>
-class lambda_functor : public T 
-{
-
-NDNBOOST_STATIC_CONSTANT(int, arity_bits = get_arity<T>::value);
- 
-public:
-  typedef T inherited;
-
-  lambda_functor() {}
-  lambda_functor(const lambda_functor& l) : inherited(l) {}
-
-  lambda_functor(const T& t) : inherited(t) {}
-
-  template <class SigArgs> struct sig {
-    typedef typename inherited::template 
-      sig<typename SigArgs::tail_type>::type type;
-  };
-
-  // Note that this return type deduction template is instantiated, even 
-  // if the nullary 
-  // operator() is not called at all. One must make sure that it does not fail.
-  typedef typename 
-    inherited::template sig<null_type>::type
-      nullary_return_type;
-
-  // Support for ndnboost::result_of.
-  template <class Sig> struct result;
-  template <class F>
-  struct result<F()> {
-    typedef nullary_return_type type;
-  };
-  template <class F, class A>
-  struct result<F(A)> {
-    typedef typename sig<tuple<F, A> >::type type;
-  };
-  template <class F, class A, class B>
-  struct result<F(A, B)> {
-    typedef typename sig<tuple<F, A, B> >::type type;
-  };
-  template <class F, class A, class B, class C>
-  struct result<F(A, B, C)> {
-    typedef typename sig<tuple<F, A, B, C> >::type type;
-  };
-
-  nullary_return_type operator()() const { 
-    return inherited::template 
-      call<nullary_return_type>
-        (cnull_type(), cnull_type(), cnull_type(), cnull_type()); 
-  }
-
-  template<class A>
-  typename inherited::template sig<tuple<A&> >::type
-  operator()(A& a) const { 
-    return inherited::template call<
-      typename inherited::template sig<tuple<A&> >::type
-    >(a, cnull_type(), cnull_type(), cnull_type());
-  }
-
-  template<class A>
-  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
-    >(a, cnull_type(), cnull_type(), cnull_type());
-  }
-
-  template<class A, class B>
-  typename inherited::template sig<tuple<A&, B&> >::type
-  operator()(A& a, B& b) const { 
-    return inherited::template call<
-      typename inherited::template sig<tuple<A&, B&> >::type
-    >(a, b, cnull_type(), cnull_type()); 
-  }
-
-  template<class A, class 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
-    >(a, b, cnull_type(), cnull_type()); 
-  }
-
-  template<class A, class B>
-  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
-    >(a, b, cnull_type(), cnull_type()); 
-  }
-
-  template<class A, class B>
-  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
-    >(a, b, cnull_type(), cnull_type()); 
-  }
-
-  template<class A, class B, class C>
-  typename inherited::template sig<tuple<A&, B&, C&> >::type
-  operator()(A& a, B& b, C& c) const
-  { 
-    return inherited::template call<
-      typename inherited::template sig<tuple<A&, B&, C&> >::type
-    >(a, b, c, cnull_type()); 
-  }
-
-  template<class A, class B, class C>
-  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<
-      typename inherited::template sig<tuple<A const&, B const&, C const&> >::type
-    >(a, b, c, cnull_type()); 
-  }
-
-  // for internal calls with env
-  template<CALL_TEMPLATE_ARGS>
-  typename inherited::template sig<tuple<CALL_REFERENCE_TYPES> >::type
-  internal_call(CALL_FORMAL_ARGS) const { 
-     return inherited::template 
-       call<typename inherited::template 
-         sig<tuple<CALL_REFERENCE_TYPES> >::type>(CALL_ACTUAL_ARGS); 
-  }
-
-  template<class A>
-  const lambda_functor<lambda_functor_base<
-                  other_action<assignment_action>,
-                  ndnboost::tuple<lambda_functor,
-                  typename const_copy_argument <const A>::type> > >
-  operator=(const A& a) const {
-    return lambda_functor_base<
-                  other_action<assignment_action>,
-                  ndnboost::tuple<lambda_functor,
-                  typename const_copy_argument <const A>::type> >
-     (  ndnboost::tuple<lambda_functor,
-             typename const_copy_argument <const A>::type>(*this, a) );
-  }
-
-  template<class A> 
-  const lambda_functor<lambda_functor_base< 
-                  other_action<subscript_action>, 
-                  ndnboost::tuple<lambda_functor, 
-                        typename const_copy_argument <const A>::type> > > 
-  operator[](const A& a) const { 
-    return lambda_functor_base< 
-                  other_action<subscript_action>, 
-                  ndnboost::tuple<lambda_functor, 
-                        typename const_copy_argument <const A>::type> >
-     ( ndnboost::tuple<lambda_functor, 
-             typename const_copy_argument <const A>::type>(*this, a ) ); 
-  } 
-};
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1400)
-#pragma warning(pop)
-#endif
-
-} // namespace lambda
-} // namespace ndnboost
-
-namespace ndnboost {
-
-#if !defined(NDNBOOST_RESULT_OF_USE_DECLTYPE) || defined(NDNBOOST_NO_DECLTYPE)
-
-template<class T>
-struct result_of<ndnboost::lambda::lambda_functor<T>()>
-{
-    typedef typename ndnboost::lambda::lambda_functor<T>::nullary_return_type type;
-};
-
-template<class T>
-struct result_of<const ndnboost::lambda::lambda_functor<T>()>
-{
-    typedef typename ndnboost::lambda::lambda_functor<T>::nullary_return_type type;
-};
-
-#endif
-
-template<class T>
-struct tr1_result_of<ndnboost::lambda::lambda_functor<T>()>
-{
-    typedef typename ndnboost::lambda::lambda_functor<T>::nullary_return_type type;
-};
-
-template<class T>
-struct tr1_result_of<const ndnboost::lambda::lambda_functor<T>()>
-{
-    typedef typename ndnboost::lambda::lambda_functor<T>::nullary_return_type type;
-};
-
-}
-
-// is_placeholder
-
-#include <ndnboost/is_placeholder.hpp>
-
-namespace ndnboost
-{
-
-template<> struct is_placeholder< lambda::lambda_functor< lambda::placeholder<lambda::FIRST> > >
-{
-    enum _vt { value = 1 };
-};
-
-template<> struct is_placeholder< lambda::lambda_functor< lambda::placeholder<lambda::SECOND> > >
-{
-    enum _vt { value = 2 };
-};
-
-template<> struct is_placeholder< lambda::lambda_functor< lambda::placeholder<lambda::THIRD> > >
-{
-    enum _vt { value = 3 };
-};
-
-} // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/lambda/detail/lambda_fwd.hpp b/include/ndnboost/lambda/detail/lambda_fwd.hpp
deleted file mode 100644
index 098cef6..0000000
--- a/include/ndnboost/lambda/detail/lambda_fwd.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//  lambda_fwd.hpp - Boost Lambda Library -------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-// -------------------------------------------------------
-
-#ifndef NDNBOOST_LAMBDA_FWD_HPP
-#define NDNBOOST_LAMBDA_FWD_HPP
-
-namespace ndnboost { 
-namespace lambda { 
-
-namespace detail {
-
-template<class T> struct generate_error;
-
-}   
-// -- placeholders --------------------------------------------
-
-template <int I> struct placeholder;
-
-// function_adaptors
-template <class Func> 
-struct function_adaptor;
-
-template <int I, class Act> class action;
-
-template <class Base> 
-class lambda_functor;
-
-template <class Act, class Args> 
-class lambda_functor_base;
-
-} // namespace lambda
-} // namespace ndnboost
-
-
-//  #define CALL_TEMPLATE_ARGS class A, class Env
-//  #define CALL_FORMAL_ARGS A& a, Env& env
-//  #define CALL_ACTUAL_ARGS a, env
-//  #define CALL_ACTUAL_ARGS_NO_ENV a
-//  #define CALL_REFERENCE_TYPES A&, Env&
-//  #define CALL_PLAIN_TYPES A, Env
-#define CALL_TEMPLATE_ARGS class A, class B, class C, class Env
-#define CALL_FORMAL_ARGS A& a, B& b, C& c, Env& env
-#define CALL_ACTUAL_ARGS a, b, c, env
-#define CALL_ACTUAL_ARGS_NO_ENV a, b, c
-#define CALL_REFERENCE_TYPES A&, B&, C&, Env&
-#define CALL_PLAIN_TYPES A, B, C, Env
-
-namespace ndnboost {
-namespace lambda {
-namespace detail {
-
-template<class A1, class A2, class A3, class A4>
-void do_nothing(A1&, A2&, A3&, A4&) {}
-
-} // detail
-} // lambda
-} // boost
-
-// prevent the warnings from unused arguments
-#define CALL_USE_ARGS \
-::ndnboost::lambda::detail::do_nothing(a, b, c, env)
-
-
-
-#endif
diff --git a/include/ndnboost/lambda/detail/lambda_traits.hpp b/include/ndnboost/lambda/detail/lambda_traits.hpp
deleted file mode 100644
index 0236e09..0000000
--- a/include/ndnboost/lambda/detail/lambda_traits.hpp
+++ /dev/null
@@ -1,578 +0,0 @@
-// - lambda_traits.hpp --- Boost Lambda Library ----------------------------
-//
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-// -------------------------------------------------------------------------
-
-#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"
-#include "ndnboost/type_traits/function_traits.hpp"
-#include "ndnboost/type_traits/object_traits.hpp"
-#include "ndnboost/tuple/tuple.hpp"
-
-namespace ndnboost {
-namespace lambda {
-
-// -- if construct ------------------------------------------------
-// Proposed by Krzysztof Czarnecki and Ulrich Eisenecker
-
-namespace detail {
-
-template <bool If, class Then, class Else> struct IF { typedef Then RET; };
-
-template <class Then, class Else> struct IF<false, Then, Else> {
-  typedef Else RET;
-};
-
-
-// An if construct that doesn't instantiate the non-matching template:
-
-// Called as: 
-//  IF_type<condition, A, B>::type 
-// The matching template must define the typeded 'type'
-// I.e. A::type if condition is true, B::type if condition is false
-// Idea from Vesa Karvonen (from C&E as well I guess)
-template<class T>
-struct IF_type_
-{
-  typedef typename T::type type;
-};
-
-
-template<bool C, class T, class E>
-struct IF_type
-{
-  typedef typename
-    IF_type_<typename IF<C, T, E>::RET >::type type;
-};
-
-// helper that can be used to give typedef T to some type
-template <class T> struct identity_mapping { typedef T type; };
-
-// An if construct for finding an integral constant 'value'
-// Does not instantiate the non-matching branch
-// Called as IF_value<condition, A, B>::value
-// If condition is true A::value must be defined, otherwise B::value
-
-template<class T>
-struct IF_value_
-{
-  NDNBOOST_STATIC_CONSTANT(int, value = T::value);
-};
-
-
-template<bool C, class T, class E>
-struct IF_value
-{
-  NDNBOOST_STATIC_CONSTANT(int, value = (IF_value_<typename IF<C, T, E>::RET>::value));
-};
-
-
-// --------------------------------------------------------------
-
-// removes reference from other than function types:
-template<class T> class remove_reference_if_valid
-{
-
-  typedef typename ndnboost::remove_reference<T>::type plainT;
-public:
-  typedef typename IF<
-    ndnboost::is_function<plainT>::value,
-    T,
-    plainT
-  >::RET type;
-
-};
-
-
-template<class T> struct remove_reference_and_cv {
-   typedef typename ndnboost::remove_cv<
-     typename ndnboost::remove_reference<T>::type
-   >::type type;
-};
-
-
-   
-// returns a reference to the element of tuple T
-template<int N, class T> struct tuple_element_as_reference {   
-  typedef typename
-     ndnboost::tuples::access_traits<
-       typename ndnboost::tuples::element<N, T>::type
-     >::non_const_type type;
-};
-
-// returns the cv and reverence stripped type of a tuple element
-template<int N, class T> struct tuple_element_stripped {   
-  typedef typename
-     remove_reference_and_cv<
-       typename ndnboost::tuples::element<N, T>::type
-     >::type type;
-};
-
-// is_lambda_functor -------------------------------------------------   
-
-template <class T> struct is_lambda_functor_ {
-  NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-   
-template <class Arg> struct is_lambda_functor_<lambda_functor<Arg> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-   
-} // end detail
-
-   
-template <class T> struct is_lambda_functor {
-  NDNBOOST_STATIC_CONSTANT(bool, 
-     value = 
-       detail::is_lambda_functor_<
-         typename detail::remove_reference_and_cv<T>::type
-       >::value);
-};
-   
-
-namespace detail {
-
-// -- parameter_traits_ ---------------------------------------------
-
-// An internal parameter type traits class that respects
-// the reference_wrapper class.
-
-// The conversions performed are:
-// references -> compile_time_error
-// T1 -> T2, 
-// reference_wrapper<T> -> T&
-// const array -> ref to const array
-// array -> ref to array
-// function -> ref to function
-
-// ------------------------------------------------------------------------
-
-template<class T1, class T2> 
-struct parameter_traits_ {
-  typedef T2 type;
-};
-
-// Do not instantiate with reference types
-template<class T, class Any> struct parameter_traits_<T&, Any> {
-  typedef typename 
-    generate_error<T&>::
-      parameter_traits_class_instantiated_with_reference_type type;
-};
-
-// Arrays can't be stored as plain types; convert them to references
-template<class T, int n, class Any> struct parameter_traits_<T[n], Any> {
-  typedef T (&type)[n];
-};
-   
-template<class T, int n, class Any> 
-struct parameter_traits_<const T[n], Any> {
-  typedef const T (&type)[n];
-};
-
-template<class T, int n, class Any> 
-struct parameter_traits_<volatile T[n], Any> {
-  typedef volatile  T (&type)[n];
-};
-template<class T, int n, class Any> 
-struct parameter_traits_<const volatile T[n], Any> {
-  typedef const volatile T (&type)[n];
-};
-
-
-template<class T, class Any> 
-struct parameter_traits_<ndnboost::reference_wrapper<T>, Any >{
-  typedef T& type;
-};
-
-template<class T, class Any> 
-struct parameter_traits_<const ndnboost::reference_wrapper<T>, Any >{
-  typedef T& type;
-};
-
-template<class T, class Any> 
-struct parameter_traits_<volatile ndnboost::reference_wrapper<T>, Any >{
-  typedef T& type;
-};
-
-template<class T, class Any> 
-struct parameter_traits_<const volatile ndnboost::reference_wrapper<T>, Any >{
-  typedef T& type;
-};
-
-template<class Any>
-struct parameter_traits_<void, Any> {
-  typedef void type;
-};
-
-template<class Arg, class Any>
-struct parameter_traits_<lambda_functor<Arg>, Any > {
-  typedef lambda_functor<Arg> type;
-};
-
-template<class Arg, class Any>
-struct parameter_traits_<const lambda_functor<Arg>, Any > {
-  typedef lambda_functor<Arg> type;
-};
-
-// Are the volatile versions needed?
-template<class Arg, class Any>
-struct parameter_traits_<volatile lambda_functor<Arg>, Any > {
-  typedef lambda_functor<Arg> type;
-};
-
-template<class Arg, class Any>
-struct parameter_traits_<const volatile lambda_functor<Arg>, Any > {
-  typedef lambda_functor<Arg> type;
-};
-
-} // end namespace detail
-
-
-// ------------------------------------------------------------------------
-// traits classes for lambda expressions (bind functions, operators ...)   
-
-// must be instantiated with non-reference types
-
-// The default is const plain type -------------------------
-// const T -> const T, 
-// T -> const T, 
-// references -> compile_time_error
-// reference_wrapper<T> -> T&
-// array -> const ref array
-template<class T>
-struct const_copy_argument {
-  typedef typename 
-    detail::parameter_traits_<
-      T,
-      typename detail::IF<ndnboost::is_function<T>::value, T&, const T>::RET
-    >::type type;
-};
-
-// T may be a function type. Without the IF test, const would be added 
-// to a function type, which is illegal.
-
-// all arrays are converted to const.
-// This traits template is used for 'const T&' parameter passing 
-// and thus the knowledge of the potential 
-// non-constness of an actual argument is lost.   
-template<class T, int n>  struct const_copy_argument <T[n]> {
-  typedef const T (&type)[n];
-};
-template<class T, int n>  struct const_copy_argument <volatile T[n]> {
-     typedef const volatile T (&type)[n];
-};
-   
-template<class T>
-struct const_copy_argument<T&> {};
-// do not instantiate with references
-  //  typedef typename detail::generate_error<T&>::references_not_allowed type;
-
-
-template<>
-struct const_copy_argument<void> {
-  typedef void type;
-};
-
-
-// Does the same as const_copy_argument, but passes references through as such
-template<class T>
-struct bound_argument_conversion {
-  typedef typename const_copy_argument<T>::type type; 
-};
-
-template<class T>
-struct bound_argument_conversion<T&> {
-  typedef T& type; 
-};
-   
-// The default is non-const reference -------------------------
-// const T -> const T&, 
-// T -> T&, 
-// references -> compile_time_error
-// reference_wrapper<T> -> T&
-template<class T>
-struct reference_argument {
-  typedef typename detail::parameter_traits_<T, T&>::type type; 
-};
-
-template<class T>
-struct reference_argument<T&> {
-  typedef typename detail::generate_error<T&>::references_not_allowed type; 
-};
-
-template<class Arg>
-struct reference_argument<lambda_functor<Arg> > {
-  typedef lambda_functor<Arg> type;
-};
-
-template<class Arg>
-struct reference_argument<const lambda_functor<Arg> > {
-  typedef lambda_functor<Arg> type;
-};
-
-// Are the volatile versions needed?
-template<class Arg>
-struct reference_argument<volatile lambda_functor<Arg> > {
-  typedef lambda_functor<Arg> type;
-};
-
-template<class Arg>
-struct reference_argument<const volatile lambda_functor<Arg> > {
-  typedef lambda_functor<Arg> type;
-};
-
-template<>
-struct reference_argument<void> {
-  typedef void type;
-};
-
-namespace detail {
-   
-// Array to pointer conversion
-template <class T>
-struct array_to_pointer { 
-  typedef T type;
-};
-
-template <class T, int N>
-struct array_to_pointer <const T[N]> { 
-  typedef const T* type;
-};
-template <class T, int N>
-struct array_to_pointer <T[N]> { 
-  typedef T* type;
-};
-
-template <class T, int N>
-struct array_to_pointer <const T (&) [N]> { 
-  typedef const T* type;
-};
-template <class T, int N>
-struct array_to_pointer <T (&) [N]> { 
-  typedef T* type;
-};
-
-
-// ---------------------------------------------------------------------------
-// The call_traits for bind
-// Respects the reference_wrapper class.
-
-// These templates are used outside of bind functions as well.
-// the bind_tuple_mapper provides a shorter notation for default
-// bound argument storing semantics, if all arguments are treated
-// uniformly.
-
-// from template<class T> foo(const T& t) : bind_traits<const T>::type
-// from template<class T> foo(T& t) : bind_traits<T>::type
-
-// Conversions:
-// T -> const T,
-// cv T -> cv T, 
-// T& -> T& 
-// reference_wrapper<T> -> T&
-// const reference_wrapper<T> -> T&
-// array -> const ref array
-
-// make bound arguments const, this is a deliberate design choice, the
-// purpose is to prevent side effects to bound arguments that are stored
-// as copies
-template<class T>
-struct bind_traits {
-  typedef const T type; 
-};
-
-template<class T>
-struct bind_traits<T&> {
-  typedef T& type; 
-};
-
-// null_types are an exception, we always want to store them as non const
-// so that other templates can assume that null_type is always without const
-template<>
-struct bind_traits<null_type> {
-  typedef null_type type;
-};
-
-// the bind_tuple_mapper, bind_type_generators may 
-// introduce const to null_type
-template<>
-struct bind_traits<const null_type> {
-  typedef null_type type;
-};
-
-// Arrays can't be stored as plain types; convert them to references.
-// All arrays are converted to const. This is because bind takes its
-// parameters as const T& and thus the knowledge of the potential 
-// non-constness of actual argument is lost.
-template<class T, int n>  struct bind_traits <T[n]> {
-  typedef const T (&type)[n];
-};
-
-template<class T, int n> 
-struct bind_traits<const T[n]> {
-  typedef const T (&type)[n];
-};
-
-template<class T, int n>  struct bind_traits<volatile T[n]> {
-  typedef const volatile T (&type)[n];
-};
-
-template<class T, int n> 
-struct bind_traits<const volatile T[n]> {
-  typedef const volatile T (&type)[n];
-};
-
-template<class R>
-struct bind_traits<R()> {
-    typedef R(&type)();
-};
-
-template<class R, class Arg1>
-struct bind_traits<R(Arg1)> {
-    typedef R(&type)(Arg1);
-};
-
-template<class R, class Arg1, class Arg2>
-struct bind_traits<R(Arg1, Arg2)> {
-    typedef R(&type)(Arg1, Arg2);
-};
-
-template<class R, class Arg1, class Arg2, class Arg3>
-struct bind_traits<R(Arg1, Arg2, Arg3)> {
-    typedef R(&type)(Arg1, Arg2, Arg3);
-};
-
-template<class R, class Arg1, class Arg2, class Arg3, class Arg4>
-struct bind_traits<R(Arg1, Arg2, Arg3, Arg4)> {
-    typedef R(&type)(Arg1, Arg2, Arg3, Arg4);
-};
-
-template<class R, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
-struct bind_traits<R(Arg1, Arg2, Arg3, Arg4, Arg5)> {
-    typedef R(&type)(Arg1, Arg2, Arg3, Arg4, Arg5);
-};
-
-template<class R, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6>
-struct bind_traits<R(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6)> {
-    typedef R(&type)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6);
-};
-
-template<class R, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7>
-struct bind_traits<R(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7)> {
-    typedef R(&type)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7);
-};
-
-template<class R, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8>
-struct bind_traits<R(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8)> {
-    typedef R(&type)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8);
-};
-
-template<class R, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5, class Arg6, class Arg7, class Arg8, class Arg9>
-struct bind_traits<R(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9)> {
-    typedef R(&type)(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9);
-};
-
-template<class T> 
-struct bind_traits<reference_wrapper<T> >{
-  typedef T& type;
-};
-
-template<class T> 
-struct bind_traits<const reference_wrapper<T> >{
-  typedef T& type;
-};
-
-template<>
-struct bind_traits<void> {
-  typedef void type;
-};
-
-
-
-template <
-  class T0 = null_type, class T1 = null_type, class T2 = null_type, 
-  class T3 = null_type, class T4 = null_type, class T5 = null_type, 
-  class T6 = null_type, class T7 = null_type, class T8 = null_type, 
-  class T9 = null_type
->
-struct bind_tuple_mapper {
-  typedef
-    tuple<typename bind_traits<T0>::type, 
-          typename bind_traits<T1>::type, 
-          typename bind_traits<T2>::type, 
-          typename bind_traits<T3>::type, 
-          typename bind_traits<T4>::type, 
-          typename bind_traits<T5>::type, 
-          typename bind_traits<T6>::type, 
-          typename bind_traits<T7>::type,
-          typename bind_traits<T8>::type,
-          typename bind_traits<T9>::type> type;
-};
-
-// bind_traits, except map const T& -> const T
-  // this is needed e.g. in currying. Const reference arguments can
-  // refer to temporaries, so it is not safe to store them as references.
-  template <class T> struct remove_const_reference {
-    typedef typename bind_traits<T>::type type;
-  };
-
-  template <class T> struct remove_const_reference<const T&> {
-    typedef const T type;
-  };
-
-
-// maps the bind argument types to the resulting lambda functor type
-template <
-  class T0 = null_type, class T1 = null_type, class T2 = null_type, 
-  class T3 = null_type, class T4 = null_type, class T5 = null_type, 
-  class T6 = null_type, class T7 = null_type, class T8 = null_type, 
-  class T9 = null_type
->
-class bind_type_generator {
-
-  typedef typename
-  detail::bind_tuple_mapper<
-    T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-  >::type args_t;
-
-  NDNBOOST_STATIC_CONSTANT(int, nof_elems = ndnboost::tuples::length<args_t>::value);
-
-  typedef 
-    action<
-      nof_elems, 
-      function_action<nof_elems>
-    > action_type;
-
-public:
-  typedef
-    lambda_functor<
-      lambda_functor_base<
-        action_type, 
-        args_t
-      >
-    > type; 
-    
-};
-
-
-   
-} // detail
-   
-template <class T> inline const T&  make_const(const T& t) { return t; }
-
-
-} // end of namespace lambda
-} // end of namespace ndnboost
-
-
-   
-#endif // NDNBOOST_LAMBDA_TRAITS_HPP
diff --git a/include/ndnboost/lambda/detail/member_ptr.hpp b/include/ndnboost/lambda/detail/member_ptr.hpp
deleted file mode 100644
index a6abb74..0000000
--- a/include/ndnboost/lambda/detail/member_ptr.hpp
+++ /dev/null
@@ -1,737 +0,0 @@
-// Boost Lambda Library -- member_ptr.hpp ---------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-// Copyright (C) 2000 Gary Powell (gary.powell@sierra.com)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-// --------------------------------------------------------------------------
-
-#if !defined(NDNBOOST_LAMBDA_MEMBER_PTR_HPP)
-#define NDNBOOST_LAMBDA_MEMBER_PTR_HPP
-
-namespace ndnboost { 
-namespace lambda {
-
-
-class member_pointer_action {};
-
-
-namespace detail {
-
-// the boost type_traits member_pointer traits are not enough, 
-// need to know more details.
-template<class T>
-struct member_pointer {
-  typedef typename ndnboost::add_reference<T>::type type;
-  typedef detail::unspecified class_type;
-  typedef detail::unspecified qualified_class_type;
-  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
-};
-
-template<class T, class U>
-struct member_pointer<T U::*> {
-  typedef typename ndnboost::add_reference<T>::type type;
-  typedef U class_type;
-  typedef U qualified_class_type;
-  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = true);
-  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
-};
-
-template<class T, class U>
-struct member_pointer<const T U::*> {
-  typedef typename ndnboost::add_reference<const T>::type type;
-  typedef U class_type;
-  typedef const U qualified_class_type;
-  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = true);
-  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
-};
-
-template<class T, class U>
-struct member_pointer<volatile T U::*> {
-  typedef typename ndnboost::add_reference<volatile T>::type type;
-  typedef U class_type;
-  typedef volatile U qualified_class_type;
-  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = true);
-  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
-};
-
-template<class T, class U>
-struct member_pointer<const volatile T U::*> {
-  typedef typename ndnboost::add_reference<const volatile T>::type type;
-  typedef U class_type;
-  typedef const volatile U qualified_class_type;
-  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = true);
-  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = false);
-};
-
-// -- nonconst member functions --
-template<class T, class U>
-struct member_pointer<T (U::*)()> {
-  typedef T type;
-  typedef U class_type;
-  typedef U qualified_class_type;
-  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;
-  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;
-  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;
-  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;
-  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;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6)> {
-  typedef T type;
-  typedef U class_type;
-  typedef U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7)> {
-  typedef T type;
-  typedef U class_type;
-  typedef U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7, A8)> {
-  typedef T type;
-  typedef U class_type;
-  typedef U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)> {
-  typedef T type;
-  typedef U class_type;
-  typedef U qualified_class_type;
-  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
-};
-// -- const member functions --
-template<class T, class U>
-struct member_pointer<T (U::*)() const> {
-  typedef T type;
-  typedef U class_type;
-  typedef const U qualified_class_type;
-  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;
-  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;
-  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;
-  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;
-  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;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6) const> {
-  typedef T type;
-  typedef U class_type;
-  typedef const U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7) const> {
-  typedef T type;
-  typedef U class_type;
-  typedef const U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7, A8) const> {
-  typedef T type;
-  typedef U class_type;
-  typedef const U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9) const> {
-  typedef T type;
-  typedef U class_type;
-  typedef const U qualified_class_type;
-  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
-};
-  // -- volatile --
-template<class T, class U>
-struct member_pointer<T (U::*)() volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef volatile U qualified_class_type;
-  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;
-  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;
-  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;
-  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;
-  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;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6) volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef volatile U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7) volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef volatile U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7, A8) volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef volatile U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9) volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef volatile U qualified_class_type;
-  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
-};
-  // -- const volatile
-template<class T, class U>
-struct member_pointer<T (U::*)() const volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef const volatile U qualified_class_type;
-  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;
-  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;
-  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;
-  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> {
-  typedef T type;
-  typedef U class_type;
-  typedef const volatile U qualified_class_type;
-};
-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 volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef const volatile U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6) const volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef const volatile U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7) const volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef const volatile U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7, A8) const volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef const volatile U qualified_class_type;
-  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>
-struct member_pointer<T (U::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9) const volatile> {
-  typedef T type;
-  typedef U class_type;
-  typedef const volatile U qualified_class_type;
-  NDNBOOST_STATIC_CONSTANT(bool, is_data_member = false);
-  NDNBOOST_STATIC_CONSTANT(bool, is_function_member = true);
-};
-
-} // detail
-
-namespace detail {
-
-  // this class holds a pointer to a member function and the object.
-  // when called, it just calls the member function with the parameters 
-  // provided
-
-  // It would have been possible to use existing lambda_functors to represent
-  // a bound member function like this, but to have a separate template is 
-  // safer, since now this functor doesn't mix and match with lambda_functors
-  // only thing you can do with this is to call it
-
-  // note that previously instantiated classes 
-  // (other_action<member_pointer_action> and member_pointer_action_helper
-  // guarantee, that A and B are 
-  // such types, that for objects a and b of corresponding types, a->*b leads 
-  // to the builtin ->* to be called. So types that would end in a  call to 
-  // a user defined ->* do not create a member_pointer_caller object.
-
-template<class RET, class A, class B>
-class member_pointer_caller {
-  A a; B b;
-
-public:
-  member_pointer_caller(const A& aa, const B& bb) : a(aa), b(bb) {}
-
-  RET operator()() const { return (a->*b)(); } 
-
-  template<class A1>
-  RET operator()(const A1& a1) const { return (a->*b)(a1); } 
-
-  template<class A1, class A2>
-  RET operator()(const A1& a1, const A2& a2) const { return (a->*b)(a1, a2); } 
-
-  template<class A1, class A2, class A3>
-  RET operator()(const A1& a1, const A2& a2, const A3& a3) const { 
-    return (a->*b)(a1, a2, a3); 
-  } 
-
-  template<class A1, class A2, class A3, class A4>
-  RET operator()(const A1& a1, const A2& a2, const A3& a3, 
-                 const A4& a4) const { 
-    return (a->*b)(a1, a2, a3, a4); 
-  } 
-
-  template<class A1, class A2, class A3, class A4, class A5>
-  RET operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4, 
-                 const A5& a5) const { 
-    return (a->*b)(a1, a2, a3, a4, a5); 
-  } 
-
-  template<class A1, class A2, class A3, class A4, class A5, class A6>
-  RET operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4, 
-                 const A5& a5, const A6& a6) const { 
-    return (a->*b)(a1, a2, a3, a4, a5, a6); 
-  } 
-
-  template<class A1, class A2, class A3, class A4, class A5, class A6, 
-           class A7>
-  RET operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4, 
-                 const A5& a5, const A6& a6, const A7& a7) const { 
-    return (a->*b)(a1, a2, a3, a4, a5, a6, a7); 
-  } 
-
-  template<class A1, class A2, class A3, class A4, class A5, class A6, 
-           class A7, class A8>
-  RET operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4, 
-                 const A5& a5, const A6& a6, const A7& a7,
-                 const A8& a8) const { 
-    return (a->*b)(a1, a2, a3, a4, a5, a6, a7, a8); 
-  } 
-
-  template<class A1, class A2, class A3, class A4, class A5, class A6, 
-           class A7, class A8, class A9>
-  RET operator()(const A1& a1, const A2& a2, const A3& a3, const A4& a4, 
-                 const A5& a5, const A6& a6, const A7& a7,
-                 const A8& a8, const A9& a9) const { 
-    return (a->*b)(a1, a2, a3, a4, a5, a6, a7, a8, a9); 
-  } 
-
-};
-
-// helper templates for return type deduction and action classes
-// different cases for data member, function member, neither
-
-// true-true case
-template <bool Is_data_member, bool Is_function_member>
-struct member_pointer_action_helper;
-  // cannot be both, no body provided
-
-  // data member case
-  // this means, that B is a data member and A is a pointer type,
-  // so either built-in ->* should be called, or there is an error
-template <>
-struct member_pointer_action_helper<true, false> {
-public:
-
-  template<class RET, class A, class B>
-  static RET apply(A& a, B& b) { 
-    return a->*b; 
-  }
-
-  template<class A, class B>
-  struct return_type {
-  private:
-    typedef typename detail::remove_reference_and_cv<B>::type plainB;
-
-    typedef typename detail::member_pointer<plainB>::type type0;
-    // we remove the reference now, as we may have to add cv:s 
-    typedef typename ndnboost::remove_reference<type0>::type type1;
-
-    // A is a reference to pointer
-    // remove the top level cv qualifiers and reference
-    typedef typename 
-      detail::remove_reference_and_cv<A>::type non_ref_A;
-
-    // A is a pointer type, so take the type pointed to
-    typedef typename ::ndnboost::remove_pointer<non_ref_A>::type non_pointer_A; 
-
-  public:
-    // For non-reference types, we must add const and/or volatile if
-    // the pointer type has these qualifiers
-    // If the member is a reference, these do not have any effect
-    //   (cv T == T if T is a reference type)
-    typedef typename detail::IF<
-      ::ndnboost::is_const<non_pointer_A>::value, 
-      typename ::ndnboost::add_const<type1>::type,
-      type1
-    >::RET type2;
-    typedef typename detail::IF<
-      ::ndnboost::is_volatile<non_pointer_A>::value, 
-      typename ::ndnboost::add_volatile<type2>::type,
-      type2
-    >::RET type3;
-    // add reference back
-    typedef typename ::ndnboost::add_reference<type3>::type type;
-  };
-};
-
-  // neither case
-template <>
-struct member_pointer_action_helper<false, false> {
-public:
-  template<class RET, class A, class B>
-  static RET apply(A& a, B& b) { 
-// not a built in member pointer operator, just call ->*
-    return a->*b; 
-  }
-  // an overloaded member pointer operators, user should have specified
-  // the return type
-  // At this point we know that there is no matching specialization for
-  // return_type_2, so try return_type_2_plain
-  template<class A, class B>
-  struct return_type {
-
-    typedef typename plain_return_type_2<
-      other_action<member_pointer_action>, A, B
-    >::type type;
-  };
-  
-};
-
-
-// member pointer function case
-// This is a built in ->* call for a member function, 
-// the only thing that you can do with that, is to give it some arguments
-// note, it is guaranteed that A is a pointer type, and thus it cannot
-// be a call to overloaded ->*
-template <>
-struct member_pointer_action_helper<false, true> {
-  public:
-
-  template<class RET, class A, class B>
-  static RET apply(A& a, B& b) { 
-    typedef typename ::ndnboost::remove_cv<B>::type plainB;
-    typedef typename detail::member_pointer<plainB>::type ret_t; 
-    typedef typename ::ndnboost::remove_cv<A>::type plainA;
-
-    // we always strip cv:s to 
-    // make the two routes (calling and type deduction)
-    // to give the same results (and the const does not make any functional
-    // difference)
-    return detail::member_pointer_caller<ret_t, plainA, plainB>(a, b); 
-  }
-
-  template<class A, class B>
-  struct return_type {
-    typedef typename detail::remove_reference_and_cv<B>::type plainB;
-    typedef typename detail::member_pointer<plainB>::type ret_t; 
-    typedef typename detail::remove_reference_and_cv<A>::type plainA; 
-
-    typedef detail::member_pointer_caller<ret_t, plainA, plainB> type; 
-  };
-};
-
-} // detail
-
-template<> class other_action<member_pointer_action>  {
-public:
-  template<class RET, class A, class B>
-  static RET apply(A& a, B& b) {
-    typedef typename 
-      ::ndnboost::remove_cv<B>::type plainB;
-
-    return detail::member_pointer_action_helper<
-        ndnboost::is_pointer<A>::value && 
-          detail::member_pointer<plainB>::is_data_member,
-        ndnboost::is_pointer<A>::value && 
-          detail::member_pointer<plainB>::is_function_member
-      >::template apply<RET>(a, b); 
-    }
-};
-
-  // return type deduction --
-
-  // If the right argument is a pointer to data member, 
-  // and the left argument is of compatible pointer to class type
-  // return type is a reference to the data member type
-
-  // if right argument is a pointer to a member function, and the left 
-  // argument is of a compatible type, the return type is a 
-  // member_pointer_caller (see above)
-
-  // Otherwise, return type deduction fails. There is either an error, 
-  // or the user is trying to call an overloaded ->*
-  // In such a case either ret<> must be used, or a return_type_2 user 
-  // defined specialization must be provided
-
-
-template<class A, class B>
-struct return_type_2<other_action<member_pointer_action>, A, B> {
-private:
-  typedef typename 
-    detail::remove_reference_and_cv<B>::type plainB;
-public:
-  typedef typename 
-    detail::member_pointer_action_helper<
-      detail::member_pointer<plainB>::is_data_member,
-      detail::member_pointer<plainB>::is_function_member
-    >::template return_type<A, B>::type type; 
-};
-
-  // this is the way the generic lambda_functor_base functions instantiate
-  // return type deduction. We turn it into return_type_2, so that the 
-  // user can provide specializations on that level.
-template<class Args>
-struct return_type_N<other_action<member_pointer_action>, Args> {
-  typedef typename ndnboost::tuples::element<0, Args>::type A;
-  typedef typename ndnboost::tuples::element<1, Args>::type B;
-  typedef typename 
-    return_type_2<other_action<member_pointer_action>, 
-                  typename ndnboost::remove_reference<A>::type, 
-                  typename ndnboost::remove_reference<B>::type
-                 >::type type;
-};
-
-
-template<class Arg1, class Arg2>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<2, other_action<member_pointer_action> >,
-    tuple<lambda_functor<Arg1>, typename const_copy_argument<Arg2>::type>
-  >
->
-operator->*(const lambda_functor<Arg1>& a1, const Arg2& a2)
-{
-  return 
-      lambda_functor_base<
-        action<2, other_action<member_pointer_action> >,
-        tuple<lambda_functor<Arg1>, typename const_copy_argument<Arg2>::type>
-      >
-      (tuple<lambda_functor<Arg1>, 
-             typename const_copy_argument<Arg2>::type>(a1, a2));
-}
-
-template<class Arg1, class Arg2>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<2, other_action<member_pointer_action> >,
-    tuple<lambda_functor<Arg1>, lambda_functor<Arg2> >
-  >
->
-operator->*(const lambda_functor<Arg1>& a1, const lambda_functor<Arg2>& a2)
-{
-  return 
-      lambda_functor_base<
-        action<2, other_action<member_pointer_action> >,
-        tuple<lambda_functor<Arg1>, lambda_functor<Arg2> >
-      >
-    (tuple<lambda_functor<Arg1>, lambda_functor<Arg2> >(a1, a2));
-}
-
-template<class Arg1, class Arg2>
-inline const
-lambda_functor<
-  lambda_functor_base<
-    action<2, other_action<member_pointer_action> >,
-    tuple<typename const_copy_argument<Arg1>::type, lambda_functor<Arg2> >
-  >
->
-operator->*(const Arg1& a1, const lambda_functor<Arg2>& a2)
-{
-  return 
-      lambda_functor_base<
-        action<2, other_action<member_pointer_action> >,
-        tuple<typename const_copy_argument<Arg1>::type, lambda_functor<Arg2> >
-      >
-      (tuple<typename const_copy_argument<Arg1>::type, 
-             lambda_functor<Arg2> >(a1, a2));
-}
-
-
-} // namespace lambda 
-} // namespace ndnboost
-
-
-#endif
-
-
-
-
-
-
diff --git a/include/ndnboost/lambda/detail/operator_actions.hpp b/include/ndnboost/lambda/detail/operator_actions.hpp
deleted file mode 100644
index 4d05f9f..0000000
--- a/include/ndnboost/lambda/detail/operator_actions.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-// -- operator_actions.hpp - Boost Lambda Library ----------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-
-// For more information, see http://lambda.cs.utu.fi 
-
-#ifndef NDNBOOST_LAMBDA_OPERATOR_ACTIONS_HPP
-#define NDNBOOST_LAMBDA_OPERATOR_ACTIONS_HPP
-
-namespace ndnboost { 
-namespace lambda {
-
-
-// -- artihmetic ----------------------
-
-class plus_action {};
-class minus_action {};
-class multiply_action {};
-class divide_action {};
-class remainder_action {};
-
-// -- bitwise  -------------------
-
-class leftshift_action {};
-class rightshift_action {};
-class xor_action {};
-
-
-// -- bitwise/logical -------------------
-
-class and_action {};
-class or_action {};
-class not_action {};
-
-// -- relational -------------------------
-
-class less_action {};
-class greater_action {};
-class lessorequal_action {};
-class greaterorequal_action {};
-class equal_action {};
-class notequal_action {};
-
-// -- increment/decrement ------------------------------
-
-class increment_action {};
-class decrement_action {};
-
-// -- void return ------------------------------
-
-// -- other  ------------------------------
-
-class addressof_action {};
-  // class comma_action {}; // defined in actions.hpp
-class contentsof_action {};
-// class member_pointer_action {}; (defined in member_ptr.hpp)
-
-
-// -- actioun group templates --------------------
-
-template <class Action> class arithmetic_action;
-template <class Action> class bitwise_action;
-template <class Action> class logical_action;
-template <class Action> class relational_action;
-template <class Action> class arithmetic_assignment_action;
-template <class Action> class bitwise_assignment_action;
-template <class Action> class unary_arithmetic_action;
-template <class Action> class pre_increment_decrement_action;
-template <class Action> class post_increment_decrement_action;
-
-// ---------------------------------------------------------
-
-  // actions, for which the existence of protect is checked in return type 
-  // deduction.
-
-template <class Act> struct is_protectable<arithmetic_action<Act> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template <class Act> struct is_protectable<bitwise_action<Act> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template <class Act> struct is_protectable<logical_action<Act> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template <class Act> struct is_protectable<relational_action<Act> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template <class Act> 
-struct is_protectable<arithmetic_assignment_action<Act> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template <class Act> struct is_protectable<bitwise_assignment_action<Act> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template <class Act> struct is_protectable<unary_arithmetic_action<Act> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template <class Act> 
-struct is_protectable<pre_increment_decrement_action<Act> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template <class Act> struct 
-is_protectable<post_increment_decrement_action<Act> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <> struct is_protectable<other_action<addressof_action> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template <> struct is_protectable<other_action<contentsof_action> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<> struct is_protectable<other_action<subscript_action> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-template<> struct is_protectable<other_action<assignment_action> > {
-  NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-// NOTE: comma action is also protectable, but the specialization is
-  // in actions.hpp
-
-
-} // namespace lambda 
-} // namespace ndnboost
-
-#endif
-
-
-
-
-
-
-
diff --git a/include/ndnboost/lambda/detail/operator_lambda_func_base.hpp b/include/ndnboost/lambda/detail/operator_lambda_func_base.hpp
deleted file mode 100644
index 20bb45d..0000000
--- a/include/ndnboost/lambda/detail/operator_lambda_func_base.hpp
+++ /dev/null
@@ -1,271 +0,0 @@
-// Boost Lambda Library  - operator_lambda_func_base.hpp -----------------
-//
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-// ------------------------------------------------------------
-
-#ifndef NDNBOOST_LAMBDA_OPERATOR_LAMBDA_FUNC_BASE_HPP
-#define NDNBOOST_LAMBDA_OPERATOR_LAMBDA_FUNC_BASE_HPP
-
-namespace ndnboost { 
-namespace lambda {
-
-
-// These operators cannot be implemented as apply functions of action 
-// templates
-
-
-// Specialization for comma.
-template<class Args>
-class lambda_functor_base<other_action<comma_action>, Args> {
-public:
-  Args args;
-public:
-  explicit lambda_functor_base(const Args& a) : args(a) {}
-
-  template<class RET, CALL_TEMPLATE_ARGS>
-  RET call(CALL_FORMAL_ARGS) const {
-    return detail::select(ndnboost::tuples::get<0>(args), CALL_ACTUAL_ARGS), 
-           detail::select(ndnboost::tuples::get<1>(args), CALL_ACTUAL_ARGS); 
-  }
-
-
-  template<class SigArgs> struct sig { 
-  private:
-    typedef typename
-      detail::deduce_argument_types<Args, SigArgs>::type rets_t;      
-  public:
-    typedef typename return_type_2_comma< // comma needs special handling
-      typename detail::element_or_null<0, rets_t>::type,
-      typename detail::element_or_null<1, rets_t>::type
-    >::type type;
-  };
-
-};  
-
-namespace detail {
-
-// helper traits to make the expression shorter, takes binary action
-// bound argument tuple, open argument tuple and gives the return type
-
-template<class Action, class Bound, class Open> class binary_rt {
-  private:
-    typedef typename
-      detail::deduce_argument_types<Bound, Open>::type rets_t;      
-  public:
-    typedef typename return_type_2_prot<
-      Action,  
-      typename detail::element_or_null<0, rets_t>::type,
-      typename detail::element_or_null<1, rets_t>::type
-    >::type type;
-};
-
-
-  // same for unary actions
-template<class Action, class Bound, class Open> class unary_rt {
-  private:
-    typedef typename
-      detail::deduce_argument_types<Bound, Open>::type rets_t;      
-  public:
-    typedef typename return_type_1_prot<
-      Action,  
-      typename detail::element_or_null<0, rets_t>::type
-    >::type type;
-};
-
-
-} // end detail
-
-// Specialization for logical and (to preserve shortcircuiting)
-// this could be done with a macro as the others, code used to be different
-template<class Args>
-class lambda_functor_base<logical_action<and_action>, Args> {
-public:
-  Args args;
-public:
-  explicit lambda_functor_base(const Args& a) : args(a) {}
-
-  template<class RET, CALL_TEMPLATE_ARGS>
-  RET call(CALL_FORMAL_ARGS) const {
-    return detail::select(ndnboost::tuples::get<0>(args), CALL_ACTUAL_ARGS) && 
-           detail::select(ndnboost::tuples::get<1>(args), CALL_ACTUAL_ARGS); 
-  }
-  template<class SigArgs> struct sig { 
-    typedef typename
-      detail::binary_rt<logical_action<and_action>, Args, SigArgs>::type type;
-  };      
-};  
-
-// Specialization for logical or (to preserve shortcircuiting)
-// this could be done with a macro as the others, code used to be different
-template<class Args>
-class lambda_functor_base<logical_action< or_action>, Args> {
-public:
-  Args args;
-public:
-  explicit lambda_functor_base(const Args& a) : args(a) {}
-
-  template<class RET, CALL_TEMPLATE_ARGS>
-  RET call(CALL_FORMAL_ARGS) const {
-    return detail::select(ndnboost::tuples::get<0>(args), CALL_ACTUAL_ARGS) || 
-           detail::select(ndnboost::tuples::get<1>(args), CALL_ACTUAL_ARGS); 
-  }
-
-  template<class SigArgs> struct sig { 
-    typedef typename
-      detail::binary_rt<logical_action<or_action>, Args, SigArgs>::type type;
-  };      
-};  
-
-// Specialization for subscript
-template<class Args>
-class lambda_functor_base<other_action<subscript_action>, Args> {
-public:
-  Args args;
-public:
-  explicit lambda_functor_base(const Args& a) : args(a) {}
-
-  template<class RET, CALL_TEMPLATE_ARGS>
-  RET call(CALL_FORMAL_ARGS) const {
-    return detail::select(ndnboost::tuples::get<0>(args), CALL_ACTUAL_ARGS) 
-           [detail::select(ndnboost::tuples::get<1>(args), CALL_ACTUAL_ARGS)]; 
-  }
-
-  template<class SigArgs> struct sig { 
-    typedef typename
-      detail::binary_rt<other_action<subscript_action>, Args, SigArgs>::type 
-        type;
-  };      
-};  
-
-
-#define NDNBOOST_LAMBDA_BINARY_ACTION(SYMBOL, ACTION_CLASS)  \
-template<class Args>                                                      \
-class lambda_functor_base<ACTION_CLASS, Args> {                           \
-public:                                                                   \
-  Args args;                                                              \
-public:                                                                   \
-  explicit lambda_functor_base(const Args& a) : args(a) {}                \
-                                                                          \
-  template<class RET, CALL_TEMPLATE_ARGS>                                 \
-  RET call(CALL_FORMAL_ARGS) const {                                      \
-    return detail::select(ndnboost::tuples::get<0>(args), CALL_ACTUAL_ARGS)  \
-           SYMBOL                                                         \
-           detail::select(ndnboost::tuples::get<1>(args), CALL_ACTUAL_ARGS); \
-  }                                                                       \
-  template<class SigArgs> struct sig {                                    \
-    typedef typename                                                      \
-      detail::binary_rt<ACTION_CLASS, Args, SigArgs>::type type;          \
-  };                                                                      \
-};  
-
-#define NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(SYMBOL, ACTION_CLASS)            \
-template<class Args>                                                      \
-class lambda_functor_base<ACTION_CLASS, Args> {                           \
-public:                                                                   \
-  Args args;                                                              \
-public:                                                                   \
-  explicit lambda_functor_base(const Args& a) : args(a) {}                \
-                                                                          \
-  template<class RET, CALL_TEMPLATE_ARGS>                                 \
-  RET call(CALL_FORMAL_ARGS) const {                                      \
-    return SYMBOL                                                         \
-           detail::select(ndnboost::tuples::get<0>(args), CALL_ACTUAL_ARGS); \
-  }                                                                       \
-  template<class SigArgs> struct sig {                                    \
-    typedef typename                                                      \
-      detail::unary_rt<ACTION_CLASS, Args, SigArgs>::type type;           \
-  };                                                                      \
-};  
-
-#define NDNBOOST_LAMBDA_POSTFIX_UNARY_ACTION(SYMBOL, ACTION_CLASS)           \
-template<class Args>                                                      \
-class lambda_functor_base<ACTION_CLASS, Args> {                           \
-public:                                                                   \
-  Args args;                                                              \
-public:                                                                   \
-  explicit lambda_functor_base(const Args& a) : args(a) {}                \
-                                                                          \
-  template<class RET, CALL_TEMPLATE_ARGS>                                 \
-  RET call(CALL_FORMAL_ARGS) const {                                      \
-    return                                                                \
-    detail::select(ndnboost::tuples::get<0>(args), CALL_ACTUAL_ARGS) SYMBOL; \
-  }                                                                       \
-  template<class SigArgs> struct sig {                                    \
-    typedef typename                                                      \
-      detail::unary_rt<ACTION_CLASS, Args, SigArgs>::type type;           \
-  };                                                                      \
-};  
-
-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>)
-
-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>)
-
-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>)
-
-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>)
-
-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>)
-
-NDNBOOST_LAMBDA_BINARY_ACTION(=,other_action< assignment_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>)
-
-NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(&,other_action<addressof_action>)
-NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION(*,other_action<contentsof_action>)
-
-NDNBOOST_LAMBDA_POSTFIX_UNARY_ACTION(++, post_increment_decrement_action<increment_action>)
-NDNBOOST_LAMBDA_POSTFIX_UNARY_ACTION(--, post_increment_decrement_action<decrement_action>)
-
-
-#undef NDNBOOST_LAMBDA_POSTFIX_UNARY_ACTION
-#undef NDNBOOST_LAMBDA_PREFIX_UNARY_ACTION
-#undef NDNBOOST_LAMBDA_BINARY_ACTION
-
-} // namespace lambda
-} // namespace ndnboost
-
-#endif
-
-
-
-
-
-
-
-
-
-
diff --git a/include/ndnboost/lambda/detail/operator_return_type_traits.hpp b/include/ndnboost/lambda/detail/operator_return_type_traits.hpp
deleted file mode 100644
index 10b37ca..0000000
--- a/include/ndnboost/lambda/detail/operator_return_type_traits.hpp
+++ /dev/null
@@ -1,917 +0,0 @@
-//  operator_return_type_traits.hpp -- Boost Lambda Library ------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-#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"
-
-#include "ndnboost/indirect_reference.hpp"
-#include "ndnboost/detail/container_fwd.hpp"
-
-#include <cstddef> // needed for the ptrdiff_t
-#include <iosfwd>  // for istream and ostream
-
-#include <iterator> // needed for operator&
-
-namespace ndnboost { 
-namespace lambda {
-namespace detail {
-
-// -- general helper templates for type deduction ------------------
-
-// Much of the type deduction code for standard arithmetic types from Gary Powell
-
-template <class A> struct promote_code { static const int value = -1; };
-// this means that a code is not defined for A
-
-// -- the next 5 types are needed in if_then_else_return 
-// the promotion order is not important, but they must have distinct values.
-template <> struct promote_code<bool> { static const int value = 10; };
-template <> struct promote_code<char> { static const int value = 20; };
-template <> struct promote_code<unsigned char> { static const int value = 30; };
-template <> struct promote_code<signed char> { static const int value = 40; };
-template <> struct promote_code<short int> { static const int value = 50; };
-// ----------
-
-template <> struct promote_code<int> { static const int value = 100; };
-template <> struct promote_code<unsigned int> { static const int value = 200; };
-template <> struct promote_code<long> { static const int value = 300; };
-template <> struct promote_code<unsigned long> { static const int value = 400; };
-
-template <> struct promote_code<float> { static const int value = 500; };
-template <> struct promote_code<double> { static const int value = 600; };
-template <> struct promote_code<long double> { static const int value = 700; };
-
-// TODO: wchar_t
-
-// forward delcaration of complex.
-
-} // namespace detail
-} // namespace lambda 
-} // namespace ndnboost
-
-namespace ndnboost { 
-namespace lambda {
-namespace detail {
-
-template <> struct promote_code< std::complex<float> > { static const int value = 800; };
-template <> struct promote_code< std::complex<double> > { static const int value = 900; };
-template <> struct promote_code< std::complex<long double> > { static const int value = 1000; };
-
-// -- int promotion -------------------------------------------
-template <class T> struct promote_to_int { typedef T type; };
-
-template <> struct promote_to_int<bool> { typedef int type; };
-template <> struct promote_to_int<char> { typedef int type; };
-template <> struct promote_to_int<unsigned char> { typedef int type; };
-template <> struct promote_to_int<signed char> { typedef int type; };
-template <> struct promote_to_int<short int> { typedef int type; };
-
-// The unsigned short int promotion rule is this:
-// unsigned short int to signed int if a signed int can hold all values 
-// of unsigned short int, otherwise go to unsigned int.
-template <> struct promote_to_int<unsigned short int>
-{ 
-        typedef
-                detail::IF<sizeof(int) <= sizeof(unsigned short int),        
-// I had the logic reversed but ">" messes up the parsing.
-                unsigned int,
-                int>::RET type; 
-};
-
-
-// TODO: think, should there be default behaviour for non-standard types?
-
-} // namespace detail
-
-// ------------------------------------------ 
-// Unary actions ----------------------------
-// ------------------------------------------ 
-
-template<class Act, class A>
-struct plain_return_type_1 {
-  typedef detail::unspecified type;
-};
-
-
-
-template<class Act, class A>
-struct plain_return_type_1<unary_arithmetic_action<Act>, A> {
-  typedef A type;
-};
-
-template<class Act, class A> 
-struct return_type_1<unary_arithmetic_action<Act>, A> { 
-  typedef 
-    typename plain_return_type_1<
-      unary_arithmetic_action<Act>,
-      typename detail::remove_reference_and_cv<A>::type
-    >::type type;
-};
-
-
-template<class A>
-struct plain_return_type_1<bitwise_action<not_action>, A> {
-  typedef A type;
-};
-
-// bitwise not, operator~()
-template<class A> struct return_type_1<bitwise_action<not_action>, A> {
-  typedef 
-    typename plain_return_type_1<
-      bitwise_action<not_action>,
-      typename detail::remove_reference_and_cv<A>::type
-    >::type type;
-};
-
-
-// prefix increment and decrement operators return 
-// their argument by default as a non-const reference
-template<class Act, class A> 
-struct plain_return_type_1<pre_increment_decrement_action<Act>, A> {
-  typedef A& type;
-};
-
-template<class Act, class A> 
-struct return_type_1<pre_increment_decrement_action<Act>, A> {
-  typedef 
-    typename plain_return_type_1<
-      pre_increment_decrement_action<Act>,
-      typename detail::remove_reference_and_cv<A>::type
-    >::type type;
-};
-
-// post decrement just returns the same plain type.
-template<class Act, class A>
-struct plain_return_type_1<post_increment_decrement_action<Act>, A> {
-  typedef A type;
-};
-
-template<class Act, class A> 
-struct return_type_1<post_increment_decrement_action<Act>, A> 
-{ 
-  typedef 
-    typename plain_return_type_1<
-      post_increment_decrement_action<Act>,
-      typename detail::remove_reference_and_cv<A>::type
-    >::type type;
-};
-
-// logical not, operator!()
-template<class A> 
-struct plain_return_type_1<logical_action<not_action>, A> {
-  typedef bool type;
-};
-
-template<class A>
-struct return_type_1<logical_action<not_action>, A> {
-  typedef 
-    typename plain_return_type_1<
-      logical_action<not_action>,
-      typename detail::remove_reference_and_cv<A>::type
-    >::type type;
-};
-
-// address of action ---------------------------------------
-
-
-template<class A> 
-struct return_type_1<other_action<addressof_action>, A> { 
-  typedef 
-    typename plain_return_type_1<
-      other_action<addressof_action>, 
-      typename detail::remove_reference_and_cv<A>::type
-    >::type type1;
-
-  // If no user defined specialization for A, then return the
-  // cv qualified pointer to A
-  typedef typename detail::IF<
-    ndnboost::is_same<type1, detail::unspecified>::value, 
-    typename ndnboost::remove_reference<A>::type*,
-    type1
-  >::RET type;
-};
-
-// contentsof action ------------------------------------
-
-// TODO: this deduction may lead to fail directly, 
-// (if A has no specialization for iterator_traits and has no
-// typedef A::reference.
-// There is no easy way around this, cause there doesn't seem to be a way
-// to test whether a class is an iterator or not.
- 
-// The default works with std::iterators.
-
-namespace detail {
-
-  // A is a nonreference type
-template <class A> struct contentsof_type {
-  typedef typename ndnboost::indirect_reference<A>::type type; 
-};
-
-  // this is since the nullary () in lambda_functor is always instantiated
-template <> struct contentsof_type<null_type> {
-  typedef detail::unspecified type;
-};
-
-
-template <class A> struct contentsof_type<const A> {
-  typedef typename contentsof_type<A>::type type;
-};
-
-template <class A> struct contentsof_type<volatile A> {
-  typedef typename contentsof_type<A>::type type;
-};
-
-template <class A> struct contentsof_type<const volatile A> {
-  typedef typename contentsof_type<A>::type type;
-};
-
-  // standard iterator traits should take care of the pointer types 
-  // but just to be on the safe side, we have the specializations here:
-  // these work even if A is cv-qualified.
-template <class A> struct contentsof_type<A*> {
-  typedef A& type;
-};
-template <class A> struct contentsof_type<A* const> {
-  typedef A& type;
-};
-template <class A> struct contentsof_type<A* volatile> {
-  typedef A& type;
-};
-template <class A> struct contentsof_type<A* const volatile> {
-  typedef A& type;
-};
-
-template<class A, int N> struct contentsof_type<A[N]> { 
-  typedef A& type; 
-};
-template<class A, int N> struct contentsof_type<const A[N]> { 
-  typedef const A& type; 
-};
-template<class A, int N> struct contentsof_type<volatile A[N]> { 
-  typedef volatile A& type; 
-};
-template<class A, int N> struct contentsof_type<const volatile A[N]> { 
-  typedef const volatile A& type; 
-};
-
-
-
-
-
-} // end detail
-
-template<class A> 
-struct return_type_1<other_action<contentsof_action>, A> { 
-
-  typedef 
-    typename plain_return_type_1<
-      other_action<contentsof_action>, 
-      typename detail::remove_reference_and_cv<A>::type
-    >::type type1;
-
-  // If no user defined specialization for A, then return the
-  // cv qualified pointer to A
-  typedef typename 
-  detail::IF_type<
-    ndnboost::is_same<type1, detail::unspecified>::value, 
-    detail::contentsof_type<
-      typename ndnboost::remove_reference<A>::type
-    >,
-    detail::identity_mapping<type1>
-  >::type type;
-};
-
-
-// ------------------------------------------------------------------
-// binary actions ---------------------------------------------------
-// ------------------------------------------------------------------
-
-// here the default case is: no user defined versions:
-template <class Act, class A, class B>
-struct plain_return_type_2 {
-  typedef detail::unspecified type; 
-};
-
-namespace detail {
-
-// error classes
-class illegal_pointer_arithmetic{};
-
-// pointer arithmetic type deductions ----------------------
-// value = false means that this is not a pointer arithmetic case
-// value = true means, that this can be a pointer arithmetic case, but not necessarily is
-// This means, that for user defined operators for pointer types, say for some operator+(X, *Y),
-// the deductions must be coded at an earliel level (return_type_2).
-
-template<class Act, class A, class B> 
-struct pointer_arithmetic_traits { static const bool value = false; };
-
-template<class A, class B> 
-struct pointer_arithmetic_traits<plus_action, A, B> { 
-
-  typedef typename 
-    array_to_pointer<typename ndnboost::remove_reference<A>::type>::type AP;
-  typedef typename 
-    array_to_pointer<typename ndnboost::remove_reference<B>::type>::type BP;
-
-  static const bool is_pointer_A = ndnboost::is_pointer<AP>::value;
-  static const bool is_pointer_B = ndnboost::is_pointer<BP>::value;  
-
-  static const bool value = is_pointer_A || is_pointer_B;
-
-  // can't add two pointers.
-  // note, that we do not check wether the other type is valid for 
-  // addition with a pointer.
-  // the compiler will catch it in the apply function
-
-  typedef typename 
-  detail::IF<
-    is_pointer_A && is_pointer_B, 
-      detail::return_type_deduction_failure<
-        detail::illegal_pointer_arithmetic
-      >,
-      typename detail::IF<is_pointer_A, AP, BP>::RET
-  >::RET type; 
-
-};
-
-template<class A, class B> 
-struct pointer_arithmetic_traits<minus_action, A, B> { 
-  typedef typename 
-    array_to_pointer<typename ndnboost::remove_reference<A>::type>::type AP;
-  typedef typename 
-    array_to_pointer<typename ndnboost::remove_reference<B>::type>::type BP;
-
-  static const bool is_pointer_A = ndnboost::is_pointer<AP>::value;
-  static const bool is_pointer_B = ndnboost::is_pointer<BP>::value;  
-
-  static const bool value = is_pointer_A || is_pointer_B;
-
-  static const bool same_pointer_type =
-    is_pointer_A && is_pointer_B && 
-    ndnboost::is_same<
-      typename ndnboost::remove_const<
-        typename ndnboost::remove_pointer<
-          typename ndnboost::remove_const<AP>::type
-        >::type
-      >::type,
-      typename ndnboost::remove_const<
-        typename ndnboost::remove_pointer<
-          typename ndnboost::remove_const<BP>::type
-        >::type
-      >::type
-    >::value;
-
-  // ptr - ptr has type ptrdiff_t
-  // note, that we do not check if, in ptr - B, B is 
-  // valid for subtraction with a pointer.
-  // the compiler will catch it in the apply function
-
-  typedef typename 
-  detail::IF<
-    same_pointer_type, const std::ptrdiff_t,
-    typename detail::IF<
-      is_pointer_A, 
-      AP, 
-      detail::return_type_deduction_failure<detail::illegal_pointer_arithmetic>
-    >::RET
-  >::RET type; 
-};
-
-} // namespace detail
-   
-// -- arithmetic actions ---------------------------------------------
-
-namespace detail {
-   
-template<bool is_pointer_arithmetic, class Act, class A, class B> 
-struct return_type_2_arithmetic_phase_1;
-
-template<class A, class B> struct return_type_2_arithmetic_phase_2;
-template<class A, class B> struct return_type_2_arithmetic_phase_3;
-
-} // namespace detail
-  
-
-// drop any qualifiers from the argument types within arithmetic_action
-template<class A, class B, class Act> 
-struct return_type_2<arithmetic_action<Act>, A, B>
-{
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<arithmetic_action<Act>, plain_A, plain_B>::type type1;
-  
-  // if user defined return type, do not enter the whole arithmetic deductions
-  typedef typename 
-    detail::IF_type<
-      ndnboost::is_same<type1, detail::unspecified>::value, 
-      detail::return_type_2_arithmetic_phase_1<
-         detail::pointer_arithmetic_traits<Act, A, B>::value, Act, A, B
-      >,
-      plain_return_type_2<arithmetic_action<Act>, plain_A, plain_B>
-    >::type type;
-};
-
-namespace detail {
-   
-// perform integral promotion, no pointer arithmetic
-template<bool is_pointer_arithmetic, class Act, class A, class B> 
-struct return_type_2_arithmetic_phase_1
-{
-  typedef typename 
-    return_type_2_arithmetic_phase_2<
-      typename remove_reference_and_cv<A>::type,
-      typename remove_reference_and_cv<B>::type
-    >::type type;
-};
-
-// pointer_arithmetic
-template<class Act, class A, class B> 
-struct return_type_2_arithmetic_phase_1<true, Act, A, B>
-{
-  typedef typename 
-    pointer_arithmetic_traits<Act, A, B>::type type;
-};
-
-template<class A, class B>
-struct return_type_2_arithmetic_phase_2 {
-  typedef typename
-    return_type_2_arithmetic_phase_3<
-      typename promote_to_int<A>::type, 
-      typename promote_to_int<B>::type
-    >::type type;
-};
-
-// specialization for unsigned int.
-// We only have to do these two specialization because the value promotion will
-// take care of the other cases.
-// The unsigned int promotion rule is this:
-// unsigned int to long if a long can hold all values of unsigned int,
-// otherwise go to unsigned long.
-
-// struct so I don't have to type this twice.
-struct promotion_of_unsigned_int
-{
-        typedef
-        detail::IF<sizeof(long) <= sizeof(unsigned int),        
-                unsigned long,
-                long>::RET type; 
-};
-
-template<>
-struct return_type_2_arithmetic_phase_2<unsigned int, long>
-{
-        typedef promotion_of_unsigned_int::type type;
-};
-template<>
-struct return_type_2_arithmetic_phase_2<long, unsigned int>
-{
-        typedef promotion_of_unsigned_int::type type;
-};
-
-
-template<class A, class B> struct return_type_2_arithmetic_phase_3 { 
-   enum { promote_code_A_value = promote_code<A>::value,
-         promote_code_B_value = promote_code<B>::value }; // enums for KCC
-  typedef typename
-    detail::IF<
-      promote_code_A_value == -1 || promote_code_B_value == -1,
-      detail::return_type_deduction_failure<return_type_2_arithmetic_phase_3>,
-      typename detail::IF<
-        ((int)promote_code_A_value > (int)promote_code_B_value), 
-        A, 
-        B
-      >::RET
-    >::RET type;                    
-};
-
-} // namespace detail
-
-// --  bitwise actions -------------------------------------------
-// note: for integral types deuduction is similar to arithmetic actions. 
-
-// drop any qualifiers from the argument types within arithmetic action
-template<class A, class B, class Act> 
-struct return_type_2<bitwise_action<Act>, A, B>
-{
-
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<bitwise_action<Act>, plain_A, plain_B>::type type1;
-  
-  // if user defined return type, do not enter type deductions
-  typedef typename 
-    detail::IF_type<
-      ndnboost::is_same<type1, detail::unspecified>::value, 
-      return_type_2<arithmetic_action<plus_action>, A, B>,
-      plain_return_type_2<bitwise_action<Act>, plain_A, plain_B>
-    >::type type;
-
-  // plus_action is just a random pick, has to be a concrete instance
-
-  // TODO: This check is only valid for built-in types, overloaded types might
-  // accept floating point operators
-
-  // 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
-  NDNBOOST_STATIC_ASSERT(!(ndnboost::is_float<plain_A>::value && ndnboost::is_float<plain_B>::value));
-
-};
-
-namespace detail {
-
-#ifdef NDNBOOST_NO_TEMPLATED_STREAMS
-
-template<class A, class B>
-struct leftshift_type {
-
-  typedef typename detail::IF<
-    ndnboost::is_convertible<
-      typename ndnboost::remove_reference<A>::type*,
-      std::ostream*
-    >::value,
-    std::ostream&, 
-    typename detail::remove_reference_and_cv<A>::type
-  >::RET type;
-};
-
-template<class A, class B>
-struct rightshift_type {
-
-  typedef typename detail::IF<
-
-    ndnboost::is_convertible<
-      typename ndnboost::remove_reference<A>::type*,
-      std::istream*
-    >::value, 
-    std::istream&,
-    typename detail::remove_reference_and_cv<A>::type
-  >::RET type;
-};
-
-#else
-
-template <class T> struct get_ostream_type {
-  typedef std::basic_ostream<typename T::char_type, 
-                             typename T::traits_type>& type;
-};
-
-template <class T> struct get_istream_type {
-  typedef std::basic_istream<typename T::char_type, 
-                             typename T::traits_type>& type;
-};
-
-template<class A, class B>
-struct leftshift_type {
-private:
-  typedef typename ndnboost::remove_reference<A>::type plainA;
-public:
-  typedef typename detail::IF_type<
-    is_instance_of_2<plainA, std::basic_ostream>::value, 
-    get_ostream_type<plainA>, //reference to the stream 
-    detail::remove_reference_and_cv<A>
-  >::type type;
-};
-
-template<class A, class B>
-struct rightshift_type {
-private:
-  typedef typename ndnboost::remove_reference<A>::type plainA;
-public:
-  typedef typename detail::IF_type<
-    is_instance_of_2<plainA, std::basic_istream>::value, 
-    get_istream_type<plainA>, //reference to the stream 
-    detail::remove_reference_and_cv<A>
-  >::type type;
-};
-
-
-#endif
-
-} // end detail
-
-// ostream
-template<class A, class B> 
-struct return_type_2<bitwise_action<leftshift_action>, A, B>
-{
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<bitwise_action<leftshift_action>, plain_A, plain_B>::type type1;
-  
-  // if user defined return type, do not enter type deductions
-  typedef typename 
-    detail::IF_type<
-      ndnboost::is_same<type1, detail::unspecified>::value, 
-      detail::leftshift_type<A, B>,
-      plain_return_type_2<bitwise_action<leftshift_action>, plain_A, plain_B>
-    >::type type;
-};
-
-// istream
-template<class A, class B> 
-struct return_type_2<bitwise_action<rightshift_action>, A, B>
-{
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<bitwise_action<rightshift_action>, plain_A, plain_B>::type type1;
-  
-  // if user defined return type, do not enter type deductions
-  typedef typename 
-    detail::IF_type<
-      ndnboost::is_same<type1, detail::unspecified>::value, 
-      detail::rightshift_type<A, B>,
-      plain_return_type_2<bitwise_action<rightshift_action>, plain_A, plain_B>
-    >::type type;
-};
-
-// -- logical actions ----------------------------------------
-// always bool
-// NOTE: this may not be true for some weird user-defined types,
-template<class A, class B, class Act> 
-struct plain_return_type_2<logical_action<Act>, A, B> { 
-  typedef bool type; 
-};
-
-template<class A, class B, class Act> 
-struct return_type_2<logical_action<Act>, A, B> { 
-
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<logical_action<Act>, plain_A, plain_B>::type type;
-  
-};
-
-
-// -- relational actions ----------------------------------------
-// always bool
-// NOTE: this may not be true for some weird user-defined types,
-template<class A, class B, class Act> 
-struct plain_return_type_2<relational_action<Act>, A, B> { 
-  typedef bool type; 
-};
-
-template<class A, class B, class Act> 
-struct return_type_2<relational_action<Act>, A, B> { 
-
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<relational_action<Act>, plain_A, plain_B>::type type; 
-};
-
-// Assingment actions -----------------------------------------------
-// return type is the type of the first argument as reference
-
-// note that cv-qualifiers are preserved.
-// Yes, assignment operator can be const!
-
-// NOTE: this may not be true for some weird user-defined types,
-
-template<class A, class B, class Act> 
-struct return_type_2<arithmetic_assignment_action<Act>, A, B> { 
-
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<
-      arithmetic_assignment_action<Act>, plain_A, plain_B
-    >::type type1;
-  
-  typedef typename 
-    detail::IF<
-      ndnboost::is_same<type1, detail::unspecified>::value, 
-      typename ndnboost::add_reference<A>::type,
-      type1
-    >::RET type;
-};
-
-template<class A, class B, class Act> 
-struct return_type_2<bitwise_assignment_action<Act>, A, B> { 
-
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<
-      bitwise_assignment_action<Act>, plain_A, plain_B
-    >::type type1;
-  
-  typedef typename 
-    detail::IF<
-      ndnboost::is_same<type1, detail::unspecified>::value, 
-      typename ndnboost::add_reference<A>::type,
-      type1
-    >::RET type;
-};
-
-template<class A, class B> 
-struct return_type_2<other_action<assignment_action>, A, B> { 
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<
-      other_action<assignment_action>, plain_A, plain_B
-    >::type type1;
-  
-  typedef typename 
-    detail::IF<
-      ndnboost::is_same<type1, detail::unspecified>::value, 
-      typename ndnboost::add_reference<A>::type,
-      type1
-    >::RET type;
-};
-
-// -- other actions ----------------------------------------
-
-// comma action ----------------------------------
-// Note: this may not be true for some weird user-defined types,
-
-// NOTE! This only tries the plain_return_type_2 layer and gives
-// detail::unspecified as default. If no such specialization is found, the 
-// type rule in the spcecialization of the return_type_2_prot is used
-// to give the type of the right argument (which can be a reference too)
-// (The built in operator, can return a l- or rvalue).
-template<class A, class B> 
-struct return_type_2<other_action<comma_action>, A, B> { 
-
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename 
-    plain_return_type_2<
-      other_action<comma_action>, plain_A, plain_B
-    >::type type;
-  };
-
-// subscript action -----------------------------------------------
-
-
-namespace detail {
-  // A and B are nonreference types
-template <class A, class B> struct subscript_type {
-  typedef detail::unspecified type; 
-};
-
-template <class A, class B> struct subscript_type<A*, B> {
-  typedef A& type;
-};
-template <class A, class B> struct subscript_type<A* const, B> {
-  typedef A& type;
-};
-template <class A, class B> struct subscript_type<A* volatile, B> {
-  typedef A& type;
-};
-template <class A, class B> struct subscript_type<A* const volatile, B> {
-  typedef A& type;
-};
-
-
-template<class A, class B, int N> struct subscript_type<A[N], B> { 
-  typedef A& type; 
-};
-
-  // these 3 specializations are needed to make gcc <3 happy
-template<class A, class B, int N> struct subscript_type<const A[N], B> { 
-  typedef const A& type; 
-};
-template<class A, class B, int N> struct subscript_type<volatile A[N], B> { 
-  typedef volatile A& type; 
-};
-template<class A, class B, int N> struct subscript_type<const volatile A[N], B> { 
-  typedef const volatile A& type; 
-};
-
-} // end detail
-
-template<class A, class B>
-struct return_type_2<other_action<subscript_action>, A, B> {
-
-  typedef typename detail::remove_reference_and_cv<A>::type plain_A;
-  typedef typename detail::remove_reference_and_cv<B>::type plain_B;
-
-  typedef typename ndnboost::remove_reference<A>::type nonref_A;
-  typedef typename ndnboost::remove_reference<B>::type nonref_B;
-
-  typedef typename 
-    plain_return_type_2<
-      other_action<subscript_action>, plain_A, plain_B
-    >::type type1;
-  
-  typedef typename 
-    detail::IF_type<
-      ndnboost::is_same<type1, detail::unspecified>::value, 
-      detail::subscript_type<nonref_A, nonref_B>,
-      plain_return_type_2<other_action<subscript_action>, plain_A, plain_B>
-    >::type type;
-
-};
-
-template<class Key, class T, class Cmp, class Allocator, class B> 
-struct plain_return_type_2<other_action<subscript_action>, std::map<Key, T, Cmp, Allocator>, B> { 
-  typedef T& type;
-  // T == std::map<Key, T, Cmp, Allocator>::mapped_type; 
-};
-
-template<class Key, class T, class Cmp, class Allocator, class B> 
-struct plain_return_type_2<other_action<subscript_action>, std::multimap<Key, T, Cmp, Allocator>, B> { 
-  typedef T& type;
-  // T == std::map<Key, T, Cmp, Allocator>::mapped_type; 
-};
-
-  // deque
-template<class T, class Allocator, class B> 
-struct plain_return_type_2<other_action<subscript_action>, std::deque<T, Allocator>, B> { 
-  typedef typename std::deque<T, Allocator>::reference type;
-};
-template<class T, class Allocator, class B> 
-struct plain_return_type_2<other_action<subscript_action>, const std::deque<T, Allocator>, B> { 
-  typedef typename std::deque<T, Allocator>::const_reference type;
-};
-
-  // vector
-template<class T, class Allocator, class B> 
-struct plain_return_type_2<other_action<subscript_action>, std::vector<T, Allocator>, B> { 
-  typedef typename std::vector<T, Allocator>::reference type;
-};
-template<class T, class Allocator, class B> 
-struct plain_return_type_2<other_action<subscript_action>, const std::vector<T, Allocator>, B> { 
-  typedef typename std::vector<T, Allocator>::const_reference type;
-};
-
-  // basic_string
-template<class Char, class Traits, class Allocator, class B> 
-struct plain_return_type_2<other_action<subscript_action>, std::basic_string<Char, Traits, Allocator>, B> { 
-  typedef typename std::basic_string<Char, Traits, Allocator>::reference type;
-};
-template<class Char, class Traits, class Allocator, class B> 
-struct plain_return_type_2<other_action<subscript_action>, const std::basic_string<Char, Traits, Allocator>, B> { 
-  typedef typename std::basic_string<Char, Traits, Allocator>::const_reference type;
-};
-
-template<class Char, class Traits, class Allocator> 
-struct plain_return_type_2<arithmetic_action<plus_action>,
-                           std::basic_string<Char, Traits, Allocator>,
-                           std::basic_string<Char, Traits, Allocator> > { 
-  typedef std::basic_string<Char, Traits, Allocator> type;
-};
-
-template<class Char, class Traits, class Allocator> 
-struct plain_return_type_2<arithmetic_action<plus_action>,
-                           const Char*,
-                           std::basic_string<Char, Traits, Allocator> > { 
-  typedef std::basic_string<Char, Traits, Allocator> type;
-};
-
-template<class Char, class Traits, class Allocator> 
-struct plain_return_type_2<arithmetic_action<plus_action>,
-                           std::basic_string<Char, Traits, Allocator>,
-                           const Char*> { 
-  typedef std::basic_string<Char, Traits, Allocator> type;
-};
-
-template<class Char, class Traits, class Allocator, std::size_t N> 
-struct plain_return_type_2<arithmetic_action<plus_action>,
-                           Char[N],
-                           std::basic_string<Char, Traits, Allocator> > { 
-  typedef std::basic_string<Char, Traits, Allocator> type;
-};
-
-template<class Char, class Traits, class Allocator, std::size_t N> 
-struct plain_return_type_2<arithmetic_action<plus_action>,
-                           std::basic_string<Char, Traits, Allocator>,
-                           Char[N]> { 
-  typedef std::basic_string<Char, Traits, Allocator> type;
-};
-
-
-} // namespace lambda
-} // namespace ndnboost
-
-#endif
-
-
diff --git a/include/ndnboost/lambda/detail/operators.hpp b/include/ndnboost/lambda/detail/operators.hpp
deleted file mode 100644
index fac9a48..0000000
--- a/include/ndnboost/lambda/detail/operators.hpp
+++ /dev/null
@@ -1,370 +0,0 @@
-// Boost Lambda Library - operators.hpp --------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-// ---------------------------------------------------------------
-
-#ifndef NDNBOOST_LAMBDA_OPERATORS_HPP
-#define NDNBOOST_LAMBDA_OPERATORS_HPP
-
-#include "ndnboost/lambda/detail/is_instance_of.hpp"
-
-namespace ndnboost { 
-namespace lambda {
-
-#if defined NDNBOOST_LAMBDA_BE1
-#error "Multiple defines of NDNBOOST_LAMBDA_BE1"
-#endif
-
-  // For all BOOSTA_LAMBDA_BE* macros:
-
-  // CONSTA must be either 'A' or 'const A'
-  // CONSTB must be either 'B' or 'const B'
-
-  // It is stupid to have the names A and B as macro arguments, but it avoids
-  // the need to pass in emtpy macro arguments, which gives warnings on some
-  // compilers
-
-#define NDNBOOST_LAMBDA_BE1(OPER_NAME, ACTION, CONSTA, CONSTB, CONVERSION)      \
-template<class Arg, class B>                                                 \
-inline const                                                                 \
-lambda_functor<                                                              \
-  lambda_functor_base<                                                       \
-    ACTION,                                                                  \
-    tuple<lambda_functor<Arg>, typename const_copy_argument <CONSTB>::type>  \
-  >                                                                          \
->                                                                            \
-OPER_NAME (const lambda_functor<Arg>& a, CONSTB& b) {                      \
-  return                                                                     \
-    lambda_functor_base<                                                     \
-      ACTION,                                                                \
-      tuple<lambda_functor<Arg>, typename const_copy_argument <CONSTB>::type>\
-    >                                                                        \
-   (tuple<lambda_functor<Arg>, typename const_copy_argument <CONSTB>::type>(a, b)); \
-}
-
-
-#if defined NDNBOOST_LAMBDA_BE2
-#error "Multiple defines of NDNBOOST_LAMBDA_BE2"
-#endif
-
-#define NDNBOOST_LAMBDA_BE2(OPER_NAME, ACTION, CONSTA, CONSTB, CONVERSION)      \
-template<class A, class Arg>                                                 \
-inline const                                                                 \
-lambda_functor<                                                              \
-  lambda_functor_base<                                                       \
-    ACTION,                                                                  \
-    tuple<typename CONVERSION <CONSTA>::type, lambda_functor<Arg> >        \
-  >                                                                          \
->                                                                            \
-OPER_NAME (CONSTA& a, const lambda_functor<Arg>& b) {                      \
-  return                                                                     \
-    lambda_functor_base<                                                     \
-      ACTION,                                                                \
-      tuple<typename CONVERSION <CONSTA>::type, lambda_functor<Arg> >      \
-    >                                                                        \
-  (tuple<typename CONVERSION <CONSTA>::type, lambda_functor<Arg> >(a, b)); \
-}
-
-
-#if defined NDNBOOST_LAMBDA_BE3
-#error "Multiple defines of NDNBOOST_LAMBDA_BE3"
-#endif
-
-#define NDNBOOST_LAMBDA_BE3(OPER_NAME, ACTION, CONSTA, CONSTB, CONVERSION)    \
-template<class ArgA, class ArgB>                                           \
-inline const                                                               \
-lambda_functor<                                                            \
-  lambda_functor_base<                                                     \
-    ACTION,                                                                \
-    tuple<lambda_functor<ArgA>, lambda_functor<ArgB> >                     \
-  >                                                                        \
->                                                                          \
-OPER_NAME (const lambda_functor<ArgA>& a, const lambda_functor<ArgB>& b) { \
-  return                                                                   \
-    lambda_functor_base<                                                   \
-      ACTION,                                                              \
-      tuple<lambda_functor<ArgA>, lambda_functor<ArgB> >                   \
-    >                                                                      \
-  (tuple<lambda_functor<ArgA>, lambda_functor<ArgB> >(a, b));              \
-}
-
-#if defined NDNBOOST_LAMBDA_BE
-#error "Multiple defines of NDNBOOST_LAMBDA_BE"
-#endif
-
-#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 NDNBOOST_LAMBDA_EMPTY() 
-
-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)
-
-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 NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME
-#error "Multiple defines of NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME"
-#endif
-
-#define NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME operator,
-
-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)
-
-
-
-namespace detail {
-
-// special cases for ostream& << Any and istream& >> Any ---------------
-// the actual stream classes may vary and thus a specialisation for, 
-// say ostream& does not match (the general case above is chosen). 
-// Therefore we specialise for non-const reference:
-// if the left argument is a stream, we store the stream as reference
-// if it is something else, we store a const plain by default
-
-// Note that the overloading is const vs. non-const first argument
-
-#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,
-                       T&,
-                       typename const_copy_argument <T>::type
-                     >::RET type;
-};
-
-template<class T> struct convert_istream_to_ref_others_to_c_plain_by_default {
-  typedef typename detail::IF<
-                       ndnboost::is_convertible<T*, std::istream*>::value,
-                       T&,
-                       typename const_copy_argument <T>::type
-                     >::RET type;
-};
-#else
-
-template<class T> struct convert_ostream_to_ref_others_to_c_plain_by_default {
-  typedef typename detail::IF<
-                       is_instance_of_2<
-                         T, std::basic_ostream
-                       >::value,
-                       T&,
-                       typename const_copy_argument <T>::type
-                     >::RET type;
-};
-
-template<class T> struct convert_istream_to_ref_others_to_c_plain_by_default {
-  typedef typename detail::IF<
-                       is_instance_of_2<
-                         T, std::basic_istream
-                       >::value,
-                       T&,
-                       typename const_copy_argument <T>::type
-                     >::RET type;
-};
-#endif
-
-} // detail
-
-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.
-// function references cannot be given as arguments to lambda operator
-// expressions in general. With << and >> the use of manipulators is
-// so common, that specializations are provided to make them work.
-
-template<class Arg, class Ret, class ManipArg>
-inline const 
-lambda_functor<
-  lambda_functor_base<
-    bitwise_action<leftshift_action>,
-    tuple<lambda_functor<Arg>, Ret(&)(ManipArg)> 
-  > 
->
-operator<<(const lambda_functor<Arg>& a, Ret(&b)(ManipArg))
-{
-  return 
-      lambda_functor_base<
-        bitwise_action<leftshift_action>,
-        tuple<lambda_functor<Arg>, Ret(&)(ManipArg)>
-      > 
-    ( tuple<lambda_functor<Arg>, Ret(&)(ManipArg)>(a, b) );
-}
-
-template<class Arg, class Ret, class ManipArg>
-inline const 
-lambda_functor<
-  lambda_functor_base<
-    bitwise_action<rightshift_action>,
-    tuple<lambda_functor<Arg>, Ret(&)(ManipArg)>
-  > 
->
-operator>>(const lambda_functor<Arg>& a, Ret(&b)(ManipArg))
-{
-  return 
-      lambda_functor_base<
-        bitwise_action<rightshift_action>,
-        tuple<lambda_functor<Arg>, Ret(&)(ManipArg)>
-      > 
-    ( tuple<lambda_functor<Arg>, Ret(&)(ManipArg)>(a, b) );
-}
-
-
-// (+ and -) take their arguments as const references. 
-// This has consquences with pointer artihmetic
-// E.g int a[]; ... *a = 1 works but not *(a+1) = 1. 
-// 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  NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1
-#error "Multiple defines of  NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1"
-#endif
-
-#define NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1(OPER_NAME, ACTION, CONSTB)           \
-template<class Arg, int N, class B>                                         \
-inline const                                                                \
-lambda_functor<                                                             \
-  lambda_functor_base<ACTION, tuple<lambda_functor<Arg>, CONSTB(&)[N]> >    \
->                                                                           \
-OPER_NAME (const lambda_functor<Arg>& a, CONSTB(&b)[N])                     \
-{                                                                           \
-  return                                                                    \
-    lambda_functor_base<ACTION, tuple<lambda_functor<Arg>, CONSTB(&)[N]> >  \
-  (tuple<lambda_functor<Arg>, CONSTB(&)[N]>(a, b));                         \
-}
-
-
-#if defined  NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2
-#error "Multiple defines of  NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2"
-#endif
-
-#define NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2(OPER_NAME, ACTION, CONSTA)           \
-template<int N, class A, class Arg>                                         \
-inline const                                                                \
-lambda_functor<                                                             \
-  lambda_functor_base<ACTION, tuple<CONSTA(&)[N], lambda_functor<Arg> > >   \
->                                                                           \
-OPER_NAME (CONSTA(&a)[N], const lambda_functor<Arg>& b)                     \
-{                                                                           \
-  return                                                                    \
-    lambda_functor_base<ACTION, tuple<CONSTA(&)[N], lambda_functor<Arg> > > \
-    (tuple<CONSTA(&)[N], lambda_functor<Arg> >(a, b));                      \
-}
-
-
-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)
-
-
-//NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1(operator-, arithmetic_action<minus_action>)
-// This is not needed, since the result of ptr-ptr is an rvalue anyway
-
-NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2(operator-, arithmetic_action<minus_action>, A)
-NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2(operator-, arithmetic_action<minus_action>, const A)
-
-
-#undef NDNBOOST_LAMBDA_BE1
-#undef NDNBOOST_LAMBDA_BE2
-#undef NDNBOOST_LAMBDA_BE3
-#undef NDNBOOST_LAMBDA_BE
-#undef NDNBOOST_LAMBDA_COMMA_OPERATOR_NAME
-
-#undef NDNBOOST_LAMBDA_PTR_ARITHMETIC_E1
-#undef NDNBOOST_LAMBDA_PTR_ARITHMETIC_E2
-
-
-// ---------------------------------------------------------------------
-// unary operators -----------------------------------------------------
-// ---------------------------------------------------------------------
-
-#if defined NDNBOOST_LAMBDA_UE
-#error "Multiple defines of NDNBOOST_LAMBDA_UE"
-#endif
-
-#define NDNBOOST_LAMBDA_UE(OPER_NAME, ACTION)                                 \
-template<class Arg>                                                        \
-inline const                                                               \
-lambda_functor<lambda_functor_base<ACTION, tuple<lambda_functor<Arg> > > > \
-OPER_NAME (const lambda_functor<Arg>& a)                                   \
-{                                                                          \
-  return                                                                   \
-    lambda_functor_base<ACTION, tuple<lambda_functor<Arg> > >              \
-    ( tuple<lambda_functor<Arg> >(a) );                                    \
-}
-
-
-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 NDNBOOST_LAMBDA_POSTFIX_UE
-#error "Multiple defines of NDNBOOST_LAMBDA_POSTFIX_UE"
-#endif
-
-#define NDNBOOST_LAMBDA_POSTFIX_UE(OPER_NAME, ACTION)                         \
-template<class Arg>                                                        \
-inline const                                                               \
-lambda_functor<lambda_functor_base<ACTION, tuple<lambda_functor<Arg> > > > \
-OPER_NAME (const lambda_functor<Arg>& a, int)                              \
-{                                                                          \
-  return                                                                   \
-    lambda_functor_base<ACTION, tuple<lambda_functor<Arg> > >              \
-    ( tuple<lambda_functor<Arg> >(a) );                                    \
-}
-
-
-NDNBOOST_LAMBDA_POSTFIX_UE(operator++, post_increment_decrement_action<increment_action>)
-NDNBOOST_LAMBDA_POSTFIX_UE(operator--, post_increment_decrement_action<decrement_action>)
-
-#undef NDNBOOST_LAMBDA_UE
-#undef NDNBOOST_LAMBDA_POSTFIX_UE
-
-} // namespace lambda
-} // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/lambda/detail/ret.hpp b/include/ndnboost/lambda/detail/ret.hpp
deleted file mode 100644
index 9145ece..0000000
--- a/include/ndnboost/lambda/detail/ret.hpp
+++ /dev/null
@@ -1,325 +0,0 @@
-// Boost Lambda Library  ret.hpp -----------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-
-#ifndef NDNBOOST_LAMBDA_RET_HPP
-#define NDNBOOST_LAMBDA_RET_HPP
-
-namespace ndnboost { 
-namespace lambda {
-
-  // TODO:
-
-//  Add specializations for function references for ret, protect and unlambda
-//  e.g void foo(); unlambda(foo); fails, as it would add a const qualifier
-  // for a function type. 
-  // on the other hand unlambda(*foo) does work
-
-
-// -- ret -------------------------
-// the explicit return type template 
-
-  // TODO: It'd be nice to make ret a nop for other than lambda functors
-  // but causes an ambiguiyty with gcc (not with KCC), check what is the
-  // right interpretation.
-
-  //  // ret for others than lambda functors has no effect
-  // template <class U, class T>
-  // inline const T& ret(const T& t) { return t; }
-
-
-template<class RET, class Arg>
-inline const 
-lambda_functor<
-  lambda_functor_base<
-    explicit_return_type_action<RET>, 
-    tuple<lambda_functor<Arg> >
-  > 
->
-ret(const lambda_functor<Arg>& a1)
-{
-  return  
-    lambda_functor_base<
-      explicit_return_type_action<RET>, 
-      tuple<lambda_functor<Arg> >
-    > 
-    (tuple<lambda_functor<Arg> >(a1));
-}
-
-// protect ------------------
-
-  // protecting others than lambda functors has no effect
-template <class T>
-inline const T& protect(const T& t) { return t; }
-
-template<class Arg>
-inline const 
-lambda_functor<
-  lambda_functor_base<
-    protect_action, 
-    tuple<lambda_functor<Arg> >
-  > 
->
-protect(const lambda_functor<Arg>& a1)
-{
-  return 
-      lambda_functor_base<
-        protect_action, 
-        tuple<lambda_functor<Arg> >
-      > 
-    (tuple<lambda_functor<Arg> >(a1));
-}
-   
-// -------------------------------------------------------------------
-
-// Hides the lambda functorness of a lambda functor. 
-// After this, the functor is immune to argument substitution, etc.
-// This can be used, e.g. to make it safe to pass lambda functors as 
-// arguments to functions, which might use them as target functions
-
-// note, unlambda and protect are different things. Protect hides the lambda
-// functor for one application, unlambda for good.
-
-template <class LambdaFunctor>
-class non_lambda_functor
-{
-  LambdaFunctor lf;
-public:
-  
-  // This functor defines the result_type typedef.
-  // The result type must be deducible without knowing the arguments
-
-  template <class SigArgs> struct sig {
-    typedef typename 
-      LambdaFunctor::inherited:: 
-        template sig<typename SigArgs::tail_type>::type type;
-  };
-
-  explicit non_lambda_functor(const LambdaFunctor& a) : lf(a) {}
-
-  typename LambdaFunctor::nullary_return_type  
-  operator()() const {
-    return lf.template 
-      call<typename LambdaFunctor::nullary_return_type>
-        (cnull_type(), cnull_type(), cnull_type(), cnull_type()); 
-  }
-
-  template<class A>
-  typename sig<tuple<const non_lambda_functor, A&> >::type 
-  operator()(A& a) const {
-    return lf.template call<typename sig<tuple<const non_lambda_functor, A&> >::type >(a, cnull_type(), cnull_type(), cnull_type()); 
-  }
-
-  template<class A, class B>
-  typename sig<tuple<const non_lambda_functor, A&, B&> >::type 
-  operator()(A& a, B& b) const {
-    return lf.template call<typename sig<tuple<const non_lambda_functor, A&, B&> >::type >(a, b, cnull_type(), cnull_type()); 
-  }
-
-  template<class A, class B, class C>
-  typename sig<tuple<const non_lambda_functor, A&, B&, C&> >::type 
-  operator()(A& a, B& b, C& c) const {
-    return lf.template call<typename sig<tuple<const non_lambda_functor, A&, B&, C&> >::type>(a, b, c, cnull_type()); 
-  }
-};
-
-template <class Arg>
-inline const Arg& unlambda(const Arg& a) { return a; }
-
-template <class Arg>
-inline const non_lambda_functor<lambda_functor<Arg> > 
-unlambda(const lambda_functor<Arg>& a)
-{
-  return non_lambda_functor<lambda_functor<Arg> >(a);
-}
-
-  // Due to a language restriction, lambda functors cannot be made to
-  // accept non-const rvalue arguments. Usually iterators do not return 
-  // temporaries, but sometimes they do. That's why a workaround is provided.
-  // Note, that this potentially breaks const correctness, so be careful!
-
-// any lambda functor can be turned into a const_incorrect_lambda_functor
-// The operator() takes arguments as consts and then casts constness
-// away. So this breaks const correctness!!! but is a necessary workaround
-// in some cases due to language limitations.
-// Note, that this is not a lambda_functor anymore, so it can not be used
-// as a sub lambda expression.
-
-template <class LambdaFunctor>
-struct const_incorrect_lambda_functor {
-  LambdaFunctor lf;
-public:
-
-  explicit const_incorrect_lambda_functor(const LambdaFunctor& a) : lf(a) {}
-
-  template <class SigArgs> struct sig {
-    typedef typename
-      LambdaFunctor::inherited::template 
-        sig<typename SigArgs::tail_type>::type type;
-  };
-
-  // The nullary case is not needed (no arguments, no parameter type problems)
-
-  template<class A>
-  typename sig<tuple<const const_incorrect_lambda_functor, A&> >::type
-  operator()(const A& a) const {
-    return lf.template call<typename sig<tuple<const const_incorrect_lambda_functor, A&> >::type >(const_cast<A&>(a), cnull_type(), cnull_type(), cnull_type());
-  }
-
-  template<class A, class B>
-  typename sig<tuple<const const_incorrect_lambda_functor, A&, B&> >::type
-  operator()(const A& a, const B& b) const {
-    return lf.template call<typename sig<tuple<const const_incorrect_lambda_functor, A&, B&> >::type >(const_cast<A&>(a), const_cast<B&>(b), cnull_type(), cnull_type());
-  }
-
-  template<class A, class B, class C>
-  typename sig<tuple<const const_incorrect_lambda_functor, A&, B&, C&> >::type
-  operator()(const A& a, const B& b, const C& c) const {
-    return lf.template call<typename sig<tuple<const const_incorrect_lambda_functor, A&, B&, C&> >::type>(const_cast<A&>(a), const_cast<B&>(b), const_cast<C&>(c), cnull_type());
-  }
-};
-
-// ------------------------------------------------------------------------
-// any lambda functor can be turned into a const_parameter_lambda_functor
-// The operator() takes arguments as const.
-// This is useful if lambda functors are called with non-const rvalues.
-// Note, that this is not a lambda_functor anymore, so it can not be used
-// as a sub lambda expression.
-
-template <class LambdaFunctor>
-struct const_parameter_lambda_functor {
-  LambdaFunctor lf;
-public:
-
-  explicit const_parameter_lambda_functor(const LambdaFunctor& a) : lf(a) {}
-
-  template <class SigArgs> struct sig {
-    typedef typename
-      LambdaFunctor::inherited::template 
-        sig<typename SigArgs::tail_type>::type type;
-  };
-
-  // The nullary case is not needed: no arguments, no constness problems.
-
-  template<class A>
-  typename sig<tuple<const const_parameter_lambda_functor, const A&> >::type
-  operator()(const A& a) const {
-    return lf.template call<typename sig<tuple<const const_parameter_lambda_functor, const A&> >::type >(a, cnull_type(), cnull_type(), cnull_type());
-  }
-
-  template<class A, class B>
-  typename sig<tuple<const const_parameter_lambda_functor, const A&, const B&> >::type
-  operator()(const A& a, const B& b) const {
-    return lf.template call<typename sig<tuple<const const_parameter_lambda_functor, const A&, const B&> >::type >(a, b, cnull_type(), cnull_type());
-  }
-
-  template<class A, class B, class C>
-  typename sig<tuple<const const_parameter_lambda_functor, const A&, const B&, const C&>
->::type
-  operator()(const A& a, const B& b, const C& c) const {
-    return lf.template call<typename sig<tuple<const const_parameter_lambda_functor, const A&, const B&, const C&> >::type>(a, b, c, cnull_type());
-  }
-};
-
-template <class Arg>
-inline const const_incorrect_lambda_functor<lambda_functor<Arg> >
-break_const(const lambda_functor<Arg>& lf)
-{
-  return const_incorrect_lambda_functor<lambda_functor<Arg> >(lf);
-}
-
-
-template <class Arg>
-inline const const_parameter_lambda_functor<lambda_functor<Arg> >
-const_parameters(const lambda_functor<Arg>& lf)
-{
-  return const_parameter_lambda_functor<lambda_functor<Arg> >(lf);
-}
-
-// make void ------------------------------------------------
-// make_void( x ) turns a lambda functor x with some return type y into
-// another lambda functor, which has a void return type
-// when called, the original return type is discarded
-
-// we use this action. The action class will be called, which means that
-// the wrapped lambda functor is evaluated, but we just don't do anything
-// with the result.
-struct voidifier_action {
-  template<class Ret, class A> static void apply(A&) {}
-};
-
-template<class Args> struct return_type_N<voidifier_action, Args> {
-  typedef void type;
-};
-
-template<class Arg1>
-inline const 
-lambda_functor<
-  lambda_functor_base<
-    action<1, voidifier_action>,
-    tuple<lambda_functor<Arg1> >
-  > 
-> 
-make_void(const lambda_functor<Arg1>& a1) { 
-return 
-    lambda_functor_base<
-      action<1, voidifier_action>,
-      tuple<lambda_functor<Arg1> >
-    > 
-  (tuple<lambda_functor<Arg1> > (a1));
-}
-
-// for non-lambda functors, make_void does nothing 
-// (the argument gets evaluated immediately)
-
-template<class Arg1>
-inline const 
-lambda_functor<
-  lambda_functor_base<do_nothing_action, null_type> 
-> 
-make_void(const Arg1&) { 
-return 
-    lambda_functor_base<do_nothing_action, null_type>();
-}
-
-// std_functor -----------------------------------------------------
-
-//  The STL uses the result_type typedef as the convention to let binders know
-//  the return type of a function object. 
-//  LL uses the sig template.
-//  To let LL know that the function object has the result_type typedef 
-//  defined, it can be wrapped with the std_functor function.
-
-
-// Just inherit form the template parameter (the standard functor), 
-// and provide a sig template. So we have a class which is still the
-// same functor + the sig template.
-
-template<class T>
-struct result_type_to_sig : public T {
-  template<class Args> struct sig { typedef typename T::result_type type; };
-  result_type_to_sig(const T& t) : T(t) {}
-};
-
-template<class F>
-inline result_type_to_sig<F> std_functor(const F& f) { return f; }
-
-
-} // namespace lambda 
-} // namespace ndnboost
-
-#endif
-
-
-
-
-
-
-
diff --git a/include/ndnboost/lambda/detail/return_type_traits.hpp b/include/ndnboost/lambda/detail/return_type_traits.hpp
deleted file mode 100644
index 7950a68..0000000
--- a/include/ndnboost/lambda/detail/return_type_traits.hpp
+++ /dev/null
@@ -1,282 +0,0 @@
-//  return_type_traits.hpp -- Boost Lambda Library ---------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see www.boost.org
-
-
-#ifndef NDNBOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
-#define NDNBOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
-
-#include "ndnboost/mpl/has_xxx.hpp"
-
-#include <cstddef> // needed for the ptrdiff_t
-
-namespace ndnboost { 
-namespace lambda {
-
-using ::ndnboost::type_traits::ice_and;
-using ::ndnboost::type_traits::ice_or;
-using ::ndnboost::type_traits::ice_not;
-
-// Much of the type deduction code for standard arithmetic types 
-// from Gary Powell
-
-  // different arities:
-template <class Act, class A1> struct return_type_1; // 1-ary actions
-template <class Act, class A1, class A2> struct return_type_2; // 2-ary
-template <class Act, class Args> struct return_type_N; // >3- ary
-
-template <class Act, class A1> struct return_type_1_prot;
-template <class Act, class A1, class A2> struct return_type_2_prot; // 2-ary
-template <class Act, class A1> struct return_type_N_prot; // >3-ary
-
-
-namespace detail {
-
-template<class> class return_type_deduction_failure {};
-
-  // In some cases return type deduction should fail (an invalid lambda 
-  // expression). Sometimes the lambda expression can be ok, the return type
-  // just is not deducible (user defined operators). Then return type deduction
-  // should never be entered at all, and the use of ret<> does this.
-  // However, for nullary lambda functors, return type deduction is always
-  // entered, and there seems to be no way around this.
-
-  // (the return type is part of the prototype of the non-template
-  // operator()(). The prototype is instantiated, even though the body 
-  // is not.) 
- 
-  // So, in the case the return type deduction should fail, it should not
-  // fail directly, but rather result in a valid but wrong return type,
-  // causing a compile time error only if the function is really called.
-
-
-
-} // end detail
-
-
-
-// return_type_X_prot classes --------------------------------------------
-// These classes are the first layer that gets instantiated from the 
-// lambda_functor_base sig templates. It will check whether 
-// the action is protectable and one of arguments is "protected" or its
-// evaluation will otherwise result in another lambda functor.
-// If this is a case, the result type will be another lambda functor.
-
-// The arguments are always non-reference types, except for comma action
-// where the right argument can be a reference too. This is because it 
-// matters (in the builtin case) whether the argument is an lvalue or 
-// rvalue: int i; i, 1 -> rvalue; 1, i -> lvalue
-
-template <class Act, class A> struct return_type_1_prot {
-public:
-  typedef typename 
-    detail::IF<
-  //      is_protectable<Act>::value && is_lambda_functor<A>::value,
-      ice_and<is_protectable<Act>::value, is_lambda_functor<A>::value>::value,
-      lambda_functor<
-        lambda_functor_base< 
-          Act, 
-          tuple<typename detail::remove_reference_and_cv<A>::type>
-        >
-      >,
-      typename return_type_1<Act, A>::type
-    >::RET type;  
-};
-
-  // take care of the unavoidable instantiation for nullary case
-template<class Act> struct return_type_1_prot<Act, null_type> {
-  typedef null_type type;
-};
- 
-// Unary actions (result from unary operators)
-// do not have a default return type.
-template<class Act, class A> struct return_type_1 { 
-   typedef typename 
-     detail::return_type_deduction_failure<return_type_1> type;
-};
-
-
-namespace detail {
-
-  template <class T>
-  class protect_conversion {
-      typedef typename ndnboost::remove_reference<T>::type non_ref_T;
-    public:
-
-  // add const to rvalues, so that all rvalues are stored as const in 
-  // the args tuple
-    typedef typename detail::IF_type<
-//      ndnboost::is_reference<T>::value && !ndnboost::is_const<non_ref_T>::value,
-      ice_and<ndnboost::is_reference<T>::value,
-              ice_not<ndnboost::is_const<non_ref_T>::value>::value>::value,
-      detail::identity_mapping<T>,
-      const_copy_argument<non_ref_T> // handles funtion and array 
-    >::type type;                      // types correctly
-  };
-
-} // end detail
-
-template <class Act, class A, class B> struct return_type_2_prot {
-
-// experimental feature
-  // We may have a lambda functor as a result type of a subexpression 
-  // (if protect) has  been used.
-  // Thus, if one of the parameter types is a lambda functor, the result
-  // is a lambda functor as well. 
-  // We need to make a conservative choise here.
-  // The resulting lambda functor stores all const reference arguments as
-  // const copies. References to non-const are stored as such.
-  // So if the source of the argument is a const open argument, a bound
-  // argument stored as a const reference, or a function returning a 
-  // const reference, that information is lost. There is no way of 
-  // telling apart 'real const references' from just 'LL internal
-  // const references' (or it would be really hard)
-
-  // The return type is a subclass of lambda_functor, which has a converting 
-  // copy constructor. It can copy any lambda functor, that has the same 
-  // action type and code, and a copy compatible argument tuple.
-
-
-  typedef typename ndnboost::remove_reference<A>::type non_ref_A;
-  typedef typename ndnboost::remove_reference<B>::type non_ref_B;
-
-typedef typename 
-  detail::IF<
-//    is_protectable<Act>::value &&
-//      (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
-    ice_and<is_protectable<Act>::value,
-            ice_or<is_lambda_functor<A>::value, 
-                   is_lambda_functor<B>::value>::value>::value,
-    lambda_functor<
-      lambda_functor_base< 
-        Act, 
-        tuple<typename detail::protect_conversion<A>::type, 
-              typename detail::protect_conversion<B>::type>
-      >
-    >,
-    typename return_type_2<Act, non_ref_A, non_ref_B>::type
-  >::RET type;
-};
-
-  // take care of the unavoidable instantiation for nullary case
-template<class Act> struct return_type_2_prot<Act, null_type, null_type> {
-  typedef null_type type;
-};
-  // take care of the unavoidable instantiation for nullary case
-template<class Act, class Other> struct return_type_2_prot<Act, Other, null_type> {
-  typedef null_type type;
-};
-  // take care of the unavoidable instantiation for nullary case
-template<class Act, class Other> struct return_type_2_prot<Act, null_type, Other> {
-  typedef null_type type;
-};
-
-  // comma is a special case, as the user defined operator can return
-  // an lvalue (reference) too, hence it must be handled at this level.
-template<class A, class B> 
-struct return_type_2_comma
-{
-  typedef typename ndnboost::remove_reference<A>::type non_ref_A;
-  typedef typename ndnboost::remove_reference<B>::type non_ref_B;
-
-typedef typename 
-  detail::IF<
-//  is_protectable<other_action<comma_action> >::value && // it is protectable
-//  (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
-    ice_and<is_protectable<other_action<comma_action> >::value, // it is protectable
-            ice_or<is_lambda_functor<A>::value, 
-                   is_lambda_functor<B>::value>::value>::value,
-    lambda_functor<
-      lambda_functor_base< 
-        other_action<comma_action>, 
-        tuple<typename detail::protect_conversion<A>::type, 
-              typename detail::protect_conversion<B>::type>
-      >
-    >,
-    typename 
-      return_type_2<other_action<comma_action>, non_ref_A, non_ref_B>::type
-  >::RET type1;
-
-   // if no user defined return_type_2 (or plain_return_type_2) specialization
-  // matches, then return the righthand argument
-  typedef typename 
-    detail::IF<
-      ndnboost::is_same<type1, detail::unspecified>::value, 
-      B,
-      type1
-    >::RET type;
-
-};
-
-
-  // currently there are no protectable actions with > 2 args
-
-template<class Act, class Args> struct return_type_N_prot {
-  typedef typename return_type_N<Act, Args>::type type;
-};
-
-  // take care of the unavoidable instantiation for nullary case
-template<class Act> struct return_type_N_prot<Act, null_type> {
-  typedef null_type type;
-};
-
-// handle different kind of actions ------------------------
-
-  // use the return type given in the bind invocation as bind<Ret>(...)
-template<int I, class Args, class Ret> 
-struct return_type_N<function_action<I, Ret>, Args> { 
-  typedef Ret type;
-};
-
-// ::result_type support
-
-namespace detail
-{
-
-NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
-
-template<class F> struct get_result_type
-{
-  typedef typename F::result_type type;
-};
-
-template<class F, class A> struct get_sig
-{
-  typedef typename function_adaptor<F>::template sig<A>::type type;
-};
-
-} // namespace detail
-
-  // Ret is detail::unspecified, so try to deduce return type
-template<int I, class Args> 
-struct return_type_N<function_action<I, detail::unspecified>, Args > { 
-
-  // in the case of function action, the first element in Args is 
-  // some type of function
-  typedef typename Args::head_type Func;
-  typedef typename detail::remove_reference_and_cv<Func>::type plain_Func;
-
-public: 
-  // pass the function to function_adaptor, and get the return type from 
-  // that
-  typedef typename detail::IF<
-    detail::has_result_type<plain_Func>::value,
-    detail::get_result_type<plain_Func>,
-    detail::get_sig<plain_Func, Args>
-  >::RET::type type;
-};
-
-
-} // namespace lambda
-} // namespace ndnboost
-
-#endif
-
-
-
diff --git a/include/ndnboost/lambda/detail/select_functions.hpp b/include/ndnboost/lambda/detail/select_functions.hpp
deleted file mode 100644
index 515ce05..0000000
--- a/include/ndnboost/lambda/detail/select_functions.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-// -- select_functions.hpp -- Boost Lambda Library --------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see http://www.boost.org
-
-
-#ifndef NDNBOOST_LAMBDA_SELECT_FUNCTIONS_HPP
-#define NDNBOOST_LAMBDA_SELECT_FUNCTIONS_HPP
-
-namespace ndnboost { 
-namespace lambda {
-namespace detail {
-
-
-// select functions -------------------------------
-template<class Any, CALL_TEMPLATE_ARGS>
-inline Any& select(Any& any, CALL_FORMAL_ARGS) { CALL_USE_ARGS; return any; }
-
-
-template<class Arg, CALL_TEMPLATE_ARGS>
-inline typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
-select ( const lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) { 
-  return op.template call<
-    typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
-  >(CALL_ACTUAL_ARGS); 
-}
-template<class Arg, CALL_TEMPLATE_ARGS>
-inline typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
-select ( lambda_functor<Arg>& op, CALL_FORMAL_ARGS) { 
-  return op.template call<
-    typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
-  >(CALL_ACTUAL_ARGS); 
-}
-
-// ------------------------------------------------------------------------
-// select functions where the return type is explicitly given
-// Note: on many functions, this return type is just discarded.
-// The select functions are inside a class template, and the return type
-// is a class template argument.
-// The first implementation used function templates with an explicitly 
-// specified template parameter.
-// However, this resulted in ambiguous calls (at least with gcc 2.95.2 
-// and edg 2.44). Not sure whether the compilers were right or wrong. 
-  
-template<class RET> struct r_select {
-
-// Any == RET
-  template<class Any, CALL_TEMPLATE_ARGS>
-  static 
-  inline RET go (Any& any, CALL_FORMAL_ARGS) { CALL_USE_ARGS; return any; }
-
-
-  template<class Arg, CALL_TEMPLATE_ARGS> 
-  static 
-  inline RET go (const lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
-    return op.template call<RET>(CALL_ACTUAL_ARGS); 
-  }
-  template<class Arg, CALL_TEMPLATE_ARGS> 
-  static 
-  inline RET go (lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) { 
-    return op.template call<RET>(CALL_ACTUAL_ARGS); 
-  }
-};
-   
-} // namespace detail
-} // namespace lambda
-} // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/lambda/lambda.hpp b/include/ndnboost/lambda/lambda.hpp
deleted file mode 100644
index 2434652..0000000
--- a/include/ndnboost/lambda/lambda.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// -- lambda.hpp -- Boost Lambda Library -----------------------------------
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-//
-// For more information, see http://lambda.cs.utu.fi 
-
-#ifndef NDNBOOST_LAMBDA_LAMBDA_HPP
-#define NDNBOOST_LAMBDA_LAMBDA_HPP
-
-
-#include "ndnboost/lambda/core.hpp"
-
-#ifdef NDNBOOST_NO_FDECL_TEMPLATES_AS_TEMPLATE_TEMPLATE_PARAMS
-#include <istream>
-#include <ostream>
-#endif
-
-#include "ndnboost/lambda/detail/operator_actions.hpp"
-#include "ndnboost/lambda/detail/operator_lambda_func_base.hpp"
-#include "ndnboost/lambda/detail/operator_return_type_traits.hpp"
-
-
-#include "ndnboost/lambda/detail/operators.hpp"
-
-#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
-
-
-#endif
diff --git a/include/ndnboost/lexical_cast.hpp b/include/ndnboost/lexical_cast.hpp
deleted file mode 100644
index 828a1f1..0000000
--- a/include/ndnboost/lexical_cast.hpp
+++ /dev/null
@@ -1,2725 +0,0 @@
-#ifndef NDNBOOST_LEXICAL_CAST_INCLUDED
-#define NDNBOOST_LEXICAL_CAST_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-// Boost lexical_cast.hpp header  -------------------------------------------//
-//
-// See http://www.boost.org/libs/conversion for documentation.
-// See end of this header for rights and permissions.
-//
-// what:  lexical_cast custom keyword cast
-// who:   contributed by Kevlin Henney,
-//        enhanced with contributions from Terje Slettebo,
-//        with additional fixes and suggestions from Gennaro Prota,
-//        Beman Dawes, Dave Abrahams, Daryle Walker, Peter Dimov,
-//        Alexander Nasonov, Antony Polukhin, Justin Viiret, Michael Hofmann,
-//        Cheng Yang, Matthew Bradbury, David W. Birdsall, Pavel Korzh and other Boosters
-// when:  November 2000, March 2003, June 2005, June 2006, March 2011 - 2013
-
-#include <ndnboost/config.hpp>
-#if defined(NDNBOOST_NO_STRINGSTREAM) || defined(NDNBOOST_NO_STD_WSTRING)
-#define NDNBOOST_LCAST_NO_WCHAR_T
-#endif
-
-#include <climits>
-#include <cstddef>
-#include <string>
-#include <cstring>
-#include <cstdio>
-#include <typeinfo>
-#include <exception>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/type_traits/ice.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/detail/lcast_precision.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-
-#ifndef NDNBOOST_NO_STD_LOCALE
-#   include <locale>
-#else
-#   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 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 NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE to force "
-#       error "ndnboost::lexical_cast to use only 'C' locale during conversions."
-#   endif
-#endif
-
-#ifdef NDNBOOST_NO_STRINGSTREAM
-#include <strstream>
-#else
-#include <sstream>
-#endif
-
-#ifdef NDNBOOST_NO_TYPEID
-#define NDNBOOST_LCAST_THROW_BAD_CAST(S, T) throw_exception(bad_lexical_cast())
-#else
-#define NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target) \
-    throw_exception(bad_lexical_cast(typeid(Source), typeid(Target)))
-#endif
-
-#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 NDNBOOST_SYMBOL_VISIBLE bad_lexical_cast :
-    // workaround MSVC bug with std::bad_cast when _HAS_EXCEPTIONS == 0 
-#if defined(NDNBOOST_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS 
-        public std::exception 
-#else 
-        public std::bad_cast 
-#endif 
-
-#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() NDNBOOST_NOEXCEPT :
-#ifndef NDNBOOST_NO_TYPEID
-          source(&typeid(void)), target(&typeid(void))
-#else
-          source(0), target(0) // this breaks getters
-#endif
-        {
-        }
-
-        bad_lexical_cast(
-            const std::type_info &source_type_arg,
-            const std::type_info &target_type_arg) NDNBOOST_NOEXCEPT :
-            source(&source_type_arg), target(&target_type_arg)
-        {
-        }
-
-        const std::type_info &source_type() const
-        {
-            return *source;
-        }
-        const std::type_info &target_type() const
-        {
-            return *target;
-        }
-
-#ifndef NDNBOOST_NO_CXX11_NOEXCEPT
-        virtual const char *what() const noexcept
-#else
-        virtual const char *what() const throw()
-#endif
-        {
-            return "bad lexical cast: "
-                   "source type value could not be interpreted as target";
-        }
-
-#ifndef NDNBOOST_NO_CXX11_NOEXCEPT
-        virtual ~bad_lexical_cast() NDNBOOST_NOEXCEPT
-#else
-        virtual ~bad_lexical_cast() throw()
-#endif
-        {}
-    private:
-        const std::type_info *source;
-        const std::type_info *target;
-    };
-
-    namespace detail // widest_char
-    {
-        template <typename TargetChar, typename SourceChar>
-        struct widest_char
-        {
-            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
-                (sizeof(TargetChar) > sizeof(SourceChar))
-                , TargetChar
-                , SourceChar >::type type;
-        };
-    }
-} // namespace ndnboost
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__SUNPRO_CC) && !defined(__PGIC__)
-
-#include <cmath>
-#include <istream>
-
-#ifndef NDNBOOST_NO_CXX11_HDR_ARRAY
-#include <array>
-#endif
-
-#include <ndnboost/array.hpp>
-#include <ndnboost/numeric/conversion/cast.hpp>
-#include <ndnboost/type_traits/make_unsigned.hpp>
-#include <ndnboost/type_traits/is_signed.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/type_traits/is_arithmetic.hpp>
-#include <ndnboost/type_traits/remove_pointer.hpp>
-#include <ndnboost/type_traits/has_left_shift.hpp>
-#include <ndnboost/type_traits/has_right_shift.hpp>
-#include <ndnboost/math/special_functions/sign.hpp>
-#include <ndnboost/math/special_functions/fpclassify.hpp>
-#include <ndnboost/range/iterator_range_core.hpp>
-#include <ndnboost/container/container_fwd.hpp>
-#include <ndnboost/integer.hpp>
-#ifndef NDNBOOST_NO_CWCHAR
-#   include <cwchar>
-#endif
-
-namespace ndnboost {
-
-    namespace detail // is_char_or_wchar<...>
-    {
-        // returns true, if T is one of the character types
-        template < typename T >
-        struct is_char_or_wchar
-        {
-            typedef ndnboost::type_traits::ice_or<
-                    ndnboost::is_same< T, char >::value,
-                    #ifndef NDNBOOST_LCAST_NO_WCHAR_T
-                        ndnboost::is_same< T, wchar_t >::value,
-                    #endif
-                    #ifndef NDNBOOST_NO_CXX11_CHAR16_T
-                        ndnboost::is_same< T, char16_t >::value,
-                    #endif
-                    #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;
-
-            NDNBOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
-        };
-    }
-
-    namespace detail // normalize_single_byte_char<Char>
-    {
-        // Converts signed/unsigned char to char
-        template < class Char >
-        struct normalize_single_byte_char 
-        {
-            typedef Char type;
-        };
-
-        template <>
-        struct normalize_single_byte_char< signed char >
-        {
-            typedef char type;
-        };
-
-        template <>
-        struct normalize_single_byte_char< unsigned char >
-        {
-            typedef char type;
-        };
-    }
-
-    namespace detail // deduce_character_type_later<T>
-    {
-        // Helper type, meaning that stram character for T must be deduced 
-        // at Stage 2 (See deduce_source_char<T> and deduce_target_char<T>)
-        template < class T > struct deduce_character_type_later {};
-    }
-
-    namespace detail // stream_char_common<T>
-    {
-        // Selectors to choose stream character type (common for Source and Target)
-        // Returns one of char, wchar_t, char16_t, char32_t or deduce_character_type_later<T> types
-        // Executed on Stage 1 (See deduce_source_char<T> and deduce_target_char<T>)
-        template < typename Type >
-        struct stream_char_common: public ndnboost::mpl::if_c<
-            ndnboost::detail::is_char_or_wchar< Type >::value,
-            Type,
-            ndnboost::detail::deduce_character_type_later< Type >
-        > {};
-
-        template < typename Char >
-        struct stream_char_common< Char* >: public ndnboost::mpl::if_c<
-            ndnboost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            ndnboost::detail::deduce_character_type_later< Char* >
-        > {};
-
-        template < typename Char >
-        struct stream_char_common< const Char* >: public ndnboost::mpl::if_c<
-            ndnboost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            ndnboost::detail::deduce_character_type_later< const Char* >
-        > {};
-
-        template < typename Char >
-        struct stream_char_common< ndnboost::iterator_range< Char* > >: public ndnboost::mpl::if_c<
-            ndnboost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            ndnboost::detail::deduce_character_type_later< ndnboost::iterator_range< Char* > >
-        > {};
-    
-        template < typename Char >
-        struct stream_char_common< ndnboost::iterator_range< const Char* > >: public ndnboost::mpl::if_c<
-            ndnboost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            ndnboost::detail::deduce_character_type_later< ndnboost::iterator_range< const Char* > >
-        > {};
-
-        template < class Char, class Traits, class Alloc >
-        struct stream_char_common< std::basic_string< Char, Traits, Alloc > >
-        {
-            typedef Char type;
-        };
-
-        template < class Char, class Traits, class Alloc >
-        struct stream_char_common< ndnboost::container::basic_string< Char, Traits, Alloc > >
-        {
-            typedef Char type;
-        };
-
-        template < typename Char, std::size_t N >
-        struct stream_char_common< ndnboost::array< Char, N > >: public ndnboost::mpl::if_c<
-            ndnboost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            ndnboost::detail::deduce_character_type_later< ndnboost::array< Char, N > >
-        > {};
-
-        template < typename Char, std::size_t N >
-        struct stream_char_common< ndnboost::array< const Char, N > >: public ndnboost::mpl::if_c<
-            ndnboost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            ndnboost::detail::deduce_character_type_later< ndnboost::array< const Char, N > >
-        > {};
-
-#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,
-            Char,
-            ndnboost::detail::deduce_character_type_later< std::array< Char, N > >
-        > {};
-
-        template < typename Char, std::size_t N >
-        struct stream_char_common< std::array< const Char, N > >: public ndnboost::mpl::if_c<
-            ndnboost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            ndnboost::detail::deduce_character_type_later< std::array< const Char, N > >
-        > {};
-#endif
-
-#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(NDNBOOST_LCAST_NO_WCHAR_T) && defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
-        template <>
-        struct stream_char_common< wchar_t >
-        {
-            typedef char type;
-        };
-#endif
-    }
-
-    namespace detail // deduce_source_char_impl<T>
-    {
-        // If type T is `deduce_character_type_later` type, then tries to deduce
-        // character type using ndnboost::has_left_shift<T> metafunction.
-        // Otherwise supplied type T is a character type, that must be normalized
-        // using normalize_single_byte_char<Char>.
-        // Executed at Stage 2  (See deduce_source_char<T> and deduce_target_char<T>)
-        template < class Char > 
-        struct deduce_source_char_impl
-        { 
-            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::normalize_single_byte_char< Char >::type type; 
-        };
-        
-        template < class T > 
-        struct deduce_source_char_impl< deduce_character_type_later< T > > 
-        {
-            typedef ndnboost::has_left_shift< std::basic_ostream< char >, T > result_t;
-
-#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 NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
-                result_t::value, char, wchar_t
-            >::type type;
-
-            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
-        };
-    }
-
-    namespace detail  // deduce_target_char_impl<T>
-    {
-        // If type T is `deduce_character_type_later` type, then tries to deduce
-        // character type using ndnboost::has_right_shift<T> metafunction.
-        // Otherwise supplied type T is a character type, that must be normalized
-        // using normalize_single_byte_char<Char>.
-        // Executed at Stage 2  (See deduce_source_char<T> and deduce_target_char<T>)
-        template < class Char > 
-        struct deduce_target_char_impl 
-        { 
-            typedef NDNBOOST_DEDUCED_TYPENAME normalize_single_byte_char< Char >::type type; 
-        };
-        
-        template < class T > 
-        struct deduce_target_char_impl< deduce_character_type_later<T> > 
-        { 
-            typedef ndnboost::has_right_shift<std::basic_istream<char>, T > result_t;
-
-#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 NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
-                result_t::value, char, wchar_t
-            >::type type;
-            
-            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
-        };
-    } 
-
-    namespace detail  // deduce_target_char<T> and deduce_source_char<T>
-    {
-        // We deduce stream character types in two stages.
-        //
-        // Stage 1 is common for Target and Source. At Stage 1 we get 
-        // non normalized character type (may contain unsigned/signed char)
-        // or deduce_character_type_later<T> where T is the original type.
-        // Stage 1 is executed by stream_char_common<T>
-        //
-        // At Stage 2 we normalize character types or try to deduce character 
-        // type using metafunctions. 
-        // Stage 2 is executed by deduce_target_char_impl<T> and 
-        // deduce_source_char_impl<T>
-        //
-        // deduce_target_char<T> and deduce_source_char<T> functions combine 
-        // both stages
-
-        template < class T >
-        struct deduce_target_char
-        {
-            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;
-        };
-
-        template < class T >
-        struct deduce_source_char
-        {
-            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;
-        };
-    }
-
-    namespace detail // deduce_char_traits template
-    {
-        // We are attempting to get char_traits<> from Source or Tagret
-        // template parameter. Otherwise we'll be using std::char_traits<Char>
-        template < class Char, class Target, class Source >
-        struct deduce_char_traits
-        {
-            typedef std::char_traits< Char > type;
-        };
-
-        template < class Char, class Traits, class Alloc, class Source >
-        struct deduce_char_traits< Char
-                                 , std::basic_string< Char, Traits, Alloc >
-                                 , Source
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Target, class Traits, class Alloc >
-        struct deduce_char_traits< Char
-                                 , Target
-                                 , std::basic_string< Char, Traits, Alloc >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Traits, class Alloc, class Source >
-        struct deduce_char_traits< Char
-                                 , ndnboost::container::basic_string< Char, Traits, Alloc >
-                                 , Source
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Target, class Traits, class Alloc >
-        struct deduce_char_traits< Char
-                                 , Target
-                                 , ndnboost::container::basic_string< Char, Traits, Alloc >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Traits, class Alloc1, class Alloc2 >
-        struct deduce_char_traits< Char
-                                 , std::basic_string< Char, Traits, Alloc1 >
-                                 , std::basic_string< Char, Traits, Alloc2 >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template<class Char, class Traits, class Alloc1, class Alloc2>
-        struct deduce_char_traits< Char
-                                 , ndnboost::container::basic_string< Char, Traits, Alloc1 >
-                                 , ndnboost::container::basic_string< Char, Traits, Alloc2 >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Traits, class Alloc1, class Alloc2 >
-        struct deduce_char_traits< Char
-                                 , ndnboost::container::basic_string< Char, Traits, Alloc1 >
-                                 , std::basic_string< Char, Traits, Alloc2 >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Traits, class Alloc1, class Alloc2 >
-        struct deduce_char_traits< Char
-                                 , std::basic_string< Char, Traits, Alloc1 >
-                                 , ndnboost::container::basic_string< Char, Traits, Alloc2 >
-                                 >
-        {
-            typedef Traits type;
-        };
-    }
-
-    namespace detail // array_to_pointer_decay<T>
-    {
-        template<class T>
-        struct array_to_pointer_decay
-        {
-            typedef T type;
-        };
-
-        template<class T, std::size_t N>
-        struct array_to_pointer_decay<T[N]>
-        {
-            typedef const T * type;
-        };
-    }
-
-    namespace detail // is_this_float_conversion_optimized<Float, Char>
-    {
-        // this metafunction evaluates to true, if we have optimized comnversion 
-        // from Float type to Char array. 
-        // Must be in sync with lexical_stream_limited_src<Char, ...>::shl_real_type(...)
-        template <typename Float, typename Char>
-        struct is_this_float_conversion_optimized 
-        {
-            typedef ndnboost::type_traits::ice_and<
-                ndnboost::is_float<Float>::value,
-#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
-                >::value
-#else
-                ndnboost::type_traits::ice_eq<sizeof(Char), sizeof(char) >::value
-#endif
-            > result_type;
-
-            NDNBOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
-        };
-    }
-    
-    namespace detail // lcast_src_length
-    {
-        // Return max. length of string representation of Source;
-        template< class Source // Source type of lexical_cast.
-                >
-        struct lcast_src_length
-        {
-            NDNBOOST_STATIC_CONSTANT(std::size_t, value = 1);
-            // To check coverage, build the test with
-            // bjam --v2 profile optimization=off
-            static void check_coverage() {}
-        };
-
-        // Helper for integral types.
-        // Notes on length calculation:
-        // Max length for 32bit int with grouping "\1" and thousands_sep ',':
-        // "-2,1,4,7,4,8,3,6,4,7"
-        //  ^                    - is_signed
-        //   ^                   - 1 digit not counted by digits10
-        //    ^^^^^^^^^^^^^^^^^^ - digits10 * 2
-        //
-        // Constant is_specialized is used instead of constant 1
-        // to prevent buffer overflow in a rare case when
-        // <ndnboost/limits.hpp> doesn't add missing specialization for
-        // numeric_limits<T> for some integral type T.
-        // When is_specialized is false, the whole expression is 0.
-        template<class Source>
-        struct lcast_src_length_integral
-        {
-#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
-            NDNBOOST_STATIC_CONSTANT(std::size_t, value = 156);
-            NDNBOOST_STATIC_ASSERT(sizeof(Source) * CHAR_BIT <= 256);
-#endif
-        };
-
-#define NDNBOOST_LCAST_DEF(T)               \
-    template<> struct lcast_src_length<T> \
-        : lcast_src_length_integral<T>           \
-    { static void check_coverage() {} };
-
-        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 NDNBOOST_LCAST_HAS_INT128
-        NDNBOOST_LCAST_DEF(ndnboost::int128_type)
-        NDNBOOST_LCAST_DEF(ndnboost::uint128_type)
-#endif
-
-#undef NDNBOOST_LCAST_DEF
-
-#ifndef NDNBOOST_LCAST_NO_COMPILE_TIME_PRECISION
-        // Helper for floating point types.
-        // -1.23456789e-123456
-        // ^                   sign
-        //  ^                  leading digit
-        //   ^                 decimal point 
-        //    ^^^^^^^^         lcast_precision<Source>::value
-        //            ^        "e"
-        //             ^       exponent sign
-        //              ^^^^^^ exponent (assumed 6 or less digits)
-        // sign + leading digit + decimal point + "e" + exponent sign == 5
-        template<class Source>
-        struct lcast_src_length_floating
-        {
-            NDNBOOST_STATIC_ASSERT(
-                    std::numeric_limits<Source>::max_exponent10 <=  999999L &&
-                    std::numeric_limits<Source>::min_exponent10 >= -999999L
-                );
-            NDNBOOST_STATIC_CONSTANT(std::size_t, value =
-                    5 + lcast_precision<Source>::value + 6
-                );
-        };
-
-        template<>
-        struct lcast_src_length<float>
-          : lcast_src_length_floating<float>
-        {
-            static void check_coverage() {}
-        };
-
-        template<>
-        struct lcast_src_length<double>
-          : lcast_src_length_floating<double>
-        {
-            static void check_coverage() {}
-        };
-
-        template<>
-        struct lcast_src_length<long double>
-          : lcast_src_length_floating<long double>
-        {
-            static void check_coverage() {}
-        };
-
-#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 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 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 NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::widest_char<
-                target_char_t, src_char_t
-            >::type char_type;
-
-#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(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 NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::deduce_char_traits<
-                char_type, Target, no_cv_src
-            >::type traits;
-
-            typedef ndnboost::type_traits::ice_and<
-                ndnboost::is_same<char, src_char_t>::value,                                  // source is not a wide character based type
-                ndnboost::type_traits::ice_ne<sizeof(char), sizeof(target_char_t) >::value,  // target type is based on wide character
-                ndnboost::type_traits::ice_not<
-                    ndnboost::detail::is_char_or_wchar<no_cv_src>::value                     // single character widening is optimized
-                >::value                                                                  // and does not requires stringbuffer
-            >   is_string_widening_required_t;
-
-            typedef ndnboost::type_traits::ice_not< ndnboost::type_traits::ice_or<
-                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<
-                    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.
-            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)
-            );
-            
-            typedef ndnboost::detail::lcast_src_length<no_cv_src> len_t;
-        };
-    }
-
-    namespace detail // '0', '+' and '-' constants
-    {
-        template < typename Char > struct lcast_char_constants;
-
-        template<>
-        struct lcast_char_constants<char>
-        {
-            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 NDNBOOST_LCAST_NO_WCHAR_T
-        template<>
-        struct lcast_char_constants<wchar_t>
-        {
-            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(NDNBOOST_NO_CXX11_CHAR16_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
-        template<>
-        struct lcast_char_constants<char16_t>
-        {
-            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(NDNBOOST_NO_CXX11_CHAR32_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
-        template<>
-        struct lcast_char_constants<char32_t>
-        {
-            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
-    }
-
-    namespace detail // lcast_to_unsigned
-    {
-        template<class T>
-        inline
-        NDNBOOST_DEDUCED_TYPENAME make_unsigned<T>::type lcast_to_unsigned(T value) NDNBOOST_NOEXCEPT
-        {
-            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
-            );
-        }
-    }
-
-    namespace detail // lcast_put_unsigned
-    {
-        template<class Traits, class T, class CharT>
-        CharT* lcast_put_unsigned(const T n_param, CharT* finish)
-        {
-#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);
-            NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
-                    (sizeof(int_type) > sizeof(T))
-                    , int_type
-                    , T
-            >::type n = n_param;
-
-#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-            std::locale loc;
-            if (loc != std::locale::classic()) {
-                typedef std::numpunct<CharT> numpunct;
-                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 NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-                // Check that ulimited group is unreachable:
-                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
-                    char last_grp_size = grouping[0];
-                    char left = last_grp_size;
-
-                    do
-                    {
-                        if(left == 0)
-                        {
-                            ++group;
-                            if(group < grouping_size)
-                            {
-                                char const grp_size = grouping[group];
-                                last_grp_size = grp_size <= 0 ? static_cast<char>(CHAR_MAX) : grp_size;
-                            }
-
-                            left = last_grp_size;
-                            --finish;
-                            Traits::assign(*finish, thousands_sep);
-                        }
-
-                        --left;
-
-                        --finish;
-                        int_type const digit = static_cast<int_type>(n % 10U);
-                        Traits::assign(*finish, Traits::to_char_type(zero + digit));
-                        n /= 10;
-                    } while(n);
-                    return finish;
-                }
-            }
-#endif
-            {
-                do
-                {
-                    --finish;
-                    int_type const digit = static_cast<int_type>(n % 10U);
-                    Traits::assign(*finish, Traits::to_char_type(zero + digit));
-                    n /= 10;
-                } while(n);
-            }
-
-            return finish;
-        }
-    }
-
-    namespace detail // lcast_ret_unsigned
-    {
-        template<class Traits, class T, class CharT>
-        inline bool lcast_ret_unsigned(T& value, const CharT* const begin, const CharT* end)
-        {
-#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;
-            value = 0;
-
-            if (begin > end || *end < czero || *end >= czero + 10)
-                return false;
-            value = static_cast<T>(*end - czero);
-            --end;
-            T multiplier = 1;
-            bool multiplier_overflowed = false;
-
-#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-            std::locale loc;
-            if (loc != std::locale::classic()) {
-                typedef std::numpunct<CharT> numpunct;
-                numpunct const& np = NDNBOOST_USE_FACET(numpunct, loc);
-                std::string const& grouping = np.grouping();
-                std::string::size_type const grouping_size = grouping.size();
-
-                /* According to Programming languages - C++
-                 * we MUST check for correct grouping
-                 */
-                if (grouping_size && grouping[0] > 0)
-                {
-                    unsigned char current_grouping = 0;
-                    CharT const thousands_sep = np.thousands_sep();
-                    char remained = static_cast<char>(grouping[current_grouping] - 1);
-                    bool shall_we_return = true;
-
-                    for(;end>=begin; --end)
-                    {
-                        if (remained) {
-                            T const multiplier_10 = static_cast<T>(multiplier * 10);
-                            if (multiplier_10 / 10 != multiplier) multiplier_overflowed = true;
-
-                            T const dig_value = static_cast<T>(*end - czero);
-                            T const new_sub_value = static_cast<T>(multiplier_10 * dig_value);
-
-                            if (*end < czero || *end >= czero + 10
-                                    /* detecting overflow */
-                                    || (dig_value && new_sub_value / dig_value != multiplier_10)
-                                    || static_cast<T>((std::numeric_limits<T>::max)()-new_sub_value) < value
-                                    || (multiplier_overflowed && dig_value)
-                                    )
-                                return false;
-
-                            value = static_cast<T>(value + new_sub_value);
-                            multiplier = static_cast<T>(multiplier * 10);
-                            --remained;
-                        } else {
-                            if ( !Traits::eq(*end, thousands_sep) ) //|| begin == end ) return false;
-                            {
-                                /*
-                                 * According to Programming languages - C++
-                                 * Digit grouping is checked. That is, the positions of discarded
-                                 * separators is examined for consistency with
-                                 * use_facet<numpunct<charT> >(loc ).grouping()
-                                 *
-                                 * BUT what if there is no separators at all and grouping()
-                                 * is not empty? Well, we have no extraced separators, so we
-                                 * won`t check them for consistency. This will allow us to
-                                 * work with "C" locale from other locales
-                                 */
-                                shall_we_return = false;
-                                break;
-                            } else {
-                                if ( begin == end ) return false;
-                                if (current_grouping < grouping_size-1 ) ++current_grouping;
-                                remained = grouping[current_grouping];
-                            }
-                        }
-                    }
-
-                    if (shall_we_return) return true;
-                }
-            }
-#endif
-            {
-                while ( begin <= end )
-                {
-                    T const multiplier_10 = static_cast<T>(multiplier * 10);
-                    if (multiplier_10 / 10 != multiplier) multiplier_overflowed = true;
-
-                    T const dig_value = static_cast<T>(*end - czero);
-                    T const new_sub_value = static_cast<T>(multiplier_10 * dig_value);
-
-                    if (*end < czero || *end >= czero + 10
-                            /* detecting overflow */
-                            || (dig_value && new_sub_value / dig_value != multiplier_10)
-                            || static_cast<T>((std::numeric_limits<T>::max)()-new_sub_value) < value
-                            || (multiplier_overflowed && dig_value)
-                            )
-                        return false;
-
-                    value = static_cast<T>(value + new_sub_value);
-                    multiplier = static_cast<T>(multiplier * 10);
-                    --end;
-                }
-            }
-            return true;
-        }
-    }
-
-    namespace detail
-    {
-        template <class CharT>
-        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;
-            }
-
-            return true;
-        }
-
-        /* Returns true and sets the correct value if found NaN or Inf. */
-        template <class CharT, class T>
-        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) NDNBOOST_NOEXCEPT
-        {
-            using namespace std;
-            if (begin == end) return false;
-            const CharT minus = lcast_char_constants<CharT>::minus;
-            const CharT plus = lcast_char_constants<CharT>::plus;
-            const int inifinity_size = 8;
-
-            bool has_minus = false;
-            /* Parsing +/- */
-            if( *begin == minus)
-            {
-                ++ begin;
-                has_minus = true;
-            }
-            else if( *begin == plus ) ++begin;
-
-            if( end-begin < 3 ) return false;
-            if( lc_iequal(begin, lc_nan, lc_NAN, 3) )
-            {
-                begin += 3;
-                if (end != begin) /* It is 'nan(...)' or some bad input*/
-                {
-                    if(end-begin<2) return false; // bad input
-                    -- end;
-                    if( *begin != opening_brace || *end != closing_brace) return false; // bad input
-                }
-
-                if( !has_minus ) value = std::numeric_limits<T>::quiet_NaN();
-                else value = (ndnboost::math::changesign) (std::numeric_limits<T>::quiet_NaN());
-                return true;
-            } else
-            if (( /* 'INF' or 'inf' */
-                  end-begin==3
-                  &&
-                  lc_iequal(begin, lc_infinity, lc_INFINITY, 3)
-                )
-                ||
-                ( /* 'INFINITY' or 'infinity' */
-                  end-begin==inifinity_size
-                  &&
-                  lc_iequal(begin, lc_infinity, lc_INFINITY, inifinity_size)
-                )
-             )
-            {
-                if( !has_minus ) value = std::numeric_limits<T>::infinity();
-                else value = (ndnboost::math::changesign) (std::numeric_limits<T>::infinity());
-                return true;
-            }
-
-            return false;
-        }
-
-        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) NDNBOOST_NOEXCEPT
-        {
-            using namespace std;
-            const CharT minus = lcast_char_constants<CharT>::minus;
-            if ( (ndnboost::math::isnan)(value) )
-            {
-                if ( (ndnboost::math::signbit)(value) )
-                {
-                    *begin = minus;
-                    ++ begin;
-                }
-
-                memcpy(begin, lc_nan, 3 * sizeof(CharT));
-                end = begin + 3;
-                return true;
-            } else if ( (ndnboost::math::isinf)(value) )
-            {
-                if ( (ndnboost::math::signbit)(value) )
-                {
-                    *begin = minus;
-                    ++ begin;
-                }
-
-                memcpy(begin, lc_infinity, 3 * sizeof(CharT));
-                end = begin + 3;
-                return true;
-            }
-
-            return false;
-        }
-
-
-#ifndef NDNBOOST_LCAST_NO_WCHAR_T
-        template <class T>
-        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"
-                               , L"INFINITY", L"infinity"
-                               , L'(', L')');
-        }
-
-        template <class T>
-        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(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) NDNBOOST_NOEXCEPT
-        {
-            return parse_inf_nan_impl(begin, end, value
-                               , u"NAN", u"nan"
-                               , u"INFINITY", u"infinity"
-                               , u'(', u')');
-        }
-
-        template <class T>
-        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(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) NDNBOOST_NOEXCEPT
-        {
-            return parse_inf_nan_impl(begin, end, value
-                               , U"NAN", U"nan"
-                               , U"INFINITY", U"infinity"
-                               , U'(', U')');
-        }
-
-        template <class T>
-        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) NDNBOOST_NOEXCEPT
-        {
-            return parse_inf_nan_impl(begin, end, value
-                               , "NAN", "nan"
-                               , "INFINITY", "infinity"
-                               , '(', ')');
-        }
-
-        template <class CharT, class T>
-        bool put_inf_nan(CharT* begin, CharT*& end, const T& value) NDNBOOST_NOEXCEPT
-        {
-            return put_inf_nan_impl(begin, end, value, "nan", "infinity");
-        }
-    }
-
-
-    namespace detail // lcast_ret_float
-    {
-
-// Silence buggy MS warnings like C4244: '+=' : conversion from 'int' to 'unsigned short', possible loss of data 
-#if defined(_MSC_VER) && (_MSC_VER == 1400) 
-#  pragma warning(push) 
-#  pragma warning(disable:4244) 
-#endif 
-        template <class T>
-        struct mantissa_holder_type
-        {
-            /* Can not be used with this type */
-        };
-
-        template <>
-        struct mantissa_holder_type<float>
-        {
-            typedef unsigned int type;
-            typedef double       wide_result_t;
-        };
-
-        template <>
-        struct mantissa_holder_type<double>
-        {
-#ifndef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-            typedef long double  wide_result_t;
-#if defined(NDNBOOST_HAS_LONG_LONG)
-            typedef ndnboost::ulong_long_type type;
-#elif defined(NDNBOOST_HAS_MS_INT64)
-            typedef unsigned __int64 type;
-#endif
-#endif
-        };
-
-        template<class Traits, class T, class CharT>
-        inline bool lcast_ret_float(T& value, const CharT* begin, const CharT* end)
-        {
-
-#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-            std::locale loc;
-            typedef std::numpunct<CharT> numpunct;
-            numpunct const& np = NDNBOOST_USE_FACET(numpunct, loc);
-            std::string const grouping(
-                    (loc == std::locale::classic())
-                    ? std::string()
-                    : np.grouping()
-            );
-            std::string::size_type const grouping_size = grouping.size();
-            CharT const thousands_sep = static_cast<CharT>(grouping_size ? np.thousands_sep() : 0);
-            CharT const decimal_point = np.decimal_point();
-            bool found_grouping = false;
-            std::string::size_type last_grouping_pos = grouping_size - 1;
-#else
-            CharT const decimal_point = lcast_char_constants<CharT>::c_decimal_separator;
-#endif
-
-            CharT const czero = lcast_char_constants<CharT>::zero;
-            CharT const minus = lcast_char_constants<CharT>::minus;
-            CharT const plus = lcast_char_constants<CharT>::plus;
-            CharT const capital_e = lcast_char_constants<CharT>::capital_e;
-            CharT const lowercase_e = lcast_char_constants<CharT>::lowercase_e;
-
-            value = static_cast<T>(0);
-
-            if (parse_inf_nan(begin, end, value)) return true;
-
-            typedef typename Traits::int_type int_type;
-            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;
-
-            /* Getting the plus/minus sign */
-            bool has_minus = false;
-            if (Traits::eq(*begin, minus) ) {
-                ++ begin;
-                has_minus = true;
-                if (begin == end) return false;
-            } else if (Traits::eq(*begin, plus) ) {
-                ++begin;
-                if (begin == end) return false;
-            }
-
-            bool found_decimal = false;
-            bool found_number_before_exp = false;
-            int pow_of_10 = 0;
-            mantissa_type mantissa=0;
-            bool is_mantissa_full = false;
-
-            char length_since_last_delim = 0;
-
-            while ( begin != end )
-            {
-                if (found_decimal) {
-                    /* We allow no thousand_separators after decimal point */
-
-                    mantissa_type tmp_mantissa = mantissa * 10u;
-                    if (Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) break;
-                    if ( *begin < czero || *begin >= czero + 10 ) return false;
-                    if (    is_mantissa_full
-                            || tmp_mantissa / 10u != mantissa
-                            || (std::numeric_limits<mantissa_type>::max)()-(*begin - zero) < tmp_mantissa
-                            ) {
-                        is_mantissa_full = true;
-                        ++ begin;
-                        continue;
-                    }
-
-                    -- pow_of_10;
-                    mantissa = tmp_mantissa;
-                    mantissa += *begin - zero;
-
-                    found_number_before_exp = true;
-                } else {
-
-                    if (*begin >= czero && *begin < czero + 10) {
-
-                        /* Checking for mantissa overflow. If overflow will
-                         * occur, them we only increase multiplyer
-                         */
-                        mantissa_type tmp_mantissa = mantissa * 10u;
-                        if(     !is_mantissa_full
-                                && tmp_mantissa / 10u == mantissa
-                                && (std::numeric_limits<mantissa_type>::max)()-(*begin - zero) >= tmp_mantissa
-                            )
-                        {
-                            mantissa = tmp_mantissa;
-                            mantissa += *begin - zero;
-                        } else
-                        {
-                            is_mantissa_full = true;
-                            ++ pow_of_10;
-                        }
-
-                        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 NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-                        /* If ( we need to check grouping
-                         *      and (   grouping missmatches
-                         *              or grouping position is incorrect
-                         *              or we are using the grouping position 0 twice
-                         *           )
-                         *    ) then return error
-                         */
-                        if( grouping_size && found_grouping
-                            && (
-                                   length_since_last_delim != grouping[0]
-                                   || last_grouping_pos>1
-                                   || (last_grouping_pos==0 && grouping_size>1)
-                                )
-                           ) return false;
-#endif
-
-                        if(Traits::eq(*begin, decimal_point)) {
-                            ++ begin;
-                            found_decimal = true;
-                            if (!found_number_before_exp && begin==end) return false;
-                            continue;
-                        }else {
-                            if (!found_number_before_exp) return false;
-                            break;
-                        }
-                    }
-#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-                    else if (grouping_size && Traits::eq(*begin, thousands_sep)){
-                        if(found_grouping)
-                        {
-                            /* It is not he first time, when we find thousands separator,
-                             * so we need to chek, is the distance between two groupings
-                             * equal to grouping[last_grouping_pos] */
-
-                            if (length_since_last_delim != grouping[last_grouping_pos] )
-                            {
-                                if (!last_grouping_pos) return false;
-                                else
-                                {
-                                    -- last_grouping_pos;
-                                    if (length_since_last_delim != grouping[last_grouping_pos]) return false;
-                                }
-                            } else
-                                /* We are calling the grouping[0] twice, when grouping size is more than 1 */
-                                if (grouping_size>1u && last_grouping_pos+1<grouping_size) return false;
-
-                        } else {
-                            /* Delimiter at the begining ',000' */
-                            if (!length_since_last_delim) return false;
-
-                            found_grouping = true;
-                            if (length_since_last_delim > grouping[last_grouping_pos] ) return false;
-                        }
-
-                        length_since_last_delim = 0;
-                        ++ begin;
-
-                        /* Delimiter at the end '100,' */
-                        if (begin == end) return false;
-                        continue;
-                    }
-#endif
-                    else return false;
-                }
-
-                ++begin;
-            }
-
-            // Exponent found
-            if ( begin != end && (Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) ) {
-                ++ begin;
-                if ( begin == end ) return false;
-
-                bool exp_has_minus = false;
-                if(Traits::eq(*begin, minus)) {
-                    exp_has_minus = true;
-                    ++ begin;
-                    if ( begin == end ) return false;
-                } else if (Traits::eq(*begin, plus)) {
-                    ++ begin;
-                    if ( begin == end ) return false;
-                }
-
-                int exp_pow_of_10 = 0;
-                while ( begin != end )
-                {
-                    if ( *begin < czero
-                            || *begin >= czero + 10
-                            || exp_pow_of_10 * 10 < exp_pow_of_10) /* Overflows are checked lower more precisely*/
-                        return false;
-
-                    exp_pow_of_10 *= 10;
-                    exp_pow_of_10 += *begin - zero;
-                    ++ begin;
-                };
-
-                if ( exp_pow_of_10 ) {
-                    /* Overflows are checked lower */
-                    if ( exp_has_minus ) {
-                        pow_of_10 -= exp_pow_of_10;
-                    } else {
-                        pow_of_10 += exp_pow_of_10;
-                    }
-                }
-            }
-
-            /* We need a more accurate algorithm... We can not use current algorithm
-             * with long doubles (and with doubles if sizeof(double)==sizeof(long double)).
-             */
-            const wide_result_t result = std::pow(static_cast<wide_result_t>(10.0), pow_of_10) * mantissa;
-            value = static_cast<T>( has_minus ? (ndnboost::math::changesign)(result) : result);
-
-            if ( (ndnboost::math::isinf)(value) || (ndnboost::math::isnan)(value) ) return false;
-
-            return true;
-        }
-// Unsilence buggy MS warnings like C4244: '+=' : conversion from 'int' to 'unsigned short', possible loss of data 
-#if defined(_MSC_VER) && (_MSC_VER == 1400) 
-#  pragma warning(pop) 
-#endif 
-    }
-
-    namespace detail // parser_buf
-    {
-        //
-        // class parser_buf:
-        // acts as a stream buffer which wraps around a pair of pointers
-        //
-        // This class is copied (and slightly changed) from
-        // ndnboost/regex/v4/cpp_regex_traits.hpp
-        // Thanks John Maddock for it! (previous version had some
-        // problems with libc++ and some other STL implementations)
-        template <class BufferType, class charT>
-        class parser_buf : public BufferType {
-           typedef BufferType base_type;
-           typedef typename base_type::int_type int_type;
-           typedef typename base_type::char_type char_type;
-           typedef typename base_type::pos_type pos_type;
-           typedef ::std::streamsize streamsize;
-           typedef typename base_type::off_type off_type;
-
-        public:
-           parser_buf() : base_type() { setbuf(0, 0); }
-           const charT* getnext() { return this->gptr(); }
-#ifndef NDNBOOST_NO_USING_TEMPLATE
-            using base_type::pptr;
-            using base_type::pbase;
-#else
-            charT* pptr() const { return base_type::pptr(); }
-            charT* pbase() const { return base_type::pbase(); }
-#endif
-           base_type* setbuf(char_type* s, streamsize n) {
-               this->setg(s, s, s + n);
-               return this;
-           }
-
-           pos_type seekpos(pos_type sp, ::std::ios_base::openmode which) {
-               if(which & ::std::ios_base::out)
-                  return pos_type(off_type(-1));
-               off_type size = static_cast<off_type>(this->egptr() - this->eback());
-               charT* g = this->eback();
-               if(off_type(sp) <= size)
-               {
-                  this->setg(g, g + off_type(sp), g + size);
-               }
-               return pos_type(off_type(-1));
-            }
-
-           pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which) {
-               typedef typename ndnboost::int_t<sizeof(way) * CHAR_BIT>::least cast_type;
-
-               if(which & ::std::ios_base::out)
-                  return pos_type(off_type(-1));
-               std::ptrdiff_t size = this->egptr() - this->eback();
-               std::ptrdiff_t pos = this->gptr() - this->eback();
-               charT* g = this->eback();
-               switch(static_cast<cast_type>(way))
-               {
-               case ::std::ios_base::beg:
-                  if((off < 0) || (off > size))
-                     return pos_type(off_type(-1));
-                  else
-                     this->setg(g, g + off, g + size);
-                  break;
-               case ::std::ios_base::end:
-                  if((off < 0) || (off > size))
-                     return pos_type(off_type(-1));
-                  else
-                     this->setg(g, g + size - off, g + size);
-                  break;
-               case ::std::ios_base::cur:
-               {
-                  std::ptrdiff_t newpos = static_cast<std::ptrdiff_t>(pos + off);
-                  if((newpos < 0) || (newpos > size))
-                     return pos_type(off_type(-1));
-                  else
-                     this->setg(g, g + newpos, g + size);
-                  break;
-               }
-               default: ;
-               }
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4244)
-#endif
-               return static_cast<pos_type>(this->gptr() - this->eback());
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-            }
-        private:
-           parser_buf& operator=(const parser_buf&);
-           parser_buf(const parser_buf&);
-        };
-    }
-
-    namespace detail
-    {
-        struct do_not_construct_out_stream_t{};
-    }
-
-    namespace detail // optimized stream wrapper
-    {
-        // String representation of Source has an upper limit.
-        template< class CharT // a result of widest_char transformation
-                , class Traits // usually char_traits<CharT>
-                , bool RequiresStringbuffer
-                >
-        class lexical_stream_limited_src
-        {
-
-#if defined(NDNBOOST_NO_STRINGSTREAM)
-            typedef std::ostrstream                         out_stream_t;
-#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 NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
-                RequiresStringbuffer,
-                out_stream_t,
-                do_not_construct_out_stream_t
-            >::type deduced_out_stream_t;
-
-            // A string representation of Source is written to [start, finish).
-            CharT* start;
-            CharT* finish;
-            deduced_out_stream_t out_stream;
-
-        public:
-            lexical_stream_limited_src(CharT* sta, CharT* fin) NDNBOOST_NOEXCEPT
-              : start(sta)
-              , finish(fin)
-            {}
-
-        private:
-            // Undefined:
-            lexical_stream_limited_src(lexical_stream_limited_src const&);
-            void operator=(lexical_stream_limited_src const&);
-
-/************************************ HELPER FUNCTIONS FOR OPERATORS << ( ... ) ********************************/
-            bool shl_char(CharT ch) NDNBOOST_NOEXCEPT
-            {
-                Traits::assign(*start, ch);
-                finish = start + 1;
-                return true;
-            }
-
-#ifndef NDNBOOST_LCAST_NO_WCHAR_T
-            template <class T>
-            bool shl_char(T ch)
-            {
-                NDNBOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)) ,
-                    "ndnboost::lexical_cast does not support narrowing of char types."
-                    "Use ndnboost::locale instead" );
-#ifndef NDNBOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-                std::locale loc;
-                CharT const w = NDNBOOST_USE_FACET(std::ctype<CharT>, loc).widen(ch);
-#else
-                CharT const w = static_cast<CharT>(ch);
-#endif
-                Traits::assign(*start, w);
-                finish = start + 1;
-                return true;
-            }
-#endif
-
-            bool shl_char_array(CharT const* str) NDNBOOST_NOEXCEPT
-            {
-                start = const_cast<CharT*>(str);
-                finish = start + Traits::length(str);
-                return true;
-            }
-
-            template <class T>
-            bool shl_char_array(T const* str)
-            {
-                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) NDNBOOST_NOEXCEPT
-            {
-                start = const_cast<CharT*>(str);
-                finish = std::find(start, start + max_size, Traits::to_char_type(0));
-                return true;
-            }
-
-            template<typename InputStreamable>
-            bool shl_input_streamable(InputStreamable& input)
-            {
-#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.
-                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*>(
-                    static_cast<std::basic_streambuf<CharT, Traits>*>(out_stream.rdbuf())
-                );
-                start = p->pbase();
-                finish = p->pptr();
-                return result;
-            }
-
-            template <class T>
-            inline bool shl_signed(T n)
-            {
-                start = lcast_put_unsigned<Traits>(lcast_to_unsigned(n), finish);
-                if(n < 0)
-                {
-                    --start;
-                    CharT const minus = lcast_char_constants<CharT>::minus;
-                    Traits::assign(*start, minus);
-                }
-                return true;
-            }
-
-            template <class T, class SomeCharT>
-            bool shl_real_type(const T& val, SomeCharT* begin, SomeCharT*& end)
-            {
-                if (put_inf_nan(begin, end, val)) return true;
-                lcast_set_precision(out_stream, &val);
-                return shl_input_streamable(val);
-            }
-
-            static bool shl_real_type(float val, char* begin, char*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                const double val_as_double = val;
-                end = begin + 
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-                    sprintf_s(begin, end-begin,
-#else
-                    sprintf(begin, 
-#endif
-                    "%.*g", static_cast<int>(ndnboost::detail::lcast_get_precision<float>()), val_as_double);
-                return end > begin;
-            }
-
-            static bool shl_real_type(double val, char* begin, char*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                end = begin + 
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-                    sprintf_s(begin, end-begin,
-#else
-                    sprintf(begin, 
-#endif
-                    "%.*g", static_cast<int>(ndnboost::detail::lcast_get_precision<double>()), val);
-                return end > begin;
-            }
-
-#ifndef __MINGW32__
-            static bool shl_real_type(long double val, char* begin, char*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                end = begin + 
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-                    sprintf_s(begin, end-begin,
-#else
-                    sprintf(begin, 
-#endif
-                    "%.*Lg", static_cast<int>(ndnboost::detail::lcast_get_precision<long double>()), val );
-                return end > begin;
-            }
-#endif
-
-
-#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;
-                const double val_as_double = val;
-                end = begin + swprintf(begin, end-begin,
-                                       L"%.*g",
-                                       static_cast<int>(ndnboost::detail::lcast_get_precision<float >()),
-                                       val_as_double );
-                return end > begin;
-            }
-
-            static bool shl_real_type(double val, wchar_t* begin, wchar_t*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                end = begin + swprintf(begin, end-begin,
-                                          L"%.*g", static_cast<int>(ndnboost::detail::lcast_get_precision<double >()), val );
-                return end > begin;
-            }
-
-            static bool shl_real_type(long double val, wchar_t* begin, wchar_t*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                end = begin + swprintf(begin, end-begin,
-                                          L"%.*Lg", static_cast<int>(ndnboost::detail::lcast_get_precision<long double >()), val );
-                return end > begin;
-            }
-#endif
-
-/************************************ OPERATORS << ( ... ) ********************************/
-        public:
-            template<class Alloc>
-            bool operator<<(std::basic_string<CharT,Traits,Alloc> const& str) NDNBOOST_NOEXCEPT
-            {
-                start = const_cast<CharT*>(str.data());
-                finish = start + str.length();
-                return true;
-            }
-
-            template<class Alloc>
-            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) NDNBOOST_NOEXCEPT
-            {
-                CharT const czero = lcast_char_constants<CharT>::zero;
-                Traits::assign(*start, Traits::to_char_type(czero + value));
-                finish = start + 1;
-                return true;
-            }
-
-            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) 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) NDNBOOST_NOEXCEPT
-            {
-                return (*this) << iterator_range<char*>(
-                    const_cast<char*>(reinterpret_cast<const char*>(rng.begin())),
-                    const_cast<char*>(reinterpret_cast<const char*>(rng.end()))
-                );
-            }
-
-            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())),
-                    const_cast<char*>(reinterpret_cast<const char*>(rng.end()))
-                );
-            }
-
-            bool operator<<(const iterator_range<signed char*>& rng) NDNBOOST_NOEXCEPT
-            {
-                return (*this) << iterator_range<char*>(
-                    reinterpret_cast<char*>(rng.begin()),
-                    reinterpret_cast<char*>(rng.end())
-                );
-            }
-
-            bool operator<<(const iterator_range<unsigned char*>& rng) NDNBOOST_NOEXCEPT
-            {
-                return (*this) << iterator_range<char*>(
-                    reinterpret_cast<char*>(rng.begin()),
-                    reinterpret_cast<char*>(rng.end())
-                );
-            }
-
-            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(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 NDNBOOST_NO_INTRINSIC_WCHAR_T
-            bool operator<<(wchar_t ch)                 { return shl_char(ch); }
-#endif
-#endif
-#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(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); }
-#endif
-            bool operator<<(unsigned char const* ch)    { return ((*this) << reinterpret_cast<char const*>(ch)); }
-            bool operator<<(unsigned char * ch)         { return ((*this) << reinterpret_cast<char *>(ch)); }
-            bool operator<<(signed char const* ch)      { return ((*this) << reinterpret_cast<char const*>(ch)); }
-            bool operator<<(signed char * ch)           { return ((*this) << reinterpret_cast<char *>(ch)); }
-            bool operator<<(char const* str)            { return shl_char_array(str); }
-            bool operator<<(char* str)                  { return shl_char_array(str); }
-            bool operator<<(short n)                    { return shl_signed(n); }
-            bool operator<<(int n)                      { return shl_signed(n); }
-            bool operator<<(long n)                     { return shl_signed(n); }
-            bool operator<<(unsigned short n)           { start = lcast_put_unsigned<Traits>(n, finish); return true; }
-            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(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(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 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
-
-            bool operator<<(float val)                  { return shl_real_type(val, start, finish); }
-            bool operator<<(double val)                 { return shl_real_type(val, start, finish); }
-            bool operator<<(long double val)            {
-#ifndef __MINGW32__
-                return shl_real_type(val, start, finish);
-#else
-                return shl_real_type(static_cast<double>(val), start, finish);
-#endif
-            }
-            
-            template <std::size_t N>
-            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) 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) 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) 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) 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) NDNBOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<ndnboost::array<const char, N> const& >(input)); }
- 
-#ifndef NDNBOOST_NO_CXX11_HDR_ARRAY
-            template <std::size_t N>
-            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) 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) 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) 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) 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) NDNBOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<ndnboost::array<const char, N> const& >(input)); }
-#endif
-            
-            template <class InStreamable>
-            bool operator<<(const InStreamable& input)  { return shl_input_streamable(input); }
-
-/************************************ HELPER FUNCTIONS FOR OPERATORS >> ( ... ) ********************************/
-        private:
-
-            template <typename Type>
-            bool shr_unsigned(Type& output)
-            {
-                if (start == finish) return false;
-                CharT const minus = lcast_char_constants<CharT>::minus;
-                CharT const plus = lcast_char_constants<CharT>::plus;
-                bool has_minus = false;
-
-                /* We won`t use `start' any more, so no need in decrementing it after */
-                if ( Traits::eq(minus,*start) )
-                {
-                    ++start;
-                    has_minus = true;
-                } else if ( Traits::eq( plus, *start ) )
-                {
-                    ++start;
-                }
-
-                bool const succeed = lcast_ret_unsigned<Traits>(output, start, finish);
-
-                if (has_minus) {
-                    output = static_cast<Type>(0u - output);
-                }
-
-                return succeed;
-            }
-
-            template <typename Type>
-            bool shr_signed(Type& output)
-            {
-                if (start == finish) return false;
-                CharT const minus = lcast_char_constants<CharT>::minus;
-                CharT const plus = lcast_char_constants<CharT>::plus;
-                typedef NDNBOOST_DEDUCED_TYPENAME make_unsigned<Type>::type utype;
-                utype out_tmp =0;
-                bool has_minus = false;
-
-                /* We won`t use `start' any more, so no need in decrementing it after */
-                if ( Traits::eq(minus,*start) )
-                {
-                    ++start;
-                    has_minus = true;
-                } else if ( Traits::eq(plus, *start) )
-                {
-                    ++start;
-                }
-
-                bool succeed = lcast_ret_unsigned<Traits>(out_tmp, start, finish);
-                if (has_minus) {
-                    utype const comp_val = (static_cast<utype>(1) << std::numeric_limits<Type>::digits);
-                    succeed = succeed && out_tmp<=comp_val;
-                    output = static_cast<Type>(0u - out_tmp);
-                } else {
-                    utype const comp_val = static_cast<utype>((std::numeric_limits<Type>::max)());
-                    succeed = succeed && out_tmp<=comp_val;
-                    output = out_tmp;
-                }
-                return succeed;
-            }
-
-            template<typename InputStreamable>
-            bool shr_using_base_class(InputStreamable& output)
-            {
-                NDNBOOST_STATIC_ASSERT_MSG(
-                    (!ndnboost::is_pointer<InputStreamable>::value),
-                    "ndnboost::lexical_cast can not convert to pointers"
-                );
-
-#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(NDNBOOST_NO_STRINGSTREAM)
-                std::istrstream stream(start, finish - start);
-#else
-
-                buffer_t buf;
-                buf.setbuf(start, finish - start);
-#if defined(NDNBOOST_NO_STD_LOCALE)
-                std::istream stream(&buf);
-#else
-                std::basic_istream<CharT, Traits> stream(&buf);
-#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(NDNBOOST_NO_STD_WSTRING)
-        // GCC 2.9x lacks std::char_traits<>::eof().
-        // We use NDNBOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3
-        // configurations, which do provide std::char_traits<>::eof().
-
-                    EOF;
-#else
-                Traits::eof();
-#endif
-            }
-
-            template<class T>
-            inline bool shr_xchar(T& output)
-            {
-                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);
-                if (ok) {
-                    CharT out;
-                    Traits::assign(out, *start);
-                    output = static_cast<T>(out);
-                }
-                return ok;
-            }
-
-/************************************ OPERATORS >> ( ... ) ********************************/
-        public:
-            bool operator>>(unsigned short& output)             { return shr_unsigned(output); }
-            bool operator>>(unsigned int& output)               { return shr_unsigned(output); }
-            bool operator>>(unsigned long int& output)          { return shr_unsigned(output); }
-            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(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(NDNBOOST_HAS_MS_INT64)
-            bool operator>>(unsigned __int64& output)           { return shr_unsigned(output); }
-            bool operator>>(__int64& output)                    { return shr_signed(output); }
-#endif
-
-#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
-
-            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(NDNBOOST_LCAST_NO_WCHAR_T) && !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
-            bool operator>>(wchar_t& output)                    { return shr_xchar(output); }
-#endif
-#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(NDNBOOST_NO_CXX11_CHAR32_T) && !defined(NDNBOOST_NO_CXX11_UNICODE_LITERALS)
-            bool operator>>(char32_t& output)                   { return shr_xchar(output); }
-#endif
-            template<class Alloc>
-            bool operator>>(std::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; }
-
-            template<class Alloc>
-            bool operator>>(ndnboost::container::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; }
-
-            
-    private:
-            template <std::size_t N, class ArrayT>
-            bool shr_std_array(ArrayT& output) NDNBOOST_NOEXCEPT
-            {
-                using namespace std;
-                const std::size_t size = finish - start;
-                if (size > N - 1) { // `-1` because we need to store \0 at the end 
-                    return false;
-                }
-
-                memcpy(&output[0], start, size * sizeof(CharT));
-                output[size] = Traits::to_char_type(0);
-                return true;
-            }
-
-    public:
-
-            template <std::size_t N>
-            bool operator>>(ndnboost::array<CharT, N>& output) NDNBOOST_NOEXCEPT
-            { 
-                return shr_std_array<N>(output); 
-            }
-
-            template <std::size_t N>
-            bool operator>>(ndnboost::array<unsigned char, N>& output)   
-            { 
-                return ((*this) >> reinterpret_cast<ndnboost::array<char, N>& >(output)); 
-            }
-
-            template <std::size_t N>
-            bool operator>>(ndnboost::array<signed char, N>& output)   
-            { 
-                return ((*this) >> reinterpret_cast<ndnboost::array<char, N>& >(output)); 
-            }
- 
-#ifndef NDNBOOST_NO_CXX11_HDR_ARRAY
-            template <std::size_t N>
-            bool operator>>(std::array<CharT, N>& output) NDNBOOST_NOEXCEPT
-            { 
-                return shr_std_array<N>(output); 
-            }
-
-            template <std::size_t N>
-            bool operator>>(std::array<unsigned char, N>& output)   
-            { 
-                return ((*this) >> reinterpret_cast<std::array<char, N>& >(output)); 
-            }
-
-            template <std::size_t N>
-            bool operator>>(std::array<signed char, N>& output)
-            { 
-                return ((*this) >> reinterpret_cast<std::array<char, N>& >(output)); 
-            }
-#endif
-
-
-            /*
-             * case "-0" || "0" || "+0" :   output = false; return true;
-             * case "1" || "+1":            output = true;  return true;
-             * default:                     return false;
-             */
-            bool operator>>(bool& output) NDNBOOST_NOEXCEPT
-            {
-                CharT const zero = lcast_char_constants<CharT>::zero;
-                CharT const plus = lcast_char_constants<CharT>::plus;
-                CharT const minus = lcast_char_constants<CharT>::minus;
-
-                switch(finish-start)
-                {
-                    case 1:
-                        output = Traits::eq(start[0],  zero+1);
-                        return output || Traits::eq(start[0], zero );
-                    case 2:
-                        if ( Traits::eq( plus, *start) )
-                        {
-                            ++start;
-                            output = Traits::eq(start[0], zero +1);
-                            return output || Traits::eq(start[0], zero );
-                        } else
-                        {
-                            output = false;
-                            return Traits::eq( minus, *start)
-                                && Traits::eq( zero, start[1]);
-                        }
-                    default:
-                        output = false; // Suppress warning about uninitalized variable
-                        return false;
-                }
-            }
-
-            bool operator>>(float& output) { return lcast_ret_float<Traits>(output,start,finish); }
-
-        private:
-            // Not optimised converter
-            template <class T>
-            bool float_types_converter_internal(T& output, int /*tag*/) {
-                if (parse_inf_nan(start, finish, output)) return true;
-                bool return_value = shr_using_base_class(output);
-
-                /* Some compilers and libraries successfully
-                 * parse 'inf', 'INFINITY', '1.0E', '1.0E-'...
-                 * We are trying to provide a unified behaviour,
-                 * so we just forbid such conversions (as some
-                 * of the most popular compilers/libraries do)
-                 * */
-                CharT const minus = lcast_char_constants<CharT>::minus;
-                CharT const plus = lcast_char_constants<CharT>::plus;
-                CharT const capital_e = lcast_char_constants<CharT>::capital_e;
-                CharT const lowercase_e = lcast_char_constants<CharT>::lowercase_e;
-                if ( return_value &&
-                     (
-                        Traits::eq(*(finish-1), lowercase_e)                   // 1.0e
-                        || Traits::eq(*(finish-1), capital_e)                  // 1.0E
-                        || Traits::eq(*(finish-1), minus)                      // 1.0e- or 1.0E-
-                        || Traits::eq(*(finish-1), plus)                       // 1.0e+ or 1.0E+
-                     )
-                ) return false;
-
-                return return_value;
-            }
-
-            // Optimised converter
-            bool float_types_converter_internal(double& output,char /*tag*/) {
-                return lcast_ret_float<Traits>(output,start,finish);
-            }
-        public:
-
-            bool operator>>(double& output)
-            {
-                /*
-                 * Some compilers implement long double as double. In that case these types have
-                 * same size, same precision, same max and min values... And it means,
-                 * that current implementation of lcast_ret_float cannot be used for type
-                 * double, because it will give a big precision loss.
-                 * */
-                ndnboost::mpl::if_c<
-#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,
-#endif
-                    int,
-                    char
-                >::type tag = 0;
-
-                return float_types_converter_internal(output, tag);
-            }
-
-            bool operator>>(long double& output)
-            {
-                int tag = 0;
-                return float_types_converter_internal(output, tag);
-            }
-
-            // Generic istream-based algorithm.
-            // lcast_streambuf_for_target<InputStreamable>::value is true.
-            template<typename InputStreamable>
-            bool operator>>(InputStreamable& output) { return shr_using_base_class(output); }
-        };
-    }
-
-    namespace detail
-    {
-        template<typename T>
-        struct is_stdstring
-        {
-            NDNBOOST_STATIC_CONSTANT(bool, value = false );
-        };
-
-        template<typename CharT, typename Traits, typename Alloc>
-        struct is_stdstring< std::basic_string<CharT, Traits, Alloc> >
-        {
-            NDNBOOST_STATIC_CONSTANT(bool, value = true );
-        };
-
-        template<typename CharT, typename Traits, typename Alloc>
-        struct is_stdstring< ndnboost::container::basic_string<CharT, Traits, Alloc> >
-        {
-            NDNBOOST_STATIC_CONSTANT(bool, value = true );
-        };
-
-        template<typename Target, typename Source>
-        struct is_arithmetic_and_not_xchars
-        {
-            NDNBOOST_STATIC_CONSTANT(bool, value =
-               (
-                   ndnboost::type_traits::ice_and<
-                           ndnboost::is_arithmetic<Source>::value,
-                           ndnboost::is_arithmetic<Target>::value,
-                           ndnboost::type_traits::ice_not<
-                                detail::is_char_or_wchar<Target>::value
-                           >::value,
-                           ndnboost::type_traits::ice_not<
-                                detail::is_char_or_wchar<Source>::value
-                           >::value
-                   >::value
-               )
-            );
-        };
-
-        /*
-         * is_xchar_to_xchar<Target, Source>::value is true, when
-         * Target and Souce are the same char types, or when
-         * Target and Souce are char types of the same size.
-         */
-        template<typename Target, typename Source>
-        struct is_xchar_to_xchar
-        {
-            NDNBOOST_STATIC_CONSTANT(bool, value =
-                (
-                    ndnboost::type_traits::ice_or<
-                        ndnboost::type_traits::ice_and<
-                             is_same<Source,Target>::value,
-                             is_char_or_wchar<Target>::value
-                        >::value,
-                        ndnboost::type_traits::ice_and<
-                             ndnboost::type_traits::ice_eq< sizeof(char),sizeof(Target)>::value,
-                             ndnboost::type_traits::ice_eq< sizeof(char),sizeof(Source)>::value,
-                             is_char_or_wchar<Target>::value,
-                             is_char_or_wchar<Source>::value
-                        >::value
-                    >::value
-                )
-            );
-        };
-
-        template<typename Target, typename Source>
-        struct is_char_array_to_stdstring
-        {
-            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* >
-        {
-            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* >
-        {
-            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* >
-        {
-            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* >
-        {
-            NDNBOOST_STATIC_CONSTANT(bool, value = true );
-        };
-
-#if (defined _MSC_VER)
-# pragma warning( push )
-# pragma warning( disable : 4701 ) // possible use of ... before initialization
-# pragma warning( disable : 4702 ) // unreachable code
-# pragma warning( disable : 4267 ) // conversion from 'size_t' to 'unsigned int'
-#endif
-        template<typename Target, typename Source>
-        struct lexical_cast_do_cast
-        {
-            static inline Target lexical_cast_impl(const Source& arg)
-            {
-                typedef lexical_cast_stream_traits<Source, Target>  stream_trait;
-                
-                typedef detail::lexical_stream_limited_src<
-                    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;               
-
-                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)))
-                  NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target);
-
-                return result;
-            }
-        };
-#if (defined _MSC_VER)
-# pragma warning( pop )
-#endif
-
-        template <typename Source>
-        struct lexical_cast_copy
-        {
-            static inline const Source& lexical_cast_impl(const Source &arg) NDNBOOST_NOEXCEPT
-            {
-                return arg;
-            }
-        };
-
-        template <class Source, class Target >
-        struct detect_precision_loss
-        {
-         typedef ndnboost::numeric::Trunc<Source> Rounder;
-         typedef Source source_type ;
-
-         typedef NDNBOOST_DEDUCED_TYPENAME mpl::if_<
-            ndnboost::is_arithmetic<Source>, Source, Source const&
-          >::type argument_type ;
-
-         static source_type nearbyint ( argument_type s )
-         {
-            const source_type near_int = Rounder::nearbyint(s);
-            if (near_int) {
-                const source_type orig_div_round = s / near_int;
-                const source_type eps = std::numeric_limits<source_type>::epsilon();
-
-                if ((orig_div_round > 1 ? orig_div_round - 1 : 1 - orig_div_round) > eps)
-                    NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target);
-            }
-
-            return s ;
-         }
-
-         typedef typename Rounder::round_style round_style;
-        } ;
-
-        template <class Source, class Target >
-        struct nothrow_overflow_handler
-        {
-          void operator() ( ndnboost::numeric::range_check_result r )
-          {
-            if (r != ndnboost::numeric::cInRange)
-                NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target);
-          }
-        } ;
-
-        template <typename Target, typename Source>
-        struct lexical_cast_dynamic_num_not_ignoring_minus
-        {
-            static inline Target lexical_cast_impl(const Source &arg)
-            {
-                return ndnboost::numeric::converter<
-                        Target,
-                        Source,
-                        ndnboost::numeric::conversion_traits<Target,Source>,
-                        nothrow_overflow_handler<Source, Target>,
-                        detect_precision_loss<Source, Target>
-                >::convert(arg);
-            }
-        };
-
-        template <typename Target, typename Source>
-        struct lexical_cast_dynamic_num_ignoring_minus
-        {
-            static inline Target lexical_cast_impl(const Source &arg)
-            {
-                typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::eval_if_c<
-                        ndnboost::is_float<Source>::value,
-                        ndnboost::mpl::identity<Source>,
-                        ndnboost::make_unsigned<Source>
-                >::type usource_t;
-
-                typedef ndnboost::numeric::converter<
-                        Target,
-                        usource_t,
-                        ndnboost::numeric::conversion_traits<Target,usource_t>,
-                        nothrow_overflow_handler<usource_t, Target>,
-                        detect_precision_loss<usource_t, Target>
-                > converter_t;
-
-                return (
-                    arg < 0 ? static_cast<Target>(0u - converter_t::convert(0u - arg)) : converter_t::convert(arg)
-                );
-            }
-        };
-
-        /*
-         * lexical_cast_dynamic_num follows the rules:
-         * 1) If Source can be converted to Target without precision loss and
-         * without overflows, then assign Source to Target and return
-         *
-         * 2) If Source is less than 0 and Target is an unsigned integer,
-         * then negate Source, check the requirements of rule 1) and if
-         * successful, assign static_casted Source to Target and return
-         *
-         * 3) Otherwise throw a bad_lexical_cast exception
-         *
-         *
-         * Rule 2) required because ndnboost::lexical_cast has the behavior of
-         * stringstream, which uses the rules of scanf for conversions. And
-         * in the C99 standard for unsigned input value minus sign is
-         * optional, so if a negative number is read, no errors will arise
-         * and the result will be the two's complement.
-         */
-        template <typename Target, typename Source>
-        struct lexical_cast_dynamic_num
-        {
-            static inline Target lexical_cast_impl(const Source &arg)
-            {
-                typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
-                    ndnboost::type_traits::ice_and<
-                        ndnboost::type_traits::ice_or<
-                            ndnboost::is_signed<Source>::value,
-                            ndnboost::is_float<Source>::value
-                        >::value,
-                        ndnboost::type_traits::ice_not<
-                            ndnboost::is_same<Source, bool>::value
-                        >::value,
-                        ndnboost::type_traits::ice_not<
-                            ndnboost::is_same<Target, bool>::value
-                        >::value,
-                        ndnboost::is_unsigned<Target>::value
-                    >::value,
-                    lexical_cast_dynamic_num_ignoring_minus<Target, Source>,
-                    lexical_cast_dynamic_num_not_ignoring_minus<Target, Source>
-                >::type caster_type;
-
-                return caster_type::lexical_cast_impl(arg);
-            }
-        };
-    }
-
-    template <typename Target, typename Source>
-    inline Target lexical_cast(const Source &arg)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::array_to_pointer_decay<Source>::type src;
-
-        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<
-                     ndnboost::is_same<Target, src >::value,
-                     ndnboost::detail::is_stdstring<Target >::value
-                >::value
-        > shall_we_copy_t;
-
-        typedef NDNBOOST_DEDUCED_TYPENAME
-                ndnboost::detail::is_arithmetic_and_not_xchars<Target, src > shall_we_copy_with_dynamic_check_t;
-
-        typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::mpl::if_c<
-            shall_we_copy_t::value,
-            ndnboost::detail::lexical_cast_copy<src >,
-            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 >
-            >::type
-        >::type caster_type;
-
-        return caster_type::lexical_cast_impl(arg);
-    }
-
-    template <typename Target>
-    inline Target lexical_cast(const char* chars, std::size_t count)
-     {
-        return ::ndnboost::lexical_cast<Target>(
-            ::ndnboost::iterator_range<const char*>(chars, chars + count)
-        );
-    }
-
-
-    template <typename Target>
-    inline Target lexical_cast(const unsigned char* chars, std::size_t count)
-    {
-         return ::ndnboost::lexical_cast<Target>(
-            ::ndnboost::iterator_range<const unsigned char*>(chars, chars + count)
-         );
-     }
-
-    template <typename Target>
-    inline Target lexical_cast(const signed char* chars, std::size_t count)
-    {
-        return ::ndnboost::lexical_cast<Target>(
-            ::ndnboost::iterator_range<const signed char*>(chars, chars + count)
-        );
-    }
-
-#ifndef NDNBOOST_LCAST_NO_WCHAR_T
-    template <typename Target>
-    inline Target lexical_cast(const wchar_t* chars, std::size_t count)
-    {
-        return ::ndnboost::lexical_cast<Target>(
-            ::ndnboost::iterator_range<const wchar_t*>(chars, chars + count)
-        );
-    }
-#endif
-#ifndef NDNBOOST_NO_CHAR16_T
-    template <typename Target>
-    inline Target lexical_cast(const char16_t* chars, std::size_t count)
-    {
-        return ::ndnboost::lexical_cast<Target>(
-            ::ndnboost::iterator_range<const char16_t*>(chars, chars + count)
-        );
-    }
-#endif
-#ifndef NDNBOOST_NO_CHAR32_T
-    template <typename Target>
-    inline Target lexical_cast(const char32_t* chars, std::size_t count)
-    {
-        return ::ndnboost::lexical_cast<Target>(
-            ::ndnboost::iterator_range<const char32_t*>(chars, chars + count)
-        );
-    }
-#endif
-
-} // namespace ndnboost
-
-#else // #ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace ndnboost {
-    namespace detail
-    {
-
-        // selectors for choosing stream character type
-        template<typename Type>
-        struct stream_char
-        {
-            typedef char type;
-        };
-
-#ifndef NDNBOOST_LCAST_NO_WCHAR_T
-#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
-        template<>
-        struct stream_char<wchar_t>
-        {
-            typedef wchar_t type;
-        };
-#endif
-
-        template<>
-        struct stream_char<wchar_t *>
-        {
-            typedef wchar_t type;
-        };
-
-        template<>
-        struct stream_char<const wchar_t *>
-        {
-            typedef wchar_t type;
-        };
-
-        template<>
-        struct stream_char<std::wstring>
-        {
-            typedef wchar_t type;
-        };
-#endif
-
-        // stream wrapper for handling lexical conversions
-        template<typename Target, typename Source, typename Traits>
-        class lexical_stream
-        {
-        private:
-            typedef typename widest_char<
-                typename stream_char<Target>::type,
-                typename stream_char<Source>::type>::type char_type;
-
-            typedef Traits traits_type;
-
-        public:
-            lexical_stream(char_type* = 0, char_type* = 0)
-            {
-                stream.unsetf(std::ios::skipws);
-                lcast_set_precision(stream, static_cast<Source*>(0), static_cast<Target*>(0) );
-            }
-            ~lexical_stream()
-            {
-                #if defined(NDNBOOST_NO_STRINGSTREAM)
-                stream.freeze(false);
-                #endif
-            }
-            bool operator<<(const Source &input)
-            {
-                return !(stream << input).fail();
-            }
-            template<typename InputStreamable>
-            bool operator>>(InputStreamable &output)
-            {
-                return !is_pointer<InputStreamable>::value &&
-                       stream >> output &&
-                       stream.get() ==
-#if defined(__GNUC__) && (__GNUC__<3) && defined(NDNBOOST_NO_STD_WSTRING)
-// GCC 2.9x lacks std::char_traits<>::eof().
-// We use NDNBOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3
-// configurations, which do provide std::char_traits<>::eof().
-
-                           EOF;
-#else
-                           traits_type::eof();
-#endif
-            }
-
-            bool operator>>(std::string &output)
-            {
-                #if defined(NDNBOOST_NO_STRINGSTREAM)
-                stream << '\0';
-                #endif
-                stream.str().swap(output);
-                return true;
-            }
-            #ifndef NDNBOOST_LCAST_NO_WCHAR_T
-            bool operator>>(std::wstring &output)
-            {
-                stream.str().swap(output);
-                return true;
-            }
-            #endif
-
-        private:
-            #if defined(NDNBOOST_NO_STRINGSTREAM)
-            std::strstream stream;
-            #elif defined(NDNBOOST_NO_STD_LOCALE)
-            std::stringstream stream;
-            #else
-            std::basic_stringstream<char_type,traits_type> stream;
-            #endif
-        };
-    }
-
-    // call-by-value fallback version (deprecated)
-
-    template<typename Target, typename Source>
-    Target lexical_cast(Source arg)
-    {
-        typedef typename detail::widest_char< 
-            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;
-        detail::lexical_stream<Target, Source, traits> interpreter;
-        Target result;
-
-        if(!(interpreter << arg && interpreter >> result))
-          NDNBOOST_LCAST_THROW_BAD_CAST(Source, Target);
-        return result;
-    }
-
-} // namespace ndnboost
-
-#endif
-
-// Copyright Kevlin Henney, 2000-2005.
-// Copyright Alexander Nasonov, 2006-2010.
-// Copyright Antony Polukhin, 2011-2013.
-//
-// 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 NDNBOOST_LCAST_THROW_BAD_CAST
-#undef NDNBOOST_LCAST_NO_WCHAR_T
-#undef NDNBOOST_LCAST_HAS_INT128
-
-#endif // NDNBOOST_LEXICAL_CAST_INCLUDED
-
diff --git a/include/ndnboost/limits.hpp b/include/ndnboost/limits.hpp
deleted file mode 100644
index cd55d9b..0000000
--- a/include/ndnboost/limits.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-//  (C) Copyright John maddock 1999. 
-//  (C) David Abrahams 2002.  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)
-//
-// use this header as a workaround for missing <limits>
-
-//  See http://www.boost.org/libs/compatibility/index.html for documentation.
-
-#ifndef NDNBOOST_LIMITS
-#define NDNBOOST_LIMITS
-
-#include <ndnboost/config.hpp>
-
-#ifdef NDNBOOST_NO_LIMITS
-#  error "There is no std::numeric_limits suppport available."
-#else
-# include <limits>
-#endif
-
-#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 NDNBOOST_HAS_MS_INT64
-#  define NDNBOOST_LLT __int64
-#  define NDNBOOST_ULLT unsigned __int64
-#else
-#  define NDNBOOST_LLT  ::ndnboost::long_long_type
-#  define NDNBOOST_ULLT  ::ndnboost::ulong_long_type
-#endif
-
-#include <climits>  // for CHAR_BIT
-
-namespace std
-{
-  template<>
-  class numeric_limits<NDNBOOST_LLT> 
-  {
-   public:
-
-      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 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 NDNBOOST_LLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; }
-      static NDNBOOST_LLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; }
-#else
-      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
-      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; };
-
-      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);
-
-      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; };
-
-      NDNBOOST_STATIC_CONSTANT(bool, is_iec559 = false);
-      NDNBOOST_STATIC_CONSTANT(bool, is_bounded = true);
-      NDNBOOST_STATIC_CONSTANT(bool, is_modulo = true);
-
-      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<NDNBOOST_ULLT> 
-  {
-   public:
-
-      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 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 NDNBOOST_ULLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; }
-      static NDNBOOST_ULLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; }
-#else
-      static NDNBOOST_ULLT min NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; }
-      static NDNBOOST_ULLT max NDNBOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; }
-#endif
-      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; };
-
-      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);
-
-      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; };
-
-      NDNBOOST_STATIC_CONSTANT(bool, is_iec559 = false);
-      NDNBOOST_STATIC_CONSTANT(bool, is_bounded = true);
-      NDNBOOST_STATIC_CONSTANT(bool, is_modulo = true);
-
-      NDNBOOST_STATIC_CONSTANT(bool, traps = false);
-      NDNBOOST_STATIC_CONSTANT(bool, tinyness_before = false);
-      NDNBOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
-      
-  };
-}
-#endif 
-
-#endif
-
diff --git a/include/ndnboost/make_shared.hpp b/include/ndnboost/make_shared.hpp
deleted file mode 100644
index b28bee2..0000000
--- a/include/ndnboost/make_shared.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef NDNBOOST_MAKE_SHARED_HPP_INCLUDED
-#define NDNBOOST_MAKE_SHARED_HPP_INCLUDED
-
-//  make_shared.hpp
-//
-//  Copyright (c) 2007, 2008 Peter Dimov
-//
-//  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
-//
-//  See http://www.boost.org/libs/smart_ptr/make_shared.html
-//  for documentation.
-
-#include <ndnboost/smart_ptr/make_shared.hpp>
-
-#endif // #ifndef NDNBOOST_MAKE_SHARED_HPP_INCLUDED
diff --git a/include/ndnboost/math/policies/policy.hpp b/include/ndnboost/math/policies/policy.hpp
deleted file mode 100644
index 66a35d9..0000000
--- a/include/ndnboost/math/policies/policy.hpp
+++ /dev/null
@@ -1,992 +0,0 @@
-//  Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to 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 NDNBOOST_MATH_POLICY_HPP
-#define NDNBOOST_MATH_POLICY_HPP
-
-#include <ndnboost/mpl/list.hpp>
-#include <ndnboost/mpl/contains.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/find_if.hpp>
-#include <ndnboost/mpl/remove_if.hpp>
-#include <ndnboost/mpl/vector.hpp>
-#include <ndnboost/mpl/push_back.hpp>
-#include <ndnboost/mpl/at.hpp>
-#include <ndnboost/mpl/size.hpp>
-#include <ndnboost/mpl/comparison.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/math/tools/config.hpp>
-#include <limits>
-// Sadly we do need the .h versions of these to be sure of getting
-// FLT_MANT_DIG etc.
-#include <limits.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <math.h>
-
-namespace ndnboost{ namespace math{ 
-
-namespace tools{
-
-template <class T>
-int digits(NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T));
-template <class T>
-T epsilon(NDNBOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T));
-
-}
-
-namespace policies{
-
-//
-// Define macros for our default policies, if they're not defined already:
-//
-#ifndef NDNBOOST_MATH_DOMAIN_ERROR_POLICY
-#define NDNBOOST_MATH_DOMAIN_ERROR_POLICY throw_on_error
-#endif
-#ifndef NDNBOOST_MATH_POLE_ERROR_POLICY
-#define NDNBOOST_MATH_POLE_ERROR_POLICY throw_on_error
-#endif
-#ifndef NDNBOOST_MATH_OVERFLOW_ERROR_POLICY
-#define NDNBOOST_MATH_OVERFLOW_ERROR_POLICY throw_on_error
-#endif
-#ifndef NDNBOOST_MATH_EVALUATION_ERROR_POLICY
-#define NDNBOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
-#endif
-#ifndef NDNBOOST_MATH_ROUNDING_ERROR_POLICY
-#define NDNBOOST_MATH_ROUNDING_ERROR_POLICY throw_on_error
-#endif
-#ifndef NDNBOOST_MATH_UNDERFLOW_ERROR_POLICY
-#define NDNBOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
-#endif
-#ifndef NDNBOOST_MATH_DENORM_ERROR_POLICY
-#define NDNBOOST_MATH_DENORM_ERROR_POLICY ignore_error
-#endif
-#ifndef NDNBOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY
-#define NDNBOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY ignore_error
-#endif
-#ifndef NDNBOOST_MATH_DIGITS10_POLICY
-#define NDNBOOST_MATH_DIGITS10_POLICY 0
-#endif
-#ifndef NDNBOOST_MATH_PROMOTE_FLOAT_POLICY
-#define NDNBOOST_MATH_PROMOTE_FLOAT_POLICY true
-#endif
-#ifndef NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY
-#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#define NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY false
-#else
-#define NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY true
-#endif
-#endif
-#ifndef NDNBOOST_MATH_DISCRETE_QUANTILE_POLICY
-#define NDNBOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
-#endif
-#ifndef NDNBOOST_MATH_ASSERT_UNDEFINED_POLICY
-#define NDNBOOST_MATH_ASSERT_UNDEFINED_POLICY true
-#endif
-#ifndef NDNBOOST_MATH_MAX_SERIES_ITERATION_POLICY
-#define NDNBOOST_MATH_MAX_SERIES_ITERATION_POLICY 1000000
-#endif
-#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 NDNBOOST_MATH_META_INT(type, name, Default)\
-   template <type N = Default> struct name : public ndnboost::mpl::int_<N>{};\
-   namespace detail{\
-   template <type N>\
-   char test_is_valid_arg(const name<N>*);\
-   char test_is_default_arg(const name<Default>*);\
-   template <class T> struct is_##name##_imp\
-   {\
-      template <type N> static char test(const name<N>*);\
-      static double test(...);\
-      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 NDNBOOST_MATH_META_BOOL(name, Default)\
-   template <bool N = Default> struct name : public ndnboost::mpl::bool_<N>{};\
-   namespace detail{\
-   template <bool N>\
-   char test_is_valid_arg(const name<N>*);\
-   char test_is_default_arg(const name<Default>*);\
-   template <class T> struct is_##name##_imp\
-   {\
-      template <bool N> static char test(const name<N>*);\
-      static double test(...);\
-      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 NDNBOOST_MATH_META_INT(Type, name, Default)\
-   template <Type N = Default> struct name : public ndnboost::mpl::int_<N>{};\
-   namespace detail{\
-   template <Type N>\
-   char test_is_valid_arg(const name<N>*);\
-   char test_is_default_arg(const name<Default>*);\
-   template <class T> struct is_##name##_tester\
-   {\
-      template <Type N> static char test(const name<N>&);\
-      static double test(...);\
-   };\
-   template <class T> struct is_##name##_imp\
-   {\
-      static T inst;\
-      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>\
-   {\
-      template <class U> struct apply{ typedef is_##name<U> type; };\
-   };
-
-#define NDNBOOST_MATH_META_BOOL(name, Default)\
-   template <bool N = Default> struct name : public ndnboost::mpl::bool_<N>{};\
-   namespace detail{\
-   template <bool N>\
-   char test_is_valid_arg(const name<N>*);\
-   char test_is_default_arg(const name<Default>*);\
-   template <class T> struct is_##name##_tester\
-   {\
-      template <bool N> static char test(const name<N>&);\
-      static double test(...);\
-   };\
-   template <class T> struct is_##name##_imp\
-   {\
-      static T inst;\
-      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>\
-   {\
-      template <class U> struct apply{ typedef is_##name<U> type;  };\
-   };
-#endif
-//
-// Begin by defining policy types for error handling:
-//
-enum error_policy_type
-{
-   throw_on_error = 0,
-   errno_on_error = 1,
-   ignore_error = 2,
-   user_error = 3
-};
-
-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:
-//
-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:
-//
-enum discrete_quantile_policy_type
-{
-   real,
-   integer_round_outwards,
-   integer_round_inwards,
-   integer_round_down,
-   integer_round_up,
-   integer_round_nearest
-};
-
-NDNBOOST_MATH_META_INT(discrete_quantile_policy_type, discrete_quantile, NDNBOOST_MATH_DISCRETE_QUANTILE_POLICY)
-//
-// Precision:
-//
-NDNBOOST_MATH_META_INT(int, digits10, NDNBOOST_MATH_DIGITS10_POLICY)
-NDNBOOST_MATH_META_INT(int, digits2, 0)
-//
-// Iterations:
-//
-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 NDNBOOST_MATH_PARAMETER(name)\
-   NDNBOOST_PARAMETER_TEMPLATE_KEYWORD(name##_name)\
-   NDNBOOST_PARAMETER_NAME(name##_name)
-
-struct default_policy{};
-
-namespace detail{
-//
-// Trait to work out bits precision from digits10 and digits2:
-//
-template <class Digits10, class Digits2>
-struct precision
-{
-   //
-   // Now work out the precision:
-   //
-   typedef typename mpl::if_c<
-      (Digits10::value == 0),
-      digits2<0>,
-      digits2<((Digits10::value + 1) * 1000L) / 301L>
-   >::type digits2_type;
-public:
-#ifdef __BORLANDC__
-   typedef typename mpl::if_c<
-      (Digits2::value > ::ndnboost::math::policies::detail::precision<Digits10,Digits2>::digits2_type::value),
-      Digits2, digits2_type>::type type;
-#else
-   typedef typename mpl::if_c<
-      (Digits2::value > digits2_type::value),
-      Digits2, digits2_type>::type type;
-#endif
-};
-
-template <class A, class B, bool b>
-struct select_result
-{
-   typedef A type;
-};
-template <class A, class B>
-struct select_result<A, B, false>
-{
-   typedef typename mpl::deref<B>::type type;
-};
-
-template <class Seq, class Pred, class DefaultType>
-struct find_arg
-{
-private:
-   typedef typename mpl::find_if<Seq, Pred>::type iter;
-   typedef typename mpl::end<Seq>::type end_type;
-public:
-   typedef typename select_result<
-      DefaultType, iter,
-      ::ndnboost::is_same<iter, end_type>::value>::type type;
-};
-
-double test_is_valid_arg(...);
-double test_is_default_arg(...);
-char test_is_valid_arg(const default_policy*);
-char test_is_default_arg(const default_policy*);
-
-template <class T>
-struct is_valid_policy_imp 
-{
-   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
-{
-   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 
-: public mpl::bool_< 
-   ::ndnboost::math::policies::detail::is_valid_policy_imp<T>::value>
-{};
-
-template <class T> struct is_default_policy 
-: public mpl::bool_< 
-   ::ndnboost::math::policies::detail::is_default_policy_imp<T>::value>
-{
-   template <class U>
-   struct apply
-   {
-      typedef is_default_policy<U> type;
-   };
-};
-
-template <class Seq, class T, int N>
-struct append_N
-{
-   typedef typename mpl::push_back<Seq, T>::type new_seq;
-   typedef typename append_N<new_seq, T, N-1>::type type;
-};
-
-template <class Seq, class T>
-struct append_N<Seq, T, 0>
-{
-   typedef Seq type;
-};
-
-//
-// Traits class to work out what template parameters our default
-// policy<> class will have when modified for forwarding:
-//
-template <bool f, bool d>
-struct default_args
-{
-   typedef promote_float<false> arg1;
-   typedef promote_double<false> arg2;
-};
-
-template <>
-struct default_args<false, false>
-{
-   typedef default_policy arg1;
-   typedef default_policy arg2;
-};
-
-template <>
-struct default_args<true, false>
-{
-   typedef promote_float<false> arg1;
-   typedef default_policy arg2;
-};
-
-template <>
-struct default_args<false, true>
-{
-   typedef promote_double<false> arg1;
-   typedef default_policy 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
-//
-// Now define the policy type with enough arguments to handle all
-// the policies:
-//
-template <class A1 = default_policy, 
-          class A2 = default_policy, 
-          class A3 = default_policy,
-          class A4 = default_policy,
-          class A5 = default_policy,
-          class A6 = default_policy,
-          class A7 = default_policy,
-          class A8 = default_policy,
-          class A9 = default_policy,
-          class A10 = default_policy,
-          class A11 = default_policy,
-          class A12 = default_policy,
-          class A13 = default_policy>
-struct policy
-{
-private:
-   //
-   // Validate all our arguments:
-   //
-   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:
-   //
-   typedef mpl::list<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13> arg_list;
-
-public:
-   typedef typename detail::find_arg<arg_list, is_domain_error<mpl::_1>, domain_error<> >::type domain_error_type;
-   typedef typename detail::find_arg<arg_list, is_pole_error<mpl::_1>, pole_error<> >::type pole_error_type;
-   typedef typename detail::find_arg<arg_list, is_overflow_error<mpl::_1>, overflow_error<> >::type overflow_error_type;
-   typedef typename detail::find_arg<arg_list, is_underflow_error<mpl::_1>, underflow_error<> >::type underflow_error_type;
-   typedef typename detail::find_arg<arg_list, is_denorm_error<mpl::_1>, denorm_error<> >::type denorm_error_type;
-   typedef typename detail::find_arg<arg_list, is_evaluation_error<mpl::_1>, evaluation_error<> >::type evaluation_error_type;
-   typedef typename detail::find_arg<arg_list, is_rounding_error<mpl::_1>, rounding_error<> >::type rounding_error_type;
-   typedef typename detail::find_arg<arg_list, is_indeterminate_result_error<mpl::_1>, indeterminate_result_error<> >::type indeterminate_result_error_type;
-private:
-   //
-   // Now work out the precision:
-   //
-   typedef typename detail::find_arg<arg_list, is_digits10<mpl::_1>, digits10<> >::type digits10_type;
-   typedef typename detail::find_arg<arg_list, is_digits2<mpl::_1>, digits2<> >::type bits_precision_type;
-public:
-   typedef typename detail::precision<digits10_type, bits_precision_type>::type precision_type;
-   //
-   // Internal promotion:
-   //
-   typedef typename detail::find_arg<arg_list, is_promote_float<mpl::_1>, promote_float<> >::type promote_float_type;
-   typedef typename detail::find_arg<arg_list, is_promote_double<mpl::_1>, promote_double<> >::type promote_double_type;
-   //
-   // Discrete quantiles:
-   //
-   typedef typename detail::find_arg<arg_list, is_discrete_quantile<mpl::_1>, discrete_quantile<> >::type discrete_quantile_type;
-   //
-   // Mathematically undefined properties:
-   //
-   typedef typename detail::find_arg<arg_list, is_assert_undefined<mpl::_1>, assert_undefined<> >::type assert_undefined_type;
-   //
-   // Max iterations:
-   //
-   typedef typename detail::find_arg<arg_list, is_max_series_iterations<mpl::_1>, max_series_iterations<> >::type max_series_iterations_type;
-   typedef typename detail::find_arg<arg_list, is_max_root_iterations<mpl::_1>, max_root_iterations<> >::type max_root_iterations_type;
-};
-//
-// These full specializations are defined to reduce the amount of
-// template instantiations that have to take place when using the default
-// policies, they have quite a large impact on compile times:
-//
-template <>
-struct policy<default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy>
-{
-public:
-   typedef domain_error<> domain_error_type;
-   typedef pole_error<> pole_error_type;
-   typedef overflow_error<> overflow_error_type;
-   typedef underflow_error<> underflow_error_type;
-   typedef denorm_error<> denorm_error_type;
-   typedef evaluation_error<> evaluation_error_type;
-   typedef rounding_error<> rounding_error_type;
-   typedef indeterminate_result_error<> indeterminate_result_error_type;
-#if NDNBOOST_MATH_DIGITS10_POLICY == 0
-   typedef digits2<> precision_type;
-#else
-   typedef detail::precision<digits10<>, digits2<> >::type precision_type;
-#endif
-   typedef promote_float<> promote_float_type;
-   typedef promote_double<> promote_double_type;
-   typedef discrete_quantile<> discrete_quantile_type;
-   typedef assert_undefined<> assert_undefined_type;
-   typedef max_series_iterations<> max_series_iterations_type;
-   typedef max_root_iterations<> max_root_iterations_type;
-};
-
-template <>
-struct policy<detail::forwarding_arg1, detail::forwarding_arg2, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy>
-{
-public:
-   typedef domain_error<> domain_error_type;
-   typedef pole_error<> pole_error_type;
-   typedef overflow_error<> overflow_error_type;
-   typedef underflow_error<> underflow_error_type;
-   typedef denorm_error<> denorm_error_type;
-   typedef evaluation_error<> evaluation_error_type;
-   typedef rounding_error<> rounding_error_type;
-   typedef indeterminate_result_error<> indeterminate_result_error_type;
-#if NDNBOOST_MATH_DIGITS10_POLICY == 0
-   typedef digits2<> precision_type;
-#else
-   typedef detail::precision<digits10<>, digits2<> >::type precision_type;
-#endif
-   typedef promote_float<false> promote_float_type;
-   typedef promote_double<false> promote_double_type;
-   typedef discrete_quantile<> discrete_quantile_type;
-   typedef assert_undefined<> assert_undefined_type;
-   typedef max_series_iterations<> max_series_iterations_type;
-   typedef max_root_iterations<> max_root_iterations_type;
-};
-
-template <class Policy, 
-          class A1 = default_policy, 
-          class A2 = default_policy, 
-          class A3 = default_policy,
-          class A4 = default_policy,
-          class A5 = default_policy,
-          class A6 = default_policy,
-          class A7 = default_policy,
-          class A8 = default_policy,
-          class A9 = default_policy,
-          class A10 = default_policy,
-          class A11 = default_policy,
-          class A12 = default_policy,
-          class A13 = default_policy>
-struct normalise
-{
-private:
-   typedef mpl::list<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13> arg_list;
-   typedef typename detail::find_arg<arg_list, is_domain_error<mpl::_1>, typename Policy::domain_error_type >::type domain_error_type;
-   typedef typename detail::find_arg<arg_list, is_pole_error<mpl::_1>, typename Policy::pole_error_type >::type pole_error_type;
-   typedef typename detail::find_arg<arg_list, is_overflow_error<mpl::_1>, typename Policy::overflow_error_type >::type overflow_error_type;
-   typedef typename detail::find_arg<arg_list, is_underflow_error<mpl::_1>, typename Policy::underflow_error_type >::type underflow_error_type;
-   typedef typename detail::find_arg<arg_list, is_denorm_error<mpl::_1>, typename Policy::denorm_error_type >::type denorm_error_type;
-   typedef typename detail::find_arg<arg_list, is_evaluation_error<mpl::_1>, typename Policy::evaluation_error_type >::type evaluation_error_type;
-   typedef typename detail::find_arg<arg_list, is_rounding_error<mpl::_1>, typename Policy::rounding_error_type >::type rounding_error_type;
-   typedef typename detail::find_arg<arg_list, is_indeterminate_result_error<mpl::_1>, typename Policy::indeterminate_result_error_type >::type indeterminate_result_error_type;
-   //
-   // Now work out the precision:
-   //
-   typedef typename detail::find_arg<arg_list, is_digits10<mpl::_1>, digits10<> >::type digits10_type;
-   typedef typename detail::find_arg<arg_list, is_digits2<mpl::_1>, typename Policy::precision_type >::type bits_precision_type;
-   typedef typename detail::precision<digits10_type, bits_precision_type>::type precision_type;
-   //
-   // Internal promotion:
-   //
-   typedef typename detail::find_arg<arg_list, is_promote_float<mpl::_1>, typename Policy::promote_float_type >::type promote_float_type;
-   typedef typename detail::find_arg<arg_list, is_promote_double<mpl::_1>, typename Policy::promote_double_type >::type promote_double_type;
-   //
-   // Discrete quantiles:
-   //
-   typedef typename detail::find_arg<arg_list, is_discrete_quantile<mpl::_1>, typename Policy::discrete_quantile_type >::type discrete_quantile_type;
-   //
-   // Mathematically undefined properties:
-   //
-   typedef typename detail::find_arg<arg_list, is_assert_undefined<mpl::_1>, typename Policy::assert_undefined_type >::type assert_undefined_type;
-   //
-   // Max iterations:
-   //
-   typedef typename detail::find_arg<arg_list, is_max_series_iterations<mpl::_1>, typename Policy::max_series_iterations_type>::type max_series_iterations_type;
-   typedef typename detail::find_arg<arg_list, is_max_root_iterations<mpl::_1>, typename Policy::max_root_iterations_type>::type max_root_iterations_type;
-   //
-   // Define a typelist of the policies:
-   //
-   typedef mpl::vector<
-      domain_error_type,
-      pole_error_type,
-      overflow_error_type,
-      underflow_error_type,
-      denorm_error_type,
-      evaluation_error_type,
-      rounding_error_type,
-      indeterminate_result_error_type,
-      precision_type,
-      promote_float_type,
-      promote_double_type,
-      discrete_quantile_type,
-      assert_undefined_type,
-      max_series_iterations_type,
-      max_root_iterations_type> result_list;
-   //
-   // Remove all the policies that are the same as the default:
-   //
-   typedef typename mpl::remove_if<result_list, detail::is_default_policy<mpl::_> >::type reduced_list;
-   //
-   // Pad out the list with defaults:
-   //
-   typedef typename detail::append_N<reduced_list, default_policy, (14 - ::ndnboost::mpl::size<reduced_list>::value)>::type result_type;
-public:
-   typedef policy<
-      typename mpl::at<result_type, mpl::int_<0> >::type,
-      typename mpl::at<result_type, mpl::int_<1> >::type,
-      typename mpl::at<result_type, mpl::int_<2> >::type,
-      typename mpl::at<result_type, mpl::int_<3> >::type,
-      typename mpl::at<result_type, mpl::int_<4> >::type,
-      typename mpl::at<result_type, mpl::int_<5> >::type,
-      typename mpl::at<result_type, mpl::int_<6> >::type,
-      typename mpl::at<result_type, mpl::int_<7> >::type,
-      typename mpl::at<result_type, mpl::int_<8> >::type,
-      typename mpl::at<result_type, mpl::int_<9> >::type,
-      typename mpl::at<result_type, mpl::int_<10> >::type,
-      typename mpl::at<result_type, mpl::int_<11> >::type,
-      typename mpl::at<result_type, mpl::int_<12> >::type > type;
-};
-//
-// Full specialisation to speed up compilation of the common case:
-//
-template <>
-struct normalise<policy<>, 
-          promote_float<false>, 
-          promote_double<false>, 
-          discrete_quantile<>,
-          assert_undefined<>,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy>
-{
-   typedef policy<detail::forwarding_arg1, detail::forwarding_arg2> type;
-};
-
-template <>
-struct normalise<policy<detail::forwarding_arg1, detail::forwarding_arg2>,
-          promote_float<false>,
-          promote_double<false>,
-          discrete_quantile<>,
-          assert_undefined<>,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy>
-{
-   typedef policy<detail::forwarding_arg1, detail::forwarding_arg2> type;
-};
-
-inline policy<> make_policy()
-{ return policy<>(); }
-
-template <class A1>
-inline typename normalise<policy<>, A1>::type make_policy(const A1&)
-{ 
-   typedef typename normalise<policy<>, A1>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2>
-inline typename normalise<policy<>, A1, A2>::type make_policy(const A1&, const A2&)
-{ 
-   typedef typename normalise<policy<>, A1, A2>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3>
-inline typename normalise<policy<>, A1, A2, A3>::type make_policy(const A1&, const A2&, const A3&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4>
-inline typename normalise<policy<>, A1, A2, A3, A4>::type make_policy(const A1&, const A2&, const A3&, const A4&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&, const A10&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&, const A10&, const A11&)
-{
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>::type result_type;
-   return result_type();
-}
-
-//
-// Traits class to handle internal promotion:
-//
-template <class Real, class Policy>
-struct evaluation
-{
-   typedef Real type;
-};
-
-template <class Policy>
-struct evaluation<float, Policy>
-{
-   typedef typename mpl::if_<typename Policy::promote_float_type, double, float>::type type;
-};
-
-template <class Policy>
-struct evaluation<double, Policy>
-{
-   typedef typename mpl::if_<typename Policy::promote_double_type, long double, double>::type type;
-};
-
-#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-
-template <class Real>
-struct basic_digits : public mpl::int_<0>{ };
-template <>
-struct basic_digits<float> : public mpl::int_<FLT_MANT_DIG>{ };
-template <>
-struct basic_digits<double> : public mpl::int_<DBL_MANT_DIG>{ };
-template <>
-struct basic_digits<long double> : public mpl::int_<LDBL_MANT_DIG>{ };
-
-template <class Real, class Policy>
-struct precision
-{
-   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_<
-      mpl::equal_to<digits_t, mpl::int_<0> >,
-      // Possibly unknown precision:
-      precision_type,
-      typename mpl::if_<
-         mpl::or_<mpl::less_equal<digits_t, precision_type>, mpl::less_equal<precision_type, mpl::int_<0> > >,
-         // Default case, full precision for RealType:
-         digits2< ::std::numeric_limits<Real>::digits>,
-         // User customised precision:
-         precision_type
-      >::type
-   >::type type;
-};
-
-template <class Policy>
-struct precision<float, Policy>
-{
-   typedef digits2<FLT_MANT_DIG> type;
-};
-template <class Policy>
-struct precision<double, Policy>
-{
-   typedef digits2<DBL_MANT_DIG> type;
-};
-template <class Policy>
-struct precision<long double, Policy>
-{
-   typedef digits2<LDBL_MANT_DIG> type;
-};
-
-#else
-
-template <class Real, class Policy>
-struct precision
-{
-   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<
-      ((::std::numeric_limits<Real>::is_specialized == 0) || (::std::numeric_limits<Real>::digits == 0)),
-      // Possibly unknown precision:
-      precision_type,
-      typename mpl::if_c<
-         ((::std::numeric_limits<Real>::digits <= precision_type::value) 
-         || (Policy::precision_type::value <= 0)),
-         // Default case, full precision for RealType:
-         digits2< ::std::numeric_limits<Real>::digits>,
-         // User customised precision:
-         precision_type
-      >::type
-   >::type type;
-#else
-   typedef typename Policy::precision_type precision_type;
-   typedef mpl::int_< ::std::numeric_limits<Real>::digits> digits_t;
-   typedef mpl::bool_< ::std::numeric_limits<Real>::is_specialized> spec_t;
-   typedef typename mpl::if_<
-      mpl::or_<mpl::equal_to<spec_t, mpl::false_>, mpl::equal_to<digits_t, mpl::int_<0> > >,
-      // Possibly unknown precision:
-      precision_type,
-      typename mpl::if_<
-         mpl::or_<mpl::less_equal<digits_t, precision_type>, mpl::less_equal<precision_type, mpl::int_<0> > >,
-         // Default case, full precision for RealType:
-         digits2< ::std::numeric_limits<Real>::digits>,
-         // User customised precision:
-         precision_type
-      >::type
-   >::type type;
-#endif
-};
-
-#endif
-
-#ifdef NDNBOOST_MATH_USE_FLOAT128
-
-template <class Policy>
-struct precision<__float128, Policy>
-{
-   typedef mpl::int_<113> type;
-};
-
-#endif
-
-namespace detail{
-
-template <class T, class Policy>
-inline int digits_imp(mpl::true_ const&)
-{
-#ifndef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   NDNBOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-#else
-   NDNBOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-#endif
-   typedef typename ndnboost::math::policies::precision<T, Policy>::type p_t;
-   return p_t::value;
-}
-
-template <class T, class Policy>
-inline int digits_imp(mpl::false_ const&)
-{
-   return tools::digits<T>();
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-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());
-}
-
-template <class Policy>
-inline unsigned long get_max_series_iterations()
-{
-   typedef typename Policy::max_series_iterations_type iter_type;
-   return iter_type::value;
-}
-
-template <class Policy>
-inline unsigned long get_max_root_iterations()
-{
-   typedef typename Policy::max_root_iterations_type iter_type;
-   return iter_type::value;
-}
-
-namespace detail{
-
-template <class T, class Digits, class Small, class Default>
-struct series_factor_calc
-{
-   static T get()
-   {
-      return ldexp(T(1.0), 1 - Digits::value);
-   }
-};
-
-template <class T, class Digits>
-struct series_factor_calc<T, Digits, mpl::true_, mpl::true_>
-{
-   static T get()
-   {
-      return ndnboost::math::tools::epsilon<T>();
-   }
-};
-template <class T, class Digits>
-struct series_factor_calc<T, Digits, mpl::true_, mpl::false_>
-{
-   static T get()
-   {
-      static const ndnboost::uintmax_t v = static_cast<ndnboost::uintmax_t>(1u) << (Digits::value - 1);
-      return 1 / static_cast<T>(v);
-   }
-};
-template <class T, class Digits>
-struct series_factor_calc<T, Digits, mpl::false_, mpl::true_>
-{
-   static T get()
-   {
-      return ndnboost::math::tools::epsilon<T>();
-   }
-};
-
-template <class T, class Policy>
-inline T get_epsilon_imp(mpl::true_ const&)
-{
-#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
-   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;
-   typedef mpl::bool_<p_t::value >= std::numeric_limits<T>::digits> is_default_value;
-   return series_factor_calc<T, p_t, is_small_int, is_default_value>::get();
-}
-
-template <class T, class Policy>
-inline T get_epsilon_imp(mpl::false_ const&)
-{
-   return tools::epsilon<T>();
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-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());
-}
-
-namespace detail{
-
-template <class A1, 
-          class A2, 
-          class A3,
-          class A4,
-          class A5,
-          class A6,
-          class A7,
-          class A8,
-          class A9,
-          class A10,
-          class A11>
-char test_is_policy(const policy<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11>*);
-double test_is_policy(...);
-
-template <class P>
-struct is_policy_imp
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::math::policies::detail::test_is_policy(static_cast<P*>(0))) == 1));
-};
-
-}
-
-template <class P>
-struct is_policy : public mpl::bool_< ::ndnboost::math::policies::detail::is_policy_imp<P>::value> {};
-
-//
-// Helper traits class for distribution error handling:
-//
-template <class Policy>
-struct constructor_error_check
-{
-   typedef typename Policy::domain_error_type domain_error_type;
-   typedef typename mpl::if_c<
-      (domain_error_type::value == throw_on_error) || (domain_error_type::value == user_error),
-      mpl::true_,
-      mpl::false_>::type type;
-};
-
-template <class Policy>
-struct method_error_check
-{
-   typedef typename Policy::domain_error_type domain_error_type;
-   typedef typename mpl::if_c<
-      (domain_error_type::value == throw_on_error) && (domain_error_type::value != user_error),
-      mpl::false_,
-      mpl::true_>::type type;
-};
-
-}}} // namespaces
-
-#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
deleted file mode 100644
index eff178a..0000000
--- a/include/ndnboost/math/special_functions/detail/fp_traits.hpp
+++ /dev/null
@@ -1,570 +0,0 @@
-// fp_traits.hpp
-
-#ifndef NDNBOOST_MATH_FP_TRAITS_HPP
-#define NDNBOOST_MATH_FP_TRAITS_HPP
-
-// Copyright (c) 2006 Johan Rade
-
-// 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)
-
-/*
-To support old compilers, care has been taken to avoid partial template
-specialization and meta function forwarding.
-With these techniques, the code could be simplified.
-*/
-
-#if defined(__vms) && defined(__DECCXX) && !__IEEE_FLOAT
-// The VAX floating point formats are used (for float and double)
-#   define NDNBOOST_FPCLASSIFY_VAX_FORMAT
-#endif
-
-#include <cstring>
-
-#include <ndnboost/assert.hpp>
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/detail/endian.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_floating_point.hpp>
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-  namespace std{ using ::memcpy; }
-#endif
-
-#ifndef FP_NORMAL
-
-#define FP_ZERO        0
-#define FP_NORMAL      1
-#define FP_INFINITE    2
-#define FP_NAN         3
-#define FP_SUBNORMAL   4
-
-#else
-
-#define NDNBOOST_HAS_FPCLASSIFY
-
-#ifndef fpclassify
-#  if (defined(__GLIBCPP__) || defined(__GLIBCXX__)) \
-         && defined(_GLIBCXX_USE_C99_MATH) \
-         && !(defined(_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC) \
-         && (_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC != 0))
-#     ifdef _STLP_VENDOR_CSTD
-#        if _STLPORT_VERSION >= 0x520
-#           define NDNBOOST_FPCLASSIFY_PREFIX ::__std_alias:: 
-#        else
-#           define NDNBOOST_FPCLASSIFY_PREFIX ::_STLP_VENDOR_CSTD:: 
-#        endif
-#     else
-#        define NDNBOOST_FPCLASSIFY_PREFIX ::std::
-#     endif
-#  else
-#     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 NDNBOOST_FPCLASSIFY_PREFIX ::
-#else
-#  define NDNBOOST_FPCLASSIFY_PREFIX
-#endif
-
-#ifdef __MINGW32__
-#  undef NDNBOOST_HAS_FPCLASSIFY
-#endif
-
-#endif
-
-
-//------------------------------------------------------------------------------
-
-namespace ndnboost {
-namespace math {
-namespace detail {
-
-//------------------------------------------------------------------------------
-
-/* 
-The following classes are used to tag the different methods that are used
-for floating point classification
-*/
-
-struct native_tag {};
-template <bool has_limits>
-struct generic_tag {};
-struct ieee_tag {};
-struct ieee_copy_all_bits_tag : public ieee_tag {};
-struct ieee_copy_leading_bits_tag : public ieee_tag {};
-
-#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-//
-// These helper functions are used only when numeric_limits<>
-// members are not compile time constants:
-//
-inline bool is_generic_tag_false(const generic_tag<false>*)
-{
-   return true;
-}
-inline bool is_generic_tag_false(const void*)
-{
-   return false;
-}
-#endif
-
-//------------------------------------------------------------------------------
-
-/*
-Most processors support three different floating point precisions:
-single precision (32 bits), double precision (64 bits)
-and extended double precision (80 - 128 bits, depending on the processor)
-
-Note that the C++ type long double can be implemented
-both as double precision and extended double precision.
-*/
-
-struct unknown_precision{};
-struct single_precision {};
-struct double_precision {};
-struct extended_double_precision {};
-
-// native_tag version --------------------------------------------------------------
-
-template<class T> struct fp_traits_native
-{
-    typedef native_tag method;
-};
-
-// generic_tag version -------------------------------------------------------------
-
-template<class T, class U> struct fp_traits_non_native
-{
-#ifndef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   typedef generic_tag<std::numeric_limits<T>::is_specialized> method;
-#else
-   typedef generic_tag<false> method;
-#endif
-};
-
-// ieee_tag versions ---------------------------------------------------------------
-
-/*
-These specializations of fp_traits_non_native contain information needed
-to "parse" the binary representation of a floating point number.
-
-Typedef members:
-
-  bits -- the target type when copying the leading bytes of a floating
-      point number. It is a typedef for uint32_t or uint64_t.
-
-  method -- tells us whether all bytes are copied or not.
-      It is a typedef for ieee_copy_all_bits_tag or ieee_copy_leading_bits_tag.
-
-Static data members:
-
-  sign, exponent, flag, significand -- bit masks that give the meaning of the
-  bits in the leading bytes.
-
-Static function members:
-
-  get_bits(), set_bits() -- provide access to the leading bytes.
-
-*/
-
-// ieee_tag version, float (32 bits) -----------------------------------------------
-
-#ifndef NDNBOOST_FPCLASSIFY_VAX_FORMAT
-
-template<> struct fp_traits_non_native<float, single_precision>
-{
-    typedef ieee_copy_all_bits_tag method;
-
-    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); }
-    static void set_bits(float& x, uint32_t a) { std::memcpy(&x, &a, 4); }
-};
-
-// ieee_tag version, double (64 bits) ----------------------------------------------
-
-#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;
-
-    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;
-
-    static void get_bits(double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + offset_, 4);
-    }
-
-    static void set_bits(double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + offset_, &a, 4);
-    }
-
-private:
-
-#if defined(NDNBOOST_BIG_ENDIAN)
-    NDNBOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(NDNBOOST_LITTLE_ENDIAN)
-    NDNBOOST_STATIC_CONSTANT(int, offset_ = 4);
-#else
-    NDNBOOST_STATIC_ASSERT(false);
-#endif
-};
-
-//..............................................................................
-
-#else
-
-template<> struct fp_traits_non_native<double, double_precision>
-{
-    typedef ieee_copy_all_bits_tag method;
-
-    static const uint64_t sign     = ((uint64_t)0x80000000u) << 32;
-    static const uint64_t exponent = ((uint64_t)0x7ff00000) << 32;
-    static const uint64_t flag     = 0;
-    static const uint64_t significand
-        = (((uint64_t)0x000fffff) << 32) + ((uint64_t)0xffffffffu);
-
-    typedef uint64_t bits;
-    static void get_bits(double x, uint64_t& a) { std::memcpy(&a, &x, 8); }
-    static void set_bits(double& x, uint64_t a) { std::memcpy(&x, &a, 8); }
-};
-
-#endif
-
-#endif  // #ifndef NDNBOOST_FPCLASSIFY_VAX_FORMAT
-
-// long double (64 bits) -------------------------------------------------------
-
-#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;
-
-    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;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + offset_, 4);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + offset_, &a, 4);
-    }
-
-private:
-
-#if defined(NDNBOOST_BIG_ENDIAN)
-    NDNBOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(NDNBOOST_LITTLE_ENDIAN)
-    NDNBOOST_STATIC_CONSTANT(int, offset_ = 4);
-#else
-    NDNBOOST_STATIC_ASSERT(false);
-#endif
-};
-
-//..............................................................................
-
-#else
-
-template<> struct fp_traits_non_native<long double, double_precision>
-{
-    typedef ieee_copy_all_bits_tag method;
-
-    static const uint64_t sign     = (uint64_t)0x80000000u << 32;
-    static const uint64_t exponent = (uint64_t)0x7ff00000 << 32;
-    static const uint64_t flag     = 0;
-    static const uint64_t significand
-        = ((uint64_t)0x000fffff << 32) + (uint64_t)0xffffffffu;
-
-    typedef uint64_t bits;
-    static void get_bits(long double x, uint64_t& a) { std::memcpy(&a, &x, 8); }
-    static void set_bits(long double& x, uint64_t a) { std::memcpy(&x, &a, 8); }
-};
-
-#endif
-
-
-// long double (>64 bits), x86 and x64 -----------------------------------------
-
-#if defined(__i386) || defined(__i386__) || defined(_M_IX86) \
-    || defined(__amd64) || defined(__amd64__)  || defined(_M_AMD64) \
-    || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64)
-
-// Intel extended double precision format (80 bits)
-
-template<>
-struct fp_traits_non_native<long double, extended_double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    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;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + 6, 4);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + 6, &a, 4);
-    }
-};
-
-
-// long double (>64 bits), Itanium ---------------------------------------------
-
-#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
-
-// The floating point format is unknown at compile time
-// No template specialization is provided.
-// The generic_tag definition is used.
-
-// The Itanium supports both
-// the Intel extended double precision format (80 bits) and
-// the IEEE extended double precision format with 15 exponent bits (128 bits).
-
-
-// long double (>64 bits), PowerPC ---------------------------------------------
-
-#elif defined(__powerpc) || defined(__powerpc__) || defined(__POWERPC__) \
-    || defined(__ppc) || defined(__ppc__) || defined(__PPC__)
-
-// PowerPC extended double precision format (128 bits)
-
-template<>
-struct fp_traits_non_native<long double, extended_double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    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;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + offset_, 4);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + offset_, &a, 4);
-    }
-
-private:
-
-#if defined(NDNBOOST_BIG_ENDIAN)
-    NDNBOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(NDNBOOST_LITTLE_ENDIAN)
-    NDNBOOST_STATIC_CONSTANT(int, offset_ = 12);
-#else
-    NDNBOOST_STATIC_ASSERT(false);
-#endif
-};
-
-
-// long double (>64 bits), Motorola 68K ----------------------------------------
-
-#elif defined(__m68k) || defined(__m68k__) \
-    || defined(__mc68000) || defined(__mc68000__) \
-
-// Motorola extended double precision format (96 bits)
-
-// It is the same format as the Intel extended double precision format,
-// except that 1) it is big-endian, 2) the 3rd and 4th byte are padding, and
-// 3) the flag bit is not set for infinity
-
-template<>
-struct fp_traits_non_native<long double, extended_double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    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.
-
-    typedef uint32_t bits;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, &x, 2);
-        std::memcpy(reinterpret_cast<unsigned char*>(&a) + 2,
-               reinterpret_cast<const unsigned char*>(&x) + 4, 2);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(&x, &a, 2);
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + 4,
-               reinterpret_cast<const unsigned char*>(&a) + 2, 2);
-    }
-};
-
-
-// long double (>64 bits), All other processors --------------------------------
-
-#else
-
-// IEEE extended double precision format with 15 exponent bits (128 bits)
-
-template<>
-struct fp_traits_non_native<long double, extended_double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    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;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + offset_, 4);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + offset_, &a, 4);
-    }
-
-private:
-
-#if defined(NDNBOOST_BIG_ENDIAN)
-    NDNBOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(NDNBOOST_LITTLE_ENDIAN)
-    NDNBOOST_STATIC_CONSTANT(int, offset_ = 12);
-#else
-    NDNBOOST_STATIC_ASSERT(false);
-#endif
-};
-
-#endif
-
-//------------------------------------------------------------------------------
-
-// size_to_precision is a type switch for converting a C++ floating point type
-// to the corresponding precision type.
-
-template<int n, bool fp> struct size_to_precision
-{
-   typedef unknown_precision type;
-};
-
-template<> struct size_to_precision<4, true>
-{
-    typedef single_precision type;
-};
-
-template<> struct size_to_precision<8, true>
-{
-    typedef double_precision type;
-};
-
-template<> struct size_to_precision<10, true>
-{
-    typedef extended_double_precision type;
-};
-
-template<> struct size_to_precision<12, true>
-{
-    typedef extended_double_precision type;
-};
-
-template<> struct size_to_precision<16, true>
-{
-    typedef extended_double_precision type;
-};
-
-//------------------------------------------------------------------------------
-//
-// Figure out whether to use native classification functions based on
-// whether T is a built in floating point type or not:
-//
-template <class T>
-struct select_native
-{
-    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<>
-struct select_native<float>
-{
-    typedef fp_traits_native<float> type;
-};
-template<>
-struct select_native<double>
-{
-    typedef fp_traits_native<double> type;
-};
-template<>
-struct select_native<long double>
-{
-    typedef fp_traits_native<long double> type;
-};
-
-//------------------------------------------------------------------------------
-
-// fp_traits is a type switch that selects the right fp_traits_non_native
-
-#if (defined(NDNBOOST_MATH_USE_C99) && !(defined(__GNUC__) && (__GNUC__ < 4))) \
-   && !defined(__hpux) \
-   && !defined(__DECCXX)\
-   && !defined(__osf__) \
-   && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)\
-   && !defined(NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY)
-#  define NDNBOOST_MATH_USE_STD_FPCLASSIFY
-#endif
-
-template<class T> struct fp_traits
-{
-    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;
-#endif
-    typedef fp_traits_non_native<T, precision> sign_change_type;
-};
-
-//------------------------------------------------------------------------------
-
-}   // namespace detail
-}   // namespace math
-}   // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/math/special_functions/detail/round_fwd.hpp b/include/ndnboost/math/special_functions/detail/round_fwd.hpp
deleted file mode 100644
index 80518c7..0000000
--- a/include/ndnboost/math/special_functions/detail/round_fwd.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright John Maddock 2008.
-
-// Use, modification and distribution are subject to 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 NDNBOOST_MATH_SPECIAL_ROUND_FWD_HPP
-#define NDNBOOST_MATH_SPECIAL_ROUND_FWD_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/math/tools/promotion.hpp>
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-namespace ndnboost
-{
-   namespace math
-   { 
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type trunc(const T& v, const Policy& pol);
-   template <class T>
-   typename tools::promote_args<T>::type trunc(const T& v);
-   template <class T, class Policy>
-   int itrunc(const T& v, const Policy& pol);
-   template <class T>
-   int itrunc(const T& v);
-   template <class T, class Policy>
-   long ltrunc(const T& v, const Policy& pol);
-   template <class T>
-   long ltrunc(const T& v);
-#ifdef NDNBOOST_HAS_LONG_LONG
-   template <class T, class Policy>
-   ndnboost::long_long_type lltrunc(const T& v, const Policy& pol);
-   template <class T>
-   ndnboost::long_long_type lltrunc(const T& v);
-#endif
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type round(const T& v, const Policy& pol);
-   template <class T>
-   typename tools::promote_args<T>::type round(const T& v);
-   template <class T, class Policy>
-   int iround(const T& v, const Policy& pol);
-   template <class T>
-   int iround(const T& v);
-   template <class T, class Policy>
-   long lround(const T& v, const Policy& pol);
-   template <class T>
-   long lround(const T& v);
-#ifdef NDNBOOST_HAS_LONG_LONG
-   template <class T, class Policy>
-   ndnboost::long_long_type llround(const T& v, const Policy& pol);
-   template <class T>
-   ndnboost::long_long_type llround(const T& v);
-#endif
-   template <class T, class Policy>
-   T modf(const T& v, T* ipart, const Policy& pol);
-   template <class T>
-   T modf(const T& v, T* ipart);
-   template <class T, class Policy>
-   T modf(const T& v, int* ipart, const Policy& pol);
-   template <class T>
-   T modf(const T& v, int* ipart);
-   template <class T, class Policy>
-   T modf(const T& v, long* ipart, const Policy& pol);
-   template <class T>
-   T modf(const T& v, long* ipart);
-#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>
-   T modf(const T& v, ndnboost::long_long_type* ipart);
-#endif
-
-   }
-}
-
-#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;\
-   using ndnboost::math::trunc;\
-   using ndnboost::math::itrunc;\
-   using ndnboost::math::ltrunc;\
-   using ndnboost::math::modf;
-
-
-#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
deleted file mode 100644
index 7b4b193..0000000
--- a/include/ndnboost/math/special_functions/fpclassify.hpp
+++ /dev/null
@@ -1,606 +0,0 @@
-//  Copyright John Maddock 2005-2008.
-//  Copyright (c) 2006-2008 Johan Rade
-//  Use, modification and distribution are subject to 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 NDNBOOST_MATH_FPCLASSIFY_HPP
-#define NDNBOOST_MATH_FPCLASSIFY_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <math.h>
-#include <ndnboost/config/no_tr1/cmath.hpp>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/math/tools/real_cast.hpp>
-#include <ndnboost/type_traits/is_floating_point.hpp>
-#include <ndnboost/math/special_functions/math_fwd.hpp>
-#include <ndnboost/math/special_functions/detail/fp_traits.hpp>
-/*!
-  \file fpclassify.hpp
-  \brief Classify floating-point value as normal, subnormal, zero, infinite, or NaN.
-  \version 1.0
-  \author John Maddock
- */
-
-/*
-
-1. If the platform is C99 compliant, then the native floating point
-classification functions are used.  However, note that we must only
-define the functions which call std::fpclassify etc if that function
-really does exist: otherwise a compiler may reject the code even though
-the template is never instantiated.
-
-2. If the platform is not C99 compliant, and the binary format for
-a floating point type (float, double or long double) can be determined
-at compile time, then the following algorithm is used:
-
-        If all exponent bits, the flag bit (if there is one),
-        and all significand bits are 0, then the number is zero.
-
-        If all exponent bits and the flag bit (if there is one) are 0,
-        and at least one significand bit is 1, then the number is subnormal.
-
-        If all exponent bits are 1 and all significand bits are 0,
-        then the number is infinity.
-
-        If all exponent bits are 1 and at least one significand bit is 1,
-        then the number is a not-a-number.
-
-        Otherwise the number is normal.
-
-        This algorithm works for the IEEE 754 representation,
-        and also for several non IEEE 754 formats.
-
-    Most formats have the structure
-        sign bit + exponent bits + significand bits.
-
-    A few have the structure
-        sign bit + exponent bits + flag bit + significand bits.
-    The flag bit is 0 for zero and subnormal numbers,
-        and 1 for normal numbers and NaN.
-        It is 0 (Motorola 68K) or 1 (Intel) for infinity.
-
-    To get the bits, the four or eight most significant bytes are copied
-    into an uint32_t or uint64_t and bit masks are applied.
-    This covers all the exponent bits and the flag bit (if there is one),
-    but not always all the significand bits.
-    Some of the functions below have two implementations,
-    depending on whether all the significand bits are copied or not.
-
-3. If the platform is not C99 compliant, and the binary format for
-a floating point type (float, double or long double) can not be determined
-at compile time, then comparison with std::numeric_limits values
-is used.
-
-*/
-
-#if defined(_MSC_VER) || defined(__BORLANDC__)
-#include <float.h>
-#endif
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-  namespace std{ using ::abs; using ::fabs; }
-#endif
-
-namespace ndnboost{
-
-//
-// This must not be located in any namespace under ndnboost::math
-// otherwise we can get into an infinite loop if isnan is
-// a #define for "isnan" !
-//
-namespace math_detail{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4800)
-#endif
-
-template <class T>
-inline bool is_nan_helper(T t, const ndnboost::true_type&)
-{
-#ifdef isnan
-   return isnan(t);
-#elif defined(NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY) || !defined(NDNBOOST_HAS_FPCLASSIFY)
-   (void)t;
-   return false;
-#else // NDNBOOST_HAS_FPCLASSIFY
-   return (NDNBOOST_FPCLASSIFY_PREFIX fpclassify(t) == (int)FP_NAN);
-#endif
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <class T>
-inline bool is_nan_helper(T, const ndnboost::false_type&)
-{
-   return false;
-}
-
-}
-
-namespace math{
-
-namespace detail{
-
-#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
-template <class T>
-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 NDNBOOST_NO_MACRO_EXPAND(T t, const generic_tag<true>&)
-{
-   NDNBOOST_MATH_INSTRUMENT_VARIABLE(t);
-
-   // whenever possible check for Nan's first:
-#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)
-   if(ndnboost::math_detail::is_nan_helper(t, ::ndnboost::is_floating_point<T>()))
-      return FP_NAN;
-#elif defined(_MSC_VER) || defined(__BORLANDC__)
-   if(::_isnan(ndnboost::math::tools::real_cast<double>(t)))
-      return FP_NAN;
-#endif
-   // std::fabs broken on a few systems especially for long long!!!!
-   T at = (t < T(0)) ? -t : t;
-
-   // Use a process of exclusion to figure out
-   // what kind of type we have, this relies on
-   // IEEE conforming reals that will treat
-   // Nan's as unordered.  Some compilers
-   // don't do this once optimisations are
-   // turned on, hence the check for nan's above.
-   if(at <= (std::numeric_limits<T>::max)())
-   {
-      if(at >= (std::numeric_limits<T>::min)())
-         return FP_NORMAL;
-      return (at != 0) ? FP_SUBNORMAL : FP_ZERO;
-   }
-   else if(at > (std::numeric_limits<T>::max)())
-      return FP_INFINITE;
-   return FP_NAN;
-}
-
-template <class T>
-inline int fpclassify_imp NDNBOOST_NO_MACRO_EXPAND(T t, const generic_tag<false>&)
-{
-#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   if(std::numeric_limits<T>::is_specialized)
-      return fpclassify_imp(t, generic_tag<true>());
-#endif
-   //
-   // An unknown type with no numeric_limits support,
-   // so what are we supposed to do we do here?
-   //
-   NDNBOOST_MATH_INSTRUMENT_VARIABLE(t);
-
-   return t == 0 ? FP_ZERO : FP_NORMAL;
-}
-
-template<class T>
-int fpclassify_imp NDNBOOST_NO_MACRO_EXPAND(T x, ieee_copy_all_bits_tag)
-{
-   typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-   NDNBOOST_MATH_INSTRUMENT_VARIABLE(x);
-
-   NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-   traits::get_bits(x,a);
-   NDNBOOST_MATH_INSTRUMENT_VARIABLE(a);
-   a &= traits::exponent | traits::flag | traits::significand;
-   NDNBOOST_MATH_INSTRUMENT_VARIABLE((traits::exponent | traits::flag | traits::significand));
-   NDNBOOST_MATH_INSTRUMENT_VARIABLE(a);
-
-   if(a <= traits::significand) {
-      if(a == 0)
-         return FP_ZERO;
-      else
-         return FP_SUBNORMAL;
-   }
-
-   if(a < traits::exponent) return FP_NORMAL;
-
-   a &= traits::significand;
-   if(a == 0) return FP_INFINITE;
-
-   return FP_NAN;
-}
-
-template<class T>
-int fpclassify_imp NDNBOOST_NO_MACRO_EXPAND(T x, ieee_copy_leading_bits_tag)
-{
-   typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-   NDNBOOST_MATH_INSTRUMENT_VARIABLE(x);
-
-   NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-   traits::get_bits(x,a);
-   a &= traits::exponent | traits::flag | traits::significand;
-
-   if(a <= traits::significand) {
-      if(x == 0)
-         return FP_ZERO;
-      else
-         return FP_SUBNORMAL;
-   }
-
-   if(a < traits::exponent) return FP_NORMAL;
-
-   a &= traits::significand;
-   traits::set_bits(x,a);
-   if(x == 0) return FP_INFINITE;
-
-   return FP_NAN;
-}
-
-#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>());
-}
-#endif
-
-}  // namespace detail
-
-template <class 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 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());
-#else
-   return detail::fpclassify_imp(static_cast<value_type>(t), method());
-#endif
-}
-
-#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-template <>
-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 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());
-#else
-   return detail::fpclassify_imp(static_cast<value_type>(t), method());
-#endif
-}
-#endif
-
-namespace detail {
-
-#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T>
-    inline bool isfinite_impl(T x, native_tag const&)
-    {
-        return (std::isfinite)(x);
-    }
-#endif
-
-    template<class T>
-    inline bool isfinite_impl(T x, generic_tag<true> const&)
-    {
-        return x >= -(std::numeric_limits<T>::max)()
-            && x <= (std::numeric_limits<T>::max)();
-    }
-
-    template<class T>
-    inline bool isfinite_impl(T x, generic_tag<false> const&)
-    {
-#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-      if(std::numeric_limits<T>::is_specialized)
-         return isfinite_impl(x, generic_tag<true>());
-#endif
-       (void)x; // warning supression.
-       return true;
-    }
-
-    template<class T>
-    inline bool isfinite_impl(T x, ieee_tag const&)
-    {
-        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(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>());
-}
-#endif
-
-}
-
-template<class T>
-inline bool (isfinite)(T x)
-{ //!< \brief return true if floating-point type t is finite.
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   // typedef typename ndnboost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args<T>::type value_type;
-   return detail::isfinite_impl(static_cast<value_type>(x), method());
-}
-
-#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.
-   typedef detail::fp_traits<long double>::type traits;
-   typedef traits::method method;
-   typedef ndnboost::is_floating_point<long double>::type fp_tag;
-   typedef long double value_type;
-   return detail::isfinite_impl(static_cast<value_type>(x), method());
-}
-#endif
-
-//------------------------------------------------------------------------------
-
-namespace detail {
-
-#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T>
-    inline bool isnormal_impl(T x, native_tag const&)
-    {
-        return (std::isnormal)(x);
-    }
-#endif
-
-    template<class T>
-    inline bool isnormal_impl(T x, generic_tag<true> const&)
-    {
-        if(x < 0) x = -x;
-        return x >= (std::numeric_limits<T>::min)()
-            && x <= (std::numeric_limits<T>::max)();
-    }
-
-    template<class T>
-    inline bool isnormal_impl(T x, generic_tag<false> const&)
-    {
-#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-      if(std::numeric_limits<T>::is_specialized)
-         return isnormal_impl(x, generic_tag<true>());
-#endif
-       return !(x == 0);
-    }
-
-    template<class T>
-    inline bool isnormal_impl(T x, ieee_tag const&)
-    {
-        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(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>());
-}
-#endif
-
-}
-
-template<class T>
-inline bool (isnormal)(T x)
-{
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   //typedef typename ndnboost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args<T>::type value_type;
-   return detail::isnormal_impl(static_cast<value_type>(x), method());
-}
-
-#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-template<>
-inline bool (isnormal)(long double x)
-{
-   typedef detail::fp_traits<long double>::type traits;
-   typedef traits::method method;
-   typedef ndnboost::is_floating_point<long double>::type fp_tag;
-   typedef long double value_type;
-   return detail::isnormal_impl(static_cast<value_type>(x), method());
-}
-#endif
-
-//------------------------------------------------------------------------------
-
-namespace detail {
-
-#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T>
-    inline bool isinf_impl(T x, native_tag const&)
-    {
-        return (std::isinf)(x);
-    }
-#endif
-
-    template<class T>
-    inline bool isinf_impl(T x, generic_tag<true> const&)
-    {
-        (void)x; // in case the compiler thinks that x is unused because std::numeric_limits<T>::has_infinity is false
-        return std::numeric_limits<T>::has_infinity
-            && ( x == std::numeric_limits<T>::infinity()
-                 || x == -std::numeric_limits<T>::infinity());
-    }
-
-    template<class T>
-    inline bool isinf_impl(T x, generic_tag<false> const&)
-    {
-#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-      if(std::numeric_limits<T>::is_specialized)
-         return isinf_impl(x, generic_tag<true>());
-#endif
-        (void)x; // warning supression.
-        return false;
-    }
-
-    template<class T>
-    inline bool isinf_impl(T x, ieee_copy_all_bits_tag const&)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a &= traits::exponent | traits::significand;
-        return a == traits::exponent;
-    }
-
-    template<class T>
-    inline bool isinf_impl(T x, ieee_copy_leading_bits_tag const&)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a &= traits::exponent | traits::significand;
-        if(a != traits::exponent)
-            return false;
-
-        traits::set_bits(x,0);
-        return x == 0;
-    }
-
-#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>());
-}
-#endif
-
-}   // namespace detail
-
-template<class T>
-inline bool (isinf)(T x)
-{
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   // typedef typename ndnboost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args<T>::type value_type;
-   return detail::isinf_impl(static_cast<value_type>(x), method());
-}
-
-#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-template<>
-inline bool (isinf)(long double x)
-{
-   typedef detail::fp_traits<long double>::type traits;
-   typedef traits::method method;
-   typedef ndnboost::is_floating_point<long double>::type fp_tag;
-   typedef long double value_type;
-   return detail::isinf_impl(static_cast<value_type>(x), method());
-}
-#endif
-
-//------------------------------------------------------------------------------
-
-namespace detail {
-
-#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T>
-    inline bool isnan_impl(T x, native_tag const&)
-    {
-        return (std::isnan)(x);
-    }
-#endif
-
-    template<class T>
-    inline bool isnan_impl(T x, generic_tag<true> const&)
-    {
-        return std::numeric_limits<T>::has_infinity
-            ? !(x <= std::numeric_limits<T>::infinity())
-            : x != x;
-    }
-
-    template<class T>
-    inline bool isnan_impl(T x, generic_tag<false> const&)
-    {
-#ifdef NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-      if(std::numeric_limits<T>::is_specialized)
-         return isnan_impl(x, generic_tag<true>());
-#endif
-        (void)x; // warning supression
-        return false;
-    }
-
-    template<class T>
-    inline bool isnan_impl(T x, ieee_copy_all_bits_tag const&)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a &= traits::exponent | traits::significand;
-        return a > traits::exponent;
-    }
-
-    template<class T>
-    inline bool isnan_impl(T x, ieee_copy_leading_bits_tag const&)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-
-        a &= traits::exponent | traits::significand;
-        if(a < traits::exponent)
-            return false;
-
-        a &= traits::significand;
-        traits::set_bits(x,a);
-        return x != 0;
-    }
-
-}   // namespace detail
-
-template<class T>
-inline bool (isnan)(T x)
-{ //!< \brief return true if floating-point type t is NaN (Not A Number).
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   // typedef typename ndnboost::is_floating_point<T>::type fp_tag;
-   return detail::isnan_impl(x, method());
-}
-
-#ifdef isnan
-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).
-   typedef detail::fp_traits<long double>::type traits;
-   typedef traits::method method;
-   typedef ndnboost::is_floating_point<long double>::type fp_tag;
-   return detail::isnan_impl(x, method());
-}
-#endif
-
-} // namespace math
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index d4e1867..0000000
--- a/include/ndnboost/math/special_functions/math_fwd.hpp
+++ /dev/null
@@ -1,1408 +0,0 @@
-// math_fwd.hpp
-
-// TODO revise completely for new distribution classes.
-
-// Copyright Paul A. Bristow 2006.
-// Copyright John Maddock 2006.
-
-// Use, modification and distribution are subject to 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)
-
-// Omnibus list of forward declarations of math special functions.
-
-// IT = Integer type.
-// RT = Real type (built-in floating-point types, float, double, long double) & User Defined Types
-// AT = Integer or Real type
-
-#ifndef NDNBOOST_MATH_SPECIAL_MATH_FWD_HPP
-#define NDNBOOST_MATH_SPECIAL_MATH_FWD_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <ndnboost/math/special_functions/detail/round_fwd.hpp>
-#include <ndnboost/math/tools/promotion.hpp> // for argument promotion.
-#include <ndnboost/math/policies/policy.hpp>
-#include <ndnboost/mpl/comparison.hpp>
-#include <ndnboost/config/no_tr1/complex.hpp>
-
-#define NDNBOOST_NO_MACRO_EXPAND /**/
-
-namespace ndnboost
-{
-   namespace math
-   { // Math functions (in roughly alphabetic order).
-
-   // Beta functions.
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type
-         beta(RT1 a, RT2 b); // Beta function (2 arguments).
-
-   template <class RT1, class RT2, class A>
-   typename tools::promote_args<RT1, RT2, A>::type
-         beta(RT1 a, RT2 b, A x); // Beta function (3 arguments).
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         beta(RT1 a, RT2 b, RT3 x, const Policy& pol); // Beta function (3 arguments).
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         betac(RT1 a, RT2 b, RT3 x);
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         betac(RT1 a, RT2 b, RT3 x, const Policy& pol);
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta(RT1 a, RT2 b, RT3 x); // Incomplete beta function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta(RT1 a, RT2 b, RT3 x, const Policy& pol); // Incomplete beta function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac(RT1 a, RT2 b, RT3 x); // Incomplete beta complement function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac(RT1 a, RT2 b, RT3 x, const Policy& pol); // Incomplete beta complement function.
-
-   template <class T1, class T2, class T3, class T4>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ibeta_inv(T1 a, T2 b, T3 p, T4* py);
-
-   template <class T1, class T2, class T3, class T4, class Policy>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ibeta_inv(T1 a, T2 b, T3 p, T4* py, const Policy& pol);
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_inv(RT1 a, RT2 b, RT3 p); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_inv(RT1 a, RT2 b, RT3 p, const Policy&); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_inva(RT1 a, RT2 b, RT3 p); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_inva(RT1 a, RT2 b, RT3 p, const Policy&); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_invb(RT1 a, RT2 b, RT3 p); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_invb(RT1 a, RT2 b, RT3 p, const Policy&); // Incomplete beta inverse function.
-
-   template <class T1, class T2, class T3, class T4>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ibetac_inv(T1 a, T2 b, T3 q, T4* py);
-
-   template <class T1, class T2, class T3, class T4, class Policy>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ibetac_inv(T1 a, T2 b, T3 q, T4* py, const Policy& pol);
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_inv(RT1 a, RT2 b, RT3 q); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_inv(RT1 a, RT2 b, RT3 q, const Policy&); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_inva(RT1 a, RT2 b, RT3 q); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_inva(RT1 a, RT2 b, RT3 q, const Policy&); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_invb(RT1 a, RT2 b, RT3 q); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_invb(RT1 a, RT2 b, RT3 q, const Policy&); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_derivative(RT1 a, RT2 b, RT3 x);  // derivative of incomplete beta
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_derivative(RT1 a, RT2 b, RT3 x, const Policy& pol);  // derivative of incomplete beta
-
-   // erf & erfc error functions.
-   template <class RT> // Error function.
-   typename tools::promote_args<RT>::type erf(RT z);
-   template <class RT, class Policy> // Error function.
-   typename tools::promote_args<RT>::type erf(RT z, const Policy&);
-
-   template <class RT>// Error function complement.
-   typename tools::promote_args<RT>::type erfc(RT z);
-   template <class RT, class Policy>// Error function complement.
-   typename tools::promote_args<RT>::type erfc(RT z, const Policy&);
-
-   template <class RT>// Error function inverse.
-   typename tools::promote_args<RT>::type erf_inv(RT z);
-   template <class RT, class Policy>// Error function inverse.
-   typename tools::promote_args<RT>::type erf_inv(RT z, const Policy& pol);
-
-   template <class RT>// Error function complement inverse.
-   typename tools::promote_args<RT>::type erfc_inv(RT z);
-   template <class RT, class Policy>// Error function complement inverse.
-   typename tools::promote_args<RT>::type erfc_inv(RT z, const Policy& pol);
-
-   // Polynomials:
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         legendre_next(unsigned l, T1 x, T2 Pl, T3 Plm1);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-         legendre_p(int l, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-         legendre_p(int l, T x, const Policy& pol);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-         legendre_q(unsigned l, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-         legendre_q(unsigned l, T x, const Policy& pol);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         legendre_next(unsigned l, unsigned m, T1 x, T2 Pl, T3 Plm1);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-         legendre_p(int l, int m, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-         legendre_p(int l, int m, T x, const Policy& pol);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         laguerre_next(unsigned n, T1 x, T2 Ln, T3 Lnm1);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-      laguerre_next(unsigned n, unsigned l, T1 x, T2 Pl, T3 Plm1);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-      laguerre(unsigned n, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-      laguerre(unsigned n, unsigned m, T x, const Policy& pol);
-
-   template <class T1, class T2>
-   struct laguerre_result
-   {
-      typedef typename mpl::if_<
-         policies::is_policy<T2>,
-         typename tools::promote_args<T1>::type,
-         typename tools::promote_args<T2>::type
-      >::type type;
-   };
-
-   template <class T1, class T2>
-   typename laguerre_result<T1, T2>::type
-      laguerre(unsigned n, T1 m, T2 x);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-      hermite(unsigned n, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-      hermite(unsigned n, T x, const Policy& pol);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-      hermite_next(unsigned n, T1 x, T2 Hn, T3 Hnm1);
-
-   template <class T1, class T2>
-   std::complex<typename tools::promote_args<T1, T2>::type>
-         spherical_harmonic(unsigned n, int m, T1 theta, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename tools::promote_args<T1, T2>::type>
-      spherical_harmonic(unsigned n, int m, T1 theta, T2 phi, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-      spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-      spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi, const Policy& pol);
-
-   // Elliptic integrals:
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         ellint_rf(T1 x, T2 y, T3 z);
-
-   template <class T1, class T2, class T3, class Policy>
-   typename tools::promote_args<T1, T2, T3>::type
-         ellint_rf(T1 x, T2 y, T3 z, const Policy& pol);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         ellint_rd(T1 x, T2 y, T3 z);
-
-   template <class T1, class T2, class T3, class Policy>
-   typename tools::promote_args<T1, T2, T3>::type
-         ellint_rd(T1 x, T2 y, T3 z, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         ellint_rc(T1 x, T2 y);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-         ellint_rc(T1 x, T2 y, const Policy& pol);
-
-   template <class T1, class T2, class T3, class T4>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ellint_rj(T1 x, T2 y, T3 z, T4 p);
-
-   template <class T1, class T2, class T3, class T4, class Policy>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ellint_rj(T1 x, T2 y, T3 z, T4 p, const Policy& pol);
-
-   template <typename T>
-   typename tools::promote_args<T>::type ellint_2(T k);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi, const Policy& pol);
-
-   template <typename T>
-   typename tools::promote_args<T>::type ellint_1(T k);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi, const Policy& pol);
-
-   namespace detail{
-
-   template <class T, class U, class V>
-   struct ellint_3_result
-   {
-      typedef typename mpl::if_<
-         policies::is_policy<V>,
-         typename tools::promote_args<T, U>::type,
-         typename tools::promote_args<T, U, V>::type
-      >::type type;
-   };
-
-   } // namespace detail
-
-
-   template <class T1, class T2, class T3>
-   typename detail::ellint_3_result<T1, T2, T3>::type ellint_3(T1 k, T2 v, T3 phi);
-
-   template <class T1, class T2, class T3, class Policy>
-   typename tools::promote_args<T1, T2, T3>::type ellint_3(T1 k, T2 v, T3 phi, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type ellint_3(T1 k, T2 v);
-
-   // Factorial functions.
-   // Note: not for integral types, at present.
-   template <class RT>
-   struct max_factorial;
-   template <class RT>
-   RT factorial(unsigned int);
-   template <class RT, class Policy>
-   RT factorial(unsigned int, const Policy& pol);
-   template <class 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>
-   RT double_factorial(unsigned i, const Policy& pol);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type falling_factorial(RT x, unsigned n);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type falling_factorial(RT x, unsigned n, const Policy& pol);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type rising_factorial(RT x, int n);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type rising_factorial(RT x, int n, const Policy& pol);
-
-   // Gamma functions.
-   template <class RT>
-   typename tools::promote_args<RT>::type tgamma(RT z);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type tgamma1pm1(RT z);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type tgamma1pm1(RT z, const Policy& pol);
-
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type tgamma(RT1 a, RT2 z);
-
-   template <class RT1, class RT2, class Policy>
-   typename tools::promote_args<RT1, RT2>::type tgamma(RT1 a, RT2 z, const Policy& pol);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type lgamma(RT z, int* sign);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type lgamma(RT z, int* sign, const Policy& pol);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type lgamma(RT x);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type lgamma(RT x, const Policy& pol);
-
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type tgamma_lower(RT1 a, RT2 z);
-
-   template <class RT1, class RT2, class Policy>
-   typename tools::promote_args<RT1, RT2>::type tgamma_lower(RT1 a, RT2 z, const Policy&);
-
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type gamma_q(RT1 a, RT2 z);
-
-   template <class RT1, class RT2, class Policy>
-   typename tools::promote_args<RT1, RT2>::type gamma_q(RT1 a, RT2 z, const Policy&);
-
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type gamma_p(RT1 a, RT2 z);
-
-   template <class RT1, class RT2, class Policy>
-   typename tools::promote_args<RT1, RT2>::type gamma_p(RT1 a, RT2 z, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type tgamma_delta_ratio(T1 z, T2 delta);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type tgamma_delta_ratio(T1 z, T2 delta, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type tgamma_ratio(T1 a, T2 b);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type tgamma_ratio(T1 a, T2 b, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_p_derivative(T1 a, T2 x);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_p_derivative(T1 a, T2 x, const Policy&);
-
-   // gamma inverse.
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_p_inv(T1 a, T2 p);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_p_inva(T1 a, T2 p, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_p_inva(T1 a, T2 p);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_p_inv(T1 a, T2 p, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_q_inv(T1 a, T2 q);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_q_inv(T1 a, T2 q, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_q_inva(T1 a, T2 q);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_q_inva(T1 a, T2 q, const Policy&);
-
-   // digamma:
-   template <class T>
-   typename tools::promote_args<T>::type digamma(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type digamma(T x, const Policy&);
-
-   // Hypotenuse function sqrt(x ^ 2 + y ^ 2).
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         hypot(T1 x, T2 y);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-         hypot(T1 x, T2 y, const Policy&);
-
-   // cbrt - cube root.
-   template <class RT>
-   typename tools::promote_args<RT>::type cbrt(RT z);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type cbrt(RT z, const Policy&);
-
-   // log1p is log(x + 1)
-   template <class T>
-   typename tools::promote_args<T>::type log1p(T);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type log1p(T, const Policy&);
-
-   // log1pmx is log(x + 1) - x
-   template <class T>
-   typename tools::promote_args<T>::type log1pmx(T);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type log1pmx(T, const Policy&);
-
-   // Exp (x) minus 1 functions.
-   template <class T>
-   typename tools::promote_args<T>::type expm1(T);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type expm1(T, const Policy&);
-
-   // Power - 1
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         powm1(const T1 a, const T2 z);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-         powm1(const T1 a, const T2 z, const Policy&);
-
-   // sqrt(1+x) - 1
-   template <class T>
-   typename tools::promote_args<T>::type sqrt1pm1(const T& val);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type sqrt1pm1(const T& val, const Policy&);
-
-   // sinus cardinals:
-   template <class T>
-   typename tools::promote_args<T>::type sinc_pi(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type sinc_pi(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type sinhc_pi(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type sinhc_pi(T x, const Policy&);
-
-   // inverse hyperbolics:
-   template<typename T>
-   typename tools::promote_args<T>::type asinh(T x);
-
-   template<typename T, class Policy>
-   typename tools::promote_args<T>::type asinh(T x, const Policy&);
-
-   template<typename T>
-   typename tools::promote_args<T>::type acosh(T x);
-
-   template<typename T, class Policy>
-   typename tools::promote_args<T>::type acosh(T x, const Policy&);
-
-   template<typename T>
-   typename tools::promote_args<T>::type atanh(T x);
-
-   template<typename T, class Policy>
-   typename tools::promote_args<T>::type atanh(T x, const Policy&);
-
-   namespace detail{
-
-      typedef mpl::int_<0> bessel_no_int_tag;      // No integer optimisation possible.
-      typedef mpl::int_<1> bessel_maybe_int_tag;   // Maybe integer optimisation.
-      typedef mpl::int_<2> bessel_int_tag;         // Definite integer optimistaion.
-
-      template <class T1, class T2, class Policy>
-      struct bessel_traits
-      {
-         typedef typename tools::promote_args<
-            T1, T2
-         >::type result_type;
-
-         typedef typename policies::precision<result_type, Policy>::type precision_type;
-
-         typedef typename mpl::if_<
-            mpl::or_<
-               mpl::less_equal<precision_type, mpl::int_<0> >,
-               mpl::greater<precision_type, mpl::int_<64> > >,
-            bessel_no_int_tag,
-            typename mpl::if_<
-               is_integral<T1>,
-               bessel_int_tag,
-               bessel_maybe_int_tag
-            >::type
-         >::type optimisation_tag;
-      };
-   } // detail
-
-   // Bessel functions:
-   template <class T1, class T2, class Policy>
-   typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_bessel_j(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_bessel_j(T1 v, T2 x);
-
-   template <class T, class Policy>
-   typename detail::bessel_traits<T, T, Policy>::result_type sph_bessel(unsigned v, T x, const Policy& pol);
-
-   template <class T>
-   typename detail::bessel_traits<T, T, policies::policy<> >::result_type sph_bessel(unsigned v, T x);
-
-   template <class T1, class T2, class Policy>
-   typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_bessel_i(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_bessel_i(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_bessel_k(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_bessel_k(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_neumann(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_neumann(T1 v, T2 x);
-
-   template <class T, class Policy>
-   typename detail::bessel_traits<T, T, Policy>::result_type sph_neumann(unsigned v, T x, const Policy& pol);
-
-   template <class T>
-   typename detail::bessel_traits<T, T, policies::policy<> >::result_type sph_neumann(unsigned v, T x);
-
-   template <class T, class Policy>
-   typename detail::bessel_traits<T, T, Policy>::result_type cyl_bessel_j_zero(T v, int m, const Policy& pol);
-
-   template <class T>
-   typename detail::bessel_traits<T, T, policies::policy<> >::result_type cyl_bessel_j_zero(T v, int m);
-
-   template <class T, class OutputIterator>
-   OutputIterator cyl_bessel_j_zero(T v,
-                          int start_index,
-                          unsigned number_of_zeros,
-                          OutputIterator out_it);
-
-   template <class T, class OutputIterator, class Policy>
-   OutputIterator cyl_bessel_j_zero(T v,
-                          int start_index,
-                          unsigned number_of_zeros,
-                          OutputIterator out_it,
-                          const Policy&);
-
-   template <class T, class Policy>
-   typename detail::bessel_traits<T, T, Policy>::result_type cyl_neumann_zero(T v, int m, const Policy& pol);
-
-   template <class T>
-   typename detail::bessel_traits<T, T, policies::policy<> >::result_type cyl_neumann_zero(T v, int m);
-
-   template <class T, class OutputIterator>
-   OutputIterator cyl_neumann_zero(T v,
-                         int start_index,
-                         unsigned number_of_zeros,
-                         OutputIterator out_it);
-
-   template <class T, class OutputIterator, class Policy>
-   OutputIterator cyl_neumann_zero(T v,
-                         int start_index,
-                         unsigned number_of_zeros,
-                         OutputIterator out_it,
-                         const Policy&);
-
-   template <class T1, class T2>
-   std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> cyl_hankel_1(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> cyl_hankel_1(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> cyl_hankel_2(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> cyl_hankel_2(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> sph_hankel_1(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> sph_hankel_1(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> sph_hankel_2(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> sph_hankel_2(T1 v, T2 x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type airy_ai(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type airy_ai(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type airy_bi(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type airy_bi(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type airy_ai_prime(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type airy_ai_prime(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type airy_bi_prime(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type airy_bi_prime(T x);
-
-   template <class T>
-   T airy_ai_zero(unsigned m);
-   template <class T, class Policy>
-   T airy_ai_zero(unsigned m, const Policy&);
-
-   template <class OutputIterator>
-   OutputIterator airy_ai_zero(
-                     unsigned start_index,
-                     unsigned number_of_zeros,
-                     OutputIterator out_it);
-   template <class OutputIterator, class Policy>
-   OutputIterator airy_ai_zero(
-                     unsigned start_index,
-                     unsigned number_of_zeros,
-                     OutputIterator out_it,
-                     const Policy&);
-
-   template <class T>
-   T airy_bi_zero(unsigned m);
-   template <class T, class Policy>
-   T airy_bi_zero(unsigned m, const Policy&);
-
-   template <class OutputIterator>
-   OutputIterator airy_bi_zero(
-                     unsigned start_index,
-                     unsigned number_of_zeros,
-                     OutputIterator out_it);
-   template <class OutputIterator, class Policy>
-   OutputIterator airy_bi_zero(
-                     unsigned start_index,
-                     unsigned number_of_zeros,
-                     OutputIterator out_it,
-                     const Policy&);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type sin_pi(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type sin_pi(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type cos_pi(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type cos_pi(T x);
-
-   template <class T>
-   int fpclassify NDNBOOST_NO_MACRO_EXPAND(T t);
-
-   template <class T>
-   bool isfinite NDNBOOST_NO_MACRO_EXPAND(T z);
-
-   template <class T>
-   bool isinf NDNBOOST_NO_MACRO_EXPAND(T t);
-
-   template <class T>
-   bool isnan NDNBOOST_NO_MACRO_EXPAND(T t);
-
-   template <class T>
-   bool isnormal NDNBOOST_NO_MACRO_EXPAND(T t);
-
-   template<class T>
-   int signbit NDNBOOST_NO_MACRO_EXPAND(T x);
-
-   template <class T>
-   int sign NDNBOOST_NO_MACRO_EXPAND(const T& z);
-
-   template <class T, class U>
-   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 NDNBOOST_NO_MACRO_EXPAND(const T& z);
-
-   // Exponential integrals:
-   namespace detail{
-
-   template <class T, class U>
-   struct expint_result
-   {
-      typedef typename mpl::if_<
-         policies::is_policy<U>,
-         typename tools::promote_args<T>::type,
-         typename tools::promote_args<U>::type
-      >::type type;
-   };
-
-   } // namespace detail
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type expint(unsigned n, T z, const Policy&);
-
-   template <class T, class U>
-   typename detail::expint_result<T, U>::type expint(T const z, U const u);
-
-   template <class T>
-   typename tools::promote_args<T>::type expint(T z);
-
-   // Zeta:
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type zeta(T s, const Policy&);
-
-   // Owen's T function:
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type owens_t(T1 h, T2 a, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type owens_t(T1 h, T2 a);
-
-   // Jacobi Functions:
-   template <class T, class U, class V, class Policy>
-   typename tools::promote_args<T, U, V>::type jacobi_elliptic(T k, U theta, V* pcn, V* pdn, const Policy&);
-
-   template <class T, class U, class V>
-   typename tools::promote_args<T, U, V>::type jacobi_elliptic(T k, U theta, V* pcn = 0, V* pdn = 0);
-
-   template <class U, class T, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_sn(U k, T theta, const Policy& pol);
-
-   template <class U, class T>
-   typename tools::promote_args<T, U>::type jacobi_sn(U k, T theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_cn(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_cn(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_dn(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_dn(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_cd(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_cd(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_dc(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_dc(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_ns(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_ns(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_sd(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_sd(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_ds(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_ds(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_nc(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_nc(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_nd(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_nd(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_sc(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_sc(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_cs(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_cs(T k, U theta);
-
-
-   template <class T>
-   typename tools::promote_args<T>::type zeta(T s);
-
-   // pow:
-   template <int N, typename T, class Policy>
-   typename tools::promote_args<T>::type pow(T base, const Policy& policy);
-
-   template <int N, typename T>
-   typename tools::promote_args<T>::type pow(T base);
-
-   // next:
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type nextafter(const T&, const U&, const Policy&);
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type nextafter(const T&, const U&);
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type float_next(const T&, const Policy&);
-   template <class T>
-   typename tools::promote_args<T>::type float_next(const T&);
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type float_prior(const T&, const Policy&);
-   template <class T>
-   typename tools::promote_args<T>::type float_prior(const T&);
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type float_distance(const T&, const U&, const Policy&);
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type float_distance(const T&, const U&);
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type float_advance(T val, int distance, const Policy& pol);
-   template <class T>
-   typename tools::promote_args<T>::type float_advance(const T& val, int distance);
-
-    } // namespace math
-} // namespace ndnboost
-
-#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()); }\
-   \
-   template <class T>\
-   inline ndnboost::long_long_type lltrunc(const T& v){ using ndnboost::math::lltrunc; return lltrunc(v, Policy()); }\
-   \
-   template <class T>\
-   inline ndnboost::long_long_type llround(const T& v){ using ndnboost::math::llround; return llround(v, Policy()); }\
-
-#else
-#define NDNBOOST_MATH_DETAIL_LL_FUNC(Policy)
-#endif
-
-#define NDNBOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(Policy)\
-   \
-   NDNBOOST_MATH_DETAIL_LL_FUNC(Policy)\
-   \
-   template <class RT1, class RT2>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2>::type \
-   beta(RT1 a, RT2 b) { return ::ndnboost::math::beta(a, b, Policy()); }\
-\
-   template <class RT1, class RT2, class A>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2, A>::type \
-   beta(RT1 a, RT2 b, A x){ return ::ndnboost::math::beta(a, b, x, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   betac(RT1 a, RT2 b, RT3 x) { return ::ndnboost::math::betac(a, b, x, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta(RT1 a, RT2 b, RT3 x){ return ::ndnboost::math::ibeta(a, b, x, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibetac(RT1 a, RT2 b, RT3 x){ return ::ndnboost::math::ibetac(a, b, x, Policy()); }\
-\
-   template <class T1, class T2, class T3, class T4>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2, T3, T4>::type  \
-   ibeta_inv(T1 a, T2 b, T3 p, T4* py){ return ::ndnboost::math::ibeta_inv(a, b, p, py, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta_inv(RT1 a, RT2 b, RT3 p){ return ::ndnboost::math::ibeta_inv(a, b, p, Policy()); }\
-\
-   template <class T1, class T2, class T3, class T4>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2, T3, T4>::type \
-   ibetac_inv(T1 a, T2 b, T3 q, T4* py){ return ::ndnboost::math::ibetac_inv(a, b, q, py, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta_inva(RT1 a, RT2 b, RT3 p){ return ::ndnboost::math::ibeta_inva(a, b, p, Policy()); }\
-\
-   template <class T1, class T2, class T3>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2, T3>::type \
-   ibetac_inva(T1 a, T2 b, T3 q){ return ::ndnboost::math::ibetac_inva(a, b, q, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta_invb(RT1 a, RT2 b, RT3 p){ return ::ndnboost::math::ibeta_invb(a, b, p, Policy()); }\
-\
-   template <class T1, class T2, class T3>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2, T3>::type \
-   ibetac_invb(T1 a, T2 b, T3 q){ return ::ndnboost::math::ibetac_invb(a, b, q, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibetac_inv(RT1 a, RT2 b, RT3 q){ return ::ndnboost::math::ibetac_inv(a, b, q, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta_derivative(RT1 a, RT2 b, RT3 x){ return ::ndnboost::math::ibeta_derivative(a, b, x, Policy()); }\
-\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type erf(RT z) { return ::ndnboost::math::erf(z, Policy()); }\
-\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type erfc(RT z){ return ::ndnboost::math::erfc(z, Policy()); }\
-\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type erf_inv(RT z) { return ::ndnboost::math::erf_inv(z, Policy()); }\
-\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type erfc_inv(RT z){ return ::ndnboost::math::erfc_inv(z, Policy()); }\
-\
-   using ndnboost::math::legendre_next;\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type \
-   legendre_p(int l, T x){ return ::ndnboost::math::legendre_p(l, x, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type \
-   legendre_q(unsigned l, T x){ return ::ndnboost::math::legendre_q(l, x, Policy()); }\
-\
-   using ::ndnboost::math::legendre_next;\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type \
-   legendre_p(int l, int m, T x){ return ::ndnboost::math::legendre_p(l, m, x, Policy()); }\
-\
-   using ::ndnboost::math::laguerre_next;\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type \
-   laguerre(unsigned n, T x){ return ::ndnboost::math::laguerre(n, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::laguerre_result<T1, T2>::type \
-   laguerre(unsigned n, T1 m, T2 x) { return ::ndnboost::math::laguerre(n, m, x, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type \
-   hermite(unsigned n, T x){ return ::ndnboost::math::hermite(n, x, Policy()); }\
-\
-   using ndnboost::math::hermite_next;\
-\
-   template <class T1, class T2>\
-   inline std::complex<typename ndnboost::math::tools::promote_args<T1, T2>::type> \
-   spherical_harmonic(unsigned n, int m, T1 theta, T2 phi){ return ndnboost::math::spherical_harmonic(n, m, theta, phi, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type \
-   spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi){ return ::ndnboost::math::spherical_harmonic_r(n, m, theta, phi, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type \
-   spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi){ return ndnboost::math::spherical_harmonic_i(n, m, theta, phi, Policy()); }\
-\
-   template <class T1, class T2, class Policy>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type \
-      spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi, const Policy& pol);\
-\
-   template <class T1, class T2, class T3>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2, T3>::type \
-   ellint_rf(T1 x, T2 y, T3 z){ return ::ndnboost::math::ellint_rf(x, y, z, Policy()); }\
-\
-   template <class T1, class T2, class T3>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2, T3>::type \
-   ellint_rd(T1 x, T2 y, T3 z){ return ::ndnboost::math::ellint_rd(x, y, z, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type \
-   ellint_rc(T1 x, T2 y){ return ::ndnboost::math::ellint_rc(x, y, Policy()); }\
-\
-   template <class T1, class T2, class T3, class T4>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2, T3, T4>::type \
-   ellint_rj(T1 x, T2 y, T3 z, T4 p){ return ndnboost::math::ellint_rj(x, y, z, p, Policy()); }\
-\
-   template <typename T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type ellint_2(T k){ return ndnboost::math::ellint_2(k, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi){ return ndnboost::math::ellint_2(k, phi, Policy()); }\
-\
-   template <typename T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type ellint_1(T k){ return ndnboost::math::ellint_1(k, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi){ return ndnboost::math::ellint_1(k, phi, Policy()); }\
-\
-   template <class T1, class T2, class T3>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2, T3>::type ellint_3(T1 k, T2 v, T3 phi){ return ndnboost::math::ellint_3(k, v, phi, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type ellint_3(T1 k, T2 v){ return ndnboost::math::ellint_3(k, v, Policy()); }\
-\
-   using ndnboost::math::max_factorial;\
-   template <class RT>\
-   inline RT factorial(unsigned int i) { return ndnboost::math::factorial<RT>(i, Policy()); }\
-   using ndnboost::math::unchecked_factorial;\
-   template <class RT>\
-   inline RT double_factorial(unsigned i){ return ndnboost::math::double_factorial<RT>(i, Policy()); }\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type falling_factorial(RT x, unsigned n){ return ndnboost::math::falling_factorial(x, n, Policy()); }\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type rising_factorial(RT x, unsigned n){ return ndnboost::math::rising_factorial(x, n, Policy()); }\
-\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type tgamma(RT z){ return ndnboost::math::tgamma(z, Policy()); }\
-\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type tgamma1pm1(RT z){ return ndnboost::math::tgamma1pm1(z, Policy()); }\
-\
-   template <class RT1, class RT2>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2>::type tgamma(RT1 a, RT2 z){ return ndnboost::math::tgamma(a, z, Policy()); }\
-\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type lgamma(RT z, int* sign){ return ndnboost::math::lgamma(z, sign, Policy()); }\
-\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type lgamma(RT x){ return ndnboost::math::lgamma(x, Policy()); }\
-\
-   template <class RT1, class RT2>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2>::type tgamma_lower(RT1 a, RT2 z){ return ndnboost::math::tgamma_lower(a, z, Policy()); }\
-\
-   template <class RT1, class RT2>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2>::type gamma_q(RT1 a, RT2 z){ return ndnboost::math::gamma_q(a, z, Policy()); }\
-\
-   template <class RT1, class RT2>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2>::type gamma_p(RT1 a, RT2 z){ return ndnboost::math::gamma_p(a, z, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type tgamma_delta_ratio(T1 z, T2 delta){ return ndnboost::math::tgamma_delta_ratio(z, delta, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type tgamma_ratio(T1 a, T2 b) { return ndnboost::math::tgamma_ratio(a, b, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type gamma_p_derivative(T1 a, T2 x){ return ndnboost::math::gamma_p_derivative(a, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type gamma_p_inv(T1 a, T2 p){ return ndnboost::math::gamma_p_inv(a, p, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type gamma_p_inva(T1 a, T2 p){ return ndnboost::math::gamma_p_inva(a, p, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type gamma_q_inv(T1 a, T2 q){ return ndnboost::math::gamma_q_inv(a, q, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type gamma_q_inva(T1 a, T2 q){ return ndnboost::math::gamma_q_inva(a, q, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type digamma(T x){ return ndnboost::math::digamma(x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type \
-   hypot(T1 x, T2 y){ return ndnboost::math::hypot(x, y, Policy()); }\
-\
-   template <class RT>\
-   inline typename ndnboost::math::tools::promote_args<RT>::type cbrt(RT z){ return ndnboost::math::cbrt(z, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type log1p(T x){ return ndnboost::math::log1p(x, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type log1pmx(T x){ return ndnboost::math::log1pmx(x, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type expm1(T x){ return ndnboost::math::expm1(x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::tools::promote_args<T1, T2>::type \
-   powm1(const T1 a, const T2 z){ return ndnboost::math::powm1(a, z, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type sqrt1pm1(const T& val){ return ndnboost::math::sqrt1pm1(val, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type sinc_pi(T x){ return ndnboost::math::sinc_pi(x, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type sinhc_pi(T x){ return ndnboost::math::sinhc_pi(x, Policy()); }\
-\
-   template<typename T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type asinh(const T x){ return ndnboost::math::asinh(x, Policy()); }\
-\
-   template<typename T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type acosh(const T x){ return ndnboost::math::acosh(x, Policy()); }\
-\
-   template<typename T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type atanh(const T x){ return ndnboost::math::atanh(x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::detail::bessel_traits<T1, T2, Policy >::result_type cyl_bessel_j(T1 v, T2 x)\
-   { return ndnboost::math::cyl_bessel_j(v, x, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::detail::bessel_traits<T, T, Policy >::result_type sph_bessel(unsigned v, T x)\
-   { return ndnboost::math::sph_bessel(v, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::detail::bessel_traits<T1, T2, Policy >::result_type \
-   cyl_bessel_i(T1 v, T2 x) { return ndnboost::math::cyl_bessel_i(v, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::detail::bessel_traits<T1, T2, Policy >::result_type \
-   cyl_bessel_k(T1 v, T2 x) { return ndnboost::math::cyl_bessel_k(v, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename ndnboost::math::detail::bessel_traits<T1, T2, Policy >::result_type \
-   cyl_neumann(T1 v, T2 x){ return ndnboost::math::cyl_neumann(v, x, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::detail::bessel_traits<T, T, Policy >::result_type \
-   sph_neumann(unsigned v, T x){ return ndnboost::math::sph_neumann(v, x, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::detail::bessel_traits<T, T, Policy >::result_type cyl_bessel_j_zero(T v, int m)\
-   { return ndnboost::math::cyl_bessel_j_zero(v, m, Policy()); }\
-\
-template <class OutputIterator, class T>\
-   inline void cyl_bessel_j_zero(T v,\
-                                 int start_index,\
-                                 unsigned number_of_zeros,\
-                                 OutputIterator out_it)\
-   { ndnboost::math::cyl_bessel_j_zero(v, start_index, number_of_zeros, out_it, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::detail::bessel_traits<T, T, Policy >::result_type cyl_neumann_zero(T v, int m)\
-   { return ndnboost::math::cyl_neumann_zero(v, m, Policy()); }\
-\
-template <class OutputIterator, class T>\
-   inline void cyl_neumann_zero(T v,\
-                                int start_index,\
-                                unsigned number_of_zeros,\
-                                OutputIterator out_it)\
-   { ndnboost::math::cyl_neumann_zero(v, start_index, number_of_zeros, out_it, Policy()); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type sin_pi(T x){ return ndnboost::math::sin_pi(x); }\
-\
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type cos_pi(T x){ return ndnboost::math::cos_pi(x); }\
-\
-   using ndnboost::math::fpclassify;\
-   using ndnboost::math::isfinite;\
-   using ndnboost::math::isinf;\
-   using ndnboost::math::isnan;\
-   using ndnboost::math::isnormal;\
-   using ndnboost::math::signbit;\
-   using ndnboost::math::sign;\
-   using ndnboost::math::copysign;\
-   using ndnboost::math::changesign;\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T,U>::type expint(T const& z, U const& u)\
-   { return ndnboost::math::expint(z, u, Policy()); }\
-   \
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type expint(T z){ return ndnboost::math::expint(z, Policy()); }\
-   \
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type zeta(T s){ return ndnboost::math::zeta(s, Policy()); }\
-   \
-   template <class T>\
-   inline T round(const T& v){ using ndnboost::math::round; return round(v, Policy()); }\
-   \
-   template <class T>\
-   inline int iround(const T& v){ using ndnboost::math::iround; return iround(v, Policy()); }\
-   \
-   template <class T>\
-   inline long lround(const T& v){ using ndnboost::math::lround; return lround(v, Policy()); }\
-   \
-   template <class T>\
-   inline T trunc(const T& v){ using ndnboost::math::trunc; return trunc(v, Policy()); }\
-   \
-   template <class T>\
-   inline int itrunc(const T& v){ using ndnboost::math::itrunc; return itrunc(v, Policy()); }\
-   \
-   template <class T>\
-   inline long ltrunc(const T& v){ using ndnboost::math::ltrunc; return ltrunc(v, Policy()); }\
-   \
-   template <class T>\
-   inline T modf(const T& v, T* ipart){ using ndnboost::math::modf; return modf(v, ipart, Policy()); }\
-   \
-   template <class T>\
-   inline T modf(const T& v, int* ipart){ using ndnboost::math::modf; return modf(v, ipart, Policy()); }\
-   \
-   template <class T>\
-   inline T modf(const T& v, long* ipart){ using ndnboost::math::modf; return modf(v, ipart, Policy()); }\
-   \
-   template <int N, class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type pow(T v){ return ndnboost::math::pow<N>(v, Policy()); }\
-   \
-   template <class T> T nextafter(const T& a, const T& b){ return ndnboost::math::nextafter(a, b, Policy()); }\
-   template <class T> T float_next(const T& a){ return ndnboost::math::float_next(a, Policy()); }\
-   template <class T> T float_prior(const T& a){ return ndnboost::math::float_prior(a, Policy()); }\
-   template <class T> T float_distance(const T& a, const T& b){ return ndnboost::math::float_distance(a, b, Policy()); }\
-   \
-   template <class RT1, class RT2>\
-   inline typename ndnboost::math::tools::promote_args<RT1, RT2>::type owens_t(RT1 a, RT2 z){ return ndnboost::math::owens_t(a, z, Policy()); }\
-   \
-   template <class T1, class T2>\
-   inline std::complex<typename ndnboost::math::detail::bessel_traits<T1, T2, Policy >::result_type> cyl_hankel_1(T1 v, T2 x)\
-   {  return ndnboost::math::cyl_hankel_1(v, x, Policy()); }\
-   \
-   template <class T1, class T2>\
-   inline std::complex<typename ndnboost::math::detail::bessel_traits<T1, T2, Policy >::result_type> cyl_hankel_2(T1 v, T2 x)\
-   { return ndnboost::math::cyl_hankel_2(v, x, Policy()); }\
-   \
-   template <class T1, class T2>\
-   inline std::complex<typename ndnboost::math::detail::bessel_traits<T1, T2, Policy >::result_type> sph_hankel_1(T1 v, T2 x)\
-   { return ndnboost::math::sph_hankel_1(v, x, Policy()); }\
-   \
-   template <class T1, class T2>\
-   inline std::complex<typename ndnboost::math::detail::bessel_traits<T1, T2, Policy >::result_type> sph_hankel_2(T1 v, T2 x)\
-   { return ndnboost::math::sph_hankel_2(v, x, Policy()); }\
-   \
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type jacobi_elliptic(T k, T theta, T* pcn, T* pdn)\
-   { return ndnboost::math::jacobi_elliptic(k, theta, pcn, pdn, Policy()); }\
-   \
-   template <class U, class T>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_sn(U k, T theta)\
-   { return ndnboost::math::jacobi_sn(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_cn(T k, U theta)\
-   { return ndnboost::math::jacobi_cn(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_dn(T k, U theta)\
-   { return ndnboost::math::jacobi_dn(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_cd(T k, U theta)\
-   { return ndnboost::math::jacobi_cd(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_dc(T k, U theta)\
-   { return ndnboost::math::jacobi_dc(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_ns(T k, U theta)\
-   { return ndnboost::math::jacobi_ns(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_sd(T k, U theta)\
-   { return ndnboost::math::jacobi_sd(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_ds(T k, U theta)\
-   { return ndnboost::math::jacobi_ds(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_nc(T k, U theta)\
-   { return ndnboost::math::jacobi_nc(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_nd(T k, U theta)\
-   { return ndnboost::math::jacobi_nd(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_sc(T k, U theta)\
-   { return ndnboost::math::jacobi_sc(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename ndnboost::math::tools::promote_args<T, U>::type jacobi_cs(T k, U theta)\
-   { return ndnboost::math::jacobi_cs(k, theta, Policy()); }\
-   \
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type airy_ai(T x)\
-   {  return ndnboost::math::airy_ai(x, Policy());  }\
-   \
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type airy_bi(T x)\
-   {  return ndnboost::math::airy_bi(x, Policy());  }\
-   \
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type airy_ai_prime(T x)\
-   {  return ndnboost::math::airy_ai_prime(x, Policy());  }\
-   \
-   template <class T>\
-   inline typename ndnboost::math::tools::promote_args<T>::type airy_bi_prime(T x)\
-   {  return ndnboost::math::airy_bi_prime(x, Policy());  }\
-   \
-   template <class T>\
-   inline T airy_ai_zero(int m)\
-   { return ndnboost::math::airy_ai_zero<T>(m, Policy()); }\
-   template <class T, class OutputIterator>\
-   OutputIterator airy_ai_zero(int start_index, unsigned number_of_zeros, OutputIterator out_it)\
-   { return ndnboost::math::airy_ai_zero<T>(start_index, number_of_zeros, out_it, Policy()); }\
-   \
-   template <class T>\
-   inline T airy_bi_zero(int m)\
-   { return ndnboost::math::airy_bi_zero<T>(m, Policy()); }\
-   template <class T, class OutputIterator>\
-   OutputIterator airy_bi_zero(int start_index, unsigned number_of_zeros, OutputIterator out_it)\
-   { return ndnboost::math::airy_bi_zero<T>(start_index, number_of_zeros, out_it, Policy()); }\
-   \
-
-
-
-
-
-#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
deleted file mode 100644
index e0fbd9e..0000000
--- a/include/ndnboost/math/special_functions/sign.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  (C) Copyright Johan Rade 2006.
-//  (C) Copyright Paul A. Bristow 2011 (added changesign).
-
-//  Use, modification and distribution are subject to 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 NDNBOOST_MATH_TOOLS_SIGN_HPP
-#define NDNBOOST_MATH_TOOLS_SIGN_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <ndnboost/math/tools/config.hpp>
-#include <ndnboost/math/special_functions/math_fwd.hpp>
-#include <ndnboost/math/special_functions/detail/fp_traits.hpp>
-
-namespace ndnboost{ namespace math{ 
-
-namespace detail {
-
-  // signbit
-
-#ifdef NDNBOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T> 
-    inline int signbit_impl(T x, native_tag const&)
-    {
-        return (std::signbit)(x);
-    }
-#endif
-
-    template<class T> 
-    inline int signbit_impl(T x, generic_tag<true> const&)
-    {
-        return x < 0;
-    }
-
-    template<class T> 
-    inline int signbit_impl(T x, generic_tag<false> const&)
-    {
-        return x < 0;
-    }
-
-    template<class T> 
-    inline int signbit_impl(T x, ieee_copy_all_bits_tag const&)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        return a & traits::sign ? 1 : 0;
-    }
-
-    template<class T> 
-    inline int signbit_impl(T x, ieee_copy_leading_bits_tag const&)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-
-        return a & traits::sign ? 1 : 0;
-    }
-
-    // Changesign
-
-    template<class T>
-    inline T (changesign_impl)(T x, generic_tag<true> const&)
-    {
-        return -x;
-    }
-
-    template<class T>
-    inline T (changesign_impl)(T x, generic_tag<false> const&)
-    {
-        return -x;
-    }
-
-
-    template<class T>
-    inline T changesign_impl(T x, ieee_copy_all_bits_tag const&)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::sign_change_type traits;
-
-        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a ^= traits::sign;
-        traits::set_bits(x,a);
-        return x;
-    }
-
-    template<class T>
-    inline T (changesign_impl)(T x, ieee_copy_leading_bits_tag const&)
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME fp_traits<T>::sign_change_type traits;
-
-        NDNBOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a ^= traits::sign;
-        traits::set_bits(x,a);
-        return x;
-    }
-
-
-}   // namespace detail
-
-template<class T> int (signbit)(T x)
-{ 
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   // typedef typename ndnboost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args<T>::type result_type;
-   return detail::signbit_impl(static_cast<result_type>(x), method());
-}
-
-template <class T>
-inline int sign NDNBOOST_NO_MACRO_EXPAND(const T& z)
-{
-   return (z == 0) ? 0 : (ndnboost::math::signbit)(z) ? -1 : 1;
-}
-
-template <class T> typename tools::promote_args<T>::type (changesign)(const T& x)
-{ //!< \brief return unchanged binary pattern of x, except for change of sign bit. 
-   typedef typename detail::fp_traits<T>::sign_change_type traits;
-   typedef typename traits::method method;
-   // typedef typename ndnboost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args<T>::type result_type;
-
-   return detail::changesign_impl(static_cast<result_type>(x), method());
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type 
-   copysign NDNBOOST_NO_MACRO_EXPAND(const T& x, const U& y)
-{
-   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);
-}
-
-} // namespace math
-} // namespace ndnboost
-
-
-#endif // NDNBOOST_MATH_TOOLS_SIGN_HPP
-
-
diff --git a/include/ndnboost/math/tools/config.hpp b/include/ndnboost/math/tools/config.hpp
deleted file mode 100644
index 77f03a5..0000000
--- a/include/ndnboost/math/tools/config.hpp
+++ /dev/null
@@ -1,352 +0,0 @@
-//  Copyright (c) 2006-7 John Maddock
-//  Use, modification and distribution are subject to 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 NDNBOOST_MATH_TOOLS_CONFIG_HPP
-#define NDNBOOST_MATH_TOOLS_CONFIG_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/cstdint.hpp> // for ndnboost::uintmax_t
-#include <ndnboost/detail/workaround.hpp>
-#include <algorithm>  // for min and max
-#include <ndnboost/config/no_tr1/cmath.hpp>
-#include <climits>
-#include <cfloat>
-#if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))
-#  include <math.h>
-#endif
-
-#include <ndnboost/math/tools/user.hpp>
-
-#if (defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) \
-   || (defined(__hppa) && !defined(__OpenBSD__)) || (defined(__NO_LONG_DOUBLE_MATH) && (DBL_MANT_DIG != LDBL_MANT_DIG))) \
-   && !defined(NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
-#  define NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#endif
-#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 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__
-//
-// 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 NDNBOOST_MATH_NO_REAL_CONCEPT_TESTS
-#endif
-#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 NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#endif
-#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:
-// calling ::powl is OK, but std::pow(long double, long double) 
-// may segfault depending upon the value of the arguments passed 
-// and the specific Linux distribution.
-//
-// We'll be conservative and disable long double support for this compiler.
-//
-// Comment out this #define and try building the tests to determine whether
-// your Intel compiler version has this issue or not.
-//
-#  define NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#endif
-#if defined(unix) && defined(__INTEL_COMPILER)
-//
-// Intel compiler has sporadic issues compiling std::fpclassify depending on
-// the exact OS version used.  Use our own code for this as we know it works
-// well on Intel processors:
-//
-#define NDNBOOST_MATH_DISABLE_STD_FPCLASSIFY
-#endif
-
-#if defined(NDNBOOST_MSVC) && !defined(_WIN32_WCE)
-   // Better safe than sorry, our tests don't support hardware exceptions:
-#  define NDNBOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM)
-#endif
-
-#ifdef __IBMCPP__
-#  define NDNBOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS
-#endif
-
-#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901))
-#  define NDNBOOST_MATH_USE_C99
-#endif
-
-#if (defined(__hpux) && !defined(__hppa))
-#  define NDNBOOST_MATH_USE_C99
-#endif
-
-#if defined(__GNUC__) && defined(_GLIBCXX_USE_C99)
-#  define NDNBOOST_MATH_USE_C99
-#endif
-
-#if defined(_LIBCPP_VERSION) && !defined(_MSC_VER)
-#  define NDNBOOST_MATH_USE_C99
-#endif
-
-#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(NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) || NDNBOOST_WORKAROUND(__SUNPRO_CC, <= 0x590)
-
-#  include "ndnboost/type.hpp"
-#  include "ndnboost/non_type.hpp"
-
-#  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 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 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 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 NDNBOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-
-#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 NDNBOOST_MATH_SMALL_CONSTANT(x) 0
-#else
-#  define NDNBOOST_MATH_SMALL_CONSTANT(x) x
-#endif
-
-
-#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 NDNBOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS
-#endif
-//
-// Tune performance options for specific compilers:
-//
-#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 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(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 NDNBOOST_MATH_MAX_POLY_ORDER
-#  define NDNBOOST_MATH_MAX_POLY_ORDER 17
-#endif 
-//
-// Set the method used to evaluate polynomials and rationals:
-//
-#ifndef NDNBOOST_MATH_POLY_METHOD
-#  define NDNBOOST_MATH_POLY_METHOD 1
-#endif 
-#ifndef NDNBOOST_MATH_RATIONAL_METHOD
-#  define NDNBOOST_MATH_RATIONAL_METHOD 0
-#endif 
-//
-// decide whether to store constants as integers or reals:
-//
-#ifndef NDNBOOST_MATH_INT_TABLE_TYPE
-#  define NDNBOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
-#endif
-#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(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 NDNBOOST_MATH_USE_FLOAT128
-#endif
-//
-// Check for WinCE with no iostream support:
-//
-#if defined(_WIN32_WCE) && !defined(__SGI_STL_PORT)
-#  define NDNBOOST_MATH_NO_LEXICAL_CAST
-#endif
-
-//
-// Helper macro for controlling the FP behaviour:
-//
-#ifndef NDNBOOST_MATH_CONTROL_FP
-#  define NDNBOOST_MATH_CONTROL_FP
-#endif
-//
-// Helper macro for using statements:
-//
-#define NDNBOOST_MATH_STD_USING_CORE \
-   using std::abs;\
-   using std::acos;\
-   using std::cos;\
-   using std::fmod;\
-   using std::modf;\
-   using std::tan;\
-   using std::asin;\
-   using std::cosh;\
-   using std::frexp;\
-   using std::pow;\
-   using std::tanh;\
-   using std::atan;\
-   using std::exp;\
-   using std::ldexp;\
-   using std::sin;\
-   using std::atan2;\
-   using std::fabs;\
-   using std::log;\
-   using std::sinh;\
-   using std::ceil;\
-   using std::floor;\
-   using std::log10;\
-   using std::sqrt;
-
-#define NDNBOOST_MATH_STD_USING NDNBOOST_MATH_STD_USING_CORE
-
-namespace ndnboost{ namespace math{
-namespace tools
-{
-
-template <class T>
-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 NDNBOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
-{
-   return (std::max)((std::max)(a, b), (std::max)(c, d));
-}
-
-} // namespace tools
-
-template <class T>
-void suppress_unused_variable_warning(const T&)
-{
-}
-
-}} // namespace ndnboost namespace math
-
-#if ((defined(__linux__) && !defined(__UCLIBC__)) || defined(__QNX__) || defined(__IBMCPP__)) && !defined(NDNBOOST_NO_FENV_H)
-
-   #include <ndnboost/detail/fenv.hpp>
-
-#  ifdef FE_ALL_EXCEPT
-
-namespace ndnboost{ namespace math{
-   namespace detail
-   {
-   struct fpu_guard
-   {
-      fpu_guard()
-      {
-         fegetexceptflag(&m_flags, FE_ALL_EXCEPT);
-         feclearexcept(FE_ALL_EXCEPT);
-      }
-      ~fpu_guard()
-      {
-         fesetexceptflag(&m_flags, FE_ALL_EXCEPT);
-      }
-   private:
-      fexcept_t m_flags;
-   };
-
-   } // namespace detail
-   }} // namespaces
-
-#    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 NDNBOOST_FPU_EXCEPTION_GUARD
-#    define NDNBOOST_MATH_INSTRUMENT_FPU
-
-#  endif
-
-#else // All other platforms.
-#  define NDNBOOST_FPU_EXCEPTION_GUARD
-#  define NDNBOOST_MATH_INSTRUMENT_FPU
-#endif
-
-#ifdef NDNBOOST_MATH_INSTRUMENT
-
-#  include <iostream>
-#  include <iomanip>
-#  include <typeinfo>
-
-#  define NDNBOOST_MATH_INSTRUMENT_CODE(x) \
-      std::cout << std::setprecision(35) << __FILE__ << ":" << __LINE__ << " " << x << std::endl;
-#  define NDNBOOST_MATH_INSTRUMENT_VARIABLE(name) NDNBOOST_MATH_INSTRUMENT_CODE(NDNBOOST_STRINGIZE(name) << " = " << name)
-
-#else
-
-#  define NDNBOOST_MATH_INSTRUMENT_CODE(x)
-#  define NDNBOOST_MATH_INSTRUMENT_VARIABLE(name)
-
-#endif
-
-#endif // NDNBOOST_MATH_TOOLS_CONFIG_HPP
-
-
-
-
-
diff --git a/include/ndnboost/math/tools/promotion.hpp b/include/ndnboost/math/tools/promotion.hpp
deleted file mode 100644
index d71fea9..0000000
--- a/include/ndnboost/math/tools/promotion.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-// boost\math\tools\promotion.hpp
-
-// Copyright John Maddock 2006.
-// Copyright Paul A. Bristow 2006.
-
-// Use, modification and distribution are subject to 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)
-
-// Promote arguments functions to allow math functions to have arguments
-// provided as integer OR real (floating-point, built-in or UDT)
-// (called ArithmeticType in functions that use promotion)
-// that help to reduce the risk of creating multiple instantiations.
-// 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 NDNBOOST_MATH_PROMOTION_HPP
-#define NDNBOOST_MATH_PROMOTION_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-// Boost type traits:
-#include <ndnboost/math/tools/config.hpp>
-#include <ndnboost/type_traits/is_floating_point.hpp> // for ndnboost::is_floating_point;
-#include <ndnboost/type_traits/is_integral.hpp> // for ndnboost::is_integral
-#include <ndnboost/type_traits/is_convertible.hpp> // for ndnboost::is_convertible
-#include <ndnboost/type_traits/is_same.hpp>// for ndnboost::is_same
-#include <ndnboost/type_traits/remove_cv.hpp>// for ndnboost::remove_cv
-// Boost Template meta programming:
-#include <ndnboost/mpl/if.hpp> // for ndnboost::mpl::if_c.
-#include <ndnboost/mpl/and.hpp> // for ndnboost::mpl::if_c.
-#include <ndnboost/mpl/or.hpp> // for ndnboost::mpl::if_c.
-#include <ndnboost/mpl/not.hpp> // for ndnboost::mpl::if_c.
-
-#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#include <ndnboost/static_assert.hpp>
-#endif
-
-namespace ndnboost
-{
-  namespace math
-  {
-    namespace tools
-    {
-      // If either T1 or T2 is an integer type,
-      // pretend it was a double (for the purposes of further analysis).
-      // Then pick the wider of the two floating-point types
-      // as the actual signature to forward to.
-      // For example:
-      // foo(int, short) -> double foo(double, double);
-      // foo(int, float) -> double foo(double, double);
-      // Note: NOT float foo(float, float)
-      // foo(int, double) -> foo(double, double);
-      // foo(double, float) -> double foo(double, double);
-      // foo(double, float) -> double foo(double, double);
-      // foo(any-int-or-float-type, long double) -> foo(long double, long double);
-      // but ONLY float foo(float, float) is unchanged.
-      // So the only way to get an entirely float version is to call foo(1.F, 2.F),
-      // But since most (all?) the math functions convert to double internally,
-      // probably there would not be the hoped-for gain by using float here.
-
-      // This follows the C-compatible conversion rules of pow, etc
-      // where pow(int, float) is converted to pow(double, double).
-
-      template <class T>
-      struct promote_arg
-      { // If T is integral type, then promote to double.
-        typedef typename mpl::if_<is_integral<T>, double, T>::type type;
-      };
-      // These full specialisations reduce mpl::if_ usage and speed up
-      // compilation:
-      template <> struct promote_arg<float> { typedef float type; };
-      template <> struct promote_arg<double>{ typedef double type; };
-      template <> struct promote_arg<long double> { typedef long double type; };
-      template <> struct promote_arg<int> {  typedef double type; };
-
-      template <class T1, class T2>
-      struct promote_args_2
-      { // Promote, if necessary, & pick the wider of the two floating-point types.
-        // for both parameter types, if integral promote to double.
-        typedef typename promote_arg<T1>::type T1P; // T1 perhaps promoted.
-        typedef typename promote_arg<T2>::type T2P; // T2 perhaps promoted.
-
-        typedef typename mpl::if_<
-          typename mpl::and_<is_floating_point<T1P>, is_floating_point<T2P> >::type, // both T1P and T2P are floating-point?
-          typename mpl::if_< typename mpl::or_<is_same<long double, T1P>, is_same<long double, T2P> >::type, // either long double?
-            long double, // then result type is long double.
-            typename mpl::if_< typename mpl::or_<is_same<double, T1P>, is_same<double, T2P> >::type, // either double?
-            double, // result type is double.
-          float // else result type is float.
-          >::type
-          >::type,
-          // else one or the other is a user-defined type:
-          typename mpl::if_< typename mpl::and_<mpl::not_<is_floating_point<T2P> >, ::ndnboost::is_convertible<T1P, T2P> >, T2P, T1P>::type>::type type;
-      }; // promote_arg2
-      // These full specialisations reduce mpl::if_ usage and speed up
-      // compilation:
-      template <> struct promote_args_2<float, float> { typedef float type; };
-      template <> struct promote_args_2<double, double>{ typedef double type; };
-      template <> struct promote_args_2<long double, long double> { typedef long double type; };
-      template <> struct promote_args_2<int, int> {  typedef double type; };
-      template <> struct promote_args_2<int, float> {  typedef double type; };
-      template <> struct promote_args_2<float, int> {  typedef double type; };
-      template <> struct promote_args_2<int, double> {  typedef double type; };
-      template <> struct promote_args_2<double, int> {  typedef double type; };
-      template <> struct promote_args_2<int, long double> {  typedef long double type; };
-      template <> struct promote_args_2<long double, int> {  typedef long double type; };
-      template <> struct promote_args_2<float, double> {  typedef double type; };
-      template <> struct promote_args_2<double, float> {  typedef double type; };
-      template <> struct promote_args_2<float, long double> {  typedef long double type; };
-      template <> struct promote_args_2<long double, float> {  typedef long double type; };
-      template <> struct promote_args_2<double, long double> {  typedef long double type; };
-      template <> struct promote_args_2<long double, double> {  typedef long double type; };
-
-      template <class T1, class T2=float, class T3=float, class T4=float, class T5=float, class T6=float>
-      struct promote_args
-      {
-         typedef typename promote_args_2<
-            typename remove_cv<T1>::type,
-            typename promote_args_2<
-               typename remove_cv<T2>::type,
-               typename promote_args_2<
-                  typename remove_cv<T3>::type,
-                  typename promote_args_2<
-                     typename remove_cv<T4>::type,
-                     typename promote_args_2<
-                        typename remove_cv<T5>::type, typename remove_cv<T6>::type
-                     >::type
-                  >::type
-               >::type
-            >::type
-         >::type type;
-
-#ifdef NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-         //
-         // Guard against use of long double if it's not supported:
-         //
-         NDNBOOST_STATIC_ASSERT((0 == ::ndnboost::is_same<type, long double>::value));
-#endif
-      };
-
-    } // namespace tools
-  } // namespace math
-} // namespace ndnboost
-
-#endif // NDNBOOST_MATH_PROMOTION_HPP
-
diff --git a/include/ndnboost/math/tools/real_cast.hpp b/include/ndnboost/math/tools/real_cast.hpp
deleted file mode 100644
index 0a14612..0000000
--- a/include/ndnboost/math/tools/real_cast.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//  Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to 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 NDNBOOST_MATH_TOOLS_REAL_CAST_HPP
-#define NDNBOOST_MATH_TOOLS_REAL_CAST_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-namespace ndnboost{ namespace math
-{
-  namespace tools
-  {
-    template <class To, class T>
-    inline To real_cast(T t)
-    {
-       return static_cast<To>(t);
-    }
-  } // namespace tools
-} // namespace math
-} // namespace ndnboost
-
-#endif // NDNBOOST_MATH_TOOLS_REAL_CAST_HPP
-
-
-
diff --git a/include/ndnboost/math/tools/user.hpp b/include/ndnboost/math/tools/user.hpp
deleted file mode 100644
index b822459..0000000
--- a/include/ndnboost/math/tools/user.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright John Maddock 2007.
-// Copyright Paul A. Bristow 2007.
-
-// Use, modification and distribution are subject to 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 NDNBOOST_MATH_TOOLS_USER_HPP
-#define NDNBOOST_MATH_TOOLS_USER_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-// This file can be modified by the user to change the default policies.
-// See "Changing the Policy Defaults" in documentation.
-
-// define this if the platform has no long double functions,
-// or if the long double versions have only double precision:
-//
-// #define NDNBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-//
-// Performance tuning options:
-//
-// #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 NDNBOOST_MATH_MAX_POLY_ORDER 17
-//
-// decide whether to store constants as integers or reals:
-//
-// #define NDNBOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
-
-//
-// Default policies follow:
-//
-// Domain errors:
-//
-// #define NDNBOOST_MATH_DOMAIN_ERROR_POLICY throw_on_error
-//
-// Pole errors:
-//
-// #define NDNBOOST_MATH_POLE_ERROR_POLICY throw_on_error
-//
-// Overflow Errors:
-//
-// #define NDNBOOST_MATH_OVERFLOW_ERROR_POLICY throw_on_error
-//
-// Internal Evaluation Errors:
-//
-// #define NDNBOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
-//
-// Underfow:
-//
-// #define NDNBOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
-//
-// Denorms:
-//
-// #define NDNBOOST_MATH_DENORM_ERROR_POLICY ignore_error
-//
-// Max digits to use for internal calculations:
-//
-// #define NDNBOOST_MATH_DIGITS10_POLICY 0
-//
-// Promote floats to doubles internally?
-//
-// #define NDNBOOST_MATH_PROMOTE_FLOAT_POLICY true
-//
-// Promote doubles to long double internally:
-//
-// #define NDNBOOST_MATH_PROMOTE_DOUBLE_POLICY true
-//
-// What do discrete quantiles return?
-//
-// #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 NDNBOOST_MATH_ASSERT_UNDEFINED_POLICY true
-//
-// Maximum series iterstions permitted:
-//
-// #define NDNBOOST_MATH_MAX_SERIES_ITERATION_POLICY 1000000
-//
-// Maximum root finding steps permitted:
-//
-// define NDNBOOST_MATH_MAX_ROOT_ITERATION_POLICY 200
-
-#endif // NDNBOOST_MATH_TOOLS_USER_HPP
-
-
diff --git a/include/ndnboost/mem_fn.hpp b/include/ndnboost/mem_fn.hpp
deleted file mode 100644
index acd6415..0000000
--- a/include/ndnboost/mem_fn.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef NDNBOOST_MEM_FN_HPP_INCLUDED
-#define NDNBOOST_MEM_FN_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  mem_fn.hpp - a generalization of std::mem_fun[_ref]
-//
-//  Copyright (c) 2009 Peter Dimov
-//
-//  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
-//
-//  See http://www.boost.org/libs/bind/mem_fn.html for documentation.
-//
-
-#include <ndnboost/bind/mem_fn.hpp>
-
-#endif // #ifndef NDNBOOST_MEM_FN_HPP_INCLUDED
diff --git a/include/ndnboost/memory_order.hpp b/include/ndnboost/memory_order.hpp
deleted file mode 100644
index dc8f852..0000000
--- a/include/ndnboost/memory_order.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef NDNBOOST_MEMORY_ORDER_HPP_INCLUDED
-#define NDNBOOST_MEMORY_ORDER_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  ndnboost/memory_order.hpp
-//
-//  Defines enum ndnboost::memory_order per the C++0x working draft
-//
-//  Copyright (c) 2008, 2009 Peter Dimov
-//
-//  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)
-
-
-namespace ndnboost
-{
-
-//
-// Enum values are chosen so that code that needs to insert
-// a trailing fence for acquire semantics can use a single
-// test such as:
-//
-// if( mo & memory_order_acquire ) { ...fence... }
-//
-// For leading fences one can use:
-//
-// if( mo & memory_order_release ) { ...fence... }
-//
-// Architectures such as Alpha that need a fence on consume
-// can use:
-//
-// if( mo & ( memory_order_acquire | memory_order_consume ) ) { ...fence... }
-//
-
-enum memory_order
-{
-    memory_order_relaxed = 0,
-    memory_order_acquire = 1,
-    memory_order_release = 2,
-    memory_order_acq_rel = 3, // acquire | release
-    memory_order_seq_cst = 7, // acq_rel | 4
-    memory_order_consume = 8
-};
-
-} // namespace ndnboost
-
-#endif // #ifndef NDNBOOST_MEMORY_ORDER_HPP_INCLUDED
diff --git a/include/ndnboost/move/algorithm.hpp b/include/ndnboost/move/algorithm.hpp
deleted file mode 100644
index efd1918..0000000
--- a/include/ndnboost/move/algorithm.hpp
+++ /dev/null
@@ -1,275 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2012-2012.
-// 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)
-//
-// See http://www.boost.org/libs/move for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! \file
-
-#ifndef NDNBOOST_MOVE_ALGORITHM_HPP
-#define NDNBOOST_MOVE_ALGORITHM_HPP
-
-#include <ndnboost/move/detail/config_begin.hpp>
-
-#include <ndnboost/move/utility.hpp>
-#include <ndnboost/move/iterator.hpp>
-#include <ndnboost/move/algorithm.hpp>
-#include <ndnboost/detail/no_exceptions_support.hpp>
-
-#include <algorithm> //copy, copy_backward
-#include <memory>    //uninitialized_copy
-
-namespace ndnboost {
-
-//////////////////////////////////////////////////////////////////////////////
-//
-//                               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),
-   //!   performs *(result + n) = ::ndnboost::move (*(first + n)).
-   //!
-   //! <b>Effects</b>: result + (last - first).
-   //!
-   //! <b>Requires</b>: result shall not be in the range [first,last).
-   //!
-   //! <b>Complexity</b>: Exactly last - first move assignments.
-   template <typename I, // I models InputIterator
-            typename O> // O models OutputIterator
-   O move(I f, I l, O result)
-   {
-      while (f != l) {
-         *result = ::ndnboost::move(*f);
-         ++f; ++result;
-      }
-      return result;
-   }
-
-   //////////////////////////////////////////////////////////////////////////////
-   //
-   //                               move_backward
-   //
-   //////////////////////////////////////////////////////////////////////////////
-
-   //! <b>Effects</b>: Moves elements in the range [first,last) into the range
-   //!   [result - (last-first),result) starting from last - 1 and proceeding to
-   //!   first. For each positive integer n <= (last - first),
-   //!   performs *(result - n) = ::ndnboost::move(*(last - n)).
-   //!
-   //! <b>Requires</b>: result shall not be in the range [first,last).
-   //!
-   //! <b>Returns</b>: result - (last - first).
-   //!
-   //! <b>Complexity</b>: Exactly last - first assignments.
-   template <typename I, // I models BidirectionalIterator
-   typename O> // O models BidirectionalIterator
-   O move_backward(I f, I l, O result)
-   {
-      while (f != l) {
-         --l; --result;
-         *result = ::ndnboost::move(*l);
-      }
-      return result;
-   }
-
-#else
-
-   using ::std::move_backward;
-
-#endif   //!defined(NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
-
-//////////////////////////////////////////////////////////////////////////////
-//
-//                               uninitialized_move
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! <b>Effects</b>:
-//!   \code
-//!   for (; first != last; ++result, ++first)
-//!      new (static_cast<void*>(&*result))
-//!         typename iterator_traits<ForwardIterator>::value_type(ndnboost::move(*first));
-//!   \endcode
-//!
-//! <b>Returns</b>: result
-template
-   <typename I, // I models InputIterator
-    typename F> // F models ForwardIterator
-F uninitialized_move(I f, I l, F r
-   /// @cond
-//   ,typename ::ndnboost::move_detail::enable_if<has_move_emulation_enabled<typename std::iterator_traits<I>::value_type> >::type* = 0
-   /// @endcond
-   )
-{
-   typedef typename std::iterator_traits<I>::value_type input_value_type;
-
-   F back = r;
-   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;
-      }
-   }
-   NDNBOOST_CATCH(...){
-	   for (; back != r; ++back){
-         back->~input_value_type();
-      }
-	   NDNBOOST_RETHROW;
-   }
-   NDNBOOST_CATCH_END
-   return r;
-}
-
-/// @cond
-/*
-template
-   <typename I,   // I models InputIterator
-    typename F>   // F models ForwardIterator
-F uninitialized_move(I f, I l, F r,
-   typename ::ndnboost::move_detail::disable_if<has_move_emulation_enabled<typename std::iterator_traits<I>::value_type> >::type* = 0)
-{
-   return std::uninitialized_copy(f, l, r);
-}
-*/
-
-//////////////////////////////////////////////////////////////////////////////
-//
-//                            uninitialized_copy_or_move
-//
-//////////////////////////////////////////////////////////////////////////////
-
-namespace move_detail {
-
-template
-<typename I,   // I models InputIterator
-typename F>   // F models ForwardIterator
-inline F uninitialized_move_move_iterator(I f, I l, F r
-//                             ,typename ::ndnboost::move_detail::enable_if< has_move_emulation_enabled<typename I::value_type> >::type* = 0
-)
-{
-   return ::ndnboost::uninitialized_move(f, l, r);
-}
-/*
-template
-<typename I,   // I models InputIterator
-typename F>   // F models ForwardIterator
-F uninitialized_move_move_iterator(I f, I l, F r,
-                                   typename ::ndnboost::move_detail::disable_if< has_move_emulation_enabled<typename I::value_type> >::type* = 0)
-{
-   return std::uninitialized_copy(f.base(), l.base(), r);
-}
-*/
-}  //namespace move_detail {
-
-template
-<typename I,   // I models InputIterator
-typename F>   // F models ForwardIterator
-inline F uninitialized_copy_or_move(I f, I l, F r,
-                             typename ::ndnboost::move_detail::enable_if< move_detail::is_move_iterator<I> >::type* = 0)
-{
-   return ::ndnboost::move_detail::uninitialized_move_move_iterator(f, l, r);
-}
-
-//////////////////////////////////////////////////////////////////////////////
-//
-//                            copy_or_move
-//
-//////////////////////////////////////////////////////////////////////////////
-
-namespace move_detail {
-
-template
-<typename I,   // I models InputIterator
-typename F>   // F models ForwardIterator
-inline F move_move_iterator(I f, I l, F r
-//                             ,typename ::ndnboost::move_detail::enable_if< has_move_emulation_enabled<typename I::value_type> >::type* = 0
-)
-{
-   return ::ndnboost::move(f, l, r);
-}
-/*
-template
-<typename I,   // I models InputIterator
-typename F>   // F models ForwardIterator
-F move_move_iterator(I f, I l, F r,
-                                   typename ::ndnboost::move_detail::disable_if< has_move_emulation_enabled<typename I::value_type> >::type* = 0)
-{
-   return std::copy(f.base(), l.base(), r);
-}
-*/
-
-}  //namespace move_detail {
-
-template
-<typename I,   // I models InputIterator
-typename F>   // F models ForwardIterator
-inline F copy_or_move(I f, I l, F r,
-                             typename ::ndnboost::move_detail::enable_if< move_detail::is_move_iterator<I> >::type* = 0)
-{
-   return ::ndnboost::move_detail::move_move_iterator(f, l, r);
-}
-
-/// @endcond
-
-//! <b>Effects</b>:
-//!   \code
-//!   for (; first != last; ++result, ++first)
-//!      new (static_cast<void*>(&*result))
-//!         typename iterator_traits<ForwardIterator>::value_type(*first);
-//!   \endcode
-//!
-//! <b>Returns</b>: result
-//!
-//! <b>Note</b>: This function is provided because
-//!   <i>std::uninitialized_copy</i> from some STL implementations
-//!    is not compatible with <i>move_iterator</i>
-template
-<typename I,   // I models InputIterator
-typename F>   // F models ForwardIterator
-inline F uninitialized_copy_or_move(I f, I l, F r
-   /// @cond
-   ,typename ::ndnboost::move_detail::disable_if< move_detail::is_move_iterator<I> >::type* = 0
-   /// @endcond
-   )
-{
-   return std::uninitialized_copy(f, l, r);
-}
-
-//! <b>Effects</b>:
-//!   \code
-//!   for (; first != last; ++result, ++first)
-//!      *result = *first;
-//!   \endcode
-//!
-//! <b>Returns</b>: result
-//!
-//! <b>Note</b>: This function is provided because
-//!   <i>std::uninitialized_copy</i> from some STL implementations
-//!    is not compatible with <i>move_iterator</i>
-template
-<typename I,   // I models InputIterator
-typename F>   // F models ForwardIterator
-inline F copy_or_move(I f, I l, F r
-   /// @cond
-   ,typename ::ndnboost::move_detail::disable_if< move_detail::is_move_iterator<I> >::type* = 0
-   /// @endcond
-   )
-{
-   return std::copy(f, l, r);
-}
-
-}  //namespace ndnboost {
-
-#include <ndnboost/move/detail/config_end.hpp>
-
-#endif //#ifndef NDNBOOST_MOVE_MOVE_HPP
diff --git a/include/ndnboost/move/core.hpp b/include/ndnboost/move/core.hpp
deleted file mode 100644
index 1037178..0000000
--- a/include/ndnboost/move/core.hpp
+++ /dev/null
@@ -1,332 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2012-2012.
-// 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)
-//
-// See http://www.boost.org/libs/move for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! \file core.hpp
-//! This header implements macros to define movable classes and
-//! move-aware functions
-
-#ifndef NDNBOOST_MOVE_CORE_HPP
-#define NDNBOOST_MOVE_CORE_HPP
-
-#include <ndnboost/move/detail/config_begin.hpp>
-
-#ifdef NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
-   #define NDNBOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \
-      private:\
-      TYPE(TYPE &);\
-      TYPE& operator=(TYPE &);\
-   //
-#else
-   #define NDNBOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) \
-      public:\
-      TYPE(TYPE const &) = delete;\
-      TYPE& operator=(TYPE const &) = delete;\
-      private:\
-   //
-#endif   //NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
-
-#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 NDNBOOST_MOVE_ATTRIBUTE_MAY_ALIAS __attribute__((__may_alias__))
-   #else
-      #define NDNBOOST_MOVE_ATTRIBUTE_MAY_ALIAS
-   #endif
-
-   namespace ndnboost {
-
-   //////////////////////////////////////////////////////////////////////////////
-   //
-   //                            struct rv
-   //
-   //////////////////////////////////////////////////////////////////////////////
-   template <class T>
-   class rv
-      : public ::ndnboost::move_detail::if_c
-         < ::ndnboost::move_detail::is_class_or_union<T>::value
-         , T
-         , ::ndnboost::move_detail::empty
-         >::type
-   {
-      rv();
-      ~rv();
-      rv(rv const&);
-      void operator=(rv const&);
-   } NDNBOOST_MOVE_ATTRIBUTE_MAY_ALIAS;
-
-
-   //////////////////////////////////////////////////////////////////////////////
-   //
-   //                            move_detail::is_rv
-   //
-   //////////////////////////////////////////////////////////////////////////////
-
-   namespace move_detail {
-
-   template <class T>
-   struct is_rv
-      : ::ndnboost::move_detail::integral_constant<bool, false>
-   {};
-
-   template <class T>
-   struct is_rv< rv<T> >
-      : ::ndnboost::move_detail::integral_constant<bool, true>
-   {};
-
-   template <class T>
-   struct is_rv< const rv<T> >
-      : ::ndnboost::move_detail::integral_constant<bool, true>
-   {};
-
-   }  //namespace move_detail {
-
-   //////////////////////////////////////////////////////////////////////////////
-   //
-   //                               has_move_emulation_enabled
-   //
-   //////////////////////////////////////////////////////////////////////////////
-   template<class T>
-   struct has_move_emulation_enabled
-      : ::ndnboost::move_detail::is_convertible< T, ::ndnboost::rv<T>& >
-   {};
-
-   template<class T>
-   struct has_move_emulation_enabled<T&>
-      : ::ndnboost::move_detail::integral_constant<bool, false>
-   {};
-
-   template<class T>
-   struct has_move_emulation_enabled< ::ndnboost::rv<T> >
-      : ::ndnboost::move_detail::integral_constant<bool, false>
-   {};
-
-   }  //namespace ndnboost {
-
-   #define NDNBOOST_RV_REF(TYPE)\
-      ::ndnboost::rv< TYPE >& \
-   //
-
-   #define NDNBOOST_RV_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
-      ::ndnboost::rv< TYPE<ARG1, ARG2> >& \
-   //
-
-   #define NDNBOOST_RV_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
-      ::ndnboost::rv< TYPE<ARG1, ARG2, ARG3> >& \
-   //
-
-   #define NDNBOOST_RV_REF_BEG\
-      ::ndnboost::rv<   \
-   //
-
-   #define NDNBOOST_RV_REF_END\
-      >& \
-   //
-
-   #define NDNBOOST_FWD_REF(TYPE)\
-      const TYPE & \
-   //
-
-   #define NDNBOOST_COPY_ASSIGN_REF(TYPE)\
-      const ::ndnboost::rv< TYPE >& \
-   //
-
-   #define NDNBOOST_COPY_ASSIGN_REF_BEG \
-      const ::ndnboost::rv<  \
-   //
-
-   #define NDNBOOST_COPY_ASSIGN_REF_END \
-      >& \
-   //
-
-   #define NDNBOOST_COPY_ASSIGN_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
-      const ::ndnboost::rv< TYPE<ARG1, ARG2> >& \
-   //
-
-   #define NDNBOOST_COPY_ASSIGN_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
-      const ::ndnboost::rv< TYPE<ARG1, ARG2, ARG3> >& \
-   //
-
-   #define NDNBOOST_CATCH_CONST_RLVALUE(TYPE)\
-      const ::ndnboost::rv< TYPE >& \
-   //
-
-   //////////////////////////////////////////////////////////////////////////////
-   //
-   //                         NDNBOOST_MOVABLE_BUT_NOT_COPYABLE
-   //
-   //////////////////////////////////////////////////////////////////////////////
-   #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);  }\
-      operator const ::ndnboost::rv<TYPE>&() const \
-      {  return *static_cast<const ::ndnboost::rv<TYPE>* >(this);  }\
-      private:\
-   //
-
-   //////////////////////////////////////////////////////////////////////////////
-   //
-   //                         NDNBOOST_COPYABLE_AND_MOVABLE
-   //
-   //////////////////////////////////////////////////////////////////////////////
-
-   #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;}\
-      public:\
-      operator ::ndnboost::rv<TYPE>&() \
-      {  return *static_cast< ::ndnboost::rv<TYPE>* >(this);  }\
-      operator const ::ndnboost::rv<TYPE>&() const \
-      {  return *static_cast<const ::ndnboost::rv<TYPE>* >(this);  }\
-      private:\
-   //
-
-   #define NDNBOOST_COPYABLE_AND_MOVABLE_ALT(TYPE)\
-      public:\
-      operator ::ndnboost::rv<TYPE>&() \
-      {  return *static_cast< ::ndnboost::rv<TYPE>* >(this);  }\
-      operator const ::ndnboost::rv<TYPE>&() const \
-      {  return *static_cast<const ::ndnboost::rv<TYPE>* >(this);  }\
-      private:\
-   //
-
-#else    //NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-
-   //Compiler workaround detection
-   #if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
-      #if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 5) && !defined(__clang__)
-         //Pre-standard rvalue 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 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 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 NDNBOOST_MOVABLE_BUT_NOT_COPYABLE(TYPE)\
-      NDNBOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE)\
-      public:\
-      typedef int boost_move_emulation_t;\
-   //
-
-   //! 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 NDNBOOST_COPYABLE_AND_MOVABLE(TYPE)\
-   //
-
-   #if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
-   #define NDNBOOST_COPYABLE_AND_MOVABLE_ALT(TYPE)\
-   //
-   #endif   //#if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
-
-   namespace ndnboost {
-
-   //!This trait yields to a compile-time true boolean if T was marked as
-   //!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
-   {
-      static const bool value = false;
-   };
-
-   }  //namespace ndnboost{
-
-   //!This macro is used to achieve portable syntax in move
-   //!constructors and assignments for classes marked as
-   //!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
-   //!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 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
-   //!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 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 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 NDNBOOST_FWD_REF(TYPE)\
-      TYPE && \
-   //
-
-   #if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
-   /// @cond
-
-   #define NDNBOOST_RV_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
-      TYPE<ARG1, ARG2> && \
-   //
-
-   #define NDNBOOST_RV_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
-      TYPE<ARG1, ARG2, ARG3> && \
-   //
-
-   #define NDNBOOST_COPY_ASSIGN_REF_BEG \
-      const \
-   //
-
-   #define NDNBOOST_COPY_ASSIGN_REF_END \
-      & \
-   //
-
-   #define NDNBOOST_COPY_ASSIGN_REF_2_TEMPL_ARGS(TYPE, ARG1, ARG2)\
-      const TYPE<ARG1, ARG2> & \
-   //
-
-   #define NDNBOOST_COPY_ASSIGN_REF_3_TEMPL_ARGS(TYPE, ARG1, ARG2, ARG3)\
-      const TYPE<ARG1, ARG2, ARG3>& \
-   //
-
-   #define NDNBOOST_CATCH_CONST_RLVALUE(TYPE)\
-      const TYPE & \
-   //
-
-   /// @endcond
-
-   #endif   //#if !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
-
-#endif   //NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-
-#include <ndnboost/move/detail/config_end.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
deleted file mode 100644
index f898dd4..0000000
--- a/include/ndnboost/move/detail/config_begin.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2012-2012. 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)
-//
-// See http://www.boost.org/libs/move for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-#include <ndnboost/config.hpp>
-
-#ifdef NDNBOOST_MSVC
-   #ifndef _CRT_SECURE_NO_DEPRECATE
-      #define  NDNBOOST_MOVE_CRT_SECURE_NO_DEPRECATE
-      #define _CRT_SECURE_NO_DEPRECATE
-   #endif
-   #ifndef _SCL_SECURE_NO_WARNINGS
-      #define  NDNBOOST_MOVE_SCL_SECURE_NO_WARNINGS
-      #define _SCL_SECURE_NO_WARNINGS
-   #endif
-   #pragma warning (push)
-   #pragma warning (disable : 4996) // "function": was declared deprecated
-#endif
diff --git a/include/ndnboost/move/detail/config_end.hpp b/include/ndnboost/move/detail/config_end.hpp
deleted file mode 100644
index bfba733..0000000
--- a/include/ndnboost/move/detail/config_end.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2012-2012. 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)
-//
-// See http://www.boost.org/libs/container for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-#if defined NDNBOOST_MSVC
-   #pragma warning (pop)
-   #ifdef NDNBOOST_MOVE_DETAIL_CRT_SECURE_NO_DEPRECATE
-      #undef NDNBOOST_MOVE_DETAIL_CRT_SECURE_NO_DEPRECATE
-      #undef _CRT_SECURE_NO_DEPRECATE
-   #endif
-   #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
deleted file mode 100644
index 9823c20..0000000
--- a/include/ndnboost/move/detail/meta_utils.hpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2012-2012.
-// 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)
-//
-// See http://www.boost.org/libs/move for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! \file
-
-#ifndef NDNBOOST_MOVE_DETAIL_META_UTILS_HPP
-#define NDNBOOST_MOVE_DETAIL_META_UTILS_HPP
-
-#include <ndnboost/move/detail/config_begin.hpp>
-
-//Small meta-typetraits to support move
-
-namespace ndnboost {
-namespace move_detail {
-
-//if_
-template<bool C, typename T1, typename T2>
-struct if_c
-{
-   typedef T1 type;
-};
-
-template<typename T1, typename T2>
-struct if_c<false,T1,T2>
-{
-   typedef T2 type;
-};
-
-template<typename T1, typename T2, typename T3>
-struct if_
-{
-   typedef typename if_c<0 != T1::value, T2, T3>::type type;
-};
-
-//enable_if_
-template <bool B, class T = void>
-struct enable_if_c
-{
-   typedef T type;
-};
-
-template <class T>
-struct enable_if_c<false, T> {};
-
-template <class Cond, class T = void>
-struct enable_if : public enable_if_c<Cond::value, T> {};
-
-template <class Cond, class T = void>
-struct disable_if : public enable_if_c<!Cond::value, T> {};
-
-//integral_constant
-template<class T, T v>
-struct integral_constant
-{
-   static const T value = v;
-   typedef T value_type;
-   typedef integral_constant<T, v> type;
-};
-
-//identity
-template <class T>
-struct identity
-{
-   typedef T type;
-};
-
-//is_convertible
-template <class T, class U>
-class is_convertible
-{
-   typedef char true_t;
-   class false_t { char dummy[2]; };
-   static true_t dispatch(U);
-   static false_t dispatch(...);
-   static T &trigger();
-   public:
-   enum { value = sizeof(dispatch(trigger())) == sizeof(true_t) };
-};
-
-//and_ not_
-template <typename Condition1, typename Condition2, typename Condition3 = integral_constant<bool, true> >
-struct and_
-   : public integral_constant<bool, Condition1::value && Condition2::value && Condition3::value>
-{};
-
-template <typename Boolean>
-struct not_
-   : public integral_constant<bool, !Boolean::value>
-{};
-
-//is_lvalue_reference
-template<class T>
-struct is_lvalue_reference
-   : public integral_constant<bool, false>
-{};
-
-template<class T>
-struct is_lvalue_reference<T&>
-   : public integral_constant<bool, true>
-{};
-
-template<class T>
-struct is_class_or_union
-{
-   struct twochar { char _[2]; };
-   template <class U>
-   static char is_class_or_union_tester(void(U::*)(void));
-   template <class U>
-   static twochar is_class_or_union_tester(...);
-   static const bool value = sizeof(is_class_or_union_tester<T>(0)) == sizeof(char);
-};
-
-struct empty{};
-
-//addressof
-template<class T> struct addr_impl_ref
-{
-   T & v_;
-   inline addr_impl_ref( T & v ): v_( v ) {}
-   inline operator T& () const { return v_; }
-
-   private:
-   addr_impl_ref & operator=(const addr_impl_ref &);
-};
-
-template<class T> struct addressof_impl
-{
-   static inline T * f( T & v, long )
-   {
-      return reinterpret_cast<T*>(
-         &const_cast<char&>(reinterpret_cast<const volatile char &>(v)));
-   }
-
-   static inline T * f( T * v, int )
-   {  return v;  }
-};
-
-template<class T>
-inline T * addressof( T & v )
-{
-   return ::ndnboost::move_detail::addressof_impl<T>::f
-      ( ::ndnboost::move_detail::addr_impl_ref<T>( v ), 0 );
-}
-
-}  //namespace move_detail {
-}  //namespace ndnboost {
-
-#include <ndnboost/move/detail/config_end.hpp>
-
-#endif //#ifndef NDNBOOST_MOVE_DETAIL_META_UTILS_HPP
diff --git a/include/ndnboost/move/iterator.hpp b/include/ndnboost/move/iterator.hpp
deleted file mode 100644
index 59d1a84..0000000
--- a/include/ndnboost/move/iterator.hpp
+++ /dev/null
@@ -1,298 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2012-2012.
-// 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)
-//
-// See http://www.boost.org/libs/move for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! \file
-
-#ifndef NDNBOOST_MOVE_ITERATOR_HPP
-#define NDNBOOST_MOVE_ITERATOR_HPP
-
-#include <ndnboost/move/detail/config_begin.hpp>
-#include <ndnboost/move/utility.hpp>
-#include <iterator>  //std::iterator
-
-namespace ndnboost {
-
-//////////////////////////////////////////////////////////////////////////////
-//
-//                            move_iterator
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! Class template move_iterator is an iterator adaptor with the same behavior
-//! as the underlying iterator except that its dereference operator implicitly
-//! converts the value returned by the underlying iterator's dereference operator
-//! to an rvalue reference. Some generic algorithms can be called with move
-//! iterators to replace copying with moving.
-template <class It>
-class move_iterator
-{
-   public:
-   typedef It                                                              iterator_type;
-   typedef typename std::iterator_traits<iterator_type>::value_type        value_type;
-   #if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) || defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
-   typedef value_type &&                                                   reference;
-   #else
-   typedef typename ::ndnboost::move_detail::if_
-      < ::ndnboost::has_move_emulation_enabled<value_type>
-      , ::ndnboost::rv<value_type>&
-      , value_type & >::type                                               reference;
-   #endif
-   typedef It                                                              pointer;
-   typedef typename std::iterator_traits<iterator_type>::difference_type   difference_type;
-   typedef typename std::iterator_traits<iterator_type>::iterator_category iterator_category;
-
-   move_iterator()
-   {}
-
-   explicit move_iterator(It i)
-      :  m_it(i)
-   {}
-
-   template <class U>
-   move_iterator(const move_iterator<U>& u)
-      :  m_it(u.base())
-   {}
-
-   iterator_type base() const
-   {  return m_it;   }
-
-   reference operator*() const
-   {
-      #if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) || defined(NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
-      return *m_it;
-      #else
-      return ::ndnboost::move(*m_it);
-      #endif
-   }
-
-   pointer   operator->() const
-   {  return m_it;   }
-
-   move_iterator& operator++()
-   {  ++m_it; return *this;   }
-
-   move_iterator<iterator_type>  operator++(int)
-   {  move_iterator<iterator_type> tmp(*this); ++(*this); return tmp;   }
-
-   move_iterator& operator--()
-   {  --m_it; return *this;   }
-
-   move_iterator<iterator_type>  operator--(int)
-   {  move_iterator<iterator_type> tmp(*this); --(*this); return tmp;   }
-
-   move_iterator<iterator_type>  operator+ (difference_type n) const
-   {  return move_iterator<iterator_type>(m_it + n);  }
-
-   move_iterator& operator+=(difference_type n)
-   {  m_it += n; return *this;   }
-
-   move_iterator<iterator_type>  operator- (difference_type n) const
-   {  return move_iterator<iterator_type>(m_it - n);  }
-
-   move_iterator& operator-=(difference_type n)
-   {  m_it -= n; return *this;   }
-
-   reference operator[](difference_type n) const
-   {
-      #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]);
-      #endif
-   }
-
-   friend bool operator==(const move_iterator& x, const move_iterator& y)
-   {  return x.base() == y.base();  }
-
-   friend bool operator!=(const move_iterator& x, const move_iterator& y)
-   {  return x.base() != y.base();  }
-
-   friend bool operator< (const move_iterator& x, const move_iterator& y)
-   {  return x.base() < y.base();   }
-
-   friend bool operator<=(const move_iterator& x, const move_iterator& y)
-   {  return x.base() <= y.base();  }
-
-   friend bool operator> (const move_iterator& x, const move_iterator& y)
-   {  return x.base() > y.base();  }
-
-   friend bool operator>=(const move_iterator& x, const move_iterator& y)
-   {  return x.base() >= y.base();  }
-
-   friend difference_type operator-(const move_iterator& x, const move_iterator& y)
-   {  return x.base() - y.base();   }
-
-   friend move_iterator operator+(difference_type n, const move_iterator& x)
-   {  return move_iterator(x.base() + n);   }
-
-   private:
-   It m_it;
-};
-
-//is_move_iterator
-namespace move_detail {
-
-template <class I>
-struct is_move_iterator
-   : public ::ndnboost::move_detail::integral_constant<bool, false>
-{
-};
-
-template <class I>
-struct is_move_iterator< ::ndnboost::move_iterator<I> >
-   : public ::ndnboost::move_detail::integral_constant<bool, true>
-{
-};
-
-}  //namespace move_detail {
-
-//////////////////////////////////////////////////////////////////////////////
-//
-//                            move_iterator
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//!
-//! <b>Returns</b>: move_iterator<It>(i).
-template<class It>
-inline move_iterator<It> make_move_iterator(const It &it)
-{  return move_iterator<It>(it); }
-
-//////////////////////////////////////////////////////////////////////////////
-//
-//                         back_move_insert_iterator
-//
-//////////////////////////////////////////////////////////////////////////////
-
-
-//! A move insert iterator that move constructs elements at the
-//! back of a container
-template <typename C> // C models Container
-class back_move_insert_iterator
-   : public std::iterator<std::output_iterator_tag, void, void, void, void>
-{
-   C* container_m;
-
-   public:
-   typedef C                        container_type;
-   typedef typename C::value_type   value_type;
-   typedef typename C::reference    reference;
-
-   explicit back_move_insert_iterator(C& x) : container_m(&x) { }
-
-   back_move_insert_iterator& operator=(reference x)
-   { container_m->push_back(ndnboost::move(x)); return *this; }
-
-   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; }
-   back_move_insert_iterator& operator++()    { return *this; }
-   back_move_insert_iterator& operator++(int) { return *this; }
-};
-
-//!
-//! <b>Returns</b>: back_move_insert_iterator<C>(x).
-template <typename C> // C models Container
-inline back_move_insert_iterator<C> back_move_inserter(C& x)
-{
-   return back_move_insert_iterator<C>(x);
-}
-
-//////////////////////////////////////////////////////////////////////////////
-//
-//                         front_move_insert_iterator
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! A move insert iterator that move constructs elements int the
-//! front of a container
-template <typename C> // C models Container
-class front_move_insert_iterator
-   : public std::iterator<std::output_iterator_tag, void, void, void, void>
-{
-   C* container_m;
-
-public:
-   typedef C                        container_type;
-   typedef typename C::value_type   value_type;
-   typedef typename C::reference    reference;
-
-   explicit front_move_insert_iterator(C& x) : container_m(&x) { }
-
-   front_move_insert_iterator& operator=(reference x)
-   { container_m->push_front(ndnboost::move(x)); return *this; }
-
-   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; }
-   front_move_insert_iterator& operator++()    { return *this; }
-   front_move_insert_iterator& operator++(int) { return *this; }
-};
-
-//!
-//! <b>Returns</b>: front_move_insert_iterator<C>(x).
-template <typename C> // C models Container
-inline front_move_insert_iterator<C> front_move_inserter(C& x)
-{
-   return front_move_insert_iterator<C>(x);
-}
-
-//////////////////////////////////////////////////////////////////////////////
-//
-//                         insert_move_iterator
-//
-//////////////////////////////////////////////////////////////////////////////
-template <typename C> // C models Container
-class move_insert_iterator
-   : public std::iterator<std::output_iterator_tag, void, void, void, void>
-{
-   C* container_m;
-   typename C::iterator pos_;
-
-   public:
-   typedef C                        container_type;
-   typedef typename C::value_type   value_type;
-   typedef typename C::reference    reference;
-
-   explicit move_insert_iterator(C& x, typename C::iterator pos)
-      : container_m(&x), pos_(pos)
-   {}
-
-   move_insert_iterator& operator=(reference x)
-   {
-      pos_ = container_m->insert(pos_, ::ndnboost::move(x));
-      ++pos_;
-      return *this;
-   }
-
-   move_insert_iterator& operator=(NDNBOOST_RV_REF(value_type) x)
-   {  reference rx = x; return this->operator=(rx);  }
-
-   move_insert_iterator& operator*()     { return *this; }
-   move_insert_iterator& operator++()    { return *this; }
-   move_insert_iterator& operator++(int) { return *this; }
-};
-
-//!
-//! <b>Returns</b>: move_insert_iterator<C>(x, it).
-template <typename C> // C models Container
-inline move_insert_iterator<C> move_inserter(C& x, typename C::iterator it)
-{
-   return move_insert_iterator<C>(x, it);
-}
-
-}  //namespace ndnboost {
-
-#include <ndnboost/move/detail/config_end.hpp>
-
-#endif //#ifndef NDNBOOST_MOVE_ITERATOR_HPP
diff --git a/include/ndnboost/move/move.hpp b/include/ndnboost/move/move.hpp
deleted file mode 100644
index c27b6d9..0000000
--- a/include/ndnboost/move/move.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright David Abrahams, Vicente Botet 2009.
-// (C) Copyright Ion Gaztanaga 2009-2012.
-// 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)
-//
-// See http://www.boost.org/libs/move for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! \file move.hpp
-//! A general library header that includes
-//! the rest of top-level headers.
-
-#ifndef NDNBOOST_MOVE_MOVE_HPP
-#define NDNBOOST_MOVE_MOVE_HPP
-
-#include <ndnboost/move/detail/config_begin.hpp>
-#include <ndnboost/move/utility.hpp>
-#include <ndnboost/move/iterator.hpp>
-#include <ndnboost/move/traits.hpp>
-#include <ndnboost/move/algorithm.hpp>
-#include <ndnboost/move/detail/config_end.hpp>
-
-#endif //#ifndef NDNBOOST_MOVE_MOVE_HPP
diff --git a/include/ndnboost/move/traits.hpp b/include/ndnboost/move/traits.hpp
deleted file mode 100644
index 6b25fd5..0000000
--- a/include/ndnboost/move/traits.hpp
+++ /dev/null
@@ -1,142 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2009-2012.
-// 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)
-//
-// See http://www.boost.org/libs/move for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! \file
-
-#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 NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-#include <ndnboost/move/core.hpp>
-#endif
-
-namespace ndnboost {
-
-//! If this trait yields to true
-//! (<i>has_trivial_destructor_after_move &lt;T&gt;::value == true</i>)
-//! means that if T is used as argument of a move construction/assignment,
-//! there is no need to call T's destructor.
-//! This optimization tipically is used to improve containers' performance.
-//!
-//! By default this trait is true if the type has trivial destructor,
-//! every class should specialize this trait if it wants to improve performance
-//! when inserted in containers.
-template <class T>
-struct has_trivial_destructor_after_move
-   : ::ndnboost::has_trivial_destructor<T>
-{};
-
-//! By default this traits returns false. Classes with non-throwing move constructor
-//! and assignment can specialize this trait to obtain some performance improvements.
-template <class T>
-struct has_nothrow_move
-   : public ::ndnboost::move_detail::integral_constant<bool, false>
-{};
-
-namespace move_detail {
-
-// Code from Jeffrey Lee Hellrung, many thanks
-
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-   template< class T> struct forward_type { typedef T type; };
-#else // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-   template< class T>
-   struct forward_type
-   { typedef const T &type; };
-
-   template< class T>
-   struct forward_type< ndnboost::rv<T> >
-   { typedef T type; };
-#endif // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-
-template< class T > struct is_rvalue_reference : ::ndnboost::move_detail::integral_constant<bool, false> { };
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-   template< class T > struct is_rvalue_reference< T&& > : ::ndnboost::move_detail::integral_constant<bool, true> { };
-#else // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-   template< class T > struct is_rvalue_reference< ndnboost::rv<T>& >
-      :  ::ndnboost::move_detail::integral_constant<bool, true>
-   {};
-
-   template< class T > struct is_rvalue_reference< const ndnboost::rv<T>& >
-      : ::ndnboost::move_detail::integral_constant<bool, true>
-   {};
-#endif // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-   template< class T > struct add_rvalue_reference { typedef T&& type; };
-#else // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-   namespace detail_add_rvalue_reference
-   {
-      template< class T
-              , bool emulation = ::ndnboost::has_move_emulation_enabled<T>::value
-              , bool rv        = ::ndnboost::move_detail::is_rv<T>::value  >
-      struct add_rvalue_reference_impl { typedef T type; };
-
-      template< class T, bool emulation>
-      struct add_rvalue_reference_impl< T, emulation, true > { typedef T & type; };
-
-      template< class T, bool rv >
-      struct add_rvalue_reference_impl< T, true, rv > { typedef ::ndnboost::rv<T>& type; };
-   } // namespace detail_add_rvalue_reference
-
-   template< class T >
-   struct add_rvalue_reference
-      : detail_add_rvalue_reference::add_rvalue_reference_impl<T>
-   { };
-
-   template< class T >
-   struct add_rvalue_reference<T &>
-   {  typedef T & type; };
-
-#endif // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-
-template< class T > struct remove_rvalue_reference { typedef T type; };
-
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-   template< class T > struct remove_rvalue_reference< T&& >                  { typedef T type; };
-#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; };
-   template< class T > struct remove_rvalue_reference< const volatile rv<T> > { typedef T type; };
-   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; };
-   template< class T > struct remove_rvalue_reference< const volatile rv<T>& >{ typedef T type; };
-#endif // #ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-
-template <typename T>
-typename ndnboost::move_detail::add_rvalue_reference<T>::type declval();
-
-}  //move_detail {
-
-// Ideas from Boost.Move review, Jeffrey Lee Hellrung:
-//
-//- TypeTraits metafunctions is_lvalue_reference, add_lvalue_reference, and remove_lvalue_reference ?
-//  Perhaps add_reference and remove_reference can be modified so that they behave wrt emulated rvalue
-//  references the same as wrt real rvalue references, i.e., add_reference< rv<T>& > -> T& rather than
-//  rv<T>& (since T&& & -> T&).
-//
-//- Add'l TypeTraits has_[trivial_]move_{constructor,assign}...?
-//
-//- An as_lvalue(T& x) function, which amounts to an identity operation in C++0x, but strips emulated
-//  rvalue references in C++03.  This may be necessary to prevent "accidental moves".
-
-
-}  //namespace ndnboost {
-
-#include <ndnboost/move/detail/config_end.hpp>
-
-#endif //#ifndef NDNBOOST_MOVE_MOVE_TRAITS_HPP
diff --git a/include/ndnboost/move/utility.hpp b/include/ndnboost/move/utility.hpp
deleted file mode 100644
index cbc919d..0000000
--- a/include/ndnboost/move/utility.hpp
+++ /dev/null
@@ -1,194 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2012-2012.
-// 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)
-//
-// See http://www.boost.org/libs/move for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-//! \file
-
-#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(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
-
-   namespace ndnboost {
-
-   template<class T>
-   struct enable_move_utility_emulation
-   {
-      static const bool value = true;
-   };
-    
-   //////////////////////////////////////////////////////////////////////////////
-   //
-   //                            move()
-   //
-   //////////////////////////////////////////////////////////////////////////////
-
-   template <class T>
-   inline typename ::ndnboost::move_detail::enable_if_c
-      < enable_move_utility_emulation<T>::value && !has_move_emulation_enabled<T>::value, T&>::type
-         move(T& x)
-   {
-      return x;
-   }
-
-   template <class T>
-   inline typename ::ndnboost::move_detail::enable_if_c
-      < enable_move_utility_emulation<T>::value && has_move_emulation_enabled<T>::value, rv<T>&>::type
-         move(T& x)
-   {
-      return *static_cast<rv<T>* >(::ndnboost::move_detail::addressof(x));
-   }
-
-   template <class T>
-   inline typename ::ndnboost::move_detail::enable_if_c
-      < enable_move_utility_emulation<T>::value && has_move_emulation_enabled<T>::value, rv<T>&>::type
-         move(rv<T>& x)
-   {
-      return x;
-   }
-
-   //////////////////////////////////////////////////////////////////////////////
-   //
-   //                            forward()
-   //
-   //////////////////////////////////////////////////////////////////////////////
-
-   template <class T>
-   inline typename ::ndnboost::move_detail::enable_if_c
-      < enable_move_utility_emulation<T>::value && ::ndnboost::move_detail::is_rv<T>::value, T &>::type
-         forward(const typename ::ndnboost::move_detail::identity<T>::type &x)
-   {
-      return const_cast<T&>(x);
-   }
-
-   template <class T>
-   inline typename ::ndnboost::move_detail::enable_if_c
-      < enable_move_utility_emulation<T>::value && !::ndnboost::move_detail::is_rv<T>::value, const T &>::type
-      forward(const typename ::ndnboost::move_detail::identity<T>::type &x)
-   {
-      return x;
-   }
-
-   }  //namespace ndnboost
-
-#else    //#if defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_MOVE_DOXYGEN_INVOKED)
-
-   #if defined(NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
-      #include <utility>
-
-      namespace ndnboost{
-
-      using ::std::move;
-      using ::std::forward;
-
-      }  //namespace ndnboost
-
-   #else //!NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE
-
-      #include <ndnboost/type_traits/remove_reference.hpp>
-
-      namespace ndnboost {
-
-      //! This trait's internal boolean `value` is false in compilers with rvalue references
-      //! and true in compilers without rvalue references.
-      //!
-      //! A user can specialize this trait for a type T to false to SFINAE out `move` and `forward`
-      //! so that the user can define a different move emulation for that type in namespace ndnboost
-      //! (e.g. another Boost library for its types) and avoid any overload ambiguity.
-      template<class T>
-      struct enable_move_utility_emulation
-      {
-         static const bool value = false;
-      };
-
-      //////////////////////////////////////////////////////////////////////////////
-      //
-      //                                  move
-      //
-      //////////////////////////////////////////////////////////////////////////////
-
-      #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(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 //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   //NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES
-
-      //////////////////////////////////////////////////////////////////////////////
-      //
-      //                                  forward
-      //
-      //////////////////////////////////////////////////////////////////////////////
-
-
-      #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.
-         //!
-         //! For compilers with rvalue references this function provides perfect forwarding.
-         //!
-         //! Otherwise:
-         //! * If input_reference binds to const ::ndnboost::rv<T> & then it output_reference is
-         //!   ::ndnboost::rv<T> &
-         //!
-         //! * Else, output_reference is equal to input_reference.
-         template <class T> output_reference forward(input_reference);
-      #elif defined(NDNBOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
-
-         //Old move approach, lvalues could bind to rvalue references
-
-         template <class T>
-         inline T&& forward (typename ::ndnboost::move_detail::identity<T>::type&& t)
-         {  return t;   }
-
-      #else //Old move
-
-         //Implementation #5 from N2951, thanks to Howard Hinnant
-
-         template <class T, class U>
-         inline T&& forward(U&& t
-             , typename ::ndnboost::move_detail::enable_if_c<
-               move_detail::is_lvalue_reference<T>::value ? move_detail::is_lvalue_reference<U>::value : true>::type * = 0/*
-             , typename ::ndnboost::move_detail::enable_if_c<
-               move_detail::is_convertible
-                  <typename remove_reference<U>::type*, typename remove_reference<T>::type*>::value>::type * = 0*/)
-         { return static_cast<T&&>(t);   }
-
-      #endif   //NDNBOOST_MOVE_DOXYGEN_INVOKED
-
-      }  //namespace ndnboost {
-
-   #endif   //#if defined(NDNBOOST_MOVE_USE_STANDARD_LIBRARY_MOVE)
-
-#endif   //NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-
-#include <ndnboost/move/detail/config_end.hpp>
-
-#endif //#ifndef NDNBOOST_MOVE_MOVE_UTILITY_HPP
diff --git a/include/ndnboost/mpl/O1_size.hpp b/include/ndnboost/mpl/O1_size.hpp
deleted file mode 100644
index d6a4633..0000000
--- a/include/ndnboost/mpl/O1_size.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef NDNBOOST_MPL_O1_SIZE_HPP_INCLUDED
-#define NDNBOOST_MPL_O1_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/O1_size_fwd.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/O1_size_impl.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// returns sequence size if it's an O(1) operation; otherwise returns -1
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct O1_size
-    : O1_size_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, O1_size, (Sequence))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(1, O1_size)
-
-}}
-
-#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
deleted file mode 100644
index 4a97863..0000000
--- a/include/ndnboost/mpl/O1_size_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct O1_size_impl;
-template< typename Sequence > struct O1_size;
-
-}}
-
-#endif // NDNBOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/advance.hpp b/include/ndnboost/mpl/advance.hpp
deleted file mode 100644
index 6d00835..0000000
--- a/include/ndnboost/mpl/advance.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-#ifndef NDNBOOST_MPL_ADVANCE_HPP_INCLUDED
-#define NDNBOOST_MPL_ADVANCE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: advance.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/advance_fwd.hpp>
-#include <ndnboost/mpl/less.hpp>
-#include <ndnboost/mpl/negate.hpp>
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/tag.hpp>
-#include <ndnboost/mpl/apply_wrap.hpp>
-#include <ndnboost/mpl/aux_/advance_forward.hpp>
-#include <ndnboost/mpl/aux_/advance_backward.hpp>
-#include <ndnboost/mpl/aux_/value_wknd.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// default implementation for forward/bidirectional iterators
-template< typename Tag >
-struct advance_impl
-{
-    template< typename Iterator, typename N > struct apply
-    {
-        typedef typename less< N,long_<0> >::type backward_;
-        typedef typename if_< backward_, negate<N>, N >::type offset_;
-
-        typedef typename if_<
-              backward_
-            , 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;
-    };
-};
-
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Iterator)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N)
-    >
-struct advance
-    : advance_impl< typename tag<Iterator>::type >
-        ::template apply<Iterator,N>
-{
-};
-
-template<
-      typename Iterator
-    , NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
-    >
-struct advance_c
-    : advance_impl< typename tag<Iterator>::type >
-        ::template apply<Iterator,long_<N> >
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, advance)
-
-}}
-
-#endif // NDNBOOST_MPL_ADVANCE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/advance_fwd.hpp b/include/ndnboost/mpl/advance_fwd.hpp
deleted file mode 100644
index 1d25862..0000000
--- a/include/ndnboost/mpl/advance_fwd.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef NDNBOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: advance_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/common_name_wknd.hpp>
-
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_COMMON_NAME_WKND(advance)
-
-template< typename Tag > struct advance_impl;
-template< typename Iterator, typename N > struct advance;
-
-}}
-
-#endif // NDNBOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/always.hpp b/include/ndnboost/mpl/always.hpp
deleted file mode 100644
index eeba646..0000000
--- a/include/ndnboost/mpl/always.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef NDNBOOST_MPL_ALWAYS_HPP_INCLUDED
-#define NDNBOOST_MPL_ALWAYS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: always.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#include <ndnboost/mpl/aux_/na.hpp>
-#include <ndnboost/mpl/aux_/arity_spec.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename Value > struct always
-{
-    template<
-          typename T
-        NDNBOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(1, typename T, na)
-        >
-    struct apply
-    {
-        typedef Value type;
-    };
-};
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, always)
-
-}}
-
-#endif // NDNBOOST_MPL_ALWAYS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/and.hpp b/include/ndnboost/mpl/and.hpp
deleted file mode 100644
index 3bc9d48..0000000
--- a/include/ndnboost/mpl/and.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AND_HPP_INCLUDED
-#define NDNBOOST_MPL_AND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: and.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#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>
-#   include <ndnboost/mpl/aux_/na_spec.hpp>
-#   include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-// agurt, 19/may/04: workaround a conflict with <iso646.h> header's 
-// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(and)'
-// has to be checked in a separate condition, otherwise GCC complains 
-// about 'and' being an alternative token
-#if defined(_MSC_VER) 
-#ifndef __GCCXML__
-#if defined(and) 
-#   pragma push_macro("and")
-#   undef and
-#   define and(x)
-#endif
-#endif
-#endif
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER and.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#if defined(_MSC_VER)
-#ifndef __GCCXML__
-#if defined(and) 
-#   pragma pop_macro("and")
-#endif
-#endif
-#endif
-
-#else
-
-#   define AUX778076_OP_NAME and_
-#   define AUX778076_OP_VALUE1 false
-#   define AUX778076_OP_VALUE2 true
-#   include <ndnboost/mpl/aux_/logical_op.hpp>
-
-#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
deleted file mode 100644
index 0fd6612..0000000
--- a/include/ndnboost/mpl/apply.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_APPLY_HPP_INCLUDED
-#define NDNBOOST_MPL_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/apply_fwd.hpp>
-#   include <ndnboost/mpl/apply_wrap.hpp>
-#   include <ndnboost/mpl/placeholders.hpp>
-#   include <ndnboost/mpl/lambda.hpp>
-#   include <ndnboost/mpl/aux_/na.hpp>
-#   include <ndnboost/mpl/aux_/lambda_support.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER apply.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/partial_spec_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#   include <ndnboost/mpl/aux_/config/lambda.hpp>
-#   include <ndnboost/mpl/aux_/config/dtp.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#   include <ndnboost/mpl/aux_/config/eti.hpp>
-#   include <ndnboost/mpl/aux_/config/msvc.hpp>
-#   include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-#   define AUX778076_APPLY_PARAMS(param) \
-    NDNBOOST_MPL_PP_PARAMS( \
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        ) \
-    /**/
-
-#   define AUX778076_APPLY_DEF_PARAMS(param, value) \
-    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    /**/
-
-#   define AUX778076_APPLY_N_PARAMS(n, param) \
-    NDNBOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \
-    NDNBOOST_PP_COMMA_IF(n) \
-    NDNBOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   define AUX778076_APPLY_N_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) \
-    NDNBOOST_MPL_PP_ENUM(NDNBOOST_PP_INC(n), param) \
-    /**/
-
-
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/apply.hpp>))
-#include NDNBOOST_PP_ITERATE()
-
-#   if !defined(NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-// real C++ version is already taken care of
-#   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 NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#include <ndnboost/mpl/aux_/count_args.hpp>
-}
-
-
-template<
-      typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na)
-    >
-struct apply
-    : aux::apply_chooser< 
-          aux::apply_count_args< AUX778076_APPLY_PARAMS(T) >::value
-        >::template result_< F, AUX778076_APPLY_PARAMS(T) >::type
-{
-};
-
-#   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
-#   undef AUX778076_APPLY_N_COMMA_PARAMS
-#   undef AUX778076_APPLY_N_PARAMS
-#   undef AUX778076_APPLY_DEF_PARAMS
-#   undef AUX778076_APPLY_PARAMS
-
-}}
-
-#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
-// 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<
-      typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
-    >
-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 NDNBOOST_PP_CAT(apply_wrap,i_)< 
-          typename lambda<F>::type
-        AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
-        >::type type;
-#endif
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          NDNBOOST_PP_INC(i_)
-        , NDNBOOST_PP_CAT(apply,i_)
-        , (F AUX778076_APPLY_N_COMMA_PARAMS(i_,T))
-        )
-};
-
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
-/// workaround for ETI bug
-template<>
-struct NDNBOOST_PP_CAT(apply,i_)<AUX778076_APPLY_N_SPEC_PARAMS(i_, int)>
-{
-    typedef int type;
-};
-#endif
-
-#   if !defined(NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#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
-    : NDNBOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
-{
-};
-#else
-template<
-      typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
-    >
-struct apply< F AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(i_, T, na) >
-    : NDNBOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
-{
-};
-#endif
-
-#   else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if !defined(NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-namespace aux {
-
-template<>
-struct apply_chooser<i_>
-{
-    template<
-          typename F, AUX778076_APPLY_PARAMS(typename T)
-        >
-    struct result_
-    {
-        typedef NDNBOOST_PP_CAT(apply,i_)<
-              F AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
-            > type;
-    };
-};
-
-} // namespace aux
-#endif
-
-#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   endif // NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE
-
-#   undef i_
-
-#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
deleted file mode 100644
index 0477e06..0000000
--- a/include/ndnboost/mpl/apply_fwd.hpp
+++ /dev/null
@@ -1,107 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_APPLY_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_APPLY_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: apply_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/aux_/na.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC
-// (for known reasons)
-#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) \
-    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    /**/
-
-#   define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \
-    NDNBOOST_PP_COMMA_IF(n) \
-    NDNBOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   if !defined(NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// forward declaration
-template<
-      typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na)
-    >
-struct apply;
-#else
-namespace aux {
-template< NDNBOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
-}
-#endif
-
-#   endif // NDNBOOST_MPL_CFG_NO_APPLY_TEMPLATE
-
-#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
-#   undef AUX778076_APPLY_DEF_PARAMS
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // NDNBOOST_MPL_APPLY_FWD_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-template<
-      typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(apply,i_);
-
-#undef i_
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/apply_wrap.hpp b/include/ndnboost/mpl/apply_wrap.hpp
deleted file mode 100644
index 5e7c042..0000000
--- a/include/ndnboost/mpl/apply_wrap.hpp
+++ /dev/null
@@ -1,234 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_APPLY_WRAP_HPP_INCLUDED
-#define NDNBOOST_MPL_APPLY_WRAP_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: apply_wrap.hpp 49272 2008-10-11 06:50:46Z agurtovoy $
-// $Date: 2008-10-10 23:50:46 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49272 $
-
-#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>
-#   include <ndnboost/mpl/aux_/msvc_never_true.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER apply_wrap.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/add.hpp>
-#   include <ndnboost/mpl/aux_/config/bcc.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/mpl/aux_/config/dtp.hpp>
-#   include <ndnboost/mpl/aux_/config/eti.hpp>
-#   include <ndnboost/mpl/aux_/config/msvc.hpp>
-#   include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/logical/and.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-
-namespace ndnboost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-#   define AUX778076_APPLY_WRAP_PARAMS(n, param) \
-    NDNBOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   define AUX778076_APPLY_WRAP_SPEC_PARAMS(n, param) \
-    NDNBOOST_MPL_PP_ENUM(NDNBOOST_PP_INC(n), param) \
-    /**/
-
-
-#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
-#   undef AUX778076_APPLY_WRAP_PARAMS
-
-}}
-
-#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
-// 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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-// MSVC version
-
-#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 NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(apply_wrap,i_)
-{
-    // Metafunction forwarding confuses vc6
-    typedef typename NDNBOOST_PP_CAT(msvc_apply,i_)<F>::template result_<
-          AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >::type type;
-};
-
-#   elif defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-// MWCW/Borland version
-
-template<
-      int N, typename F NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(apply_wrap_impl,i_);
-
-#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 NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(apply_wrap,i_)
-    : NDNBOOST_PP_CAT(apply_wrap_impl,i_)<
-          ::ndnboost::mpl::aux::arity<F,i_>::value
-        , F
-        NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >::type
-{
-};
-
-#   else
-// ISO98 C++, with minor concession to vc7
-
-template<
-      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 NDNBOOST_PP_CAT(apply_wrap,i_)
-// metafunction forwarding confuses MSVC 7.0
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-    : F::template apply< AUX778076_APPLY_WRAP_PARAMS(i_, T) >
-{
-#else
-{    
-    typedef typename F::template apply<
-         AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >::type type;
-#endif
-};
-
-#if i_ == 0 && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template< typename F >
-struct NDNBOOST_PP_CAT(apply_wrap,i_)<F,true_>
-    : F::apply
-{
-};
-#endif
-
-#   endif // workarounds
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
-/// workaround for ETI bug
-template<>
-struct NDNBOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
-{
-    typedef int type;
-};
-#endif
-
-#   undef i_
-
-///// iteration, depth == 2
-
-#elif NDNBOOST_PP_ITERATION_DEPTH() == 2
-
-#   define j_ NDNBOOST_PP_FRAME_ITERATION(2)
-
-#if i_ == 0 && j_ == 0 \
-    && 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 {
-    typedef typename F::template apply< na > type;
-};
-
-template< typename F >
-struct apply_wrap_impl0_bcb< F, true > {
-    typedef typename F::apply type;
-};
-
-template<
-      typename F NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(apply_wrap_impl,i_)<
-          NDNBOOST_MPL_PP_ADD(i_, j_)
-        , F
-        NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >
-{
-    typedef apply_wrap_impl0_bcb< F, aux::has_apply< F >::value >::type type;
-};
-#else
-
-template<
-      typename F NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(apply_wrap_impl,i_)<
-          NDNBOOST_MPL_PP_ADD(i_, j_)
-        , F
-        NDNBOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >
-{
-    typedef typename F::template apply<
-          AUX778076_APPLY_WRAP_PARAMS(i_, T)
-#if i_ == 0 && j_ == 0
-/// since the defaults are "lost", we have to pass *something* even for nullary
-/// metafunction classes
-        na
-#else
-        NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_AND(i_, j_)) NDNBOOST_MPL_PP_ENUM(j_, na)
-#endif
-        > type;
-};
-
-#endif
-
-#   undef j_
-
-#endif // NDNBOOST_PP_ITERATION_DEPTH()
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/arg.hpp b/include/ndnboost/mpl/arg.hpp
deleted file mode 100644
index 440164a..0000000
--- a/include/ndnboost/mpl/arg.hpp
+++ /dev/null
@@ -1,131 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_ARG_HPP_INCLUDED
-#define NDNBOOST_MPL_ARG_HPP_INCLUDED
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arg.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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>
-#   include <ndnboost/mpl/aux_/arity_spec.hpp>
-#   include <ndnboost/mpl/aux_/arg_typedef.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER arg.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/config/lambda.hpp>
-#   include <ndnboost/mpl/aux_/config/dtp.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-// local macro, #undef-ined at the end of the header
-#if !defined(NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
-    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    /**/
-#else
-#   define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
-    NDNBOOST_MPL_PP_PARAMS( \
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        ) \
-    /**/
-#endif
-
-#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
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int,arg)
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // NDNBOOST_MPL_ARG_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-#if i_ > 0
-
-template<> struct arg<i_>
-{
-    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 NDNBOOST_PP_CAT(U,i_) type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-#else
-
-template<> struct arg<-1>
-{
-    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)
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-#endif // i_ > 0
-
-#undef i_
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/arg_fwd.hpp b/include/ndnboost/mpl/arg_fwd.hpp
deleted file mode 100644
index adc8ee3..0000000
--- a/include/ndnboost/mpl/arg_fwd.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef NDNBOOST_MPL_ARG_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_ARG_FWD_HPP_INCLUDED
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arg_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > struct arg;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(arg)
-
-#endif // NDNBOOST_MPL_ARG_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/assert.hpp b/include/ndnboost/mpl/assert.hpp
deleted file mode 100644
index b3d5deb..0000000
--- a/include/ndnboost/mpl/assert.hpp
+++ /dev/null
@@ -1,438 +0,0 @@
-
-#ifndef NDNBOOST_MPL_ASSERT_HPP_INCLUDED
-#define NDNBOOST_MPL_ASSERT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: assert.hpp 84442 2013-05-23 14:38:22Z steven_watanabe $
-// $Date: 2013-05-23 07:38:22 -0700 (Thu, 23 May 2013) $
-// $Revision: 84442 $
-
-#include <ndnboost/mpl/not.hpp>
-#include <ndnboost/mpl/aux_/value_wknd.hpp>
-#include <ndnboost/mpl/aux_/nested_type_wknd.hpp>
-#include <ndnboost/mpl/aux_/yes_no.hpp>
-#include <ndnboost/mpl/aux_/na.hpp>
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-
-#include <ndnboost/mpl/aux_/config/nttp.hpp>
-#include <ndnboost/mpl/aux_/config/dtp.hpp>
-#include <ndnboost/mpl/aux_/config/gcc.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/pp_counter.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#include <ndnboost/preprocessor/cat.hpp>
-
-#include <ndnboost/config.hpp> // make sure 'size_t' is placed into 'std'
-#include <cstddef>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1700)
-#include <ndnboost/mpl/if.hpp>
-#endif
-
-#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 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 NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610)) \
-    || (NDNBOOST_MPL_CFG_GCC != 0)
-#   define NDNBOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr }
-#else
-#   define NDNBOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) NDNBOOST_STATIC_CONSTANT(T, expr)
-#endif
-
-
-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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
-#   define AUX778076_ASSERT_ARG(x) x&
-#else
-#   define AUX778076_ASSERT_ARG(x) x
-#endif
-
-template< bool C >  struct assert        { typedef void* type; };
-template<>          struct assert<false> { typedef AUX778076_ASSERT_ARG(assert) type; };
-
-template< bool C >
-int assertion_failed( typename assert<C>::type );
-
-template< bool C >
-struct assertion
-{
-    static int failed( assert<false> );
-};
-
-template<>
-struct assertion<true>
-{
-    static int failed( void* );
-};
-
-struct assert_
-{
-#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;
-    enum relations { equal = 1, not_equal, greater, greater_equal, less, less_equal };
-};
-
-
-#if !defined(NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
-
-bool operator==( failed, failed );
-bool operator!=( failed, failed );
-bool operator>( failed, failed );
-bool operator>=( failed, failed );
-bool operator<( failed, failed );
-bool operator<=( failed, failed );
-
-#if defined(__EDG_VERSION__)
-template< bool (*)(failed, failed), long x, long y > struct assert_relation {};
-#   define NDNBOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<r,x,y>
-#else
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, x), NDNBOOST_MPL_AUX_NTTP_DECL(long, y), bool (*)(failed, failed) > 
-struct assert_relation {};
-#   define NDNBOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<x,y,r>
-#endif
-
-#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_ );
-ndnboost::mpl::aux::weighted_tag<3>::type operator>(  assert_, assert_ );
-ndnboost::mpl::aux::weighted_tag<4>::type operator>=( assert_, assert_ );
-ndnboost::mpl::aux::weighted_tag<5>::type operator<( assert_, assert_ );
-ndnboost::mpl::aux::weighted_tag<6>::type operator<=( assert_, assert_ );
-
-template< assert_::relations r, long x, long y > struct assert_relation {};
-
-#endif 
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1700)
-
-template<class Pred>
-struct extract_assert_pred;
-
-template<class Pred>
-struct extract_assert_pred<void(Pred)> { typedef Pred type; };
-
-template<class Pred>
-struct eval_assert {
-    typedef typename extract_assert_pred<Pred>::type P;
-    typedef typename P::type p_type;
-    typedef typename ::ndnboost::mpl::if_c<p_type::value,
-        AUX778076_ASSERT_ARG(assert<false>),
-        failed ************ P::************
-    >::type type;
-};
-
-template<class Pred>
-struct eval_assert_not {
-    typedef typename extract_assert_pred<Pred>::type P;
-    typedef typename P::type p_type;
-    typedef typename ::ndnboost::mpl::if_c<!p_type::value,
-        AUX778076_ASSERT_ARG(assert<false>),
-        failed ************ ::ndnboost::mpl::not_<P>::************
-    >::type type;
-};
-
-template< typename T >
-T make_assert_arg();
-
-#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; };
-
-template< typename P > struct assert_arg_pred
-{
-    typedef typename P::type p_type;
-    typedef typename assert_arg_pred_impl< p_type::value >::type type;
-};
-
-template< typename P > struct assert_arg_pred_not
-{
-    typedef typename P::type p_type;
-    NDNBOOST_MPL_AUX_ASSERT_CONSTANT( bool, p = !p_type::value );
-    typedef typename assert_arg_pred_impl<p>::type type;
-};
-
-template< typename Pred >
-failed ************ (Pred::************ 
-      assert_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type )
-    );
-
-template< typename Pred >
-failed ************ (ndnboost::mpl::not_<Pred>::************ 
-      assert_not_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type )
-    );
-
-template< typename Pred >
-AUX778076_ASSERT_ARG(assert<false>)
-assert_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type );
-
-template< typename Pred >
-AUX778076_ASSERT_ARG(assert<false>)
-assert_not_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type );
-
-
-#else // NDNBOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
-        
-template< bool c, typename Pred > struct assert_arg_type_impl
-{
-    typedef failed      ************ Pred::* mwcw83_wknd;
-    typedef mwcw83_wknd ************* type;
-};
-
-template< typename Pred > struct assert_arg_type_impl<true,Pred>
-{
-    typedef AUX778076_ASSERT_ARG(assert<false>) type;
-};
-
-template< typename Pred > struct assert_arg_type
-    : assert_arg_type_impl< NDNBOOST_MPL_AUX_VALUE_WKND(NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(Pred))::value, Pred >
-{
-};
-
-template< typename Pred >
-typename assert_arg_type<Pred>::type 
-assert_arg(void (*)(Pred), int);
-
-template< typename Pred >
-typename assert_arg_type< ndnboost::mpl::not_<Pred> >::type 
-assert_not_arg(void (*)(Pred), int);
-
-#   if !defined(NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
-template< long x, long y, bool (*r)(failed, failed) >
-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 // NDNBOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
-
-#undef AUX778076_ASSERT_ARG
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1700)
-
-// NDNBOOST_MPL_ASSERT((pred<x,...>))
-
-#define NDNBOOST_MPL_ASSERT(pred) \
-NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , 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 \
-                >() \
-            ) \
-        ) \
-    ) \
-/**/
-
-// NDNBOOST_MPL_ASSERT_NOT((pred<x,...>))
-
-#define NDNBOOST_MPL_ASSERT_NOT(pred) \
-NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , 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 \
-                >() \
-            ) \
-        ) \
-    ) \
-/**/
-
-#else
-
-// NDNBOOST_MPL_ASSERT((pred<x,...>))
-
-#define NDNBOOST_MPL_ASSERT(pred) \
-NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , 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 ) \
-            ) \
-        ) \
-    ) \
-/**/
-
-// NDNBOOST_MPL_ASSERT_NOT((pred<x,...>))
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-#   define NDNBOOST_MPL_ASSERT_NOT(pred) \
-enum { \
-      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 ) \
-            ) \
-        ) \
-}\
-/**/
-#else
-#   define NDNBOOST_MPL_ASSERT_NOT(pred) \
-NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , 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 ) \
-            ) \
-        ) \
-   ) \
-/**/
-#endif
-
-#endif
-
-// NDNBOOST_MPL_ASSERT_RELATION(x, ==|!=|<=|<|>=|>, y)
-
-#if defined(NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
-
-#   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 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 \
-    , 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 \
-                    ) ) \
-                , x \
-                , y \
-                >::************)) 0 ) \
-        ) \
-    ) \
-/**/
-#   else
-#   define NDNBOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y)    \
-NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , NDNBOOST_PP_CAT(mpl_assert_rel,counter) = sizeof( \
-          ndnboost::mpl::assert_::arg rel ndnboost::mpl::assert_::arg \
-        ) \
-    ); \
-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 \
-    , 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(NDNBOOST_PP_CAT(mpl_assert_rel,counter)) \
-                , x \
-                , y \
-                >() ) \
-            ) \
-        ) \
-    ) \
-/**/
-#   endif
-
-#   define NDNBOOST_MPL_ASSERT_RELATION(x, rel, y) \
-NDNBOOST_MPL_ASSERT_RELATION_IMPL(NDNBOOST_MPL_AUX_PP_COUNTER(), x, rel, y) \
-/**/
-
-#else // !NDNBOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
-
-#   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 \
-    , 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::NDNBOOST_MPL_AUX_ASSERT_RELATION(x,y,(&ndnboost::mpl::operator rel))() \
-            ) ) \
-        ) \
-    ) \
-/**/
-#   else
-#   define NDNBOOST_MPL_ASSERT_RELATION(x, rel, y) \
-NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , 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::NDNBOOST_MPL_AUX_ASSERT_RELATION(x,y,(&ndnboost::mpl::operator rel))::************))0 ) \
-        ) \
-    ) \
-/**/
-#   endif
-
-#endif
-
-
-// NDNBOOST_MPL_ASSERT_MSG( (pred<x,...>::value), USER_PROVIDED_MESSAGE, (types<x,...>) ) 
-
-#if NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3202))
-#   define NDNBOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \
-struct msg; \
-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; } \
-} NDNBOOST_PP_CAT(mpl_assert_arg,counter); \
-NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , 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 NDNBOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ )  \
-struct msg; \
-typedef struct NDNBOOST_PP_CAT(msg,counter) : ndnboost::mpl::assert_ \
-{ \
-    static ndnboost::mpl::failed ************ (msg::************ assert_arg()) types_ \
-    { return 0; } \
-} NDNBOOST_PP_CAT(mpl_assert_arg,counter); \
-NDNBOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , 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 NDNBOOST_MPL_ASSERT_MSG( c, msg, types_ ) \
-NDNBOOST_MPL_ASSERT_MSG_IMPL( NDNBOOST_MPL_AUX_PP_COUNTER(), c, msg, types_ ) \
-/**/
-
-#endif // NDNBOOST_MPL_ASSERT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/at.hpp b/include/ndnboost/mpl/at.hpp
deleted file mode 100644
index c3d8968..0000000
--- a/include/ndnboost/mpl/at.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AT_HPP_INCLUDED
-#define NDNBOOST_MPL_AT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: at.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/at_fwd.hpp>
-#include <ndnboost/mpl/aux_/at_impl.hpp>
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      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 >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,at,(Sequence,N))
-};
-
-template<
-      typename Sequence
-    , NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
-    >
-struct at_c
-    : at_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence,mpl::long_<N> >
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, at)
-
-}}
-
-#endif // NDNBOOST_MPL_AT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/at_fwd.hpp b/include/ndnboost/mpl/at_fwd.hpp
deleted file mode 100644
index 4a802e2..0000000
--- a/include/ndnboost/mpl/at_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AT_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_AT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: at_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct at_impl;
-template< typename Sequence, typename N > struct at;
-
-}}
-
-#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
deleted file mode 100644
index 75da92c..0000000
--- a/include/ndnboost/mpl/aux_/O1_size_impl.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-
-#ifndef NDNBOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/O1_size_fwd.hpp>
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/aux_/has_size.hpp>
-#include <ndnboost/mpl/aux_/config/forwarding.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// default implementation - returns 'Sequence::size' if sequence has a 'size'
-// member, and -1 otherwise; conrete sequences might override it by 
-// specializing either the 'O1_size_impl' or the primary 'O1_size' template
-
-#   if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
-    && !NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003))
-
-namespace aux {
-template< typename Sequence > struct O1_size_impl
-    : Sequence::size
-{
-};
-}
-
-template< typename Tag >
-struct O1_size_impl
-{
-    template< typename Sequence > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : if_<
-              aux::has_size<Sequence>
-            , aux::O1_size_impl<Sequence>
-            , long_<-1>
-            >::type
-    {
-#else
-    {
-        typedef typename if_<
-              aux::has_size<Sequence>
-            , aux::O1_size_impl<Sequence>
-            , long_<-1>
-            >::type type;
-
-        NDNBOOST_STATIC_CONSTANT(long, value =
-              (if_<
-                  aux::has_size<Sequence>
-                , aux::O1_size_impl<Sequence>
-                , long_<-1>
-                >::type::value)
-            );
-#endif
-    };
-};
-
-#   else // NDNBOOST_MSVC
-
-template< typename Tag >
-struct O1_size_impl
-{
-    template< typename Sequence > struct apply
-        : long_<-1>
-        {
-        };
-};
-
-#   endif
-
-}}
-
-#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
deleted file mode 100644
index ae3c4a7..0000000
--- a/include/ndnboost/mpl/aux_/adl_barrier.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: adl_barrier.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/adl.hpp>
-#include <ndnboost/mpl/aux_/config/gcc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
-
-#   define NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE ndnboost_mpl_
-#   define NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace ndnboost_mpl_ {
-#   define NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }
-#   define NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(type) \
-    namespace ndnboost { namespace mpl { \
-    using ::NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
-    } } \
-/**/
-
-#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 // NDNBOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
-
-#   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 // 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
deleted file mode 100644
index 9e629f0..0000000
--- a/include/ndnboost/mpl/aux_/advance_backward.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: advance_backward.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER advance_backward.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/unrolling.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#   include <ndnboost/mpl/aux_/config/eti.hpp>
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-// forward declaration
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_backward;
-
-#   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 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<NDNBOOST_MPL_LIMIT_UNROLLING>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0
-                    ? 0
-                    : N - NDNBOOST_MPL_LIMIT_UNROLLING
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
-#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
-// 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< NDNBOOST_PP_FRAME_ITERATION(1) >
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-
-#if i_ > 0
-#   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 NDNBOOST_PP_CAT(iter,NDNBOOST_PP_FRAME_ITERATION(1)) type;
-    };
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-#endif
-};
-
-#undef i_
-
-///// iteration, depth == 2
-
-#elif NDNBOOST_PP_ITERATION_DEPTH() == 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 // 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
deleted file mode 100644
index a91a26a..0000000
--- a/include/ndnboost/mpl/aux_/advance_forward.hpp
+++ /dev/null
@@ -1,127 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: advance_forward.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER advance_forward.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/unrolling.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#   include <ndnboost/mpl/aux_/config/eti.hpp>
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-// forward declaration
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_forward;
-
-#   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 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<NDNBOOST_MPL_LIMIT_UNROLLING>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0
-                    ? 0
-                    : N - NDNBOOST_MPL_LIMIT_UNROLLING
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
-#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
-// 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< NDNBOOST_PP_FRAME_ITERATION(1) >
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-
-#if i_ > 0
-#   define NDNBOOST_PP_ITERATION_PARAMS_2 \
-    (3,(1, i_, <ndnboost/mpl/aux_/advance_forward.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-#endif
-        typedef NDNBOOST_PP_CAT(iter,i_) type;
-    };
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-#endif
-};
-
-#undef i_
-
-///// iteration, depth == 2
-
-#elif NDNBOOST_PP_ITERATION_DEPTH() == 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 // 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
deleted file mode 100644
index 9d9a94d..0000000
--- a/include/ndnboost/mpl/aux_/arg_typedef.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arg_typedef.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
-    || NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
-    
-#   define NDNBOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name;
-
-#else
-
-#   define NDNBOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/
-
-#endif
-
-#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
deleted file mode 100644
index 117d3ab..0000000
--- a/include/ndnboost/mpl/aux_/arithmetic_op.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arithmetic_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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>
-#endif
-
-#if !defined(AUX778076_OP_PREFIX)
-#   define AUX778076_OP_PREFIX AUX778076_OP_NAME
-#endif
-
-#include <ndnboost/mpl/aux_/numeric_op.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/workaround.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-
-namespace ndnboost { namespace mpl {
-
-#if defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-namespace aux {
-template< typename T, T n1, T n2 >
-struct NDNBOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)
-{
-    NDNBOOST_STATIC_CONSTANT(T, value = (n1 AUX778076_OP_TOKEN n2));
-    typedef integral_c<T,value> type;
-};
-}
-#endif
-
-template<>
-struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
-{
-    template< typename N1, typename N2 > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  AUX778076_OP_TOKEN NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-#else
-        : aux::NDNBOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-#endif
-    {
-    };
-};
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#undef AUX778076_OP_TAG_NAME
-#undef AUX778076_OP_IMPL_NAME
-#undef AUX778076_OP_ARITY
-#undef AUX778076_OP_PREFIX
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_TOKEN
diff --git a/include/ndnboost/mpl/aux_/arity.hpp b/include/ndnboost/mpl/aux_/arity.hpp
deleted file mode 100644
index a28f564..0000000
--- a/include/ndnboost/mpl/aux_/arity.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_ARITY_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_ARITY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/dtp.hpp>
-
-#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>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-// 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, NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct arity
-{
-    NDNBOOST_STATIC_CONSTANT(int, value = N);
-};
-
-}}}
-
-#endif // NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
-
-#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
deleted file mode 100644
index f10ee11..0000000
--- a/include/ndnboost/mpl/aux_/arity_spec.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arity_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/int.hpp>
-#include <ndnboost/mpl/limits/arity.hpp>
-#include <ndnboost/mpl/aux_/config/dtp.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#include <ndnboost/mpl/aux_/arity.hpp>
-#include <ndnboost/mpl/aux_/template_arity_fwd.hpp>
-#include <ndnboost/mpl/aux_/config/ttp.hpp>
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) \
-namespace aux { \
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N), NDNBOOST_MPL_PP_PARAMS(i,type T) > \
-struct arity< \
-      name< NDNBOOST_MPL_PP_PARAMS(i,T) > \
-    , N \
-    > \
-{ \
-    NDNBOOST_STATIC_CONSTANT(int \
-        , value = NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        ); \
-}; \
-} \
-/**/
-#else
-#   define NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) /**/
-#endif
-
-#   define NDNBOOST_MPL_AUX_ARITY_SPEC(i,name) \
-    NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,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< NDNBOOST_MPL_PP_PARAMS(i,typename T) > \
-struct template_arity< name<NDNBOOST_MPL_PP_PARAMS(i,T)> > \
-    : int_<i> \
-{ \
-}; \
-} \
-/**/
-#else
-#   define NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
-#endif
-
-
-#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
deleted file mode 100644
index 2028731..0000000
--- a/include/ndnboost/mpl/aux_/at_impl.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: at_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/advance.hpp>
-#include <ndnboost/mpl/deref.hpp>
-#include <ndnboost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// default implementation; conrete sequences might override it by 
-// specializing either the 'at_impl' or the primary 'at' template
-
-template< typename Tag >
-struct at_impl
-{
-    template< typename Sequence, typename N > struct apply
-    {
-        typedef typename advance<
-              typename begin<Sequence>::type
-            , N
-            >::type iter_;
-
-        typedef typename deref<iter_>::type type;
-    };
-};
-
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, at_impl)
-
-}}
-
-#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
deleted file mode 100644
index ee567ac..0000000
--- a/include/ndnboost/mpl/aux_/begin_end_impl.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/begin_end_fwd.hpp>
-#include <ndnboost/mpl/sequence_tag_fwd.hpp>
-#include <ndnboost/mpl/void.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/aux_/has_begin.hpp>
-#include <ndnboost/mpl/aux_/na.hpp>
-#include <ndnboost/mpl/aux_/traits_lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-
-namespace ndnboost { namespace mpl {
-
-
-namespace aux { 
-
-template< typename Sequence > 
-struct begin_type 
-{ 
-    typedef typename Sequence::begin type; 
-};
-template< typename Sequence > 
-struct end_type
-{ 
-    typedef typename Sequence::end type; 
-};
-
-}
-
-// default implementation; conrete sequences might override it by 
-// specializing either the 'begin_impl/end_impl' or the primary 
-// 'begin/end' templates
-
-template< typename Tag >
-struct begin_impl
-{
-    template< typename Sequence > struct apply
-    {
-        typedef typename eval_if<aux::has_begin<Sequence, true_>,
-                                 aux::begin_type<Sequence>, void_>::type type;
-    };
-};
-
-template< typename Tag >
-struct end_impl
-{
-    template< typename Sequence > struct apply
-    {
-        typedef typename eval_if<aux::has_begin<Sequence, true_>,
-                                 aux::end_type<Sequence>, void_>::type type;
-    };
-};
-
-// specialize 'begin_trait/end_trait' for two pre-defined tags
-
-#   define AUX778076_IMPL_SPEC(name, tag, result) \
-template<> \
-struct name##_impl<tag> \
-{ \
-    template< typename Sequence > struct apply \
-    { \
-        typedef result type; \
-    }; \
-}; \
-/**/
-
-// a sequence with nested 'begin/end' typedefs; just query them
-AUX778076_IMPL_SPEC(begin, nested_begin_end_tag, typename Sequence::begin)
-AUX778076_IMPL_SPEC(end, nested_begin_end_tag, typename Sequence::end)
-
-// if a type 'T' does not contain 'begin/end' or 'tag' members 
-// and doesn't specialize either 'begin/end' or 'begin_impl/end_impl' 
-// templates, then we end up here
-AUX778076_IMPL_SPEC(begin, non_sequence_tag, void_)
-AUX778076_IMPL_SPEC(end, non_sequence_tag, void_)
-AUX778076_IMPL_SPEC(begin, na, void_)
-AUX778076_IMPL_SPEC(end, na, void_)
-
-#   undef AUX778076_IMPL_SPEC
-
-
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,begin_impl)
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,end_impl)
-
-}}
-
-#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
deleted file mode 100644
index 0ae5568..0000000
--- a/include/ndnboost/mpl/aux_/clear_impl.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/clear_fwd.hpp>
-#include <ndnboost/mpl/aux_/traits_lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// no default implementation; the definition is needed to make MSVC happy
-
-template< typename Tag >
-struct clear_impl
-{
-    template< typename Sequence > struct apply;
-};
-
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, clear_impl)
-
-}}
-
-#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
deleted file mode 100644
index 454a71a..0000000
--- a/include/ndnboost/mpl/aux_/common_name_wknd.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: common_name_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#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 NDNBOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-namespace name_##wknd { \
-template< typename > void name(); \
-} \
-/**/
-
-#else
-
-#   define NDNBOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/
-
-#endif // __BORLANDC__
-
-#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
deleted file mode 100644
index 3bed6a4..0000000
--- a/include/ndnboost/mpl/aux_/comparison_op.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: comparison_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/bool.hpp>
-#   include <ndnboost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#if !defined(AUX778076_OP_PREFIX)
-#   define AUX778076_OP_PREFIX AUX778076_OP_NAME
-#endif
-
-#define AUX778076_OP_ARITY 2
-
-#include <ndnboost/mpl/aux_/numeric_op.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/integral.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// 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) \
-    ( NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value > NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value ) \
-/**/
-#else
-#   define AUX778076_OP(N1, N2) \
-    ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value \
-          AUX778076_OP_TOKEN NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value \
-        ) \
-/**/
-#endif
-
-template<>
-struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
-{
-    template< typename N1, typename N2 > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-        : bool_< AUX778076_OP(N1, N2) >
-    {
-#else
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value = AUX778076_OP(N1, N2));
-        typedef bool_<value> type;
-#endif
-    };
-};
-
-#undef AUX778076_OP
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#undef AUX778076_OP_TAG_NAME
-#undef AUX778076_OP_IMPL_NAME
-#undef AUX778076_OP_ARITY
-#undef AUX778076_OP_PREFIX
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_TOKEN
diff --git a/include/ndnboost/mpl/aux_/config/adl.hpp b/include/ndnboost/mpl/aux_/config/adl.hpp
deleted file mode 100644
index b5794d4..0000000
--- a/include/ndnboost/mpl/aux_/config/adl.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: adl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/intel.hpp>
-#include <ndnboost/mpl/aux_/config/gcc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-// agurt, 25/apr/04: technically, the ADL workaround is only needed for GCC,
-// but putting everything expect public, user-specializable metafunctions into
-// a separate global namespace has a nice side effect of reducing the length 
-// of template instantiation symbols, so we apply the workaround on all 
-// platforms that can handle it
-
-#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 NDNBOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
-
-#endif
-
-#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
deleted file mode 100644
index c71af34..0000000
--- a/include/ndnboost/mpl/aux_/config/arrays.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arrays.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#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 NDNBOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES
-
-#endif
-
-#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
deleted file mode 100644
index c035570..0000000
--- a/include/ndnboost/mpl/aux_/config/bcc.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bcc.hpp 49272 2008-10-11 06:50:46Z agurtovoy $
-// $Date: 2004-09-02 10:41:37 -0500 (Thu, 02 Sep 2004) $
-// $Revision: 24874 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(NDNBOOST_MPL_CFG_BCC590_WORKAROUNDS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x590) \
-    && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
-
-#   define NDNBOOST_MPL_CFG_BCC590_WORKAROUNDS
-
-#endif
-
-#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
deleted file mode 100644
index 168d582..0000000
--- a/include/ndnboost/mpl/aux_/config/bind.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#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 NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE
-
-#endif
-
-//#define NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-#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
deleted file mode 100644
index 646e73b..0000000
--- a/include/ndnboost/mpl/aux_/config/compiler.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: compiler.hpp 53189 2009-05-22 20:07:55Z hkaiser $
-// $Date: 2009-05-22 13:07:55 -0700 (Fri, 22 May 2009) $
-// $Revision: 53189 $
-
-#if !defined(NDNBOOST_MPL_CFG_COMPILER_DIR)
-
-#   include <ndnboost/mpl/aux_/config/dtp.hpp>
-#   include <ndnboost/mpl/aux_/config/ttp.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/mpl/aux_/config/msvc.hpp>
-#   include <ndnboost/mpl/aux_/config/gcc.hpp>
-#   include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#   if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-#       define NDNBOOST_MPL_CFG_COMPILER_DIR msvc60
-
-#   elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-#       define NDNBOOST_MPL_CFG_COMPILER_DIR msvc70
-
-#   elif NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, NDNBOOST_TESTED_AT(0x0304))
-#       define NDNBOOST_MPL_CFG_COMPILER_DIR gcc
-
-#   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 NDNBOOST_MPL_CFG_COMPILER_DIR bcc_pre590
-#       endif
-
-#   elif NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
-#       define NDNBOOST_MPL_CFG_COMPILER_DIR dmc
-
-#   elif defined(__MWERKS__)
-#       if defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#           define NDNBOOST_MPL_CFG_COMPILER_DIR mwcw
-#       else
-#           define NDNBOOST_MPL_CFG_COMPILER_DIR plain
-#       endif
-
-#   elif defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#       define NDNBOOST_MPL_CFG_COMPILER_DIR no_ctps
-
-#   elif defined(NDNBOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
-#       define NDNBOOST_MPL_CFG_COMPILER_DIR no_ttp
-
-#   else
-#       define NDNBOOST_MPL_CFG_COMPILER_DIR plain
-#   endif
-
-#endif // NDNBOOST_MPL_CFG_COMPILER_DIR
-
-#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
deleted file mode 100644
index c6a50a3..0000000
--- a/include/ndnboost/mpl/aux_/config/ctps.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-#include <ndnboost/config.hpp>
-
-#if    !defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && NDNBOOST_WORKAROUND(__BORLANDC__, < 0x582)
-
-#   define NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC
-
-#endif
-
-// NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in <ndnboost/config.hpp>
-
-#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
deleted file mode 100644
index 919626f..0000000
--- a/include/ndnboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: dmc_ambiguous_ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
-
-#   define NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS
-
-#endif
-
-#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
deleted file mode 100644
index 9f75a9c..0000000
--- a/include/ndnboost/mpl/aux_/config/dtp.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: dtp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-// MWCW 7.x-8.0 "losts" default template parameters of nested class 
-// templates when their owner classes are passed as arguments to other 
-// templates; Borland 5.5.1 "forgets" them from the very beginning (if 
-// 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(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 NDNBOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
-
-#endif
-
-
-#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 NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
-
-#endif
-
-#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
deleted file mode 100644
index ce89016..0000000
--- a/include/ndnboost/mpl/aux_/config/eti.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: eti.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-// flags for MSVC 6.5's so-called "early template instantiation bug"
-#if    !defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-
-#   define NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG
-
-#endif
-
-#if    !defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-
-#   define NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG
-
-#endif
-
-#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 NDNBOOST_MPL_CFG_MSVC_ETI_BUG
-
-#endif
-
-#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
deleted file mode 100644
index 057e5ec..0000000
--- a/include/ndnboost/mpl/aux_/config/forwarding.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: forwarding.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
-
-#   define NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING
-
-#endif
-
-#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
deleted file mode 100644
index 09644c1..0000000
--- a/include/ndnboost/mpl/aux_/config/gcc.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: gcc.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if defined(__GNUC__) && !defined(__EDG_VERSION__)
-#   define NDNBOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__)
-#else
-#   define NDNBOOST_MPL_CFG_GCC 0
-#endif
-
-#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
deleted file mode 100644
index 08dd160..0000000
--- a/include/ndnboost/mpl/aux_/config/has_apply.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/has_xxx.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#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 NDNBOOST_MPL_CFG_NO_HAS_APPLY
-
-#endif
-
-#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
deleted file mode 100644
index cf9a112..0000000
--- a/include/ndnboost/mpl/aux_/config/has_xxx.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_xxx.hpp 63518 2010-07-02 08:32:03Z agurtovoy $
-// $Date: 2010-07-02 01:32:03 -0700 (Fri, 02 Jul 2010) $
-// $Revision: 63518 $
-
-#include <ndnboost/mpl/aux_/config/overload_resolution.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-// agurt, 11/jan/03: signals a stub-only 'has_xxx' implementation
-
-#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 NDNBOOST_MPL_CFG_NO_HAS_XXX
-#   define NDNBOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
-
-#endif
-
-#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
deleted file mode 100644
index c25bf09..0000000
--- a/include/ndnboost/mpl/aux_/config/integral.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
-
-#   define NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
-
-#endif
-
-#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 NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC
-
-#endif
-
-#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
deleted file mode 100644
index d97ab6d..0000000
--- a/include/ndnboost/mpl/aux_/config/intel.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: intel.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-
-// NDNBOOST_INTEL_CXX_VERSION is defined here:
-#include <ndnboost/config.hpp>
-
-#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
deleted file mode 100644
index 66e1bba..0000000
--- a/include/ndnboost/mpl/aux_/config/lambda.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/ttp.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-// agurt, 15/jan/02: full-fledged implementation requires both 
-// template template parameters _and_ 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 NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#endif
-
-#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
deleted file mode 100644
index ef7fcac..0000000
--- a/include/ndnboost/mpl/aux_/config/msvc.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-
-// NDNBOOST_MSVC is defined here:
-#include <ndnboost/config.hpp>
-
-#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
deleted file mode 100644
index d706a97..0000000
--- a/include/ndnboost/mpl/aux_/config/msvc_typename.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_typename.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-#   define NDNBOOST_MSVC_TYPENAME
-#else
-#   define NDNBOOST_MSVC_TYPENAME typename
-#endif
-
-#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
deleted file mode 100644
index 9c74018..0000000
--- a/include/ndnboost/mpl/aux_/config/nttp.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: nttp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-// MSVC 6.5 ICE-s on the code as simple as this (see "aux_/nttp_decl.hpp"
-// for a workaround):
-//
-//    namespace std {
-//    template< typename Char > struct string;
-//    }
-//
-//    void foo(std::string<char>);
-//
-//    namespace ndnboost { namespace mpl {
-//    template< int > struct arg;
-//    }}
-
-#if    !defined(NDNBOOST_MPL_CFG_NTTP_BUG) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-
-#   define NDNBOOST_MPL_CFG_NTTP_BUG
-
-#endif
-
-#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
deleted file mode 100644
index 78ab5f0..0000000
--- a/include/ndnboost/mpl/aux_/config/overload_resolution.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: overload_resolution.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(NDNBOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && (   NDNBOOST_WORKAROUND(__BORLANDC__, < 0x590) \
-        || NDNBOOST_WORKAROUND(__MWERKS__, < 0x3001) \
-        )
-
-#   define NDNBOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION
-
-#endif
-
-#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
deleted file mode 100644
index c5f3ac7..0000000
--- a/include/ndnboost/mpl/aux_/config/pp_counter.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pp_counter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_AUX_PP_COUNTER)
-#   include <ndnboost/mpl/aux_/config/msvc.hpp>
-#   if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1300)
-#       define NDNBOOST_MPL_AUX_PP_COUNTER() __COUNTER__
-#   else
-#       define NDNBOOST_MPL_AUX_PP_COUNTER() __LINE__
-#   endif
-#endif
-
-#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
deleted file mode 100644
index 625e6bb..0000000
--- a/include/ndnboost/mpl/aux_/config/preprocessor.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: preprocessor.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#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 NDNBOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION
-
-#endif
-
-#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-#   define NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
-#endif
-
-#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 // 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
deleted file mode 100644
index 8421b89..0000000
--- a/include/ndnboost/mpl/aux_/config/static_constant.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: static_constant.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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 NDNBOOST_STATIC_CONSTANT
-#endif
-
-#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
deleted file mode 100644
index cda9560..0000000
--- a/include/ndnboost/mpl/aux_/config/ttp.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: ttp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/gcc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
-    && ( defined(NDNBOOST_NO_TEMPLATE_TEMPLATES) \
-      || NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT( 0x590) ) \
-       )
-
-#   define NDNBOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS
-
-#endif
-
-
-#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 NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
-
-#endif
-
-#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
deleted file mode 100644
index ec2b715..0000000
--- a/include/ndnboost/mpl/aux_/config/typeof.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: typeof.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/gcc.hpp>
-
-#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 NDNBOOST_MPL_CFG_HAS_TYPEOF
-
-#endif
-
-
-#if !defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE) \
-    && defined(NDNBOOST_MPL_CFG_HAS_TYPEOF)
-
-#   define NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif
-
-#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
deleted file mode 100644
index df810e5..0000000
--- a/include/ndnboost/mpl/aux_/config/use_preprocessed.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: use_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// #define NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index 880eaba..0000000
--- a/include/ndnboost/mpl/aux_/config/workaround.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: workaround.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/detail/workaround.hpp>
-
-#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
deleted file mode 100644
index cb5ed0c..0000000
--- a/include/ndnboost/mpl/aux_/contains_impl.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: contains_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/contains_fwd.hpp>
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/find.hpp>
-#include <ndnboost/mpl/not.hpp>
-#include <ndnboost/mpl/aux_/traits_lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/forwarding.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag >
-struct contains_impl
-{
-    template< typename Sequence, typename T > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : not_< is_same<
-              typename find<Sequence,T>::type
-            , typename end<Sequence>::type
-            > >
-    {
-#else
-    {
-        typedef not_< is_same<
-              typename find<Sequence,T>::type
-            , typename end<Sequence>::type
-            > > type;
-
-        NDNBOOST_STATIC_CONSTANT(bool, value = 
-              (not_< is_same<
-                  typename find<Sequence,T>::type
-                , typename end<Sequence>::type
-                > >::value)
-            );
-#endif
-    };
-};
-
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,contains_impl)
-
-}}
-
-#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
deleted file mode 100644
index 28e6374..0000000
--- a/include/ndnboost/mpl/aux_/count_args.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: count_args.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/preprocessor/expr_if.hpp>
-#include <ndnboost/preprocessor/inc.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-
-#if !defined(AUX778076_COUNT_ARGS_PARAM_NAME)
-#   define AUX778076_COUNT_ARGS_PARAM_NAME T
-#endif
-
-#if !defined(AUX778076_COUNT_ARGS_TEMPLATE_PARAM)
-#   define AUX778076_COUNT_ARGS_TEMPLATE_PARAM typename AUX778076_COUNT_ARGS_PARAM_NAME
-#endif
-
-// local macros, #undef-ined at the end of the header
-
-#if !defined(AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES)
-
-#   include <ndnboost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-
-#   define AUX778076_COUNT_ARGS_REPEAT NDNBOOST_MPL_PP_REPEAT
-#   define AUX778076_COUNT_ARGS_PARAMS(param) \
-    NDNBOOST_MPL_PP_PARAMS( \
-          AUX778076_COUNT_ARGS_ARITY \
-        , param \
-        ) \
-    /**/
-
-#else
-
-#   include <ndnboost/preprocessor/enum_shifted_params.hpp>
-#   include <ndnboost/preprocessor/repeat.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-
-#   define AUX778076_COUNT_ARGS_REPEAT NDNBOOST_PP_REPEAT
-#   define AUX778076_COUNT_ARGS_PARAMS(param) \
-    NDNBOOST_PP_ENUM_SHIFTED_PARAMS( \
-          NDNBOOST_PP_INC(AUX778076_COUNT_ARGS_ARITY) \
-        , param \
-        ) \
-    /**/
-
-#endif // AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES
-
-
-#define AUX778076_IS_ARG_TEMPLATE_NAME \
-    NDNBOOST_PP_CAT(is_,NDNBOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_arg)) \
-/**/
-
-#define AUX778076_COUNT_ARGS_FUNC(unused, i, param) \
-    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
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct AUX778076_IS_ARG_TEMPLATE_NAME<AUX778076_COUNT_ARGS_DEFAULT>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// <xxx>_count_args
-template<
-      AUX778076_COUNT_ARGS_PARAMS(AUX778076_COUNT_ARGS_TEMPLATE_PARAM)
-    >
-struct NDNBOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_count_args)
-{
-    NDNBOOST_STATIC_CONSTANT(int, value = AUX778076_COUNT_ARGS_REPEAT(
-          AUX778076_COUNT_ARGS_ARITY
-        , AUX778076_COUNT_ARGS_FUNC
-        , AUX778076_COUNT_ARGS_PARAM_NAME
-        ));
-};
-
-#undef AUX778076_COUNT_ARGS_FUNC
-#undef AUX778076_IS_ARG_TEMPLATE_NAME
-#undef AUX778076_COUNT_ARGS_PARAMS
-#undef AUX778076_COUNT_ARGS_REPEAT
-
-#undef AUX778076_COUNT_ARGS_ARITY
-#undef AUX778076_COUNT_ARGS_DEFAULT
-#undef AUX778076_COUNT_ARGS_PREFIX
-#undef AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES
-#undef AUX778076_COUNT_ARGS_TEMPLATE_PARAM
-#undef 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
deleted file mode 100644
index cf2b3c3..0000000
--- a/include/ndnboost/mpl/aux_/find_if_pred.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-#include <ndnboost/mpl/aux_/iter_apply.hpp>
-#include <ndnboost/mpl/not.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Predicate >
-struct find_if_pred
-{
-    template< typename Iterator >
-    struct apply
-    {
-        typedef not_< aux::iter_apply1<Predicate,Iterator> > type;
-    };
-};
-
-}}}
-
-#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
deleted file mode 100644
index 9e7d34d..0000000
--- a/include/ndnboost/mpl/aux_/fold_impl.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#       include <ndnboost/mpl/if.hpp>
-#       include <ndnboost/type_traits/is_same.hpp>
-#   endif
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER fold_impl.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   define AUX778076_FOLD_IMPL_OP(iter) typename deref<iter>::type
-#   define AUX778076_FOLD_IMPL_NAME_PREFIX fold
-#   include <ndnboost/mpl/aux_/fold_impl_body.hpp>
-
-#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
deleted file mode 100644
index 67c4b9a..0000000
--- a/include/ndnboost/mpl/aux_/fold_impl_body.hpp
+++ /dev/null
@@ -1,365 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: fold_impl_body.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#   include <ndnboost/mpl/limits/unrolling.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <ndnboost/mpl/aux_/config/workaround.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#   include <ndnboost/mpl/aux_/config/eti.hpp>
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/dec.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-// local macros, #undef-ined at the end of the header
-
-#   define AUX778076_ITER_FOLD_STEP(unused, i, unused2) \
-    typedef typename apply2< \
-          ForwardOp \
-        , 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 \
-    NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
-    /**/
-
-#   define AUX778076_FOLD_CHUNK_NAME \
-    NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
-    /**/
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-template<
-      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME;
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#   if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-#   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 NDNBOOST_MPL_LIMIT_UNROLLING
-template<
-      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-{
-    typedef AUX778076_FOLD_IMPL_NAME<
-          NDNBOOST_MPL_LIMIT_UNROLLING
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef AUX778076_FOLD_IMPL_NAME<
-          ( (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - NDNBOOST_MPL_LIMIT_UNROLLING )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-        
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-// fallback implementation for sequences of unknown size
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<-1,First,Last,State,ForwardOp>
-    : AUX778076_FOLD_IMPL_NAME<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<-1,Last,Last,State,ForwardOp>
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-#   else // NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-// Borland have some serious problems with the unrolled version, so
-// we always use a basic implementation
-template<
-      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-{
-    typedef AUX778076_FOLD_IMPL_NAME<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-    typedef state type;
-};
-
-template<
-      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
-     , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<N,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-    typedef state type;
-};
-
-#   endif // NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
- 
-#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct AUX778076_FOLD_CHUNK_NAME;
-
-#   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 NDNBOOST_MPL_LIMIT_UNROLLING
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > 
-struct AUX778076_FOLD_CHUNK_NAME
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        > 
-    struct result_
-    {
-        typedef AUX778076_FOLD_IMPL_NAME<
-              NDNBOOST_MPL_LIMIT_UNROLLING
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef AUX778076_FOLD_IMPL_NAME<
-              ( (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - NDNBOOST_MPL_LIMIT_UNROLLING )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-// fallback implementation for sequences of unknown size
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
-
-template<
-      typename Last
-    , typename State
-    >
-struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<> 
-struct AUX778076_FOLD_CHUNK_NAME<-1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        > 
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same<First,Last>::type
-            , 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(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct result_<int,int,int,int>
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-#endif
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-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_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      NDNBOOST_MPL_AUX_NTTP_DECL(int, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-    : AUX778076_FOLD_CHUNK_NAME<N>
-        ::template result_<First,Last,State,ForwardOp>
-{
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}}
-
-#   undef AUX778076_FOLD_IMPL_NAME
-#   undef AUX778076_FOLD_CHUNK_NAME
-#   undef AUX778076_ITER_FOLD_STEP
-
-#undef AUX778076_FOLD_IMPL_OP
-#undef AUX778076_FOLD_IMPL_NAME_PREFIX
-
-///// iteration
-
-#else
-
-#   define n_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct AUX778076_FOLD_IMPL_NAME<n_,First,Last,State,ForwardOp>
-{
-    typedef First iter0;
-    typedef State state0;
-
-    NDNBOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
-
-    typedef NDNBOOST_PP_CAT(state,n_) state;
-    typedef NDNBOOST_PP_CAT(iter,n_) iterator;
-};
-
-#else
-
-template<> struct AUX778076_FOLD_CHUNK_NAME<n_>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-
-        NDNBOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
-
-        typedef NDNBOOST_PP_CAT(state,n_) state;
-        typedef NDNBOOST_PP_CAT(iter,n_) iterator;
-    };
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct result_<int,int,int,int>
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-#endif
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#   undef n_
-
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/full_lambda.hpp b/include/ndnboost/mpl/aux_/full_lambda.hpp
deleted file mode 100644
index 0a3284d..0000000
--- a/include/ndnboost/mpl/aux_/full_lambda.hpp
+++ /dev/null
@@ -1,354 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: full_lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/lambda_fwd.hpp>
-#   include <ndnboost/mpl/bind_fwd.hpp>
-#   include <ndnboost/mpl/protect.hpp>
-#   include <ndnboost/mpl/quote.hpp>
-#   include <ndnboost/mpl/arg.hpp>
-#   include <ndnboost/mpl/bool.hpp>
-#   include <ndnboost/mpl/int_fwd.hpp>
-#   include <ndnboost/mpl/aux_/template_arity.hpp>
-#   include <ndnboost/mpl/aux_/na_spec.hpp>
-#   include <ndnboost/mpl/aux_/config/ttp.hpp>
-#   if defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-#       include <ndnboost/mpl/if.hpp>
-#   endif
-#endif
-
-#include <ndnboost/mpl/aux_/lambda_arity_param.hpp>
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER full_lambda.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <ndnboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-#   define AUX778076_LAMBDA_PARAMS(i_, param) \
-    NDNBOOST_MPL_PP_PARAMS(i_, param) \
-    /**/
-
-#   define AUX778076_BIND_PARAMS(param) \
-    NDNBOOST_MPL_PP_PARAMS( \
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        ) \
-    /**/
-
-#   define AUX778076_BIND_N_PARAMS(i_, param) \
-    NDNBOOST_PP_COMMA_IF(i_) \
-    NDNBOOST_MPL_PP_PARAMS(i_, param) \
-    /**/
-
-#   define AUX778076_ARITY_PARAM(param) \
-    NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) \
-    /**/
-
-
-#define n_ NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
-namespace aux {
-
-template<
-      NDNBOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< NDNBOOST_MPL_PP_ENUM(n_,false) >
-    : false_
-{
-};
-
-} // namespace aux
-#undef n_
-
-template<
-      typename T
-    , typename Tag
-    AUX778076_ARITY_PARAM(typename Arity)
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag AUX778076_ARITY_PARAM(int_<-1>) >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type; 
-};
-
-
-#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 >
-struct lambda< mpl::protect<T>,Tag AUX778076_ARITY_PARAM(int_<1>) >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-template<
-      typename F, AUX778076_BIND_PARAMS(typename T)
-    , typename Tag
-    >
-struct lambda<
-          bind<F,AUX778076_BIND_PARAMS(T)>
-        , Tag
-        AUX778076_ARITY_PARAM(int_<NDNBOOST_PP_INC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)>)
-        >
-{
-    typedef false_ is_le;
-    typedef bind<F, AUX778076_BIND_PARAMS(T)> result_;
-    typedef result_ type;
-};
-
-
-#if defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda<F,Tag1,Arity>
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_<is_le,arity_,Arity>::type,Tag2 > l3;
-    
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-#elif !defined(NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-#endif
-
-#   undef AUX778076_ARITY_PARAM
-#   undef AUX778076_BIND_N_PARAMS
-#   undef AUX778076_BIND_PARAMS
-#   undef AUX778076_LAMBDA_PARAMS
-
-#if !defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-NDNBOOST_MPL_AUX_NA_SPEC(2, lambda)
-#else
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
-#endif
-
-}}
-
-#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
-// 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) \
-    NDNBOOST_PP_COMMA_IF(i_) \
-    typename NDNBOOST_PP_CAT(T, NDNBOOST_PP_INC(i_))::result_ \
-    /**/
-
-#   define AUX778076_TYPE(unused, i_, T) \
-    NDNBOOST_PP_COMMA_IF(i_) \
-    typename NDNBOOST_PP_CAT(T, NDNBOOST_PP_INC(i_))::type \
-    /**/
-
-template<
-      typename IsLE, typename Tag
-    , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
-    , AUX778076_LAMBDA_PARAMS(i_, typename L)
-    >
-struct NDNBOOST_PP_CAT(le_result,i_)
-{
-    typedef F<
-          NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_TYPE, L)
-        > result_;
-    
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
-    , AUX778076_LAMBDA_PARAMS(i_, typename L)
-    >
-struct NDNBOOST_PP_CAT(le_result,i_)< true_,Tag,F,AUX778076_LAMBDA_PARAMS(i_, 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;
-};
-
-#   undef AUX778076_TYPE
-#   undef AUX778076_RESULT
-
-} // namespace aux
-
-
-#   define AUX778076_LAMBDA_TYPEDEF(unused, i_, T) \
-    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 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) \
-    NDNBOOST_PP_COMMA_IF(i_) \
-    NDNBOOST_PP_CAT(is_le,NDNBOOST_PP_INC(i_))::value \
-/**/
-
-template<
-      template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
-    , AUX778076_LAMBDA_PARAMS(i_, typename T)
-    , typename Tag
-    >
-struct lambda< 
-          F<AUX778076_LAMBDA_PARAMS(i_, T)>
-        , Tag
-        AUX778076_ARITY_PARAM(int_<i_>)
-        >
-{
-    NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, T)
-    NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
-
-    typedef typename aux::lambda_or<
-          NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
-        >::type is_le;
-
-    typedef aux::NDNBOOST_PP_CAT(le_result,i_)<
-          is_le, Tag, F, AUX778076_LAMBDA_PARAMS(i_, l)
-        > le_result_;
-    
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-
-#   undef AUX778076_IS_LAMBDA_EXPR
-#   undef AUX778076_IS_LE_TYPEDEF
-#   undef AUX778076_LAMBDA_TYPEDEF
-
-#endif // i_ > 0
-
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T)
-    , typename Tag
-    >
-struct lambda<
-          NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_, T)>
-        , Tag
-        AUX778076_ARITY_PARAM(int_<NDNBOOST_PP_INC(i_)>)
-        >
-{
-    typedef false_ is_le;
-    typedef NDNBOOST_PP_CAT(bind,i_)<
-          F
-        AUX778076_BIND_N_PARAMS(i_, T)
-        > result_;
-        
-    typedef result_ type;
-};
-
-#undef i_
-#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
deleted file mode 100644
index 329011e..0000000
--- a/include/ndnboost/mpl/aux_/has_apply.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/has_xxx.hpp>
-#include <ndnboost/mpl/aux_/config/has_apply.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-#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
-    : fallback_
-{
-};
-#endif
-}}}
-
-#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
deleted file mode 100644
index 62c173e..0000000
--- a/include/ndnboost/mpl/aux_/has_begin.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_begin.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/has_xxx.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_begin, begin, true)
-}}}
-
-#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
deleted file mode 100644
index 90b66e7..0000000
--- a/include/ndnboost/mpl/aux_/has_rebind.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_rebind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/intel.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(NDNBOOST_INTEL_CXX_VERSION)
-#   include <ndnboost/mpl/has_xxx.hpp>
-#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 NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
-#   include <ndnboost/mpl/if.hpp>
-#   include <ndnboost/mpl/bool.hpp>
-#   include <ndnboost/mpl/aux_/yes_no.hpp>
-#   include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#   include <ndnboost/type_traits/is_class.hpp>
-#else
-#   include <ndnboost/mpl/aux_/type_wrapper.hpp>
-#   include <ndnboost/mpl/aux_/yes_no.hpp>
-#   include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#endif
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-#if NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(NDNBOOST_INTEL_CXX_VERSION)
-
-NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false)
-
-#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-
-NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false)
-
-template< typename T >
-struct has_rebind
-    : if_< 
-          msvc_is_class<T>
-        , has_rebind_impl<T>
-        , bool_<false>
-        >::type
-{
-};
-
-#else // the rest
-
-template< typename T > struct has_rebind_tag {};
-no_tag operator|(has_rebind_tag<int>, void const volatile*);
-
-#   if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x610))
-template< typename T >
-struct has_rebind
-{
-    static has_rebind_tag<T>* get();
-    NDNBOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
-        );
-};
-#   else // __BORLANDC__
-template< typename T >
-struct has_rebind_impl
-{
-    static T* get();
-    NDNBOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
-        );
-};
-
-template< typename T >
-struct has_rebind
-    : if_< 
-          is_class<T>
-        , has_rebind_impl<T>
-        , bool_<false>
-        >::type
-{
-};
-#   endif // __BORLANDC__
-
-#endif
-
-}}}
-
-#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
deleted file mode 100644
index 915e932..0000000
--- a/include/ndnboost/mpl/aux_/has_size.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/has_xxx.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(size)
-}}}
-
-#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
deleted file mode 100644
index ec60867..0000000
--- a/include/ndnboost/mpl/aux_/has_tag.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/has_xxx.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false)
-}}}
-
-#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
deleted file mode 100644
index fa5fe23..0000000
--- a/include/ndnboost/mpl/aux_/has_type.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_type.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/has_xxx.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true)
-}}}
-
-#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
deleted file mode 100644
index 0357031..0000000
--- a/include/ndnboost/mpl/aux_/include_preprocessed.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/compiler.hpp>
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/stringize.hpp>
-
-#if !defined(NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-#   define AUX778076_PREPROCESSED_HEADER \
-    NDNBOOST_MPL_CFG_COMPILER_DIR/NDNBOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#else
-#   define AUX778076_PREPROCESSED_HEADER \
-    NDNBOOST_PP_CAT(NDNBOOST_MPL_CFG_COMPILER_DIR,/)##NDNBOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#endif
-
-#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 NDNBOOST_PP_STRINGIZE(ndnboost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER)
-#endif
-
-#   undef AUX778076_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
deleted file mode 100644
index 3a75978..0000000
--- a/include/ndnboost/mpl/aux_/inserter_algorithm.hpp
+++ /dev/null
@@ -1,159 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: inserter_algorithm.hpp 55648 2009-08-18 05:16:53Z agurtovoy $
-// $Date: 2009-08-17 22:16:53 -0700 (Mon, 17 Aug 2009) $
-// $Revision: 55648 $
-
-#include <ndnboost/mpl/back_inserter.hpp>
-#include <ndnboost/mpl/front_inserter.hpp>
-#include <ndnboost/mpl/push_back.hpp>
-#include <ndnboost/mpl/push_front.hpp>
-#include <ndnboost/mpl/back_inserter.hpp>
-#include <ndnboost/mpl/front_inserter.hpp>
-#include <ndnboost/mpl/clear.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/aux_/na.hpp>
-#include <ndnboost/mpl/aux_/common_name_wknd.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/default_params.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-#include <ndnboost/preprocessor/arithmetic/dec.hpp>
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#   define NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
-NDNBOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-template< \
-      NDNBOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
-    > \
-struct name \
-    : aux::name##_impl<NDNBOOST_MPL_PP_PARAMS(arity, P)> \
-{ \
-}; \
-\
-template< \
-      NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), typename P) \
-    > \
-struct name< NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P),na > \
-    : if_< has_push_back< typename clear<P1>::type> \
-        , aux::name##_impl< \
-              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
-            , back_inserter< typename clear<P1>::type > \
-            > \
-        , aux::reverse_##name##_impl< \
-              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
-            , front_inserter< typename clear<P1>::type > \
-            > \
-        >::type \
-{ \
-}; \
-\
-template< \
-      NDNBOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
-    > \
-struct reverse_##name \
-    : aux::reverse_##name##_impl<NDNBOOST_MPL_PP_PARAMS(arity, P)> \
-{ \
-}; \
-\
-template< \
-      NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), typename P) \
-    > \
-struct reverse_##name< NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P),na > \
-    : if_< has_push_back<P1> \
-        , aux::reverse_##name##_impl< \
-              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
-            , back_inserter< typename clear<P1>::type > \
-            > \
-        , aux::name##_impl< \
-              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
-            , front_inserter< typename clear<P1>::type > \
-            > \
-        >::type \
-{ \
-}; \
-NDNBOOST_MPL_AUX_NA_SPEC(arity, name) \
-NDNBOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
-/**/
-
-#else
-
-#   define NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
-NDNBOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-template< \
-      NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), typename P) \
-    > \
-struct def_##name##_impl \
-    : if_< has_push_back<P1> \
-        , aux::name##_impl< \
-              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
-            , back_inserter< typename clear<P1>::type > \
-            > \
-        , aux::reverse_##name##_impl< \
-              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
-            , front_inserter< typename clear<P1>::type > \
-            > \
-        >::type \
-{ \
-}; \
-\
-template< \
-      NDNBOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
-    > \
-struct name \
-{ \
-    typedef typename eval_if< \
-          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< \
-      NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), typename P) \
-    > \
-struct def_reverse_##name##_impl \
-    : if_< has_push_back<P1> \
-        , aux::reverse_##name##_impl< \
-              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
-            , back_inserter< typename clear<P1>::type > \
-            > \
-        , aux::name##_impl< \
-              NDNBOOST_MPL_PP_PARAMS(NDNBOOST_PP_DEC(arity), P) \
-            , front_inserter< typename clear<P1>::type > \
-            > \
-        >::type \
-{ \
-}; \
-template< \
-      NDNBOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
-    > \
-struct reverse_##name \
-{ \
-    typedef typename eval_if< \
-          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; \
-}; \
-NDNBOOST_MPL_AUX_NA_SPEC(arity, name) \
-NDNBOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
-/**/
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#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
deleted file mode 100644
index 462834a..0000000
--- a/include/ndnboost/mpl/aux_/integral_wrapper.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral_wrapper.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <ndnboost/mpl/integral_c_tag.hpp>
-#include <ndnboost/mpl/aux_/static_cast.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#include <ndnboost/preprocessor/cat.hpp>
-
-#if !defined(AUX_WRAPPER_NAME)
-#   define AUX_WRAPPER_NAME NDNBOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_)
-#endif
-
-#if !defined(AUX_WRAPPER_PARAMS)
-#   define AUX_WRAPPER_PARAMS(N) NDNBOOST_MPL_AUX_NTTP_DECL(AUX_WRAPPER_VALUE_TYPE, N)
-#endif
-
-#if !defined(AUX_WRAPPER_INST)
-#   if NDNBOOST_WORKAROUND(__MWERKS__, <= 0x2407)
-#       define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< value >
-#   else 
-#       define AUX_WRAPPER_INST(value) NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value >
-#   endif
-#endif
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< AUX_WRAPPER_PARAMS(N) >
-struct AUX_WRAPPER_NAME
-{
-    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 NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238)
-    typedef struct AUX_WRAPPER_NAME type;
-#else
-    typedef AUX_WRAPPER_NAME type;
-#endif
-    typedef AUX_WRAPPER_VALUE_TYPE value_type;
-    typedef integral_c_tag tag;
-
-// 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 NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 243)
- private:
-    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 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( 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 
-    // functions that return objects of both arithmetic ('int', 'long',
-    // 'double', etc.) and wrapped integral types (for an example, see 
-    // "mpl/example/power.cpp")
-    operator AUX_WRAPPER_VALUE_TYPE() const { return static_cast<AUX_WRAPPER_VALUE_TYPE>(this->value); } 
-};
-
-#if !defined(NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION)
-template< AUX_WRAPPER_PARAMS(N) >
-AUX_WRAPPER_VALUE_TYPE const AUX_WRAPPER_INST(N)::value;
-#endif
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#undef AUX_WRAPPER_NAME
-#undef AUX_WRAPPER_PARAMS
-#undef AUX_WRAPPER_INST
-#undef AUX_WRAPPER_VALUE_TYPE
diff --git a/include/ndnboost/mpl/aux_/is_msvc_eti_arg.hpp b/include/ndnboost/mpl/aux_/is_msvc_eti_arg.hpp
deleted file mode 100644
index 54a93eb..0000000
--- a/include/ndnboost/mpl/aux_/is_msvc_eti_arg.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: is_msvc_eti_arg.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/yes_no.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-
-template< typename T >
-struct is_msvc_eti_arg
-{ 
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#else // NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG
-
-struct eti_int_convertible
-{
-    eti_int_convertible(int);
-};
-
-template< typename T >
-struct is_msvc_eti_arg
-{ 
-    static no_tag test(...);
-    static yes_tag test(eti_int_convertible);
-    static T& get();
-
-    NDNBOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(test(get())) == sizeof(yes_tag)
-        );
-};
-
-#endif
-
-template<>
-struct is_msvc_eti_arg<int>
-{ 
-    NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-#endif // NDNBOOST_MPL_CFG_MSVC_ETI_BUG
-
-}}}
-
-#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
deleted file mode 100644
index 6b3b7fe..0000000
--- a/include/ndnboost/mpl/aux_/iter_apply.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#ifndef NDNBOOST_MPL_ITER_APPLY_HPP_INCLUDED
-#define NDNBOOST_MPL_ITER_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/apply.hpp>
-#include <ndnboost/mpl/deref.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template<
-      typename F
-    , typename Iterator
-    >
-struct iter_apply1
-    : apply1< F,typename deref<Iterator>::type >
-{
-};
-
-template<
-      typename F
-    , typename Iterator1
-    , typename Iterator2
-    >
-struct iter_apply2
-    : apply2<
-          F
-        , typename deref<Iterator1>::type
-        , typename deref<Iterator2>::type
-        >
-{
-};
-
-}}}
-
-#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
deleted file mode 100644
index b3d93be..0000000
--- a/include/ndnboost/mpl/aux_/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,210 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_fold_if_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/identity.hpp>
-#   include <ndnboost/mpl/next.hpp>
-#   include <ndnboost/mpl/if.hpp>
-#   include <ndnboost/mpl/apply.hpp>
-#   include <ndnboost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER iter_fold_if_impl.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/unrolling.hpp>
-#   include <ndnboost/preprocessor/arithmetic/sub.hpp>
-#   include <ndnboost/preprocessor/repeat.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/dec.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2<StateOp,State,Iterator>::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-// agurt, 25/jun/02: MSVC 6.5 workaround, had to get rid of inheritance 
-// here and in 'iter_fold_if_backward_step', because sometimes it interfered 
-// with the "early template instantiation bug" in _really_ ugly ways
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2<Predicate,State,Iterator>::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp,mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2<Predicate,State,Iterator>::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp,identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-
-// local macros, #undef-ined at the end of the header
-
-#   define AUX_ITER_FOLD_FORWARD_STEP(unused, i, unused2) \
-    typedef iter_fold_if_forward_step< \
-          typename NDNBOOST_PP_CAT(forward_step,i)::iterator \
-        , typename NDNBOOST_PP_CAT(forward_step,i)::state \
-        , ForwardOp \
-        , ForwardPredicate \
-        > NDNBOOST_PP_CAT(forward_step, NDNBOOST_PP_INC(i)); \
-    /**/
-
-#   define AUX_ITER_FOLD_BACKWARD_STEP_FUNC(i) \
-    typedef iter_fold_if_backward_step< \
-          typename NDNBOOST_PP_CAT(forward_step,NDNBOOST_PP_DEC(i))::iterator \
-        , typename NDNBOOST_PP_CAT(backward_step,i)::state \
-        , BackwardOp \
-        , BackwardPredicate \
-        > NDNBOOST_PP_CAT(backward_step,NDNBOOST_PP_DEC(i)); \
-    /**/
-
-#   define AUX_ITER_FOLD_BACKWARD_STEP(unused, i, unused2) \
-    AUX_ITER_FOLD_BACKWARD_STEP_FUNC( \
-        NDNBOOST_PP_SUB_D(1,NDNBOOST_MPL_LIMIT_UNROLLING,i) \
-        ) \
-    /**/
-
-#   define AUX_LAST_FORWARD_STEP \
-    NDNBOOST_PP_CAT(forward_step, NDNBOOST_MPL_LIMIT_UNROLLING) \
-    /**/
-
-#   define AUX_LAST_BACKWARD_STEP \
-    NDNBOOST_PP_CAT(backward_step, NDNBOOST_MPL_LIMIT_UNROLLING) \
-    /**/
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step<Iterator,State> forward_step0;
-    NDNBOOST_PP_REPEAT(
-          NDNBOOST_MPL_LIMIT_UNROLLING
-        , AUX_ITER_FOLD_FORWARD_STEP
-        , unused
-        )
-    
-    typedef typename if_<
-          typename AUX_LAST_FORWARD_STEP::not_last
-        , iter_fold_if_impl<
-              typename AUX_LAST_FORWARD_STEP::iterator
-            , typename AUX_LAST_FORWARD_STEP::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename AUX_LAST_FORWARD_STEP::iterator
-            , typename AUX_LAST_FORWARD_STEP::state
-            >
-        >::type AUX_LAST_BACKWARD_STEP;
-
-    NDNBOOST_PP_REPEAT(
-          NDNBOOST_MPL_LIMIT_UNROLLING
-        , AUX_ITER_FOLD_BACKWARD_STEP
-        , unused
-        )
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename AUX_LAST_BACKWARD_STEP::iterator iterator;
-};
-
-#   undef AUX_LAST_BACKWARD_STEP
-#   undef AUX_LAST_FORWARD_STEP
-#   undef AUX_ITER_FOLD_BACKWARD_STEP
-#   undef AUX_ITER_FOLD_BACKWARD_STEP_FUNC
-#   undef AUX_ITER_FOLD_FORWARD_STEP
-
-}}}
-
-#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
deleted file mode 100644
index 6154127..0000000
--- a/include/ndnboost/mpl/aux_/iter_fold_impl.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#       include <ndnboost/mpl/if.hpp>
-#       include <ndnboost/type_traits/is_same.hpp>
-#   endif
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER iter_fold_impl.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   define AUX778076_FOLD_IMPL_OP(iter) iter
-#   define AUX778076_FOLD_IMPL_NAME_PREFIX iter_fold
-#   include <ndnboost/mpl/aux_/fold_impl_body.hpp>
-
-#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
deleted file mode 100644
index 369425e..0000000
--- a/include/ndnboost/mpl/aux_/lambda_arity_param.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_arity_param.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/ttp.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-#   define NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param)    
-#else
-#   define NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param
-#endif
-
-#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
deleted file mode 100644
index 8da4714..0000000
--- a/include/ndnboost/mpl/aux_/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_no_ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/lambda_fwd.hpp>
-#   include <ndnboost/mpl/bind_fwd.hpp>
-#   include <ndnboost/mpl/protect.hpp>
-#   include <ndnboost/mpl/is_placeholder.hpp>
-#   include <ndnboost/mpl/if.hpp>
-#   include <ndnboost/mpl/identity.hpp>
-#   include <ndnboost/mpl/bool.hpp>
-#   include <ndnboost/mpl/aux_/na_spec.hpp>
-#   include <ndnboost/mpl/aux_/lambda_support.hpp>
-#   include <ndnboost/mpl/aux_/template_arity.hpp>
-#   include <ndnboost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if    !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER lambda_no_ctps.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#   include <ndnboost/mpl/aux_/config/msvc.hpp>
-#   include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define AUX778076_LAMBDA_PARAMS(i_, param) \
-    NDNBOOST_MPL_PP_PARAMS(i_, param) \
-    /**/
-
-namespace aux {
-
-#define n_ NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
-template<
-      NDNBOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< NDNBOOST_MPL_PP_ENUM(n_,false) >
-    : false_
-{
-};
-#undef n_
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-#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
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-#   undef AUX778076_LAMBDA_PARAMS
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // NDNBOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#else
-
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-#   define AUX778076_LAMBDA_TYPEDEF(unused, i_, F) \
-    typedef lambda< \
-          typename F::NDNBOOST_PP_CAT(arg,NDNBOOST_PP_INC(i_)) \
-        , Tag \
-        , false_ \
-        > NDNBOOST_PP_CAT(l,NDNBOOST_PP_INC(i_)); \
-    /**/
-
-#   define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \
-    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) \
-    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 NDNBOOST_PP_CAT(l,NDNBOOST_PP_INC(i_))::type \
-    /**/
-
-template<> struct lambda_impl< int_<i_> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, F)
-        NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
-            > is_le;
-
-        typedef NDNBOOST_PP_CAT(bind,i_)<
-              typename F::rebind
-            NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_RESULT, unused)
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-    
-        typedef typename type_::type type;
-    };
-};
-
-#   undef AUX778076_LAMBDA_RESULT
-#   undef AUX778076_IS_LAMBDA_EXPR
-#   undef AUX778076_IS_LE_TYPEDEF
-#   undef AUX778076_LAMBDA_TYPEDEF
-
-#undef i_
-
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/lambda_spec.hpp b/include/ndnboost/mpl/aux_/lambda_spec.hpp
deleted file mode 100644
index 6d25a35..0000000
--- a/include/ndnboost/mpl/aux_/lambda_spec.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2007
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/void.hpp>
-#include <ndnboost/mpl/lambda_fwd.hpp>
-#include <ndnboost/mpl/int_fwd.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#include <ndnboost/mpl/aux_/lambda_arity_param.hpp>
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-#   define NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) \
-template< \
-      NDNBOOST_MPL_PP_PARAMS(i, typename T) \
-    , typename Tag \
-    > \
-struct lambda< \
-      name< NDNBOOST_MPL_PP_PARAMS(i, T) > \
-    , Tag \
-    NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<i>) \
-    > \
-{ \
-    typedef false_ is_le; \
-    typedef name< NDNBOOST_MPL_PP_PARAMS(i, T) > result_; \
-    typedef result_ type; \
-}; \
-/**/
-
-#else
-
-#   define NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) /**/
-
-#endif
-
-#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
deleted file mode 100644
index aa08f98..0000000
--- a/include/ndnboost/mpl/aux_/lambda_support.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_support.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/
-#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/
-
-#else
-
-#   include <ndnboost/mpl/int_fwd.hpp>
-#   include <ndnboost/mpl/aux_/yes_no.hpp>
-#   include <ndnboost/mpl/aux_/na_fwd.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#   include <ndnboost/mpl/aux_/config/msvc.hpp>
-#   include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#   include <ndnboost/preprocessor/tuple/to_list.hpp>
-#   include <ndnboost/preprocessor/list/for_each_i.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   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 NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 238) 
-
-#   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 \
-        , NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
-        , typedef \
-        , NDNBOOST_PP_TUPLE_TO_LIST(i,params) \
-        ) \
-    struct rebind \
-    { \
-        template< NDNBOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-            : name< NDNBOOST_MPL_PP_PARAMS(i,U) > \
-        { \
-        }; \
-    }; \
-    /**/
-
-#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    /**/
-
-#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 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 \
-        , NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
-        , typedef \
-        , NDNBOOST_PP_TUPLE_TO_LIST(i,params) \
-        ) \
-    struct rebind; \
-/**/
-
-#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-}; \
-template< NDNBOOST_MPL_PP_PARAMS(i,typename T) > \
-struct name<NDNBOOST_MPL_PP_PARAMS(i,T)>::rebind \
-{ \
-    template< NDNBOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-        : name< NDNBOOST_MPL_PP_PARAMS(i,U) > \
-    { \
-    }; \
-/**/
-
-#else // __EDG_VERSION__
-
-namespace ndnboost { namespace mpl { namespace aux {
-template< typename T > struct has_rebind_tag;
-}}}
-
-#   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 \
-        , NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
-        , typedef \
-        , NDNBOOST_PP_TUPLE_TO_LIST(i,params) \
-        ) \
-    friend class NDNBOOST_PP_CAT(name,_rebind); \
-    typedef NDNBOOST_PP_CAT(name,_rebind) rebind; \
-/**/
-
-#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<NDNBOOST_MPL_PP_PARAMS(i,T)>* \
-    ); \
-::ndnboost::mpl::aux::no_tag operator|( \
-      ::ndnboost::mpl::aux::has_rebind_tag<int> \
-    , name< NDNBOOST_MPL_PP_ENUM(i,::ndnboost::mpl::na) >* \
-    ); \
-/**/
-#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<NDNBOOST_MPL_PP_PARAMS(i,T)> >* \
-    ); \
-/**/
-#else
-#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/
-#endif
-
-#   if !defined(__BORLANDC__)
-#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-}; \
-NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-class NDNBOOST_PP_CAT(name,_rebind) \
-{ \
- public: \
-    template< NDNBOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-        : name< NDNBOOST_MPL_PP_PARAMS(i,U) > \
-    { \
-    }; \
-/**/
-#   else
-#   define NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-}; \
-NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-class NDNBOOST_PP_CAT(name,_rebind) \
-{ \
- public: \
-    template< NDNBOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-    { \
-        typedef typename name< NDNBOOST_MPL_PP_PARAMS(i,U) >::type type; \
-    }; \
-/**/
-#   endif // __BORLANDC__
-
-#endif // __EDG_VERSION__
-
-#endif // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#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
deleted file mode 100644
index 6d668cc..0000000
--- a/include/ndnboost/mpl/aux_/largest_int.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: largest_int.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/int.hpp>
-#include <ndnboost/mpl/aux_/config/integral.hpp>
-#include <ndnboost/config.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename T > struct integral_rank;
-
-template<> struct integral_rank<bool>           : int_<1> {};
-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(NDNBOOST_NO_INTRINSIC_WCHAR_T)
-template<> struct integral_rank<wchar_t>        : int_<5> {};
-#endif
-template<> struct integral_rank<short>          : int_<6> {};
-template<> struct integral_rank<unsigned short> : int_<7> {};
-template<> struct integral_rank<int>            : int_<8> {};
-template<> struct integral_rank<unsigned int>   : int_<9> {};
-template<> struct integral_rank<long>           : int_<10> {};
-template<> struct integral_rank<unsigned long>  : int_<11> {};
-
-#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(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-    : if_c< 
-          ( integral_rank<T1>::value >= integral_rank<T2>::value )
-        , T1
-        , T2
-        >
-{
-#else
-{
-    enum { rank1 = integral_rank<T1>::value };
-    enum { rank2 = integral_rank<T2>::value };
-    typedef typename if_c< (rank1 >= rank2),T1,T2 >::type type;
-#endif
-};
-
-}}}
-
-#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
deleted file mode 100644
index 4d06cc5..0000000
--- a/include/ndnboost/mpl/aux_/logical_op.hpp
+++ /dev/null
@@ -1,165 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: logical_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#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>
-#   include <ndnboost/mpl/aux_/lambda_support.hpp>
-#endif
-
-#include <ndnboost/mpl/limits/arity.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/ext_params.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/sub.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#include <ndnboost/preprocessor/dec.hpp>
-#include <ndnboost/preprocessor/inc.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define AUX778076_PARAMS(param, sub) \
-    NDNBOOST_MPL_PP_PARAMS( \
-          NDNBOOST_MPL_PP_SUB(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, sub) \
-        , param \
-        ) \
-    /**/
-
-#   define AUX778076_SHIFTED_PARAMS(param, 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) \
-    NDNBOOST_MPL_PP_ENUM( \
-          NDNBOOST_PP_DEC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
-        , param \
-        ) \
-    /**/
-
-namespace aux {
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< bool C_, AUX778076_PARAMS(typename T, 1) >
-struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)
-    : NDNBOOST_PP_CAT(AUX778076_OP_VALUE1,_)
-{
-};
-
-template< AUX778076_PARAMS(typename T, 1) >
-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)
-        , NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-        >
-{
-};
-
-template<>
-struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)<
-          AUX778076_OP_VALUE2
-        , AUX778076_SPEC_PARAMS(NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_))
-        >
-    : NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-{
-};
-
-#else
-
-template< bool C_ > struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)
-{
-    template< AUX778076_PARAMS(typename T, 1) > struct result_
-        : NDNBOOST_PP_CAT(AUX778076_OP_VALUE1,_)
-    {
-    };
-};
-
-template<> struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
-{
-    template< AUX778076_PARAMS(typename T, 1) > struct result_
-        : 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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-    template<> struct result_<AUX778076_SPEC_PARAMS(NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_))>
-        : NDNBOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-    {
-    };
-};
-#else
-};
-
-template<>
-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 // NDNBOOST_MSVC == 1300
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-template<
-      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(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::NDNBOOST_PP_CAT(AUX778076_OP_NAME,impl)< 
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< AUX778076_SHIFTED_PARAMS(T,0) >
-#endif
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
-        , AUX778076_OP_NAME
-        , (AUX778076_PARAMS(T, 0))
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(
-      2
-    , NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
-    , AUX778076_OP_NAME
-    )
-
-}}
-
-#undef AUX778076_SPEC_PARAMS
-#undef AUX778076_SHIFTED_PARAMS
-#undef AUX778076_PARAMS
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_VALUE1
-#undef AUX778076_OP_VALUE2
diff --git a/include/ndnboost/mpl/aux_/msvc_dtw.hpp b/include/ndnboost/mpl/aux_/msvc_dtw.hpp
deleted file mode 100644
index 99cd062..0000000
--- a/include/ndnboost/mpl/aux_/msvc_dtw.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_dtw.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-
-// local macros, #undef-ined at the end of the header
-#define AUX778076_DTW_PARAMS(param) \
-    NDNBOOST_MPL_PP_PARAMS(AUX778076_MSVC_DTW_ARITY, param) \
-/**/
-
-#define AUX778076_DTW_ORIGINAL_NAME \
-    AUX778076_MSVC_DTW_ORIGINAL_NAME \
-/**/
-
-// warning: not a well-formed C++
-// workaround for MSVC 6.5's "dependent template typedef bug"
-
-template< typename F>
-struct AUX778076_MSVC_DTW_NAME
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-#if AUX778076_MSVC_DTW_ARITY > 0
-        template< AUX778076_DTW_PARAMS(typename P) > struct AUX778076_DTW_ORIGINAL_NAME
-        {
-            typedef int type;
-        };
-    };
-
-    template< AUX778076_DTW_PARAMS(typename T) > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template AUX778076_DTW_ORIGINAL_NAME< AUX778076_DTW_PARAMS(T) >
-    {
-    };
-#else
-        template< typename P = int > struct AUX778076_DTW_ORIGINAL_NAME
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T = int > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template AUX778076_DTW_ORIGINAL_NAME<>
-    {
-    };
-#endif
-};
-
-#undef AUX778076_DTW_ORIGINAL_NAME
-#undef AUX778076_DTW_PARAMS
-
-#undef AUX778076_MSVC_DTW_NAME
-#undef AUX778076_MSVC_DTW_ORIGINAL_NAME
-#undef AUX778076_MSVC_DTW_ARITY
diff --git a/include/ndnboost/mpl/aux_/msvc_eti_base.hpp b/include/ndnboost/mpl/aux_/msvc_eti_base.hpp
deleted file mode 100644
index af5313b..0000000
--- a/include/ndnboost/mpl/aux_/msvc_eti_base.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_eti_base.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/is_msvc_eti_arg.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-#include <ndnboost/mpl/aux_/config/gcc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG)
-
-template< bool > struct msvc_eti_base_impl
-{
-    template< typename T > struct result_
-        : T
-    {
-        typedef T type;
-    };
-};
-
-template<> struct msvc_eti_base_impl<true>
-{
-    template< typename T > struct result_
-    {
-        typedef result_ type;
-        typedef result_ first;
-        typedef result_ second;
-        typedef result_ tag;
-        enum { value = 0 };
-    };
-};
-
-template< typename T > struct msvc_eti_base
-    : msvc_eti_base_impl< is_msvc_eti_arg<T>::value >
-        ::template result_<T>
-{
-};
-
-#else // !NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG
-
-template< typename T > struct msvc_eti_base
-    : T
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MPL_CFG_GCC, NDNBOOST_TESTED_AT(0x0304))
-    msvc_eti_base();
-#endif
-    typedef T type;
-};
-
-#endif 
-
-template<> struct msvc_eti_base<int>
-{
-    typedef msvc_eti_base type;
-    typedef msvc_eti_base first;
-    typedef msvc_eti_base second;
-    typedef msvc_eti_base tag;
-    enum { value = 0 };
-};
-
-}}}
-
-#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
deleted file mode 100644
index b47f7d6..0000000
--- a/include/ndnboost/mpl/aux_/msvc_is_class.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_is_class.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/aux_/type_wrapper.hpp>
-#include <ndnboost/mpl/aux_/yes_no.hpp>
-
-#include <ndnboost/type_traits/is_reference.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename T > struct is_class_helper
-{
-    typedef int (T::* type)();
-};
-
-// MSVC 6.x-specific lightweight 'is_class' implementation; 
-// Distinguishing feature: does not instantiate the type being tested.
-template< typename T >
-struct msvc_is_class_impl
-{
-    template< typename U>
-    static yes_tag  test(type_wrapper<U>*, /*typename*/ is_class_helper<U>::type = 0);
-    static no_tag   test(void const volatile*, ...);
-
-    enum { value = sizeof(test((type_wrapper<T>*)0)) == sizeof(yes_tag) };
-    typedef bool_<value> type;
-};
-
-// agurt, 17/sep/04: have to check for 'is_reference' upfront to avoid ICEs in
-// complex metaprograms
-template< typename T >
-struct msvc_is_class
-    : if_<
-          is_reference<T>
-        , false_
-        , msvc_is_class_impl<T>
-        >::type
-{
-};
-
-}}}
-
-#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
deleted file mode 100644
index b9e2e02..0000000
--- a/include/ndnboost/mpl/aux_/msvc_never_true.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_never_true.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename T >
-struct msvc_never_true
-{
-    enum { value = false };
-};
-
-}}}
-
-#endif // NDNBOOST_MSVC
-
-#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
deleted file mode 100644
index b2e8fc5..0000000
--- a/include/ndnboost/mpl/aux_/msvc_type.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_type.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-#include <ndnboost/mpl/aux_/is_msvc_eti_arg.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG)
-
-template< bool > struct msvc_type_impl
-{
-    template< typename T > struct result_
-    {
-        typedef typename T::type type;
-    };
-};
-
-template<> struct msvc_type_impl<true>
-{
-    template< typename T > struct result_
-    {
-        typedef result_ type;
-    };
-};
-
-template< typename T > struct msvc_type
-    : msvc_type_impl< is_msvc_eti_arg<T>::value >
-        ::template result_<T>
-{
-};
-
-#else // NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG
-
-template< typename T > struct msvc_type 
-{
-    typedef typename T::type type;
-};
-
-template<> struct msvc_type<int>
-{
-    typedef int type;
-};
-
-#endif
-
-}}}
-
-#endif // NDNBOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/na.hpp b/include/ndnboost/mpl/aux_/na.hpp
deleted file mode 100644
index eb9f81e..0000000
--- a/include/ndnboost/mpl/aux_/na.hpp
+++ /dev/null
@@ -1,95 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_NA_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_NA_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: na.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/aux_/na_fwd.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename T >
-struct is_na
-    : false_
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    using false_::value;
-#endif
-};
-
-template<>
-struct is_na<na>
-    : true_
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    using true_::value;
-#endif
-};
-
-template< typename T >
-struct is_not_na
-    : true_
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    using true_::value;
-#endif
-};
-
-template<>
-struct is_not_na<na>
-    : false_
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    using false_::value;
-#endif
-};
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template< typename T, typename U > struct if_na
-{
-    typedef T type;
-};
-
-template< typename U > struct if_na<na,U>
-{
-    typedef U type;
-};
-#else
-template< typename T > struct if_na_impl
-{
-    template< typename U > struct apply
-    {
-        typedef T type;
-    };
-};
-
-template<> struct if_na_impl<na>
-{
-    template< typename U > struct apply
-    {
-        typedef U type;
-    };
-};
-
-template< typename T, typename U > struct if_na
-    : if_na_impl<T>::template apply<U>
-{
-};
-#endif
-
-}}
-
-#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
deleted file mode 100644
index 0075c4e..0000000
--- a/include/ndnboost/mpl/aux_/na_assert.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: na_assert.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/na.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if !NDNBOOST_WORKAROUND(_MSC_FULL_VER, <= 140050601)    \
-    && !NDNBOOST_WORKAROUND(__EDG_VERSION__, <= 243)
-#   include <ndnboost/mpl/assert.hpp>
-#   define NDNBOOST_MPL_AUX_ASSERT_NOT_NA(x) \
-    NDNBOOST_MPL_ASSERT_NOT((ndnboost::mpl::is_na<type>)) \
-/**/
-#else
-#   include <ndnboost/static_assert.hpp>
-#   define NDNBOOST_MPL_AUX_ASSERT_NOT_NA(x) \
-    NDNBOOST_STATIC_ASSERT(!ndnboost::mpl::is_na<x>::value) \
-/**/
-#endif
-
-#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
deleted file mode 100644
index c4de430..0000000
--- a/include/ndnboost/mpl/aux_/na_fwd.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: na_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-// n.a. == not available
-struct na
-{
-    typedef na type;
-    enum { value = 0 };
-};
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(na)
-
-#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
deleted file mode 100644
index ed03f4c..0000000
--- a/include/ndnboost/mpl/aux_/na_spec.hpp
+++ /dev/null
@@ -1,175 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: na_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/lambda_fwd.hpp>
-#   include <ndnboost/mpl/int.hpp>
-#   include <ndnboost/mpl/bool.hpp>
-#   include <ndnboost/mpl/aux_/na.hpp>
-#   include <ndnboost/mpl/aux_/arity.hpp>
-#   include <ndnboost/mpl/aux_/template_arity_fwd.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#include <ndnboost/mpl/aux_/lambda_arity_param.hpp>
-#include <ndnboost/mpl/aux_/config/dtp.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#include <ndnboost/mpl/aux_/config/ttp.hpp>
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-#include <ndnboost/mpl/aux_/config/overload_resolution.hpp>
-
-
-#define NDNBOOST_MPL_AUX_NA_PARAMS(i) \
-    NDNBOOST_MPL_PP_ENUM(i, na) \
-/**/
-
-#if defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define NDNBOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
-namespace aux { \
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > \
-struct arity< \
-          name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
-        , N \
-        > \
-    : int_< NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY > \
-{ \
-}; \
-} \
-/**/
-#else
-#   define NDNBOOST_MPL_AUX_NA_SPEC_ARITY(i, name) /**/
-#endif
-
-#define NDNBOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
-template<> \
-struct name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
-{ \
-    template< \
-          NDNBOOST_MPL_PP_PARAMS(i, typename T) \
-        NDNBOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, typename T, na) \
-        > \
-    struct apply \
-        : name< NDNBOOST_MPL_PP_PARAMS(i, T) > \
-    { \
-    }; \
-}; \
-/**/
-
-#if defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   define NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-template<> \
-struct lambda< \
-      name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
-    , void_ \
-    , true_ \
-    > \
-{ \
-    typedef false_ is_le; \
-    typedef name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > type; \
-}; \
-template<> \
-struct lambda< \
-      name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
-    , void_ \
-    , false_ \
-    > \
-{ \
-    typedef false_ is_le; \
-    typedef name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > type; \
-}; \
-/**/
-#else
-#   define NDNBOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-template< typename Tag > \
-struct lambda< \
-      name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > \
-    , Tag \
-    NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \
-    > \
-{ \
-    typedef false_ is_le; \
-    typedef name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > result_; \
-    typedef name< NDNBOOST_MPL_AUX_NA_PARAMS(i) > type; \
-}; \
-/**/
-#endif
-
-#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< NDNBOOST_MPL_PP_PARAMS(j, typename T) > \
-struct template_arity< \
-          name< NDNBOOST_MPL_PP_PARAMS(j, T) > \
-        > \
-    : int_<j> \
-{ \
-}; \
-\
-template<> \
-struct template_arity< \
-          name< NDNBOOST_MPL_PP_ENUM(i, na) > \
-        > \
-    : int_<-1> \
-{ \
-}; \
-} \
-/**/
-#else
-#   define NDNBOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) /**/
-#endif
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
-#   define NDNBOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
-template<> \
-struct name< NDNBOOST_MPL_PP_ENUM(i, int) > \
-{ \
-    typedef int type; \
-    enum { value = 0 }; \
-}; \
-/**/
-#else
-#   define NDNBOOST_MPL_AUX_NA_SPEC_ETI(i, name) /**/
-#endif
-
-#define NDNBOOST_MPL_AUX_NA_PARAM(param) param = na
-
-#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 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 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 // 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
deleted file mode 100644
index f366a87..0000000
--- a/include/ndnboost/mpl/aux_/nested_type_wknd.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: nested_type_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/gcc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#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
-    : T::type
-{
-};
-}}}
-
-#if NDNBOOST_WORKAROUND(__DMC__, NDNBOOST_TESTED_AT(0x840))
-#   define NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
-    aux::nested_type_wknd<T> \
-/**/
-#else
-#   define NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
-    ::ndnboost::mpl::aux::nested_type_wknd<T> \
-/**/
-#endif
-
-#else // !NDNBOOST_MPL_CFG_GCC et al.
-
-#   define NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type
-
-#endif 
-
-#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
deleted file mode 100644
index 05b64ae..0000000
--- a/include/ndnboost/mpl/aux_/nttp_decl.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: nttp_decl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/nttp.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_NTTP_BUG)
-
-typedef bool        _mpl_nttp_bool;
-typedef int         _mpl_nttp_int;
-typedef unsigned    _mpl_nttp_unsigned;
-typedef long        _mpl_nttp_long;
-
-#   include <ndnboost/preprocessor/cat.hpp>
-#   define NDNBOOST_MPL_AUX_NTTP_DECL(T, x) NDNBOOST_PP_CAT(_mpl_nttp_,T) x /**/
-
-#else
-
-#   define NDNBOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/
-
-#endif
-
-#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
deleted file mode 100644
index 6021fef..0000000
--- a/include/ndnboost/mpl/aux_/numeric_cast_utils.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numeric_cast_utils.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/numeric_cast.hpp>
-#include <ndnboost/mpl/apply_wrap.hpp>
-#include <ndnboost/mpl/aux_/config/forwarding.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    >
-struct cast1st_impl
-{
-    template< typename N1, typename N2 > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : apply_wrap2< 
-              F
-            , typename apply_wrap1< NDNBOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
-            , N2
-            >
-    {
-#else
-    {
-    typedef typename apply_wrap2< 
-              F
-            , typename apply_wrap1< NDNBOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
-            , N2
-            >::type type;
-#endif
-    };
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    >
-struct cast2nd_impl
-{
-    template< typename N1, typename N2 > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : apply_wrap2< 
-              F
-            , N1
-            , typename apply_wrap1< NDNBOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
-            >
-    {
-#else
-    {
-        typedef typename apply_wrap2< 
-              F
-            , N1
-            , typename apply_wrap1< NDNBOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
-            >::type type;
-#endif
-    };
-};
-
-}}}
-
-#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
deleted file mode 100644
index 07bf564..0000000
--- a/include/ndnboost/mpl/aux_/numeric_op.hpp
+++ /dev/null
@@ -1,315 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numeric_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/numeric_cast.hpp>
-#   include <ndnboost/mpl/apply_wrap.hpp>
-#   include <ndnboost/mpl/if.hpp>
-#   include <ndnboost/mpl/tag.hpp>
-#   include <ndnboost/mpl/aux_/numeric_cast_utils.hpp>
-#   include <ndnboost/mpl/aux_/na.hpp>
-#   include <ndnboost/mpl/aux_/na_spec.hpp>
-#   include <ndnboost/mpl/aux_/lambda_support.hpp>
-#   include <ndnboost/mpl/aux_/msvc_eti_base.hpp>
-#   include <ndnboost/mpl/aux_/value_wknd.hpp>
-#   include <ndnboost/mpl/aux_/config/eti.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-#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>
-#   include <ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/ext_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/add.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/sub.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/mpl/aux_/config/eti.hpp>
-#   include <ndnboost/mpl/aux_/config/msvc.hpp>
-#   include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#   include <ndnboost/preprocessor/dec.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-
-#if !defined(AUX778076_OP_ARITY)
-#   define AUX778076_OP_ARITY NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#endif
-
-#if !defined(AUX778076_OP_IMPL_NAME)
-#   define AUX778076_OP_IMPL_NAME NDNBOOST_PP_CAT(AUX778076_OP_PREFIX,_impl)
-#endif
-
-#if !defined(AUX778076_OP_TAG_NAME)
-#   define AUX778076_OP_TAG_NAME NDNBOOST_PP_CAT(AUX778076_OP_PREFIX,_tag)
-#endif
-
-namespace ndnboost { namespace mpl {
-
-template< 
-      typename Tag1
-    , typename Tag2
-#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<
-          ( tag1_ > tag2_ )
-#else
-    >
-struct AUX778076_OP_IMPL_NAME
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< AUX778076_OP_IMPL_NAME<Tag2,Tag2>,Tag1,Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct AUX778076_OP_IMPL_NAME<na,na>
-{
-    template< typename U1, typename U2 > struct apply 
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-
-#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;
-        NDNBOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-
-template< typename Tag > struct AUX778076_OP_IMPL_NAME<Tag,na>
-{
-    template< typename U1, typename U2 > struct apply 
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-#else
-template<> struct AUX778076_OP_IMPL_NAME<na,integral_c_tag>
-{
-    template< typename U1, typename U2 > struct apply 
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-
-template<> struct AUX778076_OP_IMPL_NAME<integral_c_tag,na>
-{
-    template< typename U1, typename U2 > struct apply 
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-#endif
-
-
-#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1300)
-template< typename T > struct AUX778076_OP_TAG_NAME
-    : tag<T,na>
-{
-};
-#else
-template< typename T > struct AUX778076_OP_TAG_NAME
-{
-    typedef typename T::tag type;
-};
-#endif
-
-
-#if AUX778076_OP_ARITY != 2
-
-#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#   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) \
-    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 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)
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          AUX778076_OP_ARITY
-        , AUX778076_OP_NAME
-        , ( NDNBOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
-        )
-};
-
-#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 // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-/// forward declaration
-template< 
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,2);
-
-template<
-      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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-    : aux::msvc_eti_base< typename if_<
-#else
-    : if_<
-#endif
-          is_na<N3>
-        , NDNBOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
-        , AUX778076_OP_NAME<
-              NDNBOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
-            , NDNBOOST_MPL_PP_EXT_PARAMS(3, NDNBOOST_PP_INC(AUX778076_OP_ARITY), N)
-            >
-        >::type
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-    >
-#endif
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          AUX778076_OP_ARITY
-        , AUX778076_OP_NAME
-        , ( NDNBOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
-        )
-};
-
-template< 
-      typename N1
-    , typename N2
-    >
-struct NDNBOOST_PP_CAT(AUX778076_OP_NAME,2)
-
-#endif
-
-#else // AUX778076_OP_ARITY == 2
-
-template< 
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct AUX778076_OP_NAME
-
-#endif
-
-#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
-        >::template apply<N1,N2>::type
-#else
-    : aux::msvc_eti_base< typename apply_wrap2<
-          AUX778076_OP_IMPL_NAME<
-              typename AUX778076_OP_TAG_NAME<N1>::type
-            , typename AUX778076_OP_TAG_NAME<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-#endif
-{
-#if AUX778076_OP_ARITY != 2
-
-#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          AUX778076_OP_ARITY
-        , AUX778076_OP_NAME
-        , ( NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(2, N, na) )
-        )
-#   else
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, NDNBOOST_PP_CAT(AUX778076_OP_NAME,2), (N1, N2))
-#   endif
-
-#else
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, AUX778076_OP_NAME, (N1, N2))
-#endif
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, AUX778076_OP_ARITY, AUX778076_OP_NAME)
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-///// iteration, depth == 1
-
-// For gcc 4.4 compatability, we must include the
-// 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<
-      NDNBOOST_MPL_PP_PARAMS(i_, typename N)
-    >
-struct AUX778076_OP_NAME<NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na)>
-#if i_ != 2
-    : AUX778076_OP_N_CALLS(i_, N)
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          AUX778076_OP_ARITY
-        , AUX778076_OP_NAME
-        , ( NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na) )
-        )
-};
-#endif
-
-#   undef i_
-
-#endif // NDNBOOST_PP_ITERATION_DEPTH()
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/advance_backward.hpp
deleted file mode 100644
index 1e4809c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/advance_forward.hpp
deleted file mode 100644
index f2331de..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/and.hpp
deleted file mode 100644
index 6ecd7fd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 495377c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp
deleted file mode 100644
index 4f671d1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp
deleted file mode 100644
index 0ec6397..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp
+++ /dev/null
@@ -1,461 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      int N, typename F
-    >
-struct apply_wrap_impl0;
-
-template< typename F, bool F_has_apply >
-struct apply_wrap_impl0_bcb {
-    typedef typename F::template apply<na> type;
-};
-
-template< typename F >
-struct apply_wrap_impl0_bcb< F,true > {
-    typedef typename F::apply type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          0
-        , F
-       
-        >
-{
-    typedef apply_wrap_impl0_bcb< F, aux::has_apply<F>::value >::type type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          1
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          2
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          3
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          4
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          5
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-    : apply_wrap_impl0<
-          ::ndnboost::mpl::aux::arity< F,0 >::value
-        , F
-       
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1
-    >
-struct apply_wrap_impl1;
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          1
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          2
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          3
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          4
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          5
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-    : apply_wrap_impl1<
-          ::ndnboost::mpl::aux::arity< F,1 >::value
-        , F
-        , T1
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          2
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          3
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          4
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          5
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-    : apply_wrap_impl2<
-          ::ndnboost::mpl::aux::arity< F,2 >::value
-        , F
-        , T1, T2
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          3
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          4
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          5
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-    : apply_wrap_impl3<
-          ::ndnboost::mpl::aux::arity< F,3 >::value
-        , F
-        , T1, T2, T3
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          4
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          5
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-    : apply_wrap_impl4<
-          ::ndnboost::mpl::aux::arity< F,4 >::value
-        , F
-        , T1, T2, T3, T4
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5<
-          5
-        , F
-        , T1, T2, T3, T4, T5
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4, T5
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-    : apply_wrap_impl5<
-          ::ndnboost::mpl::aux::arity< F,5 >::value
-        , F
-        , T1, T2, T3, T4, T5
-        >::type
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/arg.hpp
deleted file mode 100644
index 29c017a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/arg.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    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
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    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
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    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
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    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
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    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
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 0ba4ca5..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/basic_bind.hpp
+++ /dev/null
@@ -1,300 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
deleted file mode 100644
index 3a5754b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/bind.hpp
+++ /dev/null
@@ -1,397 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp
deleted file mode 100644
index 0e5d554..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/bitand.hpp
deleted file mode 100644
index 6a3f847..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 8082890..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 78cdd23..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/deque.hpp
deleted file mode 100644
index 135d8a1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/divides.hpp
deleted file mode 100644
index 9ec580d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 71159c2..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/fold_impl.hpp
deleted file mode 100644
index 6bb4bee..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/full_lambda.hpp
deleted file mode 100644
index 3471f18..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/full_lambda.hpp
+++ /dev/null
@@ -1,558 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Arity
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag, int_< -1 > >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag, int_<1> >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda< F,Tag1,Arity >
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index b608850..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index f758629..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index ace1894..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/inherit.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1, typename T2, typename T3, typename T4, typename T5
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index 949e316..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp
deleted file mode 100644
index 1155da5..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp
deleted file mode 100644
index 5287a1f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/less.hpp
deleted file mode 100644
index df9a10b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 1e4726f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/list.hpp
deleted file mode 100644
index 78edbcc..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/list_c.hpp
deleted file mode 100644
index 21bb36b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/map.hpp
deleted file mode 100644
index 56f8964..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/minus.hpp
deleted file mode 100644
index 6006e26..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 2009f89..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 5406a42..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 6bc19d0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index c31761d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index 94bd633..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/quote.hpp
deleted file mode 100644
index 282b931..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/quote.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-
-{
-    typedef typename T::type type;
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-    {
-        typedef typename quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >::type type;
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-    {
-        typedef typename quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >::type type;
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-    {
-        typedef typename quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >::type type;
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-    {
-        typedef typename quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >::type type;
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-    {
-        typedef typename quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >::type type;
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp
deleted file mode 100644
index a6a438b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 8c9809c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/set.hpp
deleted file mode 100644
index ebc44f9..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/set_c.hpp
deleted file mode 100644
index d7249b6..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_left.hpp
deleted file mode 100644
index ec50521..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( 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
deleted file mode 100644
index 88db931..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/template_arity.hpp
deleted file mode 100644
index ad9f0f1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::ndnboost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/times.hpp
deleted file mode 100644
index 640c083..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index bd0c328..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/unpack_args.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-    {
-        typedef typename aux::unpack_args_impl<
-              size<Args>::value
-            , F
-            , Args
-            >::type type;
-
-    };
-};
-
-NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/vector.hpp
deleted file mode 100644
index 19ab860..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc/vector_c.hpp
deleted file mode 100644
index 807bfd8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp
deleted file mode 100644
index 0e0c828..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp
deleted file mode 100644
index b3a5afd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/and.hpp
deleted file mode 100644
index 5c1b95a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 80f72b0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp
deleted file mode 100644
index bccc94e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp
deleted file mode 100644
index 4d03907..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp
+++ /dev/null
@@ -1,456 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      int N, typename F
-    >
-struct apply_wrap_impl0;
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          0
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-/// since the defaults are "lost", we have to pass *something* even for nullary
-/// metafunction classes
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          1
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          2
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          3
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          4
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          5
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-    : apply_wrap_impl0<
-          ::ndnboost::mpl::aux::arity< F,0 >::value
-        , F
-       
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1
-    >
-struct apply_wrap_impl1;
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          1
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          2
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          3
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          4
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          5
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-    : apply_wrap_impl1<
-          ::ndnboost::mpl::aux::arity< F,1 >::value
-        , F
-        , T1
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          2
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          3
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          4
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          5
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-    : apply_wrap_impl2<
-          ::ndnboost::mpl::aux::arity< F,2 >::value
-        , F
-        , T1, T2
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          3
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          4
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          5
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-    : apply_wrap_impl3<
-          ::ndnboost::mpl::aux::arity< F,3 >::value
-        , F
-        , T1, T2, T3
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          4
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          5
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-    : apply_wrap_impl4<
-          ::ndnboost::mpl::aux::arity< F,4 >::value
-        , F
-        , T1, T2, T3, T4
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5<
-          5
-        , F
-        , T1, T2, T3, T4, T5
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4, T5
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-    : apply_wrap_impl5<
-          ::ndnboost::mpl::aux::arity< F,5 >::value
-        , F
-        , T1, T2, T3, T4, T5
-        >::type
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/arg.hpp
deleted file mode 100644
index 154476a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 8519929..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp
+++ /dev/null
@@ -1,306 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
deleted file mode 100644
index c5396db..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bind.hpp
+++ /dev/null
@@ -1,403 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp
deleted file mode 100644
index bbd1b6d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitand.hpp
deleted file mode 100644
index cd8cc5c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index e98247b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 1f276b7..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/deque.hpp
deleted file mode 100644
index 4631f66..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/divides.hpp
deleted file mode 100644
index 1bc4433..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 6455885..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp
deleted file mode 100644
index 494cd41..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp
deleted file mode 100644
index 3acbd9f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp
+++ /dev/null
@@ -1,558 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Arity
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag, int_< -1 > >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag, int_<1> >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda< F,Tag1,Arity >
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index a7eb4a4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 35bd413..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index a97f313..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index a74bd83..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp
deleted file mode 100644
index cc08b30..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp
deleted file mode 100644
index 45f5f6b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/less.hpp
deleted file mode 100644
index a4b8eeb..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 5cd141b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/list.hpp
deleted file mode 100644
index 8cc8c46..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/list_c.hpp
deleted file mode 100644
index e43f38f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/map.hpp
deleted file mode 100644
index 7974f28..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/minus.hpp
deleted file mode 100644
index 454fda8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 3e89691..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 6de1e16..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index cae8edf..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 3a28c09..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index 5d8b2cd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/quote.hpp
deleted file mode 100644
index 3e77fba..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/quote.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp
deleted file mode 100644
index 2c6c173..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 57cc688..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/set.hpp
deleted file mode 100644
index 4c4ca11..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/set_c.hpp
deleted file mode 100644
index bef2fde..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_left.hpp
deleted file mode 100644
index 2964fb8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( 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
deleted file mode 100644
index 57a5fe0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/template_arity.hpp
deleted file mode 100644
index f50578f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::ndnboost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/times.hpp
deleted file mode 100644
index 9a55fed..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 19049ea..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-    {
-        typedef typename aux::unpack_args_impl<
-              size<Args>::value
-            , F
-            , Args
-            >::type type;
-
-    };
-};
-
-NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/vector.hpp
deleted file mode 100644
index df67589..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc551/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc551/vector_c.hpp
deleted file mode 100644
index e2fbdb4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc551/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp
deleted file mode 100644
index 1e4809c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp
deleted file mode 100644
index f2331de..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/and.hpp
deleted file mode 100644
index 6ecd7fd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 495377c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp
deleted file mode 100644
index 4f671d1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp
deleted file mode 100644
index 28aba33..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp
+++ /dev/null
@@ -1,456 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      int N, typename F
-    >
-struct apply_wrap_impl0;
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          0
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-/// since the defaults are "lost", we have to pass *something* even for nullary
-/// metafunction classes
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          1
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          2
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          3
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          4
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          5
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-    : apply_wrap_impl0<
-          ::ndnboost::mpl::aux::arity< F,0 >::value
-        , F
-       
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1
-    >
-struct apply_wrap_impl1;
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          1
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          2
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          3
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          4
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          5
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-    : apply_wrap_impl1<
-          ::ndnboost::mpl::aux::arity< F,1 >::value
-        , F
-        , T1
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          2
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          3
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          4
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          5
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-    : apply_wrap_impl2<
-          ::ndnboost::mpl::aux::arity< F,2 >::value
-        , F
-        , T1, T2
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          3
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          4
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          5
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-    : apply_wrap_impl3<
-          ::ndnboost::mpl::aux::arity< F,3 >::value
-        , F
-        , T1, T2, T3
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          4
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          5
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-    : apply_wrap_impl4<
-          ::ndnboost::mpl::aux::arity< F,4 >::value
-        , F
-        , T1, T2, T3, T4
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5<
-          5
-        , F
-        , T1, T2, T3, T4, T5
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4, T5
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-    : apply_wrap_impl5<
-          ::ndnboost::mpl::aux::arity< F,5 >::value
-        , F
-        , T1, T2, T3, T4, T5
-        >::type
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp
deleted file mode 100644
index 29c017a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    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
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    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
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    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
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    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
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    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
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 0ba4ca5..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp
+++ /dev/null
@@ -1,300 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
deleted file mode 100644
index 3a5754b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp
+++ /dev/null
@@ -1,397 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp
deleted file mode 100644
index 0e5d554..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp
deleted file mode 100644
index 6a3f847..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 8082890..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 78cdd23..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp
deleted file mode 100644
index 135d8a1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp
deleted file mode 100644
index 9ec580d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 71159c2..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp
deleted file mode 100644
index 6bb4bee..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp
deleted file mode 100644
index 3471f18..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp
+++ /dev/null
@@ -1,558 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Arity
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag, int_< -1 > >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag, int_<1> >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda< F,Tag1,Arity >
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index b608850..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index f758629..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index ace1894..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1, typename T2, typename T3, typename T4, typename T5
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index 949e316..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp
deleted file mode 100644
index 1155da5..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
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
deleted file mode 100644
index 5287a1f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
deleted file mode 100644
index df9a10b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 1e4726f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/list.hpp
deleted file mode 100644
index 78edbcc..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp
deleted file mode 100644
index 21bb36b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/map.hpp
deleted file mode 100644
index 56f8964..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
deleted file mode 100644
index 6006e26..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 2009f89..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 5406a42..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 6bc19d0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index c31761d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index 94bd633..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp
deleted file mode 100644
index 7f9d18bc..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "quote.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp
deleted file mode 100644
index a6a438b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 8c9809c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/set.hpp
deleted file mode 100644
index ebc44f9..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp
deleted file mode 100644
index d7249b6..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
deleted file mode 100644
index ec50521..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( 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
deleted file mode 100644
index 88db931..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp
deleted file mode 100644
index ad9f0f1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::ndnboost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/times.hpp
deleted file mode 100644
index 640c083..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index bd0c328..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-    {
-        typedef typename aux::unpack_args_impl<
-              size<Args>::value
-            , F
-            , Args
-            >::type type;
-
-    };
-};
-
-NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp
deleted file mode 100644
index 19ab860..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp
deleted file mode 100644
index 807bfd8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/advance_backward.hpp
deleted file mode 100644
index 0e0c828..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/advance_forward.hpp
deleted file mode 100644
index b3a5afd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/and.hpp
deleted file mode 100644
index 5c1b95a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 80f72b0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp
deleted file mode 100644
index bccc94e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp
deleted file mode 100644
index ec90202..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
-    : F::apply
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< 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
deleted file mode 100644
index 154476a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 17ef3ff..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/basic_bind.hpp
+++ /dev/null
@@ -1,406 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F, int dummy_
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, int dummy_
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1, int dummy_
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, int dummy_
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, int dummy_
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, int dummy_
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, int dummy_
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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_
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , int dummy_
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    , int dummy_
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/bind.hpp
deleted file mode 100644
index c56f63d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/bind.hpp
+++ /dev/null
@@ -1,515 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F, int dummy_
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, int dummy_
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1, int dummy_
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, int dummy_
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, int dummy_
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, int dummy_
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, int dummy_
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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_
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , int dummy_
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    , int dummy_
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp
deleted file mode 100644
index e2eeeb9..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, int dummy_ = 0
-    >
-struct bind;
-
-template<
-      typename F, int dummy_ = 0
-    >
-struct bind0;
-
-template<
-      typename F, typename T1, int dummy_ = 0
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2, int dummy_ = 0
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3, int dummy_ = 0
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , int dummy_ = 0
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_ = 0
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/bitand.hpp
deleted file mode 100644
index cd8cc5c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index e98247b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 1f276b7..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/deque.hpp
deleted file mode 100644
index 4631f66..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/divides.hpp
deleted file mode 100644
index 1bc4433..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 6455885..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/fold_impl.hpp
deleted file mode 100644
index 494cd41..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/full_lambda.hpp
deleted file mode 100644
index ef1eb54..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/full_lambda.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-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
deleted file mode 100644
index a7eb4a4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 35bd413..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index a97f313..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index a74bd83..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp
deleted file mode 100644
index cc08b30..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp
deleted file mode 100644
index 45f5f6b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/less.hpp
deleted file mode 100644
index a4b8eeb..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 5cd141b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/list.hpp
deleted file mode 100644
index 8cc8c46..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/list_c.hpp
deleted file mode 100644
index e43f38f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/map.hpp
deleted file mode 100644
index 7974f28..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/minus.hpp
deleted file mode 100644
index 454fda8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 3e89691..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 6de1e16..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index cae8edf..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 3a28c09..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index 5d8b2cd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/quote.hpp
deleted file mode 100644
index 8ce79ed..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/quote.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-    : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >
-
-    {
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp
deleted file mode 100644
index 7d3ad75..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 33bf508..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/set.hpp
deleted file mode 100644
index 4c4ca11..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/set_c.hpp
deleted file mode 100644
index bef2fde..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_left.hpp
deleted file mode 100644
index 2964fb8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( 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
deleted file mode 100644
index 57a5fe0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/template_arity.hpp
deleted file mode 100644
index 6cb42ae..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/template_arity.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/times.hpp
deleted file mode 100644
index 9a55fed..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index aec31af..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/vector.hpp
deleted file mode 100644
index df67589..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/dmc/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/dmc/vector_c.hpp
deleted file mode 100644
index e2fbdb4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/dmc/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/advance_backward.hpp
deleted file mode 100644
index 0e0c828..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/advance_forward.hpp
deleted file mode 100644
index b3a5afd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/and.hpp
deleted file mode 100644
index 5c1b95a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 80f72b0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp
deleted file mode 100644
index bccc94e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp
deleted file mode 100644
index ec90202..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
-    : F::apply
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< 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
deleted file mode 100644
index 154476a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 8e0bf73..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/basic_bind.hpp
+++ /dev/null
@@ -1,440 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/bind.hpp
deleted file mode 100644
index 45cfc67..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/bind.hpp
+++ /dev/null
@@ -1,561 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp
deleted file mode 100644
index 9a046ee..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/bitand.hpp
deleted file mode 100644
index cd8cc5c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index e98247b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 1f276b7..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/deque.hpp
deleted file mode 100644
index 4631f66..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/divides.hpp
deleted file mode 100644
index 1bc4433..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 6455885..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/fold_impl.hpp
deleted file mode 100644
index 494cd41..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/full_lambda.hpp
deleted file mode 100644
index 3acbd9f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/full_lambda.hpp
+++ /dev/null
@@ -1,558 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Arity
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag, int_< -1 > >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag, int_<1> >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda< F,Tag1,Arity >
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index a7eb4a4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 35bd413..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index a97f313..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index a74bd83..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp
deleted file mode 100644
index cc08b30..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp
deleted file mode 100644
index 45f5f6b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/less.hpp
deleted file mode 100644
index a4b8eeb..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 5cd141b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/list.hpp
deleted file mode 100644
index 8cc8c46..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/list_c.hpp
deleted file mode 100644
index e43f38f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/map.hpp
deleted file mode 100644
index 7974f28..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/minus.hpp
deleted file mode 100644
index 454fda8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 3e89691..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 6de1e16..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index cae8edf..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 3a28c09..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index 5d8b2cd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/quote.hpp
deleted file mode 100644
index 10bb3a4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/quote.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-{
-    typedef typename T::type type;
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >
-
-    {
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp
deleted file mode 100644
index 7d3ad75..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 33bf508..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/set.hpp
deleted file mode 100644
index 4c4ca11..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/set_c.hpp
deleted file mode 100644
index bef2fde..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_left.hpp
deleted file mode 100644
index 2964fb8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( 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
deleted file mode 100644
index 57a5fe0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( 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
deleted file mode 100644
index 32ba0ac..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/template_arity.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// *Preprocessed* version of the main "template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-template< int N > struct arity_tag
-{
-    typedef char (&type)[N + 1];
-};
-
-template<
-      int C1, int C2, int C3, int C4, int C5, int C6
-    >
-struct max_arity
-{
-    NDNBOOST_STATIC_CONSTANT(int, value =
-          ( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) )
-        );
-};
-
-arity_tag<0>::type arity_helper(...);
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    >
-typename arity_tag<1>::type
-arity_helper(type_wrapper< F<T1> >, arity_tag<1>);
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    >
-typename arity_tag<2>::type
-arity_helper(type_wrapper< F< T1,T2 > >, arity_tag<2>);
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    >
-typename arity_tag<3>::type
-arity_helper(type_wrapper< F< T1,T2,T3 > >, arity_tag<3>);
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    >
-typename arity_tag<4>::type
-arity_helper(type_wrapper< F< T1,T2,T3,T4 > >, arity_tag<4>);
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    >
-typename arity_tag<5>::type
-arity_helper(type_wrapper< F< T1,T2,T3,T4,T5 > >, arity_tag<5>);
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5, typename P6
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6
-    >
-typename arity_tag<6>::type
-arity_helper(type_wrapper< F< T1,T2,T3,T4,T5,T6 > >, arity_tag<6>);
-template< typename F, int N >
-struct template_arity_impl
-{
-    NDNBOOST_STATIC_CONSTANT(int, value =
-          sizeof(::ndnboost::mpl::aux::arity_helper(type_wrapper<F>(), arity_tag<N>())) - 1
-        );
-};
-
-template< typename F >
-struct template_arity
-{
-    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
deleted file mode 100644
index 9a55fed..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index aec31af..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/vector.hpp
deleted file mode 100644
index df67589..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/gcc/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/gcc/vector_c.hpp
deleted file mode 100644
index e2fbdb4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/gcc/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp
deleted file mode 100644
index 97612a1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp
deleted file mode 100644
index 8852074..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/and.hpp
deleted file mode 100644
index d69b940..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/and.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct and_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : false_
-    {
-    };
-};
-
-template<> struct and_impl<true>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : and_impl<
-              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,true_ >
-    {
-    };
-};
-
-template<>
-struct and_impl<true>
-    ::result_< true_,true_,true_,true_ >
-        : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index ed5c472..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-{
-    typedef typename apply_wrap0<
-          typename lambda<F>::type
-       
-        >::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply0<int>
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-{
-    typedef typename apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply1< int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-{
-    typedef typename apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply2< int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-{
-    typedef typename apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply3< int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-{
-    typedef typename apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply4< int,int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-{
-    typedef typename apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply5< int,int,int,int,int,int >
-{
-    typedef int type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp
deleted file mode 100644
index f2a9a76..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp
deleted file mode 100644
index 79157d1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp
+++ /dev/null
@@ -1,247 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template< typename F>
-struct msvc_apply0
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template< typename P  = int > struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T  = int > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply<>
-    {
-    };
-
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-{
-    typedef typename msvc_apply0<F>::template result_<
-         
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap0<int>
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply1
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template< typename P1 > struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T1 > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply<T1>
-    {
-    };
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-{
-    typedef typename msvc_apply1<F>::template result_<
-          T1
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap1< int,int >
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply2
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template< typename P1, typename P2 > struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T1, typename T2 > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply< T1,T2 >
-    {
-    };
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-{
-    typedef typename msvc_apply2<F>::template result_<
-          T1, T2
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap2< int,int,int >
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply3
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template< typename P1, typename P2, typename P3 > struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T1, typename T2, typename T3 > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply< T1,T2,T3 >
-    {
-    };
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-{
-    typedef typename msvc_apply3<F>::template result_<
-          T1, T2, T3
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap3< int,int,int,int >
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply4
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template<
-              typename P1, typename P2, typename P3, typename P4
-            >
-        struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply< T1,T2,T3,T4 >
-    {
-    };
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-{
-    typedef typename msvc_apply4<F>::template result_<
-          T1, T2, T3, T4
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap4< int,int,int,int,int >
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply5
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template<
-              typename P1, typename P2, typename P3, typename P4
-            , typename P5
-            >
-        struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-{
-    typedef typename msvc_apply5<F>::template result_<
-          T1, T2, T3, T4, T5
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap5< int,int,int,int,int,int >
-{
-    typedef int type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/arg.hpp
deleted file mode 100644
index 154476a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 8494a26..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::ndnboost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-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
deleted file mode 100644
index 92a2b27..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bind.hpp
+++ /dev/null
@@ -1,432 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
-    template< typename Arg > struct result_
-    {
-        typedef Arg next;
-        typedef T type;
-    };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg< -1 > >
-{
-    template< typename Arg > struct result_
-    {
-        typedef typename next<Arg>::type next;
-        typedef Arg type;
-    };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
-    : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::ndnboost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-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_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp
deleted file mode 100644
index bbd1b6d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitand.hpp
deleted file mode 100644
index f3eb147..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitand.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitand_2;
-
-template<
-      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_
-
-    : if_<
-
-          is_na<N3>
-        , bitand_2< N1,N2 >
-        , bitand_<
-              bitand_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitand_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitand_impl<
-              typename bitand_tag<N1>::type
-            , typename bitand_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitand_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitand_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitor.hpp
deleted file mode 100644
index 63f5a00..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitor.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitor_2;
-
-template<
-      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_
-
-    : if_<
-
-          is_na<N3>
-        , bitor_2< N1,N2 >
-        , bitor_<
-              bitor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitor_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitor_impl<
-              typename bitor_tag<N1>::type
-            , typename bitor_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitor_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitxor.hpp
deleted file mode 100644
index 08cf7c5..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/bitxor.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitxor_2;
-
-template<
-      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_
-
-    : if_<
-
-          is_na<N3>
-        , bitxor_2< N1,N2 >
-        , bitxor_<
-              bitxor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitxor_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitxor_impl<
-              typename bitxor_tag<N1>::type
-            , typename bitxor_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitxor_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitxor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/deque.hpp
deleted file mode 100644
index ed97d82..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/deque.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct deque_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct deque_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_deque_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_deque_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 deque_count_args
-{
-    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 
-        + is_deque_arg<T7>::value + is_deque_arg<T8>::value 
-        + is_deque_arg<T9>::value + is_deque_arg<T10>::value 
-        + is_deque_arg<T11>::value + is_deque_arg<T12>::value 
-        + is_deque_arg<T13>::value + is_deque_arg<T14>::value 
-        + is_deque_arg<T15>::value + is_deque_arg<T16>::value 
-        + is_deque_arg<T17>::value + is_deque_arg<T18>::value 
-        + is_deque_arg<T19>::value + is_deque_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque_impl
-{
-    typedef aux::deque_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::deque_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque
-    : aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/divides.hpp
deleted file mode 100644
index b6631ad..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/divides.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct divides2;
-
-template<
-      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
-
-    : if_<
-
-          is_na<N3>
-        , divides2< N1,N2 >
-        , divides<
-              divides2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct divides2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          divides_impl<
-              typename divides_tag<N1>::type
-            , typename divides_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct divides_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::divides_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/equal_to.hpp
deleted file mode 100644
index 2fa2cae..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/equal_to.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-    : aux::msvc_eti_base< typename apply_wrap2<
-          equal_to_impl<
-              typename equal_to_tag<N1>::type
-            , typename equal_to_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp
deleted file mode 100644
index c8ca0c7..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp
+++ /dev/null
@@ -1,293 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template< int N >
-struct fold_chunk;
-
-template<> struct fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template< int N >
-struct fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , fold_null_step< Last,State >
-            , fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step
-{
-    typedef fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-    : fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp
deleted file mode 100644
index 7da971e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index 90834cf..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-    : aux::msvc_eti_base< typename apply_wrap2<
-          greater_impl<
-              typename greater_tag<N1>::type
-            , typename greater_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index b7ca0c0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-    : aux::msvc_eti_base< typename apply_wrap2<
-          greater_equal_impl<
-              typename greater_equal_tag<N1>::type
-            , typename greater_equal_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index 7cb0a48..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/inherit.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1, T2
-    {
-        typedef Derived type_;
-    };
-};
-
-template<>
-struct inherit2_impl< false,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1
-    {
-        typedef T1 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,false >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T2
-    {
-        typedef T2 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-    {
-        typedef T1 type_;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : aux::inherit2_impl<
-          is_empty_base<T1>::value
-        , is_empty_base<T2>::value
-        >::template result_< inherit2< T1,T2 >,T1, T2 >
-{
-    typedef typename inherit2::type_ type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index a74bd83..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp
deleted file mode 100644
index 4753170..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp
+++ /dev/null
@@ -1,293 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template< int N >
-struct iter_fold_chunk;
-
-template<> struct iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template< int N >
-struct iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef iter_fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , iter_fold_null_step< Last,State >
-            , iter_fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step
-{
-    typedef iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-    : iter_fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp
deleted file mode 100644
index 45f5f6b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/less.hpp
deleted file mode 100644
index 05b6d10..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/less.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-    : aux::msvc_eti_base< typename apply_wrap2<
-          less_impl<
-              typename less_tag<N1>::type
-            , typename less_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index 5ac2a3a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/less_equal.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-    : aux::msvc_eti_base< typename apply_wrap2<
-          less_equal_impl<
-              typename less_equal_tag<N1>::type
-            , typename less_equal_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index 2b19e60..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/list.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef list0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_list_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 list_count_args
-{
-    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 
-        + is_list_arg<T7>::value + is_list_arg<T8>::value 
-        + is_list_arg<T9>::value + is_list_arg<T10>::value 
-        + is_list_arg<T11>::value + is_list_arg<T12>::value 
-        + is_list_arg<T13>::value + is_list_arg<T14>::value 
-        + is_list_arg<T15>::value + is_list_arg<T16>::value 
-        + is_list_arg<T17>::value + is_list_arg<T18>::value 
-        + is_list_arg<T19>::value + is_list_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list_impl
-{
-    typedef aux::list_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::list_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list
-    : aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/list_c.hpp
deleted file mode 100644
index 0ed7f7e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/list_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_list_c_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_c_arg<LONG_MAX>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct list_c_count_args
-{
-    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 
-        + is_list_c_arg<C7>::value + is_list_c_arg<C8>::value 
-        + is_list_c_arg<C9>::value + is_list_c_arg<C10>::value 
-        + is_list_c_arg<C11>::value + is_list_c_arg<C12>::value 
-        + is_list_c_arg<C13>::value + is_list_c_arg<C14>::value 
-        + is_list_c_arg<C15>::value + is_list_c_arg<C16>::value 
-        + is_list_c_arg<C17>::value + is_list_c_arg<C18>::value 
-        + is_list_c_arg<C19>::value + is_list_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c_impl
-{
-    typedef aux::list_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::list_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c
-    : aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/map.hpp
deleted file mode 100644
index 75174c8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/map.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct map_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct map_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef map0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_map_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_map_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 map_count_args
-{
-    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 
-        + is_map_arg<T7>::value + is_map_arg<T8>::value 
-        + is_map_arg<T9>::value + is_map_arg<T10>::value 
-        + is_map_arg<T11>::value + is_map_arg<T12>::value 
-        + is_map_arg<T13>::value + is_map_arg<T14>::value 
-        + is_map_arg<T15>::value + is_map_arg<T16>::value 
-        + is_map_arg<T17>::value + is_map_arg<T18>::value 
-        + is_map_arg<T19>::value + is_map_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map_impl
-{
-    typedef aux::map_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::map_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map
-    : aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/minus.hpp
deleted file mode 100644
index 9e3a907..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/minus.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct minus2;
-
-template<
-      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
-
-    : if_<
-
-          is_na<N3>
-        , minus2< N1,N2 >
-        , minus<
-              minus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct minus2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          minus_impl<
-              typename minus_tag<N1>::type
-            , typename minus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct minus_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::minus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/modulus.hpp
deleted file mode 100644
index 0185ebf..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/modulus.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-    : aux::msvc_eti_base< typename apply_wrap2<
-          modulus_impl<
-              typename modulus_tag<N1>::type
-            , typename modulus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct modulus_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::modulus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::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
deleted file mode 100644
index 77b0a13..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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<
-          not_equal_to_impl<
-              typename not_equal_to_tag<N1>::type
-            , typename not_equal_to_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index 7123b8d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/or.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct or_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : true_
-    {
-    };
-};
-
-template<> struct or_impl<false>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : or_impl<
-              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,false_ >
-    {
-    };
-};
-
-template<>
-struct or_impl<false>
-    ::result_< false_,false_,false_,false_ >
-        : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 3a28c09..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index 697794a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/plus.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct plus2;
-
-template<
-      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
-
-    : if_<
-
-          is_na<N3>
-        , plus2< N1,N2 >
-        , plus<
-              plus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct plus2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          plus_impl<
-              typename plus_tag<N1>::type
-            , typename plus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct plus_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::plus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/quote.hpp
deleted file mode 100644
index 3e77fba..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/quote.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp
deleted file mode 100644
index 43e3cdd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,343 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 94417f4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,343 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/set.hpp
deleted file mode 100644
index 484d53e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/set.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef set0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_set_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 set_count_args
-{
-    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 
-        + is_set_arg<T7>::value + is_set_arg<T8>::value 
-        + is_set_arg<T9>::value + is_set_arg<T10>::value 
-        + is_set_arg<T11>::value + is_set_arg<T12>::value 
-        + is_set_arg<T13>::value + is_set_arg<T14>::value 
-        + is_set_arg<T15>::value + is_set_arg<T16>::value 
-        + is_set_arg<T17>::value + is_set_arg<T18>::value 
-        + is_set_arg<T19>::value + is_set_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set_impl
-{
-    typedef aux::set_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::set_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set
-    : aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/set_c.hpp
deleted file mode 100644
index 3b5f2ab..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/set_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_set_c_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_c_arg<LONG_MAX>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct set_c_count_args
-{
-    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 
-        + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value 
-        + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value 
-        + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value 
-        + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value 
-        + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value 
-        + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value 
-        + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c_impl
-{
-    typedef aux::set_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::set_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c
-    : aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_left.hpp
deleted file mode 100644
index e81999a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_left.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-    : aux::msvc_eti_base< typename apply_wrap2<
-          shift_left_impl<
-              typename shift_left_tag<N1>::type
-            , typename shift_left_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_left_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n << s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_left_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_right.hpp
deleted file mode 100644
index 3db60a6..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/shift_right.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-    : aux::msvc_eti_base< typename apply_wrap2<
-          shift_right_impl<
-              typename shift_right_tag<N1>::type
-            , typename shift_right_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_right_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n >> s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_right_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/template_arity.hpp
deleted file mode 100644
index d31dba4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/template_arity.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::ndnboost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-template<>
-struct template_arity<int>
-    : mpl::int_< -1 >
-{
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/times.hpp
deleted file mode 100644
index dbecb60..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/times.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct times2;
-
-template<
-      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
-
-    : if_<
-
-          is_na<N3>
-        , times2< N1,N2 >
-        , times<
-              times2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct times2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          times_impl<
-              typename times_tag<N1>::type
-            , typename times_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct times_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::times_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp
deleted file mode 100644
index dcdb46e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
-    template< typename F, typename Args > struct apply;
-};
-
-template<> struct unpack_args_impl<0>
-{
-    template< typename F, typename Args > struct apply
-        : apply0<
-              F
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<1>
-{
-    template< typename F, typename Args > struct apply
-        : apply1<
-              F
-            , typename at_c< Args,0 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<2>
-{
-    template< typename F, typename Args > struct apply
-        : apply2<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<3>
-{
-    template< typename F, typename Args > struct apply
-        : apply3<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<4>
-{
-    template< typename F, typename Args > struct apply
-        : apply4<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<5>
-{
-    template< typename F, typename Args > struct apply
-        : apply5<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            , typename at_c< Args,4 >::type
-            >
-    {
-    };
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value >
-            ::template apply< F,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
deleted file mode 100644
index acb6704..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_vector_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 vector_count_args
-{
-    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 
-        + is_vector_arg<T7>::value + is_vector_arg<T8>::value 
-        + is_vector_arg<T9>::value + is_vector_arg<T10>::value 
-        + is_vector_arg<T11>::value + is_vector_arg<T12>::value 
-        + is_vector_arg<T13>::value + is_vector_arg<T14>::value 
-        + is_vector_arg<T15>::value + is_vector_arg<T16>::value 
-        + is_vector_arg<T17>::value + is_vector_arg<T18>::value 
-        + is_vector_arg<T19>::value + is_vector_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector_impl
-{
-    typedef aux::vector_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::vector_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector
-    : aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector_c.hpp
deleted file mode 100644
index c654c6f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc60/vector_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector1_c<
-              T, T(C0)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector2_c<
-              T, T(C0), T(C1)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector3_c<
-              T, T(C0), T(C1), T(C2)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector4_c<
-              T, T(C0), T(C1), T(C2), T(C3)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector5_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector6_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector7_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector8_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector9_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector10_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector11_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector12_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector13_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector14_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector15_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector16_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector17_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector18_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector19_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector20_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_vector_c_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_c_arg<LONG_MAX>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct vector_c_count_args
-{
-    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 
-        + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value 
-        + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value 
-        + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value 
-        + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value 
-        + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value 
-        + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value 
-        + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c_impl
-{
-    typedef aux::vector_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::vector_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c
-    : aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp
deleted file mode 100644
index 0e0c828..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp
deleted file mode 100644
index b3a5afd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/and.hpp
deleted file mode 100644
index 5da6f33..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/and.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct and_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : false_
-    {
-    };
-};
-
-template<> struct and_impl<true>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : and_impl<
-              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,true_ >
-    {
-    };
-
-    template<> struct result_< true_,true_,true_,true_ >
-        : true_
-    {
-    };
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index b81fddc..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply.hpp
+++ /dev/null
@@ -1,160 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply0<int>
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply1< int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply2< int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply3< int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply4< int,int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply5< int,int,int,int,int,int >
-{
-    typedef int type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp
deleted file mode 100644
index f2a9a76..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp
deleted file mode 100644
index 4fd2f04..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-{
-    typedef typename F::template apply<
-        
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap0<int>
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-{
-    typedef typename F::template apply<
-         T1
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap1< int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-{
-    typedef typename F::template apply<
-         T1, T2
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap2< int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-{
-    typedef typename F::template apply<
-         T1, T2, T3
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap3< int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-{
-    typedef typename F::template apply<
-         T1, T2, T3, T4
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap4< int,int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-{
-    typedef typename F::template apply<
-         T1, T2, T3, T4, T5
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap5< int,int,int,int,int,int >
-{
-    typedef int type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/arg.hpp
deleted file mode 100644
index 154476a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 8494a26..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::ndnboost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-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
deleted file mode 100644
index 92a2b27..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bind.hpp
+++ /dev/null
@@ -1,432 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
-    template< typename Arg > struct result_
-    {
-        typedef Arg next;
-        typedef T type;
-    };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg< -1 > >
-{
-    template< typename Arg > struct result_
-    {
-        typedef typename next<Arg>::type next;
-        typedef Arg type;
-    };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
-    : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::ndnboost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-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
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-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
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-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_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp
deleted file mode 100644
index bbd1b6d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitand.hpp
deleted file mode 100644
index 5cdfac9..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitand.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitand_2;
-
-template<
-      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_
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , bitand_2< N1,N2 >
-        , bitand_<
-              bitand_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitand_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitand_impl<
-              typename bitand_tag<N1>::type
-            , typename bitand_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitand_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitand_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitor.hpp
deleted file mode 100644
index b5eb6bd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitor.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitor_2;
-
-template<
-      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_
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , bitor_2< N1,N2 >
-        , bitor_<
-              bitor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitor_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitor_impl<
-              typename bitor_tag<N1>::type
-            , typename bitor_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitor_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitxor.hpp
deleted file mode 100644
index 0e089a4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/bitxor.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitxor_2;
-
-template<
-      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_
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , bitxor_2< N1,N2 >
-        , bitxor_<
-              bitxor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitxor_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitxor_impl<
-              typename bitxor_tag<N1>::type
-            , typename bitxor_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitxor_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitxor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/deque.hpp
deleted file mode 100644
index ed97d82..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/deque.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct deque_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct deque_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_deque_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_deque_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 deque_count_args
-{
-    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 
-        + is_deque_arg<T7>::value + is_deque_arg<T8>::value 
-        + is_deque_arg<T9>::value + is_deque_arg<T10>::value 
-        + is_deque_arg<T11>::value + is_deque_arg<T12>::value 
-        + is_deque_arg<T13>::value + is_deque_arg<T14>::value 
-        + is_deque_arg<T15>::value + is_deque_arg<T16>::value 
-        + is_deque_arg<T17>::value + is_deque_arg<T18>::value 
-        + is_deque_arg<T19>::value + is_deque_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque_impl
-{
-    typedef aux::deque_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::deque_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque
-    : aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/divides.hpp
deleted file mode 100644
index 64f49c6..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/divides.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct divides2;
-
-template<
-      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
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , divides2< N1,N2 >
-        , divides<
-              divides2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct divides2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          divides_impl<
-              typename divides_tag<N1>::type
-            , typename divides_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct divides_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::divides_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/equal_to.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/equal_to.hpp
deleted file mode 100644
index 339f47d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/equal_to.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-    : aux::msvc_eti_base< typename apply_wrap2<
-          equal_to_impl<
-              typename equal_to_tag<N1>::type
-            , typename equal_to_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp
deleted file mode 100644
index c4cace4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template< int N >
-struct fold_chunk;
-
-template<> struct fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< int N >
-struct fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , fold_null_step< Last,State >
-            , fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step
-{
-    typedef fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-    : fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp
deleted file mode 100644
index 7da971e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index 95cc307..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-    : aux::msvc_eti_base< typename apply_wrap2<
-          greater_impl<
-              typename greater_tag<N1>::type
-            , typename greater_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index 4e70274..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-    : aux::msvc_eti_base< typename apply_wrap2<
-          greater_equal_impl<
-              typename greater_equal_tag<N1>::type
-            , typename greater_equal_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index 7cb0a48..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/inherit.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1, T2
-    {
-        typedef Derived type_;
-    };
-};
-
-template<>
-struct inherit2_impl< false,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1
-    {
-        typedef T1 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,false >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T2
-    {
-        typedef T2 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-    {
-        typedef T1 type_;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : aux::inherit2_impl<
-          is_empty_base<T1>::value
-        , is_empty_base<T2>::value
-        >::template result_< inherit2< T1,T2 >,T1, T2 >
-{
-    typedef typename inherit2::type_ type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index a74bd83..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp
deleted file mode 100644
index e1a45fe..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template< int N >
-struct iter_fold_chunk;
-
-template<> struct iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< int N >
-struct iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef iter_fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , iter_fold_null_step< Last,State >
-            , iter_fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step
-{
-    typedef iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-    : iter_fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp
deleted file mode 100644
index 45f5f6b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/less.hpp
deleted file mode 100644
index 1a58953..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/less.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-    : aux::msvc_eti_base< typename apply_wrap2<
-          less_impl<
-              typename less_tag<N1>::type
-            , typename less_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index 4890441..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/less_equal.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-    : aux::msvc_eti_base< typename apply_wrap2<
-          less_equal_impl<
-              typename less_equal_tag<N1>::type
-            , typename less_equal_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index 2b19e60..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/list.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef list0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_list_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 list_count_args
-{
-    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 
-        + is_list_arg<T7>::value + is_list_arg<T8>::value 
-        + is_list_arg<T9>::value + is_list_arg<T10>::value 
-        + is_list_arg<T11>::value + is_list_arg<T12>::value 
-        + is_list_arg<T13>::value + is_list_arg<T14>::value 
-        + is_list_arg<T15>::value + is_list_arg<T16>::value 
-        + is_list_arg<T17>::value + is_list_arg<T18>::value 
-        + is_list_arg<T19>::value + is_list_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list_impl
-{
-    typedef aux::list_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::list_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list
-    : aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/list_c.hpp
deleted file mode 100644
index 0ed7f7e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/list_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_list_c_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_c_arg<LONG_MAX>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct list_c_count_args
-{
-    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 
-        + is_list_c_arg<C7>::value + is_list_c_arg<C8>::value 
-        + is_list_c_arg<C9>::value + is_list_c_arg<C10>::value 
-        + is_list_c_arg<C11>::value + is_list_c_arg<C12>::value 
-        + is_list_c_arg<C13>::value + is_list_c_arg<C14>::value 
-        + is_list_c_arg<C15>::value + is_list_c_arg<C16>::value 
-        + is_list_c_arg<C17>::value + is_list_c_arg<C18>::value 
-        + is_list_c_arg<C19>::value + is_list_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c_impl
-{
-    typedef aux::list_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::list_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c
-    : aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/map.hpp
deleted file mode 100644
index 75174c8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/map.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct map_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct map_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef map0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_map_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_map_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 map_count_args
-{
-    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 
-        + is_map_arg<T7>::value + is_map_arg<T8>::value 
-        + is_map_arg<T9>::value + is_map_arg<T10>::value 
-        + is_map_arg<T11>::value + is_map_arg<T12>::value 
-        + is_map_arg<T13>::value + is_map_arg<T14>::value 
-        + is_map_arg<T15>::value + is_map_arg<T16>::value 
-        + is_map_arg<T17>::value + is_map_arg<T18>::value 
-        + is_map_arg<T19>::value + is_map_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map_impl
-{
-    typedef aux::map_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::map_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map
-    : aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/minus.hpp
deleted file mode 100644
index b0c27aa..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/minus.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct minus2;
-
-template<
-      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
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , minus2< N1,N2 >
-        , minus<
-              minus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct minus2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          minus_impl<
-              typename minus_tag<N1>::type
-            , typename minus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct minus_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::minus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/modulus.hpp
deleted file mode 100644
index e92a207..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/modulus.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-    : aux::msvc_eti_base< typename apply_wrap2<
-          modulus_impl<
-              typename modulus_tag<N1>::type
-            , typename modulus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct modulus_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::modulus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::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
deleted file mode 100644
index f861809..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-    : tag< T,na >
-{
-};
-
-template<
-      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<
-          not_equal_to_impl<
-              typename not_equal_to_tag<N1>::type
-            , typename not_equal_to_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index e644658..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/or.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct or_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : true_
-    {
-    };
-};
-
-template<> struct or_impl<false>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : or_impl<
-              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,false_ >
-    {
-    };
-
-    template<> struct result_< false_,false_,false_,false_ >
-        : false_
-    {
-    };
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 3a28c09..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index bf8ccb7..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/plus.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct plus2;
-
-template<
-      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
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , plus2< N1,N2 >
-        , plus<
-              plus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct plus2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          plus_impl<
-              typename plus_tag<N1>::type
-            , typename plus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct plus_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::plus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/quote.hpp
deleted file mode 100644
index 62598cb..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/quote.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-template< bool > struct quote_impl
-{
-    template< typename T > struct result_
-        : T
-    {
-    };
-};
-
-template<> struct quote_impl<false>
-{
-    template< typename T > struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl< aux::has_type< F<U1> >::value >
-            ::template result_< F<U1> >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2 > >::value >
-            ::template result_< F< U1,U2 > >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3 > >::value >
-            ::template result_< F< U1,U2,U3 > >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value >
-            ::template result_< F< U1,U2,U3,U4 > >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value >
-            ::template result_< F< U1,U2,U3,U4,U5 > >
-
-    {
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp
deleted file mode 100644
index 2c6c173..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 57cc688..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/set.hpp
deleted file mode 100644
index 484d53e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/set.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef set0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_set_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 set_count_args
-{
-    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 
-        + is_set_arg<T7>::value + is_set_arg<T8>::value 
-        + is_set_arg<T9>::value + is_set_arg<T10>::value 
-        + is_set_arg<T11>::value + is_set_arg<T12>::value 
-        + is_set_arg<T13>::value + is_set_arg<T14>::value 
-        + is_set_arg<T15>::value + is_set_arg<T16>::value 
-        + is_set_arg<T17>::value + is_set_arg<T18>::value 
-        + is_set_arg<T19>::value + is_set_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set_impl
-{
-    typedef aux::set_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::set_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set
-    : aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/set_c.hpp
deleted file mode 100644
index 3b5f2ab..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/set_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_set_c_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_c_arg<LONG_MAX>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct set_c_count_args
-{
-    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 
-        + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value 
-        + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value 
-        + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value 
-        + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value 
-        + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value 
-        + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value 
-        + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c_impl
-{
-    typedef aux::set_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::set_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c
-    : aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_left.hpp
deleted file mode 100644
index 0632ed1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_left.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-    : aux::msvc_eti_base< typename apply_wrap2<
-          shift_left_impl<
-              typename shift_left_tag<N1>::type
-            , typename shift_left_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_left_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n << s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_left_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_right.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_right.hpp
deleted file mode 100644
index 6e43803..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/shift_right.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-    : aux::msvc_eti_base< typename apply_wrap2<
-          shift_right_impl<
-              typename shift_right_tag<N1>::type
-            , typename shift_right_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_right_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n >> s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_right_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/template_arity.hpp
deleted file mode 100644
index d31dba4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/template_arity.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::ndnboost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-template<>
-struct template_arity<int>
-    : mpl::int_< -1 >
-{
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/times.hpp
deleted file mode 100644
index 5f2f267..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/times.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , 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<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct times2;
-
-template<
-      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
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , times2< N1,N2 >
-        , times<
-              times2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct times2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          times_impl<
-              typename times_tag<N1>::type
-            , typename times_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct times_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::times_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp
deleted file mode 100644
index dcdb46e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
-    template< typename F, typename Args > struct apply;
-};
-
-template<> struct unpack_args_impl<0>
-{
-    template< typename F, typename Args > struct apply
-        : apply0<
-              F
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<1>
-{
-    template< typename F, typename Args > struct apply
-        : apply1<
-              F
-            , typename at_c< Args,0 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<2>
-{
-    template< typename F, typename Args > struct apply
-        : apply2<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<3>
-{
-    template< typename F, typename Args > struct apply
-        : apply3<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<4>
-{
-    template< typename F, typename Args > struct apply
-        : apply4<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<5>
-{
-    template< typename F, typename Args > struct apply
-        : apply5<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            , typename at_c< Args,4 >::type
-            >
-    {
-    };
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value >
-            ::template apply< F,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
deleted file mode 100644
index acb6704..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_vector_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 vector_count_args
-{
-    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 
-        + is_vector_arg<T7>::value + is_vector_arg<T8>::value 
-        + is_vector_arg<T9>::value + is_vector_arg<T10>::value 
-        + is_vector_arg<T11>::value + is_vector_arg<T12>::value 
-        + is_vector_arg<T13>::value + is_vector_arg<T14>::value 
-        + is_vector_arg<T15>::value + is_vector_arg<T16>::value 
-        + is_vector_arg<T17>::value + is_vector_arg<T18>::value 
-        + is_vector_arg<T19>::value + is_vector_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector_impl
-{
-    typedef aux::vector_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::vector_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector
-    : aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector_c.hpp
deleted file mode 100644
index c654c6f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/msvc70/vector_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector1_c<
-              T, T(C0)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector2_c<
-              T, T(C0), T(C1)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector3_c<
-              T, T(C0), T(C1), T(C2)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector4_c<
-              T, T(C0), T(C1), T(C2), T(C3)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector5_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector6_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector7_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector8_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector9_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector10_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector11_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector12_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector13_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector14_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector15_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector16_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector17_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector18_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector19_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector20_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_vector_c_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_c_arg<LONG_MAX>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct vector_c_count_args
-{
-    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 
-        + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value 
-        + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value 
-        + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value 
-        + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value 
-        + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value 
-        + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value 
-        + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c_impl
-{
-    typedef aux::vector_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::vector_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c
-    : aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp
deleted file mode 100644
index 0e0c828..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp
deleted file mode 100644
index b3a5afd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/and.hpp
deleted file mode 100644
index 5c1b95a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 80f72b0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp
deleted file mode 100644
index bccc94e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp
deleted file mode 100644
index 4d03907..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp
+++ /dev/null
@@ -1,456 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      int N, typename F
-    >
-struct apply_wrap_impl0;
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          0
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-/// since the defaults are "lost", we have to pass *something* even for nullary
-/// metafunction classes
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          1
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          2
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          3
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          4
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          5
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-    : apply_wrap_impl0<
-          ::ndnboost::mpl::aux::arity< F,0 >::value
-        , F
-       
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1
-    >
-struct apply_wrap_impl1;
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          1
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          2
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          3
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          4
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          5
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-    : apply_wrap_impl1<
-          ::ndnboost::mpl::aux::arity< F,1 >::value
-        , F
-        , T1
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          2
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          3
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          4
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          5
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-    : apply_wrap_impl2<
-          ::ndnboost::mpl::aux::arity< F,2 >::value
-        , F
-        , T1, T2
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          3
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          4
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          5
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-    : apply_wrap_impl3<
-          ::ndnboost::mpl::aux::arity< F,3 >::value
-        , F
-        , T1, T2, T3
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          4
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          5
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-    : apply_wrap_impl4<
-          ::ndnboost::mpl::aux::arity< F,4 >::value
-        , F
-        , T1, T2, T3, T4
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5<
-          5
-        , F
-        , T1, T2, T3, T4, T5
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4, T5
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-    : apply_wrap_impl5<
-          ::ndnboost::mpl::aux::arity< F,5 >::value
-        , F
-        , T1, T2, T3, T4, T5
-        >::type
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/arg.hpp
deleted file mode 100644
index 154476a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 8e0bf73..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp
+++ /dev/null
@@ -1,440 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind.hpp
deleted file mode 100644
index 45cfc67..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind.hpp
+++ /dev/null
@@ -1,561 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp
deleted file mode 100644
index 9a046ee..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitand.hpp
deleted file mode 100644
index cd8cc5c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index e98247b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 1f276b7..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/deque.hpp
deleted file mode 100644
index 4631f66..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/divides.hpp
deleted file mode 100644
index 1bc4433..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 6455885..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp
deleted file mode 100644
index 494cd41..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp
deleted file mode 100644
index 7da971e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index a7eb4a4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 35bd413..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index a97f313..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index a74bd83..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp
deleted file mode 100644
index cc08b30..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp
deleted file mode 100644
index 45f5f6b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/less.hpp
deleted file mode 100644
index a4b8eeb..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 5cd141b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/list.hpp
deleted file mode 100644
index 8cc8c46..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/list_c.hpp
deleted file mode 100644
index e43f38f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/map.hpp
deleted file mode 100644
index 7974f28..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/minus.hpp
deleted file mode 100644
index 454fda8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 3e89691..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 6de1e16..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index cae8edf..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 3a28c09..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index 5d8b2cd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/quote.hpp
deleted file mode 100644
index 8ce79ed..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/quote.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-    : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >
-
-    {
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp
deleted file mode 100644
index 7d3ad75..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 33bf508..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/set.hpp
deleted file mode 100644
index 4c4ca11..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/set_c.hpp
deleted file mode 100644
index bef2fde..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_left.hpp
deleted file mode 100644
index 2964fb8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( 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
deleted file mode 100644
index 57a5fe0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/template_arity.hpp
deleted file mode 100644
index 6cb42ae..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/template_arity.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/times.hpp
deleted file mode 100644
index 9a55fed..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index aec31af..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/vector.hpp
deleted file mode 100644
index df67589..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/mwcw/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/mwcw/vector_c.hpp
deleted file mode 100644
index e2fbdb4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/mwcw/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp
deleted file mode 100644
index 0e0c828..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp
deleted file mode 100644
index b3a5afd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/and.hpp
deleted file mode 100644
index d69b940..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/and.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct and_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : false_
-    {
-    };
-};
-
-template<> struct and_impl<true>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : and_impl<
-              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,true_ >
-    {
-    };
-};
-
-template<>
-struct and_impl<true>
-    ::result_< true_,true_,true_,true_ >
-        : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 3b60e0b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply.hpp
+++ /dev/null
@@ -1,268 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<0>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply0<
-              F
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<1>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply1<
-              F, T1
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<2>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply2<
-              F, T1, T2
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<3>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply3<
-              F, T1, T2, T3
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<4>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply4<
-              F, T1, T2, T3, T4
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<5>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply5<
-              F, T1, T2, T3, T4, T5
-            > type;
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_apply_arg
-{
-    static bool const value  = true;
-};
-
-template<>
-struct is_apply_arg<na>
-{
-    static bool const value  = false;
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    >
-struct apply_count_args
-{
-    static int const value  = is_apply_arg<T1>::value + is_apply_arg<T2>::value + is_apply_arg<T3>::value + is_apply_arg<T4>::value + is_apply_arg<T5>::value;
-
-};
-
-}
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply
-    : aux::apply_chooser<
-          aux::apply_count_args< T1,T2,T3,T4,T5 >::value
-        >::template result_< F,T1,T2,T3,T4,T5 >::type
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp
deleted file mode 100644
index 6f5288c..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< NDNBOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
-}
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp
deleted file mode 100644
index 55cbd56..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/arg.hpp
deleted file mode 100644
index 154476a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 1c962e7..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp
+++ /dev/null
@@ -1,486 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::ndnboost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-namespace aux {
-
-template<>
-struct bind_chooser<0>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind0<F> type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-namespace aux {
-
-template<>
-struct bind_chooser<1>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind1< F,T1 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-namespace aux {
-
-template<>
-struct bind_chooser<2>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind2< F,T1,T2 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-namespace aux {
-
-template<>
-struct bind_chooser<3>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind3< F,T1,T2,T3 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-namespace aux {
-
-template<>
-struct bind_chooser<4>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind4< F,T1,T2,T3,T4 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-namespace aux {
-
-template<>
-struct bind_chooser<5>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind5< F,T1,T2,T3,T4,T5 > type;
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_bind_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_bind_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    >
-struct bind_count_args
-{
-    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
-        );
-
-};
-
-}
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : aux::bind_chooser<
-          aux::bind_count_args< T1,T2,T3,T4,T5 >::value
-        >::template result_< F,T1,T2,T3,T4,T5 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(
-      6
-    , bind
-    )
-
-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
deleted file mode 100644
index 295251e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bind.hpp
+++ /dev/null
@@ -1,590 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
-    template< typename Arg > struct result_
-    {
-        typedef Arg next;
-        typedef T type;
-    };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg< -1 > >
-{
-    template< typename Arg > struct result_
-    {
-        typedef typename next<Arg>::type next;
-        typedef Arg type;
-    };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
-    : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::ndnboost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-namespace aux {
-
-template<>
-struct bind_chooser<0>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind0<F> type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-namespace aux {
-
-template<>
-struct bind_chooser<1>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind1< F,T1 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-namespace aux {
-
-template<>
-struct bind_chooser<2>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind2< F,T1,T2 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-namespace aux {
-
-template<>
-struct bind_chooser<3>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind3< F,T1,T2,T3 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-namespace aux {
-
-template<>
-struct bind_chooser<4>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind4< F,T1,T2,T3,T4 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-namespace aux {
-
-template<>
-struct bind_chooser<5>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind5< F,T1,T2,T3,T4,T5 > type;
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_bind_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_bind_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    >
-struct bind_count_args
-{
-    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
-        );
-
-};
-
-}
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : aux::bind_chooser<
-          aux::bind_count_args< T1,T2,T3,T4,T5 >::value
-        >::template result_< F,T1,T2,T3,T4,T5 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(
-      6
-    , bind
-    )
-
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
-      6
-    , bind
-    )
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp
deleted file mode 100644
index 9a046ee..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitand.hpp
deleted file mode 100644
index 23a2e01..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitand.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitand_2;
-
-template<
-      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_
-
-    : if_<
-
-          is_na<N3>
-        , bitand_2< N1,N2 >
-        , bitand_<
-              bitand_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitand_2
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index bec923d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitor.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitor_2;
-
-template<
-      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_
-
-    : if_<
-
-          is_na<N3>
-        , bitor_2< N1,N2 >
-        , bitor_<
-              bitor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitor_2
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index dd48718..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitxor_2;
-
-template<
-      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_
-
-    : if_<
-
-          is_na<N3>
-        , bitxor_2< N1,N2 >
-        , bitxor_<
-              bitxor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitxor_2
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index ed97d82..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/deque.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct deque_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct deque_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_deque_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_deque_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 deque_count_args
-{
-    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 
-        + is_deque_arg<T7>::value + is_deque_arg<T8>::value 
-        + is_deque_arg<T9>::value + is_deque_arg<T10>::value 
-        + is_deque_arg<T11>::value + is_deque_arg<T12>::value 
-        + is_deque_arg<T13>::value + is_deque_arg<T14>::value 
-        + is_deque_arg<T15>::value + is_deque_arg<T16>::value 
-        + is_deque_arg<T17>::value + is_deque_arg<T18>::value 
-        + is_deque_arg<T19>::value + is_deque_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque_impl
-{
-    typedef aux::deque_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::deque_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque
-    : aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/divides.hpp
deleted file mode 100644
index 4a98ba0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/divides.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct divides2;
-
-template<
-      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
-
-    : if_<
-
-          is_na<N3>
-        , divides2< N1,N2 >
-        , divides<
-              divides2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct divides2
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 11e6d11..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp
deleted file mode 100644
index c4cace4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template< int N >
-struct fold_chunk;
-
-template<> struct fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< int N >
-struct fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , fold_null_step< Last,State >
-            , fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step
-{
-    typedef fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-    : fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp
deleted file mode 100644
index 7da971e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index e6eb61e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 5ab4441..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 7cb0a48..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/inherit.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1, T2
-    {
-        typedef Derived type_;
-    };
-};
-
-template<>
-struct inherit2_impl< false,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1
-    {
-        typedef T1 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,false >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T2
-    {
-        typedef T2 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-    {
-        typedef T1 type_;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : aux::inherit2_impl<
-          is_empty_base<T1>::value
-        , is_empty_base<T2>::value
-        >::template result_< inherit2< T1,T2 >,T1, T2 >
-{
-    typedef typename inherit2::type_ type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index a74bd83..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp
deleted file mode 100644
index e1a45fe..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template< int N >
-struct iter_fold_chunk;
-
-template<> struct iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< int N >
-struct iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef iter_fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , iter_fold_null_step< Last,State >
-            , iter_fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step
-{
-    typedef iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-    : iter_fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
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
deleted file mode 100644
index 45f5f6b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less.hpp
deleted file mode 100644
index ebe8607..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 37b19aa..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 2b19e60..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef list0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename list20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_list_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 list_count_args
-{
-    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 
-        + is_list_arg<T7>::value + is_list_arg<T8>::value 
-        + is_list_arg<T9>::value + is_list_arg<T10>::value 
-        + is_list_arg<T11>::value + is_list_arg<T12>::value 
-        + is_list_arg<T13>::value + is_list_arg<T14>::value 
-        + is_list_arg<T15>::value + is_list_arg<T16>::value 
-        + is_list_arg<T17>::value + is_list_arg<T18>::value 
-        + is_list_arg<T19>::value + is_list_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list_impl
-{
-    typedef aux::list_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::list_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list
-    : aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list_c.hpp
deleted file mode 100644
index 0ed7f7e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/list_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_list_c_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_c_arg<LONG_MAX>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct list_c_count_args
-{
-    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 
-        + is_list_c_arg<C7>::value + is_list_c_arg<C8>::value 
-        + is_list_c_arg<C9>::value + is_list_c_arg<C10>::value 
-        + is_list_c_arg<C11>::value + is_list_c_arg<C12>::value 
-        + is_list_c_arg<C13>::value + is_list_c_arg<C14>::value 
-        + is_list_c_arg<C15>::value + is_list_c_arg<C16>::value 
-        + is_list_c_arg<C17>::value + is_list_c_arg<C18>::value 
-        + is_list_c_arg<C19>::value + is_list_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c_impl
-{
-    typedef aux::list_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::list_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c
-    : aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/map.hpp
deleted file mode 100644
index 75174c8..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/map.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct map_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct map_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef map0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename map20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_map_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_map_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 map_count_args
-{
-    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 
-        + is_map_arg<T7>::value + is_map_arg<T8>::value 
-        + is_map_arg<T9>::value + is_map_arg<T10>::value 
-        + is_map_arg<T11>::value + is_map_arg<T12>::value 
-        + is_map_arg<T13>::value + is_map_arg<T14>::value 
-        + is_map_arg<T15>::value + is_map_arg<T16>::value 
-        + is_map_arg<T17>::value + is_map_arg<T18>::value 
-        + is_map_arg<T19>::value + is_map_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map_impl
-{
-    typedef aux::map_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::map_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map
-    : aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/minus.hpp
deleted file mode 100644
index 914d669..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/minus.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct minus2;
-
-template<
-      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
-
-    : if_<
-
-          is_na<N3>
-        , minus2< N1,N2 >
-        , minus<
-              minus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct minus2
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 7b2e7ab..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index df9109f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 7123b8d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/or.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct or_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : true_
-    {
-    };
-};
-
-template<> struct or_impl<false>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : or_impl<
-              NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,false_ >
-    {
-    };
-};
-
-template<>
-struct or_impl<false>
-    ::result_< false_,false_,false_,false_ >
-        : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 3a28c09..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index 6372ead..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/plus.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct plus2;
-
-template<
-      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
-
-    : if_<
-
-          is_na<N3>
-        , plus2< N1,N2 >
-        , plus<
-              plus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct plus2
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/quote.hpp
deleted file mode 100644
index 62598cb..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/quote.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-template< bool > struct quote_impl
-{
-    template< typename T > struct result_
-        : T
-    {
-    };
-};
-
-template<> struct quote_impl<false>
-{
-    template< typename T > struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl< aux::has_type< F<U1> >::value >
-            ::template result_< F<U1> >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2 > >::value >
-            ::template result_< F< U1,U2 > >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3 > >::value >
-            ::template result_< F< U1,U2,U3 > >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value >
-            ::template result_< F< U1,U2,U3,U4 > >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value >
-            ::template result_< F< U1,U2,U3,U4,U5 > >
-
-    {
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp
deleted file mode 100644
index 2c6c173..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 57cc688..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set.hpp
deleted file mode 100644
index 484d53e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef set0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename set20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_set_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 set_count_args
-{
-    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 
-        + is_set_arg<T7>::value + is_set_arg<T8>::value 
-        + is_set_arg<T9>::value + is_set_arg<T10>::value 
-        + is_set_arg<T11>::value + is_set_arg<T12>::value 
-        + is_set_arg<T13>::value + is_set_arg<T14>::value 
-        + is_set_arg<T15>::value + is_set_arg<T16>::value 
-        + is_set_arg<T17>::value + is_set_arg<T18>::value 
-        + is_set_arg<T19>::value + is_set_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set_impl
-{
-    typedef aux::set_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::set_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set
-    : aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set_c.hpp
deleted file mode 100644
index 3b5f2ab..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/set_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_set_c_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_c_arg<LONG_MAX>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct set_c_count_args
-{
-    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 
-        + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value 
-        + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value 
-        + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value 
-        + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value 
-        + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value 
-        + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value 
-        + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c_impl
-{
-    typedef aux::set_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::set_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c
-    : aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp
deleted file mode 100644
index 4b56759..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( 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
deleted file mode 100644
index a8dc0db..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp
deleted file mode 100644
index f50578f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::ndnboost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/times.hpp
deleted file mode 100644
index 7c99e67..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/times.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct times2;
-
-template<
-      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
-
-    : if_<
-
-          is_na<N3>
-        , times2< N1,N2 >
-        , times<
-              times2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct times2
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index dcdb46e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
-    template< typename F, typename Args > struct apply;
-};
-
-template<> struct unpack_args_impl<0>
-{
-    template< typename F, typename Args > struct apply
-        : apply0<
-              F
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<1>
-{
-    template< typename F, typename Args > struct apply
-        : apply1<
-              F
-            , typename at_c< Args,0 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<2>
-{
-    template< typename F, typename Args > struct apply
-        : apply2<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<3>
-{
-    template< typename F, typename Args > struct apply
-        : apply3<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<4>
-{
-    template< typename F, typename Args > struct apply
-        : apply4<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<5>
-{
-    template< typename F, typename Args > struct apply
-        : apply5<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            , typename at_c< Args,4 >::type
-            >
-    {
-    };
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value >
-            ::template apply< F,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
deleted file mode 100644
index acb6704..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, 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 result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_vector_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_arg<na>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, 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 vector_count_args
-{
-    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 
-        + is_vector_arg<T7>::value + is_vector_arg<T8>::value 
-        + is_vector_arg<T9>::value + is_vector_arg<T10>::value 
-        + is_vector_arg<T11>::value + is_vector_arg<T12>::value 
-        + is_vector_arg<T13>::value + is_vector_arg<T14>::value 
-        + is_vector_arg<T15>::value + is_vector_arg<T16>::value 
-        + is_vector_arg<T17>::value + is_vector_arg<T18>::value 
-        + is_vector_arg<T19>::value + is_vector_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector_impl
-{
-    typedef aux::vector_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::vector_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector
-    : aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp
deleted file mode 100644
index c654c6f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector1_c<
-              T, T(C0)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector2_c<
-              T, T(C0), T(C1)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector3_c<
-              T, T(C0), T(C1), T(C2)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector4_c<
-              T, T(C0), T(C1), T(C2), T(C3)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector5_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector6_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector7_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector8_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector9_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector10_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector11_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector12_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector13_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector14_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector15_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector16_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector17_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector18_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector19_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector20_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_vector_c_arg
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_c_arg<LONG_MAX>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct vector_c_count_args
-{
-    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 
-        + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value 
-        + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value 
-        + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value 
-        + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value 
-        + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value 
-        + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value 
-        + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c_impl
-{
-    typedef aux::vector_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::vector_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c
-    : aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp
deleted file mode 100644
index 0e0c828..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp
deleted file mode 100644
index b3a5afd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/and.hpp
deleted file mode 100644
index 5c1b95a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 80f72b0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp
deleted file mode 100644
index bccc94e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp
deleted file mode 100644
index ec90202..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
-    : F::apply
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< 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
deleted file mode 100644
index 154476a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 80f4c4e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp
+++ /dev/null
@@ -1,369 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind.hpp
deleted file mode 100644
index d234468..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind.hpp
+++ /dev/null
@@ -1,466 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp
deleted file mode 100644
index 9a046ee..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitand.hpp
deleted file mode 100644
index d0542b4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitand.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitand_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitand_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitor.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitor.hpp
deleted file mode 100644
index 64884de..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitor.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitor_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp
deleted file mode 100644
index a392e2a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitxor_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitxor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/deque.hpp
deleted file mode 100644
index 4631f66..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/divides.hpp
deleted file mode 100644
index df1e04f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/divides.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct divides_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::divides_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::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
deleted file mode 100644
index 22f1e2a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp
deleted file mode 100644
index 494cd41..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp
deleted file mode 100644
index 7da971e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index a6a1b30..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index 93ea6ca..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index a97f313..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index a74bd83..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp
deleted file mode 100644
index cc08b30..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
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
deleted file mode 100644
index 45f5f6b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less.hpp
deleted file mode 100644
index aa6f088..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index ca06f97..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/list.hpp
deleted file mode 100644
index 8cc8c46..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/list_c.hpp
deleted file mode 100644
index e43f38f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/map.hpp
deleted file mode 100644
index 7974f28..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/minus.hpp
deleted file mode 100644
index 75ccc8b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/minus.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct minus_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::minus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/modulus.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/modulus.hpp
deleted file mode 100644
index 1b66ab6..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/modulus.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct modulus_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::modulus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::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
deleted file mode 100644
index 0401b41..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        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
deleted file mode 100644
index cae8edf..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-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
deleted file mode 100644
index 3a28c09..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index bb61bb1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/plus.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct plus_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::plus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/quote.hpp
deleted file mode 100644
index 3e77fba..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/quote.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp
deleted file mode 100644
index 7d3ad75..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 33bf508..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/set.hpp
deleted file mode 100644
index 4c4ca11..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/set_c.hpp
deleted file mode 100644
index bef2fde..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type 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
deleted file mode 100644
index 1bc9e6f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp
+++ /dev/null
@@ -1,110 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_left_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n << s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_left_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::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
deleted file mode 100644
index 0fb916e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp
+++ /dev/null
@@ -1,110 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_right_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n >> s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_right_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp
deleted file mode 100644
index f50578f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::ndnboost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/times.hpp
deleted file mode 100644
index 6a54076..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/times.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct times_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::times_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::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
deleted file mode 100644
index aec31af..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/vector.hpp
deleted file mode 100644
index df67589..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp
deleted file mode 100644
index e2fbdb4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/advance_backward.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/advance_backward.hpp
deleted file mode 100644
index 0e0c828..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/advance_forward.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/advance_forward.hpp
deleted file mode 100644
index b3a5afd..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/and.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/and.hpp
deleted file mode 100644
index 2809274..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/and.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/apply.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/apply.hpp
deleted file mode 100644
index a20ec46..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/apply.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/apply_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/apply_fwd.hpp
deleted file mode 100644
index bccc94e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/apply_wrap.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/apply_wrap.hpp
deleted file mode 100644
index ec90202..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/apply_wrap.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
-    : F::apply
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/arg.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/arg.hpp
deleted file mode 100644
index 154476a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    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
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    NDNBOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    NDNBOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        NDNBOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-NDNBOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-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
deleted file mode 100644
index 8e0bf73..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/basic_bind.hpp
+++ /dev/null
@@ -1,440 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/bind.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/bind.hpp
deleted file mode 100644
index 45cfc67..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/bind.hpp
+++ /dev/null
@@ -1,561 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-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
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/bind_fwd.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/bind_fwd.hpp
deleted file mode 100644
index 9a046ee..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/bitand.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/bitand.hpp
deleted file mode 100644
index 4d50bbe..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/bitand.hpp
+++ /dev/null
@@ -1,142 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index ad02a39..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/bitor.hpp
+++ /dev/null
@@ -1,142 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 5a2e8a6..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/bitxor.hpp
+++ /dev/null
@@ -1,142 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/deque.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/deque.hpp
deleted file mode 100644
index 4631f66..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/divides.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/divides.hpp
deleted file mode 100644
index bcf6e20..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/divides.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index e070a08..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/equal_to.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value  == NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/fold_impl.hpp
deleted file mode 100644
index 494cd41..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/full_lambda.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/full_lambda.hpp
deleted file mode 100644
index 7da971e..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-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
deleted file mode 100644
index 54a35d5..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/greater.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index d3b4035..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/greater_equal.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 2773012..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/inherit.hpp
+++ /dev/null
@@ -1,125 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-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
deleted file mode 100644
index a74bd83..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp
deleted file mode 100644
index cc08b30..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp
deleted file mode 100644
index 554028b..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,228 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              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<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/less.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/less.hpp
deleted file mode 100644
index f2edd0a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/less.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 838af91..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/less_equal.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value <= NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/list.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/list.hpp
deleted file mode 100644
index 8cc8c46..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/list_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/list_c.hpp
deleted file mode 100644
index e43f38f..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/map.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/map.hpp
deleted file mode 100644
index 7974f28..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/minus.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/minus.hpp
deleted file mode 100644
index 9e82fb0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/minus.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index 15143d6..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/modulus.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index ff115af..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/not_equal_to.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : 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
deleted file mode 100644
index 41ce3d3..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/or.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      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<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-};
-
-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
deleted file mode 100644
index 3a28c09..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-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
deleted file mode 100644
index 4e7fe75..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/plus.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + NDNBOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/quote.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/quote.hpp
deleted file mode 100644
index 8ce79ed..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/quote.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-    : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >
-
-    {
-    };
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp
deleted file mode 100644
index 7d3ad75..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 33bf508..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/set.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/set.hpp
deleted file mode 100644
index 4c4ca11..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/set_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/set_c.hpp
deleted file mode 100644
index bef2fde..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/shift_left.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/shift_left.hpp
deleted file mode 100644
index 7c4d389..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/shift_left.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( 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
deleted file mode 100644
index 9b608c1..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/shift_right.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> NDNBOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/template_arity.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/template_arity.hpp
deleted file mode 100644
index 6cb42ae..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/template_arity.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/times.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/times.hpp
deleted file mode 100644
index 6ee853a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/times.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( 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 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        NDNBOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      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>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace ndnboost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( 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
deleted file mode 100644
index aec31af..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/vector.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/vector.hpp
deleted file mode 100644
index df67589..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessed/plain/vector_c.hpp b/include/ndnboost/mpl/aux_/preprocessed/plain/vector_c.hpp
deleted file mode 100644
index e2fbdb4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessed/plain/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/include/ndnboost/mpl/aux_/preprocessor/add.hpp b/include/ndnboost/mpl/aux_/preprocessor/add.hpp
deleted file mode 100644
index 340b703..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/add.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: add.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <ndnboost/mpl/aux_/preprocessor/tuple.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   define NDNBOOST_MPL_PP_ADD(i,j) \
-    NDNBOOST_MPL_PP_ADD_DELAY(i,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 NDNBOOST_MPL_PP_ADD(i,j) \
-    NDNBOOST_MPL_PP_ADD_DELAY(i,j) \
-    /**/
-
-#   define NDNBOOST_MPL_PP_ADD_DELAY(i,j) \
-    NDNBOOST_MPL_PP_TUPLE_11_ELEM_##i NDNBOOST_MPL_PP_ADD_##j \
-    /**/
-#endif
-
-#   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 NDNBOOST_MPL_PP_ADD(i,j) \
-    NDNBOOST_PP_ADD(i,j) \
-    /**/
-    
-#endif 
-
-#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
deleted file mode 100644
index f6536d0..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: def_params_tail.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/limits/arity.hpp>
-#include <ndnboost/mpl/aux_/config/dtp.hpp>
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-
-#include <ndnboost/preprocessor/comma_if.hpp>
-#include <ndnboost/preprocessor/logical/and.hpp>
-#include <ndnboost/preprocessor/identity.hpp>
-#include <ndnboost/preprocessor/empty.hpp>
-
-// 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(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <ndnboost/mpl/aux_/preprocessor/filter_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/sub.hpp>
-
-#   define NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \
-    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1( \
-          i \
-        , NDNBOOST_MPL_PP_SUB(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY,i) \
-        , 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 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 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
-
-#   include <ndnboost/preprocessor/arithmetic/add.hpp>
-#   include <ndnboost/preprocessor/arithmetic/sub.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/tuple/elem.hpp>
-#   include <ndnboost/preprocessor/repeat.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   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 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 // NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
-
-#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(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 NDNBOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \
-    NDNBOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, NDNBOOST_PP_EMPTY) \
-    /**/
-#endif
-
-#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
deleted file mode 100644
index a5233f4..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/default_params.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: default_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-
-// 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(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   define NDNBOOST_MPL_PP_DEFAULT_PARAMS(n,p,v) \
-    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_DEFAULT_PARAMS_,n)(p,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
-
-#   include <ndnboost/preprocessor/tuple/elem.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/repeat.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   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 NDNBOOST_MPL_PP_DEFAULT_PARAMS(n, param, value) \
-    NDNBOOST_PP_REPEAT( \
-          n \
-        , NDNBOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC \
-        , (param,value) \
-        ) \
-    /**/
-
-#endif
-
-#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
deleted file mode 100644
index 05a1641..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/enum.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: enum.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-
-// 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(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   define NDNBOOST_MPL_PP_ENUM(n, param) \
-    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_ENUM_,n)(param) \
-    /**/
-    
-#   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 NDNBOOST_MPL_PP_AUX_ENUM_FUNC(unused, i, param) \
-    NDNBOOST_PP_COMMA_IF(i) param \
-    /**/
-
-#   define NDNBOOST_MPL_PP_ENUM(n, param) \
-    NDNBOOST_PP_REPEAT( \
-          n \
-        , NDNBOOST_MPL_PP_AUX_ENUM_FUNC \
-        , param \
-        ) \
-    /**/
-
-#endif
-
-#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
deleted file mode 100644
index 489e494..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/ext_params.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: ext_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-
-// 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(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <ndnboost/mpl/aux_/preprocessor/filter_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/sub.hpp>
-
-#   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 NDNBOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,n,p) \
-    NDNBOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
-    /**/
-
-#   define NDNBOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
-    NDNBOOST_MPL_PP_EXT_PARAMS_##i(n,p) \
-    /**/
-
-#   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
-
-#   include <ndnboost/preprocessor/arithmetic/add.hpp>
-#   include <ndnboost/preprocessor/arithmetic/sub.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/repeat.hpp>
-#   include <ndnboost/preprocessor/tuple/elem.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   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 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 // 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
deleted file mode 100644
index 7a75107..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/filter_params.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: filter_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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 // 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
deleted file mode 100644
index 3dd6c69..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/params.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-
-// 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(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   define NDNBOOST_MPL_PP_PARAMS(n,p) \
-    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_PARAMS_,n)(p) \
-    /**/
-
-#   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
-
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/repeat.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   define NDNBOOST_MPL_PP_AUX_PARAM_FUNC(unused, i, param) \
-    NDNBOOST_PP_COMMA_IF(i) \
-    NDNBOOST_PP_CAT(param, NDNBOOST_PP_INC(i)) \
-    /**/
-
-#   define NDNBOOST_MPL_PP_PARAMS(n, param) \
-    NDNBOOST_PP_REPEAT( \
-          n \
-        , NDNBOOST_MPL_PP_AUX_PARAM_FUNC \
-        , param \
-        ) \
-    /**/
-
-#endif 
-
-#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
deleted file mode 100644
index a1b63a5..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/partial_spec_params.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: partial_spec_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/limits/arity.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/sub.hpp>
-#include <ndnboost/preprocessor/comma_if.hpp>
-
-#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 // 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
deleted file mode 100644
index 6c536d7..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/range.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: range.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/preprocessor/seq/subseq.hpp>
-
-#define NDNBOOST_MPL_PP_RANGE(first, length) \
-    NDNBOOST_PP_SEQ_SUBSEQ((0)(1)(2)(3)(4)(5)(6)(7)(8)(9), first, length) \
-/**/
-
-#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
deleted file mode 100644
index f68a202..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/repeat.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: repeat.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   define NDNBOOST_MPL_PP_REPEAT(n,f,param) \
-    NDNBOOST_PP_CAT(NDNBOOST_MPL_PP_REPEAT_,n)(f,param) \
-    /**/
-    
-#   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 NDNBOOST_MPL_PP_REPEAT(n,f,param) \
-    NDNBOOST_PP_REPEAT(n,f,param) \
-    /**/
-
-#endif 
-
-#define NDNBOOST_MPL_PP_REPEAT_IDENTITY_FUNC(unused1, unused2, x) x
-
-#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
deleted file mode 100644
index c19482a..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/sub.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: sub.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <ndnboost/mpl/aux_/preprocessor/tuple.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   define NDNBOOST_MPL_PP_SUB(i,j) \
-    NDNBOOST_MPL_PP_SUB_DELAY(i,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 NDNBOOST_MPL_PP_SUB(i,j) \
-    NDNBOOST_MPL_PP_SUB_DELAY(i,j) \
-    /**/
-
-#   define NDNBOOST_MPL_PP_SUB_DELAY(i,j) \
-    NDNBOOST_MPL_PP_TUPLE_11_ELEM_##i NDNBOOST_MPL_PP_SUB_##j \
-    /**/
-#endif
-
-#   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 NDNBOOST_MPL_PP_SUB(i,j) \
-    NDNBOOST_PP_SUB(i,j) \
-    /**/
-    
-#endif
-
-#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
deleted file mode 100644
index cbb369d..0000000
--- a/include/ndnboost/mpl/aux_/preprocessor/tuple.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: tuple.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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 // 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
deleted file mode 100644
index 3e81de9..0000000
--- a/include/ndnboost/mpl/aux_/push_back_impl.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back_impl.hpp 55679 2009-08-20 07:50:16Z agurtovoy $
-// $Date: 2009-08-20 00:50:16 -0700 (Thu, 20 Aug 2009) $
-// $Revision: 55679 $
-
-#include <ndnboost/mpl/push_back_fwd.hpp>
-#include <ndnboost/mpl/assert.hpp>
-#include <ndnboost/mpl/aux_/has_type.hpp>
-#include <ndnboost/mpl/aux_/traits_lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/forwarding.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace mpl {
-
-struct has_push_back_arg {};
-
-// agurt 05/feb/04: no default implementation; the stub definition is needed 
-// to enable the default 'has_push_back' implementation below
-template< typename Tag >
-struct push_back_impl
-{
-    template< typename Sequence, typename T > struct apply
-    {
-        // 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.
-        NDNBOOST_MPL_ASSERT_MSG(
-              ( ndnboost::is_same< T, has_push_back_arg >::value )
-            , REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST
-            , ( Sequence )
-            );
-    };
-};
-
-template< typename Tag >
-struct has_push_back_impl
-{
-    template< typename Seq > struct apply
-#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;
-        NDNBOOST_STATIC_CONSTANT(bool, value = 
-              (aux::has_type< push_back< Seq, has_push_back_arg > >::value)
-            );
-#endif
-    };
-};
-
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_back_impl)
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_back_impl)
-
-}}
-
-#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
deleted file mode 100644
index 0fa8745..0000000
--- a/include/ndnboost/mpl/aux_/push_front_impl.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front_impl.hpp 55679 2009-08-20 07:50:16Z agurtovoy $
-// $Date: 2009-08-20 00:50:16 -0700 (Thu, 20 Aug 2009) $
-// $Revision: 55679 $
-
-#include <ndnboost/mpl/push_front_fwd.hpp>
-#include <ndnboost/mpl/assert.hpp>
-#include <ndnboost/mpl/aux_/has_type.hpp>
-#include <ndnboost/mpl/aux_/traits_lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/forwarding.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace mpl {
-
-struct has_push_front_arg {};
-
-// agurt 05/feb/04: no default implementation; the stub definition is needed 
-// to enable the default 'has_push_front' implementation below
-
-template< typename Tag >
-struct push_front_impl
-{
-    template< typename Sequence, typename T > struct apply
-    {
-        // 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.
-        NDNBOOST_MPL_ASSERT_MSG(
-              ( ndnboost::is_same< T, has_push_front_arg >::value )
-            , REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST
-            , ( Sequence )
-            );
-    };
-};
-
-template< typename Tag >
-struct has_push_front_impl
-{
-    template< typename Seq > struct apply
-#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;
-        NDNBOOST_STATIC_CONSTANT(bool, value = 
-              (aux::has_type< push_front< Seq, has_push_front_arg > >::value)
-            );
-#endif
-    };
-};
-
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_front_impl)
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_front_impl)
-
-}}
-
-#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
deleted file mode 100644
index 78649c1..0000000
--- a/include/ndnboost/mpl/aux_/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: reverse_fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(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
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER reverse_fold_impl.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   define AUX778076_FOLD_IMPL_OP(iter) typename deref<iter>::type
-#   define AUX778076_FOLD_IMPL_NAME_PREFIX reverse_fold
-#   include <ndnboost/mpl/aux_/reverse_fold_impl_body.hpp>
-
-#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
deleted file mode 100644
index 3ca6eee..0000000
--- a/include/ndnboost/mpl/aux_/reverse_fold_impl_body.hpp
+++ /dev/null
@@ -1,412 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: reverse_fold_impl_body.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#   include <ndnboost/mpl/limits/unrolling.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-#   include <ndnboost/preprocessor/arithmetic/sub.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/dec.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-// local macros, #undef-ined at the end of the header
-
-#   define AUX778076_ITER_FOLD_FORWARD_STEP(unused, n_, unused2) \
-    typedef typename apply2< \
-          ForwardOp \
-        , 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 \
-        , 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( \
-          NDNBOOST_PP_SUB_D(1,j,n_) \
-        ) \
-    /**/
-
-#   define AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(n_) \
-    typedef typename nested_chunk::state NDNBOOST_PP_CAT(bkwd_state,n_);
-    /**/
-
-#   define AUX778076_FOLD_IMPL_NAME \
-    NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
-    /**/
-
-#   define AUX778076_FOLD_CHUNK_NAME \
-    NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
-    /**/
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-/// forward declaration
-template<
-      NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME;
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-#   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 NDNBOOST_MPL_LIMIT_UNROLLING
-template<
-      NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-
-    NDNBOOST_MPL_PP_REPEAT(
-          NDNBOOST_MPL_LIMIT_UNROLLING
-        , AUX778076_ITER_FOLD_FORWARD_STEP
-        , unused
-        )
-
-    typedef AUX778076_FOLD_IMPL_NAME<
-          ( (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - NDNBOOST_MPL_LIMIT_UNROLLING )
-        , NDNBOOST_PP_CAT(iter,NDNBOOST_MPL_LIMIT_UNROLLING)
-        , Last
-        , NDNBOOST_PP_CAT(fwd_state,NDNBOOST_MPL_LIMIT_UNROLLING)
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-        
-    AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(NDNBOOST_MPL_LIMIT_UNROLLING)
-
-    NDNBOOST_MPL_PP_REPEAT(
-          NDNBOOST_MPL_LIMIT_UNROLLING
-        , AUX778076_ITER_FOLD_BACKWARD_STEP
-        , NDNBOOST_MPL_LIMIT_UNROLLING
-        )
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-// fallback implementation for sequences of unknown size
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<-1,First,Last,State,BackwardOp,ForwardOp>
-{
-    typedef AUX778076_FOLD_IMPL_NAME<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , AUX778076_FOLD_IMPL_OP(First)
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<-1,Last,Last,State,BackwardOp,ForwardOp>
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) >
-struct AUX778076_FOLD_CHUNK_NAME;
-
-#   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 NDNBOOST_MPL_LIMIT_UNROLLING
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > 
-struct AUX778076_FOLD_CHUNK_NAME
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        > 
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-
-        NDNBOOST_MPL_PP_REPEAT(
-              NDNBOOST_MPL_LIMIT_UNROLLING
-            , AUX778076_ITER_FOLD_FORWARD_STEP
-            , unused
-            )
-
-        typedef AUX778076_FOLD_IMPL_NAME<
-              ( (N - NDNBOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - NDNBOOST_MPL_LIMIT_UNROLLING )
-            , NDNBOOST_PP_CAT(iter,NDNBOOST_MPL_LIMIT_UNROLLING)
-            , Last
-            , NDNBOOST_PP_CAT(fwd_state,NDNBOOST_MPL_LIMIT_UNROLLING)
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-            
-        AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(NDNBOOST_MPL_LIMIT_UNROLLING)
-
-        NDNBOOST_MPL_PP_REPEAT(
-              NDNBOOST_MPL_LIMIT_UNROLLING
-            , AUX778076_ITER_FOLD_BACKWARD_STEP
-            , NDNBOOST_MPL_LIMIT_UNROLLING
-            )
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-// fallback implementation for sequences of unknown size
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
-
-template<
-      typename Last
-    , typename State
-    >
-struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<> 
-struct AUX778076_FOLD_CHUNK_NAME<-1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        > 
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same<First,Last>::type
-            , 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(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct result_<int,int,int,int,int>
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-#endif
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct NDNBOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
-{
-    typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , AUX778076_FOLD_IMPL_OP(First)
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      NDNBOOST_MPL_AUX_NTTP_DECL(long, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-    : AUX778076_FOLD_CHUNK_NAME<N>
-        ::template result_<First,Last,State,BackwardOp,ForwardOp>
-{
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}}
-
-#   undef AUX778076_FIRST_BACKWARD_STATE_TYPEDEF
-#   undef AUX778076_ITER_FOLD_BACKWARD_STEP
-#   undef AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC
-#   undef AUX778076_ITER_FOLD_FORWARD_STEP
-
-#undef AUX778076_FOLD_IMPL_OP
-#undef AUX778076_FOLD_IMPL_NAME_PREFIX
-
-///// iteration
-
-#else
-
-#   define n_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct AUX778076_FOLD_IMPL_NAME<n_,First,Last,State,BackwardOp,ForwardOp>
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-
-    NDNBOOST_MPL_PP_REPEAT(
-          n_
-        , AUX778076_ITER_FOLD_FORWARD_STEP
-        , unused
-        )
-
-    typedef NDNBOOST_PP_CAT(fwd_state,n_) NDNBOOST_PP_CAT(bkwd_state,n_);
-
-    NDNBOOST_MPL_PP_REPEAT(
-          n_
-        , AUX778076_ITER_FOLD_BACKWARD_STEP
-        , n_
-        )
-
-    typedef bkwd_state0 state;
-    typedef NDNBOOST_PP_CAT(iter,n_) iterator;
-};
-
-#else
-
-template<> struct AUX778076_FOLD_CHUNK_NAME<n_>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-
-        NDNBOOST_MPL_PP_REPEAT(
-              n_
-            , AUX778076_ITER_FOLD_FORWARD_STEP
-            , unused
-            )
-
-        typedef NDNBOOST_PP_CAT(fwd_state,n_) NDNBOOST_PP_CAT(bkwd_state,n_);
-
-        NDNBOOST_MPL_PP_REPEAT(
-              n_
-            , AUX778076_ITER_FOLD_BACKWARD_STEP
-            , n_
-            )
-
-        typedef bkwd_state0 state;
-        typedef NDNBOOST_PP_CAT(iter,n_) iterator;
-    };
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct result_<int,int,int,int,int>
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-#endif
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#   undef n_
-
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/sequence_wrapper.hpp b/include/ndnboost/mpl/aux_/sequence_wrapper.hpp
deleted file mode 100644
index c2a2754..0000000
--- a/include/ndnboost/mpl/aux_/sequence_wrapper.hpp
+++ /dev/null
@@ -1,292 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: sequence_wrapper.hpp 49271 2008-10-11 06:46:00Z agurtovoy $
-// $Date: 2008-10-10 23:46:00 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49271 $
-
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-#   include <ndnboost/preprocessor/arithmetic/sub.hpp>
-#   include <ndnboost/preprocessor/tuple/elem.hpp>
-#   include <ndnboost/preprocessor/enum_params_with_a_default.hpp>
-#   include <ndnboost/preprocessor/enum_params.hpp>
-#   include <ndnboost/preprocessor/enum.hpp>
-#   include <ndnboost/preprocessor/repeat.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-#if defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   undef LONG_MAX
-#endif
-
-namespace ndnboost { namespace mpl {
-
-#if !defined(AUX778076_SEQUENCE_BASE_NAME)
-#   define AUX778076_SEQUENCE_BASE_NAME AUX778076_SEQUENCE_NAME
-#endif
-
-#if !defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
-
-#   define AUX778076_SEQUENCE_PARAM_NAME T
-#   define AUX778076_SEQUENCE_TEMPLATE_PARAM typename T
-#   define AUX778076_SEQUENCE_DEFAULT na
-
-#   define AUX778076_SEQUENCE_NAME_N(n) \
-    NDNBOOST_PP_CAT(AUX778076_SEQUENCE_BASE_NAME,n) \
-    /**/
-
-#   define AUX778076_SEQUENCE_PARAMS() \
-    NDNBOOST_PP_ENUM_PARAMS( \
-          AUX778076_SEQUENCE_LIMIT \
-        , AUX778076_SEQUENCE_TEMPLATE_PARAM \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_ARGS() \
-    NDNBOOST_PP_ENUM_PARAMS( \
-          AUX778076_SEQUENCE_LIMIT \
-        , T \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_DEFAULT_PARAMS() \
-     NDNBOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
-          AUX778076_SEQUENCE_LIMIT \
-        , AUX778076_SEQUENCE_TEMPLATE_PARAM \
-        , AUX778076_SEQUENCE_DEFAULT \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_N_PARAMS(n) \
-    NDNBOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \
-    /**/
-
-#   define AUX778076_SEQUENCE_N_ARGS(n) \
-    NDNBOOST_PP_ENUM_PARAMS(n, T) \
-    /**/
-
-#   define AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(n) \
-    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 \
-        ) \
-    /**/
-
-#else // AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-
-#   define AUX778076_SEQUENCE_PARAM_NAME 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, NDNBOOST_PP_ENUM_PARAMS( \
-          AUX778076_SEQUENCE_LIMIT \
-        , AUX778076_SEQUENCE_TEMPLATE_PARAM \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_ARGS() \
-    T, NDNBOOST_PP_ENUM_PARAMS( \
-          AUX778076_SEQUENCE_LIMIT \
-        , C \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_DEFAULT_PARAMS() \
-    typename T, \
-    NDNBOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
-          AUX778076_SEQUENCE_LIMIT \
-        , AUX778076_SEQUENCE_TEMPLATE_PARAM \
-        , AUX778076_SEQUENCE_DEFAULT \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_N_PARAMS(n) \
-    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) NDNBOOST_PP_CAT(C,n)
-#   endif
-
-#   define AUX778076_SEQUENCE_N_ARGS(n) \
-    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, 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 \
-        ) \
-    /**/
-
-#endif // AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// forward declaration
-template<
-      AUX778076_SEQUENCE_DEFAULT_PARAMS()
-    >
-struct AUX778076_SEQUENCE_NAME;
-#else
-namespace aux {
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > 
-struct NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser);
-}
-#endif
-
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, AUX778076_SEQUENCE_LIMIT, <ndnboost/mpl/aux_/sequence_wrapper.hpp>))
-#include NDNBOOST_PP_ITERATE()
-
-// real C++ version is already taken care of
-#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-namespace aux {
-// ???_count_args
-#define AUX778076_COUNT_ARGS_PREFIX         AUX778076_SEQUENCE_NAME
-#define AUX778076_COUNT_ARGS_DEFAULT        AUX778076_SEQUENCE_DEFAULT
-#define AUX778076_COUNT_ARGS_PARAM_NAME     AUX778076_SEQUENCE_PARAM_NAME
-#define AUX778076_COUNT_ARGS_TEMPLATE_PARAM AUX778076_SEQUENCE_TEMPLATE_PARAM
-#define AUX778076_COUNT_ARGS_ARITY          AUX778076_SEQUENCE_LIMIT
-#define AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES
-#include <ndnboost/mpl/aux_/count_args.hpp>
-
-template<
-      AUX778076_SEQUENCE_PARAMS()
-    >
-struct NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)
-{
-    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::NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)< arg_num_::value >
-        ::template result_< AUX778076_SEQUENCE_ARGS() >::type type;
-};
-
-} // namespace aux
-
-template<
-      AUX778076_SEQUENCE_DEFAULT_PARAMS()
-    >
-struct AUX778076_SEQUENCE_NAME
-    : aux::NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
-          AUX778076_SEQUENCE_ARGS()
-        >::type
-{
-    typedef typename aux::NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
-          AUX778076_SEQUENCE_ARGS()
-        >::type type;
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#   undef AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS
-#   undef AUX778076_SEQUENCE_N_ARGS
-#   undef AUX778076_SEQUENCE_CONVERT_CN_TO
-#   undef AUX778076_SEQUENCE_N_PARAMS
-#   undef AUX778076_SEQUENCE_DEFAULT_PARAMS
-#   undef AUX778076_SEQUENCE_ARGS
-#   undef AUX778076_SEQUENCE_PARAMS
-#   undef AUX778076_SEQUENCE_NAME_N
-#   undef AUX778076_SEQUENCE_DEFAULT
-#   undef AUX778076_SEQUENCE_TEMPLATE_PARAM
-#   undef AUX778076_SEQUENCE_PARAM_NAME
-#   undef AUX778076_SEQUENCE_LIMIT
-#   undef AUX778076_SEQUENCE_BASE_NAME
-#   undef AUX778076_SEQUENCE_NAME
-#   undef AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-
-}}
-
-///// iteration
-
-#else
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#if i_ == AUX778076_SEQUENCE_LIMIT
-
-/// primary template (not a specialization!)
-template<
-      AUX778076_SEQUENCE_N_PARAMS(i_)
-    >
-struct AUX778076_SEQUENCE_NAME
-    : AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >
-{
-    typedef typename AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type;
-};
-
-#else
-
-template<
-      AUX778076_SEQUENCE_N_PARAMS(i_)
-    >
-struct AUX778076_SEQUENCE_NAME< AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(i_) >
-    : AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >
-{
-#if i_ > 0 || defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
-    typedef typename AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type;
-#else
-    typedef AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type;
-#endif
-};
-
-#endif // i_ == AUX778076_SEQUENCE_LIMIT
-
-#   else
-
-namespace aux {
-
-template<>
-struct NDNBOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)<i_>
-{
-    template<
-          AUX778076_SEQUENCE_PARAMS()
-        >
-    struct result_
-    {
-#if i_ > 0 || defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
-        typedef typename AUX778076_SEQUENCE_NAME_N(i_)<
-              AUX778076_SEQUENCE_N_ARGS(i_)
-            >::type type;
-#else
-        typedef AUX778076_SEQUENCE_NAME_N(i_)<
-              AUX778076_SEQUENCE_N_ARGS(i_)
-            >::type type;
-#endif
-    };
-};
-
-} // namespace aux
-
-#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#undef i_
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/aux_/size_impl.hpp b/include/ndnboost/mpl/aux_/size_impl.hpp
deleted file mode 100644
index cfb16fa..0000000
--- a/include/ndnboost/mpl/aux_/size_impl.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/size_fwd.hpp>
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/distance.hpp>
-#include <ndnboost/mpl/aux_/traits_lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// default implementation; conrete sequences might override it by 
-// specializing either the 'size_impl' or the primary 'size' template
-
-template< typename Tag >
-struct size_impl
-{
-    template< typename Sequence > struct apply
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x561))
-        : distance<
-              typename begin<Sequence>::type
-            , typename end<Sequence>::type
-            >
-    {
-#else
-    {
-        typedef typename distance<
-              typename begin<Sequence>::type
-            , typename end<Sequence>::type
-            >::type type;
-#endif
-    };
-};
-
-NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, size_impl)
-
-}}
-
-#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
deleted file mode 100644
index 13121eb..0000000
--- a/include/ndnboost/mpl/aux_/static_cast.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: static_cast.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#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 NDNBOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
-#endif
-
-#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
deleted file mode 100644
index f573080..0000000
--- a/include/ndnboost/mpl/aux_/template_arity.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: template_arity.hpp 61584 2010-04-26 18:48:26Z agurtovoy $
-// $Date: 2010-04-26 11:48:26 -0700 (Mon, 26 Apr 2010) $
-// $Revision: 61584 $
-
-#include <ndnboost/mpl/aux_/config/ttp.hpp>
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/aux_/template_arity_fwd.hpp>
-#   include <ndnboost/mpl/int.hpp>
-#   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
-#       include <ndnboost/mpl/aux_/has_rebind.hpp>
-#   endif
-#endif
-
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER template_arity.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   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>
-#   include <ndnboost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-#   include <ndnboost/preprocessor/seq/fold_left.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#   define AUX778076_ARITY NDNBOOST_PP_INC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > struct arity_tag
-{
-    typedef char (&type)[N + 1];
-};
-
-#   define AUX778076_MAX_ARITY_OP(unused, state, i_) \
-    ( NDNBOOST_PP_CAT(C,i_) > 0 ? NDNBOOST_PP_CAT(C,i_) : state ) \
-/**/
-
-template<
-      NDNBOOST_MPL_PP_PARAMS(AUX778076_ARITY, NDNBOOST_MPL_AUX_NTTP_DECL(int, C))
-    >
-struct max_arity
-{
-    NDNBOOST_STATIC_CONSTANT(int, value = 
-          NDNBOOST_PP_SEQ_FOLD_LEFT(
-              AUX778076_MAX_ARITY_OP
-            , -1
-            , NDNBOOST_MPL_PP_RANGE(1, AUX778076_ARITY)
-            )
-        );
-};
-
-#   undef AUX778076_MAX_ARITY_OP
-
-arity_tag<0>::type arity_helper(...);
-
-#   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, NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct template_arity_impl
-{
-    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) \
-    NDNBOOST_PP_COMMA_IF(i_) template_arity_impl<F,NDNBOOST_PP_INC(i_)>::value \
-/**/
-
-template< typename F >
-struct template_arity
-{
-    NDNBOOST_STATIC_CONSTANT(int, value = (
-          max_arity< NDNBOOST_MPL_PP_REPEAT(
-              AUX778076_ARITY
-            , AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION
-            , F
-            ) >::value
-        ));
-        
-    typedef mpl::int_<value> type;
-};
-
-#   undef AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION
-
-#   undef AUX778076_ARITY
-
-}}}
-
-#   endif // NDNBOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
-#   else // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#   include <ndnboost/mpl/aux_/config/eti.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_<-1>
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::ndnboost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
-template<>
-struct template_arity<int>
-    : mpl::int_<-1>
-{
-};
-#endif
-
-}}}
-
-#   endif // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // NDNBOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-template<
-      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<NDNBOOST_MPL_PP_PARAMS(i_, T)> >, arity_tag<i_>);
-
-#undef i_
-#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
deleted file mode 100644
index f24bd99..0000000
--- a/include/ndnboost/mpl/aux_/template_arity_fwd.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: template_arity_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename F > struct template_arity;
-
-}}}
-
-#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
deleted file mode 100644
index 0f21dda..0000000
--- a/include/ndnboost/mpl/aux_/traits_lambda_spec.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: traits_lambda_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/sequence_tag_fwd.hpp>
-#include <ndnboost/mpl/void.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-#   define NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) /**/
-
-#elif !defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
-
-#   define NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
-template<> struct trait<void_> \
-{ \
-    template< NDNBOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
-    { \
-    }; \
-}; \
-/**/
-
-#else
-
-#   define NDNBOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
-template<> struct trait<void_> \
-{ \
-    template< NDNBOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
-    { \
-    }; \
-}; \
-template<> struct trait<int> \
-{ \
-    template< NDNBOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
-    { \
-        typedef int type; \
-    }; \
-}; \
-/**/
-
-#endif // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-
-#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 // 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
deleted file mode 100644
index faaf54b..0000000
--- a/include/ndnboost/mpl/aux_/type_wrapper.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: type_wrapper.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename T > struct type_wrapper
-{
-    typedef T type;
-};
-
-#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
-// 'typeof' expression
-template< typename T > struct wrapped_type;
-
-template< typename T > struct wrapped_type< type_wrapper<T> >
-{
-    typedef T type;
-};
-#else
-template< typename W > struct wrapped_type
-{
-    typedef typename W::type type;
-};
-#endif
-
-}}}
-
-#endif // NDNBOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/aux_/unwrap.hpp b/include/ndnboost/mpl/aux_/unwrap.hpp
deleted file mode 100644
index 292d8c8..0000000
--- a/include/ndnboost/mpl/aux_/unwrap.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: unwrap.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/ref.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename F >
-inline
-F& unwrap(F& f, long)
-{
-    return f;
-}
-
-template< typename F >
-inline
-F&
-unwrap(reference_wrapper<F>& f, int)
-{
-    return f;
-}
-
-template< typename F >
-inline
-F&
-unwrap(reference_wrapper<F> const& f, int)
-{
-    return f;
-}
-
-}}}
-
-#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
deleted file mode 100644
index 0203bae..0000000
--- a/include/ndnboost/mpl/aux_/value_wknd.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: value_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/static_cast.hpp>
-#include <ndnboost/mpl/aux_/config/integral.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
-    || defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-
-#   include <ndnboost/mpl/int.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-template< typename C_ > struct value_wknd
-    : C_
-{
-};
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-template<> struct value_wknd<int>
-    : int_<1>
-{
-    using int_<1>::value;
-};
-#endif
-}}}
-
-
-#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 NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(C) NDNBOOST_MPL_AUX_VALUE_WKND(C)
-#else
-#   define NDNBOOST_MPL_AUX_VALUE_WKND(C) C
-#   define NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(C) \
-    ::ndnboost::mpl::aux::value_wknd< C > \
-/**/
-#endif
-
-#else // NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
-
-#   define NDNBOOST_MPL_AUX_VALUE_WKND(C) C
-#   define NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(C) C
-
-#endif
-
-#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 NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
-    NDNBOOST_MPL_AUX_VALUE_WKND(C)::value \
-/**/
-#endif
-
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-template< typename T > struct value_type_wknd
-{
-    typedef typename T::value_type type;
-};
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
-template<> struct value_type_wknd<int>
-{
-    typedef int type;
-};
-#endif
-
-}}}
-
-#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
deleted file mode 100644
index 4422262..0000000
--- a/include/ndnboost/mpl/aux_/yes_no.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_YES_NO_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_YES_NO_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: yes_no.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#include <ndnboost/mpl/aux_/config/arrays.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-typedef char (&no_tag)[1];
-typedef char (&yes_tag)[2];
-
-template< bool C_ > struct yes_no_tag
-{
-    typedef no_tag type;
-};
-
-template<> struct yes_no_tag<true>
-{
-    typedef yes_tag type;
-};
-
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag
-{
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    typedef char (&type)[n];
-#else
-    char buf[n];
-    typedef weighted_tag type;
-#endif
-};
-
-#if defined(NDNBOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
-template<> struct weighted_tag<0>
-{
-    typedef char (&type)[1];
-};
-#endif
-
-}}}
-
-#endif // NDNBOOST_MPL_AUX_YES_NO_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/back_fwd.hpp b/include/ndnboost/mpl/back_fwd.hpp
deleted file mode 100644
index 44d85e5..0000000
--- a/include/ndnboost/mpl/back_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_BACK_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_BACK_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct back_impl;
-template< typename Sequence > struct back;
-
-}}
-
-#endif // NDNBOOST_MPL_BACK_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/back_inserter.hpp b/include/ndnboost/mpl/back_inserter.hpp
deleted file mode 100644
index 99f6c10..0000000
--- a/include/ndnboost/mpl/back_inserter.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef NDNBOOST_MPL_BACK_INSERTER_HPP_INCLUDED
-#define NDNBOOST_MPL_BACK_INSERTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: back_inserter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/push_back.hpp>
-#include <ndnboost/mpl/inserter.hpp>
-
-namespace ndnboost {
-namespace mpl {
-
-template<
-      typename Sequence
-    >
-struct back_inserter
-    : inserter< Sequence,push_back<> >
-{
-};
-
-}}
-
-#endif // NDNBOOST_MPL_BACK_INSERTER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/begin_end.hpp b/include/ndnboost/mpl/begin_end.hpp
deleted file mode 100644
index d5991f8..0000000
--- a/include/ndnboost/mpl/begin_end.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-#ifndef NDNBOOST_MPL_BEGIN_END_HPP_INCLUDED
-#define NDNBOOST_MPL_BEGIN_END_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/begin_end_fwd.hpp>
-#include <ndnboost/mpl/aux_/begin_end_impl.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// agurt, 13/sep/02: switched from inheritance to typedef; MSVC is more
-// happy this way (less ETI-related errors), and it doesn't affect 
-// anything else
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct begin
-{
-    typedef typename sequence_tag<Sequence>::type tag_;
-    typedef typename begin_impl< tag_ >
-        ::template apply< Sequence >::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,begin,(Sequence))
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct end
-{
-    typedef typename sequence_tag<Sequence>::type tag_;
-    typedef typename end_impl< tag_ >
-        ::template apply< Sequence >::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,end,(Sequence))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(1, begin)
-NDNBOOST_MPL_AUX_NA_SPEC(1, end)
-
-}}
-
-#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
deleted file mode 100644
index 0e486ab..0000000
--- a/include/ndnboost/mpl/begin_end_fwd.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef NDNBOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct begin_impl;
-template< typename Tag > struct end_impl;
-
-template< typename Sequence > struct begin;
-template< typename Sequence > struct end;
-
-}}
-
-#endif // NDNBOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/bind.hpp b/include/ndnboost/mpl/bind.hpp
deleted file mode 100644
index 5b30a16..0000000
--- a/include/ndnboost/mpl/bind.hpp
+++ /dev/null
@@ -1,551 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_BIND_HPP_INCLUDED
-#define NDNBOOST_MPL_BIND_HPP_INCLUDED
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/bind_fwd.hpp>
-#   include <ndnboost/mpl/placeholders.hpp>
-#   include <ndnboost/mpl/next.hpp>
-#   include <ndnboost/mpl/protect.hpp>
-#   include <ndnboost/mpl/apply_wrap.hpp>
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/mpl/aux_/na.hpp>
-#   include <ndnboost/mpl/aux_/arity_spec.hpp>
-#   include <ndnboost/mpl/aux_/type_wrapper.hpp>
-#   include <ndnboost/mpl/aux_/yes_no.hpp>
-#   if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#       include <ndnboost/type_traits/is_reference.hpp>
-#   endif 
-#endif
-
-#include <ndnboost/mpl/aux_/config/bind.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   if defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-#       define NDNBOOST_MPL_PREPROCESSED_HEADER basic_bind.hpp
-#   else
-#       define NDNBOOST_MPL_PREPROCESSED_HEADER bind.hpp
-#   endif
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/partial_spec_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/ext_params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/enum.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/add.hpp>
-#   include <ndnboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/mpl/aux_/config/ttp.hpp>
-#   include <ndnboost/mpl/aux_/config/dtp.hpp>
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-#   include <ndnboost/preprocessor/inc.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-#   define AUX778076_APPLY \
-    NDNBOOST_PP_CAT(apply_wrap,NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
-    /**/
-
-#   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) \
-    NDNBOOST_MPL_PP_PARAMS( \
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        ) \
-    /**/
-
-#   define AUX778076_BIND_DEFAULT_PARAMS(param, value) \
-    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    /**/
-
-#   define AUX778076_BIND_N_PARAMS(n, param) \
-    NDNBOOST_PP_COMMA_IF(n) NDNBOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   define AUX778076_BIND_N_SPEC_PARAMS(n, param, def) \
-    NDNBOOST_PP_COMMA_IF(n) \
-    NDNBOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
-    /**/
-
-#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) \
-    /**/
-#else
-#   define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \
-    AUX778076_BIND_PARAMS(param) \
-    /**/
-#endif
-
-namespace aux {
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      typename T, AUX778076_BIND_PARAMS(typename U)
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-#   if !defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg<-1>,Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-#   endif // NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-template<
-      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(NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE)
-template<
-      typename F, AUX778076_BIND_PARAMS(typename T), AUX778076_BIND_PARAMS(typename U)
-    >
-struct resolve_bind_arg< bind<F,AUX778076_BIND_PARAMS(T)>,AUX778076_BIND_PARAMS(U) >
-{
-    typedef bind<F,AUX778076_BIND_PARAMS(T)> f_;
-    typedef typename AUX778076_APPLY<f_, AUX778076_BIND_PARAMS(U)>::type type;
-};
-#endif
-
-#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
-// work), so I went with the 'result_' here, and in all other similar cases
-template< bool >
-struct resolve_arg_impl
-{
-    template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<> 
-struct resolve_arg_impl<true>
-{
-    template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_
-    {
-        typedef typename AUX778076_APPLY<
-              T
-            , AUX778076_BIND_PARAMS(U)
-            >::type type;
-    };
-};
-
-// for 'resolve_bind_arg'
-template< typename T > struct is_bind_template;
-
-template< 
-      typename T, AUX778076_BIND_PARAMS(typename U)
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,AUX778076_BIND_PARAMS(U) >
-{
-};
-
-#   if !defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-template< typename T > 
-struct replace_unnamed_arg_impl
-{
-    template< typename Arg > struct result_
-    {
-        typedef Arg next;
-        typedef T type;
-    };
-};
-
-template<> 
-struct replace_unnamed_arg_impl< arg<-1> >
-{
-    template< typename Arg > struct result_
-    {
-        typedef typename next<Arg>::type next;
-        typedef Arg type;
-    };
-};
-
-template< typename T, typename Arg > 
-struct replace_unnamed_arg
-    : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-#   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< 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>*);
-
-// overload for "main" form
-// 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(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< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value = 
-              sizeof(aux::is_bind_helper(static_cast<T*>(0))) 
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::ndnboost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/bind.hpp>))
-#include NDNBOOST_PP_ITERATE()
-
-#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 NDNBOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, <ndnboost/mpl/bind.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-#if !defined(NDNBOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-#   define AUX778076_SPEC_NAME eval_if
-#   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(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 NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#include <ndnboost/mpl/aux_/count_args.hpp>
-}
-
-// bind
-template<
-      typename F, AUX778076_BIND_PARAMS(typename T) AUX778076_DMC_PARAM()
-    >
-struct bind
-    : aux::bind_chooser<
-          aux::bind_count_args<AUX778076_BIND_PARAMS(T)>::value
-        >::template result_< F,AUX778076_BIND_PARAMS(T) >::type
-{
-};
-
-NDNBOOST_MPL_AUX_ARITY_SPEC(
-      NDNBOOST_PP_INC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-    , bind
-    )
-
-NDNBOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
-      NDNBOOST_PP_INC(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-    , bind
-    )
-
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#   undef AUX778076_BIND_NESTED_DEFAULT_PARAMS
-#   undef AUX778076_BIND_N_SPEC_PARAMS
-#   undef AUX778076_BIND_N_PARAMS
-#   undef AUX778076_BIND_DEFAULT_PARAMS
-#   undef AUX778076_BIND_PARAMS
-#   undef AUX778076_DMC_PARAM
-#   undef AUX778076_APPLY
-
-}}
-
-#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
-// 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 defined(AUX778076_SPEC_NAME)
-
-// lazy metafunction specialization
-template< template< NDNBOOST_MPL_PP_PARAMS(i_, typename T) > class F, typename Tag >
-struct NDNBOOST_PP_CAT(quote,i_);
-
-template< NDNBOOST_MPL_PP_PARAMS(i_, typename T) > struct AUX778076_SPEC_NAME;
-
-template<
-      typename Tag AUX778076_BIND_N_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(bind,i_)< 
-      NDNBOOST_PP_CAT(quote,i_)<AUX778076_SPEC_NAME,Tag>
-    AUX778076_BIND_N_PARAMS(i_,T)
-    >
-{
-    template<
-          AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na)
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-#       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
-            , NDNBOOST_MPL_PP_EXT_PARAMS(2, NDNBOOST_PP_INC(i_), t)
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-#undef AUX778076_SPEC_NAME
-
-#else // AUX778076_SPEC_NAME
-
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
-    >
-struct NDNBOOST_PP_CAT(bind,i_)
-{
-    template<
-          AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na)
-        >
-    struct apply
-    {
-     private:
-#   if !defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-        typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg<a0,AUX778076_BIND_PARAMS(U)>::type f_;
-        ///
-#   else
-        typedef typename aux::resolve_bind_arg<F,AUX778076_BIND_PARAMS(U)>::type f_;
-
-#   endif // NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-#   if i_ > 0
-#       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) \
-    NDNBOOST_PP_COMMA_IF(i_) \
-    typename NDNBOOST_PP_CAT(t,NDNBOOST_PP_INC(i_))::type \
-/**/
-
-        typedef typename NDNBOOST_PP_CAT(apply_wrap,i_)<
-              f_ 
-            NDNBOOST_PP_COMMA_IF(i_) NDNBOOST_MPL_PP_REPEAT(i_, AUX778076_ARG, t)
-            >::type type;
-
-#   undef AUX778076_ARG
-    };
-};
-
-namespace aux {
-
-#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<
-      NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>,AUX778076_BIND_PARAMS(U)
-    >
-{
-    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;
-};
-
-#else
-
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T)
-    >
-aux::yes_tag
-is_bind_helper(NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>*);
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-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(NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE)
-#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    
-#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
-    : NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
-{
-};
-#else
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
-    >
-struct bind< F AUX778076_BIND_N_SPEC_PARAMS(i_, T, na) >
-    : NDNBOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
-{
-};
-#endif
-
-#   else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace aux {
-
-template<>
-struct bind_chooser<i_>
-{
-    template<
-          typename F, AUX778076_BIND_PARAMS(typename T)
-        >
-    struct result_
-    {
-        typedef NDNBOOST_PP_CAT(bind,i_)< F AUX778076_BIND_N_PARAMS(i_,T) > type;
-    };
-};
-
-} // namespace aux
-
-#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   endif // NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE
-
-#endif // AUX778076_SPEC_NAME
-
-#   undef i_
-
-///// iteration, depth == 2
-
-#elif NDNBOOST_PP_ITERATION_DEPTH() == 2
-
-#   define j_ NDNBOOST_PP_FRAME_ITERATION(2)
-#   if !defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-        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< NDNBOOST_PP_CAT(T,j_),AUX778076_BIND_PARAMS(U)> NDNBOOST_PP_CAT(t,j_);
-
-#   endif
-#   undef j_
-
-#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
deleted file mode 100644
index d89bcc5..0000000
--- a/include/ndnboost/mpl/bind_fwd.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_BIND_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_BIND_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bind_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER bind_fwd.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <ndnboost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
-
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-
-#   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) \
-    NDNBOOST_MPL_PP_DEFAULT_PARAMS( \
-          NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    AUX778076_DMC_PARAM() \
-    /**/
-
-#   define AUX778076_BIND_N_PARAMS(n, param) \
-    NDNBOOST_PP_COMMA_IF(n) NDNBOOST_MPL_PP_PARAMS(n, param) \
-    AUX778076_DMC_PARAM() \
-    /**/
-
-#if !defined(NDNBOOST_MPL_CFG_NO_BIND_TEMPLATE)
-template<
-      typename F, AUX778076_BIND_DEFAULT_PARAMS(typename T, na)
-    >
-struct bind;
-#endif
-
-#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 // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // NDNBOOST_MPL_BIND_FWD_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(bind,i_);
-
-#undef i_
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/bool.hpp b/include/ndnboost/mpl/bool.hpp
deleted file mode 100644
index 8be7033..0000000
--- a/include/ndnboost/mpl/bool.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef NDNBOOST_MPL_BOOL_HPP_INCLUDED
-#define NDNBOOST_MPL_BOOL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bool.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/bool_fwd.hpp>
-#include <ndnboost/mpl/integral_c_tag.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< bool C_ > struct bool_
-{
-    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(NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION)
-template< bool C_ >
-bool const bool_<C_>::value;
-#endif
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#endif // NDNBOOST_MPL_BOOL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/bool_fwd.hpp b/include/ndnboost/mpl/bool_fwd.hpp
deleted file mode 100644
index c25cac4..0000000
--- a/include/ndnboost/mpl/bool_fwd.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef NDNBOOST_MPL_BOOL_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_BOOL_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bool_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< bool C_ > struct bool_;
-
-// shorcuts
-typedef bool_<true> true_;
-typedef bool_<false> false_;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(bool_)
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(true_)
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(false_)
-
-#endif // NDNBOOST_MPL_BOOL_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/clear.hpp b/include/ndnboost/mpl/clear.hpp
deleted file mode 100644
index 11b49a2..0000000
--- a/include/ndnboost/mpl/clear.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef NDNBOOST_MPL_CLEAR_HPP_INCLUDED
-#define NDNBOOST_MPL_CLEAR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/clear_fwd.hpp>
-#include <ndnboost/mpl/aux_/clear_impl.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct clear
-    : clear_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,clear,(Sequence))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(1, clear)
-
-}}
-
-#endif // NDNBOOST_MPL_CLEAR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/clear_fwd.hpp b/include/ndnboost/mpl/clear_fwd.hpp
deleted file mode 100644
index 4d0daf2..0000000
--- a/include/ndnboost/mpl/clear_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_CLEAR_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_CLEAR_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct clear_impl;
-template< typename Sequence > struct clear;
-
-}}
-
-#endif // NDNBOOST_MPL_CLEAR_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/comparison.hpp b/include/ndnboost/mpl/comparison.hpp
deleted file mode 100644
index 5afad1f..0000000
--- a/include/ndnboost/mpl/comparison.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_COMPARISON_HPP_INCLUDED
-#define NDNBOOST_MPL_COMPARISON_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: comparison.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/equal_to.hpp>
-#include <ndnboost/mpl/not_equal_to.hpp>
-#include <ndnboost/mpl/less.hpp>
-#include <ndnboost/mpl/greater.hpp>
-#include <ndnboost/mpl/less_equal.hpp>
-#include <ndnboost/mpl/greater_equal.hpp>
-
-#endif // NDNBOOST_MPL_COMPARISON_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/contains.hpp b/include/ndnboost/mpl/contains.hpp
deleted file mode 100644
index 8395e8c..0000000
--- a/include/ndnboost/mpl/contains.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef NDNBOOST_MPL_CONTAINS_HPP_INCLUDED
-#define NDNBOOST_MPL_CONTAINS_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: contains.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/contains_fwd.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/contains_impl.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      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 >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,contains,(Sequence,T))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, contains)
-
-}}
-
-#endif // NDNBOOST_MPL_CONTAINS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/contains_fwd.hpp b/include/ndnboost/mpl/contains_fwd.hpp
deleted file mode 100644
index 5b4c2df..0000000
--- a/include/ndnboost/mpl/contains_fwd.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef NDNBOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: contains_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct contains_impl;
-template< typename Sequence, typename T > struct contains;
-
-}}
-
-#endif // NDNBOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/copy.hpp b/include/ndnboost/mpl/copy.hpp
deleted file mode 100644
index c3e16c8..0000000
--- a/include/ndnboost/mpl/copy.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-
-#ifndef NDNBOOST_MPL_COPY_HPP_INCLUDED
-#define NDNBOOST_MPL_COPY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: copy.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/fold.hpp>
-#include <ndnboost/mpl/reverse_fold.hpp>
-#include <ndnboost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename Sequence
-    , typename Inserter
-    >
-struct copy_impl
-    : fold< 
-          Sequence
-        , typename Inserter::state
-        , typename Inserter::operation
-        >
-{
-};
-
-template<
-      typename Sequence
-    , typename Inserter
-    >
-struct reverse_copy_impl
-    : reverse_fold<
-          Sequence
-        , typename Inserter::state
-        , typename Inserter::operation
-        >
-{
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(2, copy)
-
-}}
-
-#endif // NDNBOOST_MPL_COPY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/deref.hpp b/include/ndnboost/mpl/deref.hpp
deleted file mode 100644
index a5fc2ab..0000000
--- a/include/ndnboost/mpl/deref.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef NDNBOOST_MPL_DEREF_HPP_INCLUDED
-#define NDNBOOST_MPL_DEREF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: deref.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/msvc_type.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Iterator)
-    >
-struct deref
-{
-#if !defined(NDNBOOST_MPL_CFG_MSVC_70_ETI_BUG)
-    typedef typename Iterator::type type;
-#else
-    typedef typename aux::msvc_type<Iterator>::type type;
-#endif
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,deref,(Iterator))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(1, deref)
-
-}}
-
-#endif // NDNBOOST_MPL_DEREF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/distance.hpp b/include/ndnboost/mpl/distance.hpp
deleted file mode 100644
index c5360f4..0000000
--- a/include/ndnboost/mpl/distance.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-
-#ifndef NDNBOOST_MPL_DISTANCE_HPP_INCLUDED
-#define NDNBOOST_MPL_DISTANCE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: distance.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/distance_fwd.hpp>
-#include <ndnboost/mpl/iter_fold.hpp>
-#include <ndnboost/mpl/iterator_range.hpp>
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/next.hpp>
-#include <ndnboost/mpl/tag.hpp>
-#include <ndnboost/mpl/apply_wrap.hpp>
-#include <ndnboost/mpl/aux_/msvc_eti_base.hpp>
-#include <ndnboost/mpl/aux_/value_wknd.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/config/forwarding.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-
-namespace ndnboost { namespace mpl {
-
-// default implementation for forward/bidirectional iterators
-template< typename Tag > struct distance_impl
-{
-    template< typename First, typename Last > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : aux::msvc_eti_base< typename iter_fold<
-              iterator_range<First,Last>
-            , mpl::long_<0>
-            , next<>
-            >::type >
-    {
-#else
-    {
-        typedef typename iter_fold<
-              iterator_range<First,Last>
-            , mpl::long_<0>
-            , next<>
-            >::type type;
-        
-        NDNBOOST_STATIC_CONSTANT(long, value =
-              (iter_fold<
-                  iterator_range<First,Last>
-                , mpl::long_<0>
-                , next<>
-                >::type::value)
-            );
-#endif
-    };
-};
-
-template<
-      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>
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2, distance, (First, Last))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, distance)
-
-}}
-
-#endif // NDNBOOST_MPL_DISTANCE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/distance_fwd.hpp b/include/ndnboost/mpl/distance_fwd.hpp
deleted file mode 100644
index 853e9b0..0000000
--- a/include/ndnboost/mpl/distance_fwd.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef NDNBOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: distance_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/common_name_wknd.hpp>
-
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_COMMON_NAME_WKND(distance)
-
-template< typename Tag > struct distance_impl;
-template< typename First, typename Last > struct distance;
-
-}}
-
-#endif // NDNBOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/empty_fwd.hpp b/include/ndnboost/mpl/empty_fwd.hpp
deleted file mode 100644
index c412814..0000000
--- a/include/ndnboost/mpl/empty_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_EMPTY_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_EMPTY_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: empty_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct empty_impl;
-template< typename Sequence > struct empty;
-
-}}
-
-#endif // NDNBOOST_MPL_EMPTY_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/equal_to.hpp b/include/ndnboost/mpl/equal_to.hpp
deleted file mode 100644
index 1fa0ae7..0000000
--- a/include/ndnboost/mpl/equal_to.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_EQUAL_TO_HPP_INCLUDED
-#define NDNBOOST_MPL_EQUAL_TO_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: equal_to.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME equal_to
-#define AUX778076_OP_TOKEN ==
-#include <ndnboost/mpl/aux_/comparison_op.hpp>
-
-#endif // NDNBOOST_MPL_EQUAL_TO_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/eval_if.hpp b/include/ndnboost/mpl/eval_if.hpp
deleted file mode 100644
index fc32fae..0000000
--- a/include/ndnboost/mpl/eval_if.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-#ifndef NDNBOOST_MPL_EVAL_IF_HPP_INCLUDED
-#define NDNBOOST_MPL_EVAL_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: eval_if.hpp 61921 2010-05-11 21:33:24Z neilgroves $
-// $Date: 2010-05-11 14:33:24 -0700 (Tue, 11 May 2010) $
-// $Revision: 61921 $
-
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/gcc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      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 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_;
-    typedef typename f_::type type;
-#else
-    : if_<C,F1,F2>::type
-{
-#endif
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2))
-};
-
-// (almost) copy & paste in order to save one more 
-// recursively nested template instantiation to user
-template<
-      bool C
-    , typename F1
-    , typename F2
-    >
-struct eval_if_c
-#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_;
-    typedef typename f_::type type;
-#else
-    : if_c<C,F1,F2>::type
-{
-#endif
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, eval_if)
-
-}}
-
-#endif // NDNBOOST_MPL_EVAL_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/find.hpp b/include/ndnboost/mpl/find.hpp
deleted file mode 100644
index 011c1ea..0000000
--- a/include/ndnboost/mpl/find.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-#ifndef NDNBOOST_MPL_FIND_HPP_INCLUDED
-#define NDNBOOST_MPL_FIND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2002
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: find.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/find_if.hpp>
-#include <ndnboost/mpl/same_as.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct find
-    : find_if< Sequence,same_as<T> >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, find)
-
-}}
-
-#endif // NDNBOOST_MPL_FIND_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/find_if.hpp b/include/ndnboost/mpl/find_if.hpp
deleted file mode 100644
index 32f3aaf..0000000
--- a/include/ndnboost/mpl/find_if.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-
-#ifndef NDNBOOST_MPL_FIND_IF_HPP_INCLUDED
-#define NDNBOOST_MPL_FIND_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: find_if.hpp 49274 2008-10-11 07:22:05Z agurtovoy $
-// $Date: 2008-10-11 00:22:05 -0700 (Sat, 11 Oct 2008) $
-// $Revision: 49274 $
-
-#include <ndnboost/mpl/aux_/find_if_pred.hpp>
-#include <ndnboost/mpl/arg.hpp>
-#include <ndnboost/mpl/iter_fold_if.hpp>
-#include <ndnboost/mpl/aux_/common_name_wknd.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_COMMON_NAME_WKND(find_if)
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(Predicate)
-    >
-struct find_if
-{
-    typedef typename iter_fold_if<
-          Sequence
-        , void
-        , mpl::arg<1> // ignore
-        , protect< aux::find_if_pred<Predicate> >
-        >::type result_;
-
-    typedef typename second<result_>::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2,find_if)
-
-}}
-
-#endif // NDNBOOST_MPL_FIND_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/fold.hpp b/include/ndnboost/mpl/fold.hpp
deleted file mode 100644
index 74ea561..0000000
--- a/include/ndnboost/mpl/fold.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#ifndef NDNBOOST_MPL_FOLD_HPP_INCLUDED
-#define NDNBOOST_MPL_FOLD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/O1_size.hpp>
-#include <ndnboost/mpl/aux_/fold_impl.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(State)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(ForwardOp)
-    >
-struct fold
-{
-    typedef typename aux::fold_impl<
-          ::ndnboost::mpl::O1_size<Sequence>::value
-        , typename begin<Sequence>::type
-        , typename end<Sequence>::type
-        , State
-        , ForwardOp
-        >::state type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,fold,(Sequence,State,ForwardOp))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, fold)
-
-}}
-
-#endif // NDNBOOST_MPL_FOLD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/for_each.hpp b/include/ndnboost/mpl/for_each.hpp
deleted file mode 100644
index eb72632..0000000
--- a/include/ndnboost/mpl/for_each.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-#ifndef NDNBOOST_MPL_FOR_EACH_HPP_INCLUDED
-#define NDNBOOST_MPL_FOR_EACH_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: for_each.hpp 55648 2009-08-18 05:16:53Z agurtovoy $
-// $Date: 2009-08-17 22:16:53 -0700 (Mon, 17 Aug 2009) $
-// $Revision: 55648 $
-
-#include <ndnboost/mpl/is_sequence.hpp>
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/apply.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/next_prior.hpp>
-#include <ndnboost/mpl/deref.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/mpl/assert.hpp>
-#include <ndnboost/mpl/aux_/unwrap.hpp>
-
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/utility/value_init.hpp>
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< bool done = true >
-struct for_each_impl
-{
-    template<
-          typename Iterator
-        , typename LastIterator
-        , typename TransformFunc
-        , typename F
-        >
-    static void execute(
-          Iterator*
-        , LastIterator*
-        , TransformFunc*
-        , F
-        )
-    {
-    }
-};
-
-template<>
-struct for_each_impl<false>
-{
-    template<
-          typename Iterator
-        , typename LastIterator
-        , typename TransformFunc
-        , typename F
-        >
-    static void execute(
-          Iterator*
-        , LastIterator*
-        , TransformFunc* 
-        , F f
-        )
-    {
-        typedef typename deref<Iterator>::type item;
-        typedef typename apply1<TransformFunc,item>::type arg;
-    
-        // dwa 2002/9/10 -- make sure not to invoke undefined behavior
-        // when we pass arg.
-        value_initialized<arg> x;
-        aux::unwrap(f, 0)(ndnboost::get(x));
-        
-        typedef typename mpl::next<Iterator>::type iter;
-        for_each_impl<ndnboost::is_same<iter,LastIterator>::value>
-            ::execute( static_cast<iter*>(0), static_cast<LastIterator*>(0), static_cast<TransformFunc*>(0), f);
-    }
-};
-
-} // namespace aux
-
-// agurt, 17/mar/02: pointer default parameters are necessary to workaround 
-// MSVC 6.5 function template signature's mangling bug
-template<
-      typename Sequence
-    , typename TransformOp
-    , typename F
-    >
-inline
-void for_each(F f, Sequence* = 0, TransformOp* = 0)
-{
-    NDNBOOST_MPL_ASSERT(( is_sequence<Sequence> ));
-
-    typedef typename begin<Sequence>::type first;
-    typedef typename end<Sequence>::type last;
-
-    aux::for_each_impl< ndnboost::is_same<first,last>::value >
-        ::execute(static_cast<first*>(0), static_cast<last*>(0), static_cast<TransformOp*>(0), f);
-}
-
-template<
-      typename Sequence
-    , typename F
-    >
-inline
-void for_each(F f, Sequence* = 0)
-{
-    for_each<Sequence, identity<> >(f);
-}
-
-}}
-
-#endif // NDNBOOST_MPL_FOR_EACH_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/front_fwd.hpp b/include/ndnboost/mpl/front_fwd.hpp
deleted file mode 100644
index c47c6ed..0000000
--- a/include/ndnboost/mpl/front_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_FRONT_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_FRONT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct front_impl;
-template< typename Sequence > struct front;
-
-}}
-
-#endif // NDNBOOST_MPL_FRONT_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/front_inserter.hpp b/include/ndnboost/mpl/front_inserter.hpp
deleted file mode 100644
index 35061c7..0000000
--- a/include/ndnboost/mpl/front_inserter.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef NDNBOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
-#define NDNBOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front_inserter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/push_front.hpp>
-#include <ndnboost/mpl/inserter.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Sequence
-    >
-struct front_inserter
-    : inserter< Sequence,push_front<> >
-{
-};
-
-}}
-
-#endif // NDNBOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/greater.hpp b/include/ndnboost/mpl/greater.hpp
deleted file mode 100644
index 3d61441..0000000
--- a/include/ndnboost/mpl/greater.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_GREATER_HPP_INCLUDED
-#define NDNBOOST_MPL_GREATER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: greater.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME greater
-#define AUX778076_OP_TOKEN >
-#include <ndnboost/mpl/aux_/comparison_op.hpp>
-
-#endif // NDNBOOST_MPL_GREATER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/greater_equal.hpp b/include/ndnboost/mpl/greater_equal.hpp
deleted file mode 100644
index cd0a8e9..0000000
--- a/include/ndnboost/mpl/greater_equal.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
-#define NDNBOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: greater_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME greater_equal
-#define AUX778076_OP_TOKEN >=
-#include <ndnboost/mpl/aux_/comparison_op.hpp>
-
-#endif // NDNBOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/has_xxx.hpp b/include/ndnboost/mpl/has_xxx.hpp
deleted file mode 100644
index c885609..0000000
--- a/include/ndnboost/mpl/has_xxx.hpp
+++ /dev/null
@@ -1,640 +0,0 @@
-
-#ifndef NDNBOOST_MPL_HAS_XXX_HPP_INCLUDED
-#define NDNBOOST_MPL_HAS_XXX_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2006
-// Copyright David Abrahams 2002-2003
-// Copyright Daniel Walker 2007
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_xxx.hpp 64146 2010-07-19 00:46:31Z djwalker $
-// $Date: 2010-07-18 17:46:31 -0700 (Sun, 18 Jul 2010) $
-// $Revision: 64146 $
-
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/type_wrapper.hpp>
-#include <ndnboost/mpl/aux_/yes_no.hpp>
-#include <ndnboost/mpl/aux_/config/gcc.hpp>
-#include <ndnboost/mpl/aux_/config/has_xxx.hpp>
-#include <ndnboost/mpl/aux_/config/msvc_typename.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#include <ndnboost/preprocessor/array/elem.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/control/if.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp>
-
-#if NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x590) )
-# include <ndnboost/type_traits/is_class.hpp>
-#endif
-
-#if !defined(NDNBOOST_MPL_CFG_NO_HAS_XXX)
-
-#   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, 
-// 1999-11-12 19:17:06 GMT); the code is _not_ standard-conforming, but 
-// it works way more reliably than the SFINAE-based implementation
-
-// Modified dwa 8/Oct/02 to handle reference types.
-
-#   include <ndnboost/mpl/if.hpp>
-#   include <ndnboost/mpl/bool.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-struct has_xxx_tag;
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-template< typename U > struct msvc_incomplete_array
-{
-    typedef char (&type)[sizeof(U) + 1];
-};
-#endif
-
-template< typename T >
-struct msvc_is_incomplete
-{
-    // MSVC is capable of some kinds of SFINAE.  If U is an incomplete
-    // type, it won't pick the second overload
-    static char tester(...);
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-    template< typename U >
-    static typename msvc_incomplete_array<U>::type tester(type_wrapper<U>);
-#else
-    template< typename U >
-    static char (& tester(type_wrapper<U>) )[sizeof(U)+1];
-#endif 
-    
-    NDNBOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(tester(type_wrapper<T>())) == 1
-        );
-};
-
-template<>
-struct msvc_is_incomplete<int>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-}}}
-
-#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, default_) \
-template< typename T, typename name = ::ndnboost::mpl::aux::has_xxx_tag > \
-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(...); \
-    \
-    NDNBOOST_STATIC_CONSTANT(bool, value = \
-          sizeof(test(static_cast<void(*)(name)>(0))) \
-            != sizeof(ndnboost::mpl::aux::no_tag) \
-        ); \
-    typedef ndnboost::mpl::bool_<value> type; \
-}; \
-\
-template< typename T, typename fallback_ = ndnboost::mpl::bool_<default_> > \
-struct trait \
-    : ndnboost::mpl::if_c< \
-          ndnboost::mpl::aux::msvc_is_incomplete<T>::value \
-        , ndnboost::mpl::bool_<false> \
-        , NDNBOOST_PP_CAT(trait,_impl)<T> \
-        >::type \
-{ \
-}; \
-\
-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 NDNBOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, T) \
-template<> struct trait<T> \
-{ \
-    NDNBOOST_STATIC_CONSTANT(bool, value = false); \
-    typedef ndnboost::mpl::bool_<false> type; \
-}; \
-/**/
-
-#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 NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
-    NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \
-/**/
-#endif
-
-
-// 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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1400)) \
-      || NDNBOOST_WORKAROUND(__IBMCPP__, <= 700)
-
-// MSVC 7.1+ & VACPP
-
-// agurt, 15/jun/05: replace overload-based SFINAE implementation with SFINAE
-// applied to partial specialization to fix some apparently random failures 
-// (thanks to Daniel Wallin for researching this!)
-
-#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-template< typename T > \
-struct NDNBOOST_PP_CAT(trait, _msvc_sfinae_helper) \
-{ \
-    typedef void type; \
-};\
-\
-template< typename T, typename U = void > \
-struct NDNBOOST_PP_CAT(trait,_impl_) \
-{ \
-    NDNBOOST_STATIC_CONSTANT(bool, value = false); \
-    typedef ndnboost::mpl::bool_<value> type; \
-}; \
-\
-template< typename T > \
-struct NDNBOOST_PP_CAT(trait,_impl_)< \
-      T \
-    , typename NDNBOOST_PP_CAT(trait, _msvc_sfinae_helper)< typename T::name >::type \
-    > \
-{ \
-    NDNBOOST_STATIC_CONSTANT(bool, value = true); \
-    typedef ndnboost::mpl::bool_<value> type; \
-}; \
-\
-template< typename T, typename fallback_ = ndnboost::mpl::bool_<default_> > \
-struct trait \
-    : NDNBOOST_PP_CAT(trait,_impl_)<T> \
-{ \
-}; \
-/**/
-
-#   elif NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x590) )
-
-#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF(trait, trait_tester, name, default_) \
-template< typename T, bool IS_CLASS > \
-struct trait_tester \
-{ \
-    NDNBOOST_STATIC_CONSTANT( bool,  value = false ); \
-}; \
-template< typename T > \
-struct trait_tester< T, true > \
-{ \
-    struct trait_tester_impl \
-    { \
-        template < class U > \
-        static int  resolve( ndnboost::mpl::aux::type_wrapper<U> const volatile * \
-                           , ndnboost::mpl::aux::type_wrapper<typename U::name >* = 0 ); \
-        static char resolve( ... ); \
-    }; \
-    typedef ndnboost::mpl::aux::type_wrapper<T> t_; \
-    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           \
-{                      \
-    NDNBOOST_STATIC_CONSTANT( bool, value = (trait_tester< T, ndnboost::is_class< T >::value >::value) );     \
-    typedef ndnboost::mpl::bool_< trait< T, fallback_ >::value > type; \
-};
-
-#   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 NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-template< typename T, typename fallback_ = ndnboost::mpl::bool_<default_> > \
-struct trait \
-{ \
-    struct gcc_3_2_wknd \
-    { \
-        template< typename U > \
-        static ndnboost::mpl::aux::yes_tag test( \
-              ndnboost::mpl::aux::type_wrapper<U> const volatile* \
-            , 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_; \
-    NDNBOOST_STATIC_CONSTANT(bool, value = \
-          sizeof(gcc_3_2_wknd::test(static_cast<t_*>(0))) \
-            == sizeof(ndnboost::mpl::aux::yes_tag) \
-        ); \
-    typedef ndnboost::mpl::bool_<value> type; \
-}; \
-/**/
-
-#   endif // NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-
-
-#else // NDNBOOST_MPL_CFG_NO_HAS_XXX
-
-// placeholder implementation
-
-#   define NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-template< typename T, typename fallback_ = ndnboost::mpl::bool_<default_> > \
-struct trait \
-{ \
-    NDNBOOST_STATIC_CONSTANT(bool, value = fallback_::value); \
-    typedef fallback_ type; \
-}; \
-/**/
-
-#endif
-
-#define NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(name) \
-    NDNBOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(NDNBOOST_PP_CAT(has_,name), name, false) \
-/**/
-
-
-#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
-// posting by Aleksey Gurtovoy (comp.lang.c++.moderated, 2002-03-19),
-// Rani Sharoni's USENET posting cited above, the non-template has_xxx
-// implementations above, and discussion on the Boost mailing list.
-
-#   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(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(NDNBOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE)
-#     if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1400)
-#       define NDNBOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE 1
-#     endif
-#   endif
-
-// NOTE: Many internal implementation macros take a Boost.Preprocessor
-// array argument called args which is of the following form.
-//           ( 4, ( trait, name, max_arity, default_ ) )
-
-#   define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \
-      NDNBOOST_PP_CAT(NDNBOOST_PP_ARRAY_ELEM(0, args) , _introspect) \
-    /**/
-
-#   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 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 NDNBOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE(z, n, args) \
-      template< \
-          template< NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_INC(n), typename V) > class V \
-       > \
-      struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) { \
-      }; \
-    /**/
-
-#   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 !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 \
-        NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \
-      /**/
-#   else
-#     define NDNBOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
-        static ndnboost::mpl::aux::no_tag \
-        NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \
-      /**/
-#   endif
-
-#   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 \
-        NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
-            ndnboost::mpl::aux::type_wrapper< V > const volatile* \
-          , NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) < \
-                V::template NDNBOOST_PP_ARRAY_ELEM(1, args) \
-            >* = 0 \
-        ); \
-      /**/
-#     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 NDNBOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
-        template< typename V > \
-        static ndnboost::mpl::aux::yes_tag \
-        NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
-            V const volatile* \
-          , member_macro(args, V, T)* = 0 \
-        ); \
-      /**/
-#   endif
-
-#   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 !NDNBOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES
-#       define NDNBOOST_MPL_HAS_MEMBER_TEST(args) \
-          sizeof( \
-              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 NDNBOOST_MPL_HAS_MEMBER_TEST(args) \
-          sizeof( \
-              NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
-                  static_cast< U* >(0) \
-              ) \
-          ) == sizeof(ndnboost::mpl::aux::yes_tag) \
-        /**/
-#     endif
-#   endif
-
-#   define NDNBOOST_MPL_HAS_MEMBER_INTROSPECT( \
-               args, substitute_macro, member_macro \
-           ) \
-      template< typename U > \
-      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 NDNBOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
-               args, introspect_macro, substitute_macro, member_macro \
-           ) \
-      template< \
-          typename T \
-        , typename fallback_ \
-              = ndnboost::mpl::bool_< NDNBOOST_PP_ARRAY_ELEM(3, args) > \
-      > \
-      class NDNBOOST_PP_ARRAY_ELEM(0, args) { \
-          introspect_macro(args, substitute_macro, member_macro) \
-      public: \
-          static const bool value \
-              = NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< T >::value; \
-          typedef typename NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< \
-              T \
-          >::type type; \
-      }; \
-    /**/
-
-// 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 NDNBOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE( \
-               args, substitute_macro, member_macro \
-           ) \
-      NDNBOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
-          args \
-        , NDNBOOST_MPL_HAS_MEMBER_INTROSPECT \
-        , substitute_macro \
-        , member_macro \
-      ) \
-    /**/
-
-#   if NDNBOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE
-
-#     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 !NDNBOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE
-#       define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                   args, n \
-               ) \
-          NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
-        /**/
-#     else
-#       define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                   args, n \
-               ) \
-          NDNBOOST_PP_CAT( \
-              boost_mpl_has_xxx_ \
-            , NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
-          ) \
-        /**/
-#     endif
-
-#     define NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME( \
-                 args \
-             ) \
-        NDNBOOST_PP_CAT( \
-            NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                args, 0 \
-            ) \
-          , _tag \
-        ) \
-      /**/
-
-#     define NDNBOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
-                 z, n, args \
-             ) \
-        template< \
-             template< NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_INC(n), typename U) > class U \
-        > \
-        struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                args, n \
-               ) { \
-            typedef \
-                NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \
-                type; \
-        }; \
-      /**/
-
-#     define NDNBOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
-                 args, substitute_macro \
-             ) \
-        typedef void \
-            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 NDNBOOST_MPL_HAS_MEMBER_REJECT_WITH_TEMPLATE_SFINAE( \
-                 args, member_macro \
-             ) \
-        template< \
-            typename U \
-          , typename V \
-                = NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \
-        > \
-        struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args) { \
-            NDNBOOST_STATIC_CONSTANT(bool, value = false); \
-            typedef ndnboost::mpl::bool_< value > type; \
-        }; \
-      /**/
-
-#     define NDNBOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE( \
-                 z, n, args \
-             ) \
-        template< typename U > \
-        struct NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< \
-            U \
-          , typename \
-                NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                    args, n \
-                )< \
-                    NDNBOOST_MSVC_TYPENAME U::NDNBOOST_PP_ARRAY_ELEM(1, args)< > \
-                >::type \
-        > { \
-            NDNBOOST_STATIC_CONSTANT(bool, value = true); \
-            typedef ndnboost::mpl::bool_< value > type; \
-        }; \
-      /**/
-
-#     define NDNBOOST_MPL_HAS_MEMBER_ACCEPT_WITH_TEMPLATE_SFINAE( \
-                 args, member_macro \
-             ) \
-        NDNBOOST_PP_REPEAT( \
-            NDNBOOST_PP_ARRAY_ELEM(2, args) \
-          , NDNBOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE \
-          , args \
-        ) \
-      /**/
-
-#     define NDNBOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE( \
-                 args, substitute_macro, 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 NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \
-            : NDNBOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U > { \
-        }; \
-      /**/
- 
-// 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 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
-// NDNBOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE can be used.
-#     define NDNBOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE( \
-                 args, substitute_macro, member_macro \
-             ) \
-        NDNBOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
-            args, substitute_macro \
-        ) \
-        NDNBOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
-            args \
-          , NDNBOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE \
-          , substitute_macro \
-          , member_macro \
-        ) \
-      /**/
-
-#   endif // NDNBOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE
-
-// Note: In the current implementation the parameter and access macros
-// are no longer expanded.
-#   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 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 // NDNBOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
-
-// placeholder implementation
-
-#   define NDNBOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
-      template< typename T \
-              , typename fallback_ = ndnboost::mpl::bool_< default_ > > \
-      struct trait { \
-          NDNBOOST_STATIC_CONSTANT(bool, value = fallback_::value); \
-          typedef fallback_ type; \
-      }; \
-    /**/
-
-#endif // NDNBOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
-
-#   define NDNBOOST_MPL_HAS_XXX_TEMPLATE_DEF(name) \
-      NDNBOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF( \
-          NDNBOOST_PP_CAT(has_, name), name, false \
-      ) \
-    /**/
-
-#endif // NDNBOOST_MPL_HAS_XXX_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/identity.hpp b/include/ndnboost/mpl/identity.hpp
deleted file mode 100644
index 9e9207f..0000000
--- a/include/ndnboost/mpl/identity.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef NDNBOOST_MPL_IDENTITY_HPP_INCLUDED
-#define NDNBOOST_MPL_IDENTITY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: identity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct identity
-{
-    typedef T type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, identity, (T))
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct make_identity
-{
-    typedef identity<T> type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, make_identity, (T))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(1, identity)
-NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(1, make_identity)
-
-}}
-
-#endif // NDNBOOST_MPL_IDENTITY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/if.hpp b/include/ndnboost/mpl/if.hpp
deleted file mode 100644
index c74be5f..0000000
--- a/include/ndnboost/mpl/if.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-
-#ifndef NDNBOOST_MPL_IF_HPP_INCLUDED
-#define NDNBOOST_MPL_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/value_wknd.hpp>
-#include <ndnboost/mpl/aux_/static_cast.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/config/integral.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      bool C
-    , typename T1
-    , typename T2
-    >
-struct if_c
-{
-    typedef T1 type;
-};
-
-template<
-      typename T1
-    , typename T2
-    >
-struct if_c<false,T1,T2>
-{
-    typedef T2 type;
-};
-
-// 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 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(NDNBOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS)
-          NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value
-#else
-          NDNBOOST_MPL_AUX_STATIC_CAST(bool, NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value)
-#endif
-        , T2
-        , T3
-        > almost_type_;
- 
- public:
-    typedef typename almost_type_::type type;
-    
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3))
-};
-
-#else
-
-// no partial class template specialization
-
-namespace aux {
-
-template< bool C >
-struct if_impl
-{
-    template< typename T1, typename T2 > struct result_
-    {
-        typedef T1 type;
-    };
-};
-
-template<>
-struct if_impl<false>
-{
-    template< typename T1, typename T2 > struct result_
-    { 
-        typedef T2 type;
-    };
-};
-
-} // namespace aux
-
-template<
-      bool C_
-    , typename T1
-    , typename T2
-    >
-struct if_c
-{
-    typedef typename aux::if_impl< C_ >
-        ::template result_<T1,T2>::type type;
-};
-
-// (almost) copy & paste in order to save one more 
-// recursively nested template instantiation to user
-template<
-      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_ = NDNBOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value };
-
-    typedef typename aux::if_impl< NDNBOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) >
-        ::template result_<T1,T2>::type type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2))
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, if_)
-
-}}
-
-#endif // NDNBOOST_MPL_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/inserter.hpp b/include/ndnboost/mpl/inserter.hpp
deleted file mode 100644
index 7bceba1..0000000
--- a/include/ndnboost/mpl/inserter.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef NDNBOOST_MPL_INSERTER_HPP_INCLUDED
-#define NDNBOOST_MPL_INSERTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: inserter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Sequence
-    , typename Operation
-    >
-struct inserter
-{
-    typedef Sequence    state;
-    typedef Operation   operation;
-};
-
-}}
-
-#endif // NDNBOOST_MPL_INSERTER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/int.hpp b/include/ndnboost/mpl/int.hpp
deleted file mode 100644
index 05f6997..0000000
--- a/include/ndnboost/mpl/int.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#ifndef NDNBOOST_MPL_INT_HPP_INCLUDED
-#define NDNBOOST_MPL_INT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: int.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/int_fwd.hpp>
-
-#define AUX_WRAPPER_VALUE_TYPE int
-#include <ndnboost/mpl/aux_/integral_wrapper.hpp>
-
-#endif // NDNBOOST_MPL_INT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/int_fwd.hpp b/include/ndnboost/mpl/int_fwd.hpp
deleted file mode 100644
index ab30247..0000000
--- a/include/ndnboost/mpl/int_fwd.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef NDNBOOST_MPL_INT_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_INT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: int_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(int_)
-
-#endif // NDNBOOST_MPL_INT_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/integral_c.hpp b/include/ndnboost/mpl/integral_c.hpp
deleted file mode 100644
index 9c9fa91..0000000
--- a/include/ndnboost/mpl/integral_c.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#ifndef NDNBOOST_MPL_INTEGRAL_C_HPP_INCLUDED
-#define NDNBOOST_MPL_INTEGRAL_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/integral_c_fwd.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#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
-#   define AUX_WRAPPER_PARAMS(N) typename T, T N
-#endif
-
-#define AUX_WRAPPER_NAME integral_c
-#define AUX_WRAPPER_VALUE_TYPE T
-#define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< T, value >
-#include <ndnboost/mpl/aux_/integral_wrapper.hpp>
-
-
-#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>
-{
-    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; }
-};
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-#endif
-
-#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
deleted file mode 100644
index 1eaec64..0000000
--- a/include/ndnboost/mpl/integral_c_fwd.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef NDNBOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral_c_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-#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
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c)
-
-#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
deleted file mode 100644
index a5d2aa7..0000000
--- a/include/ndnboost/mpl/integral_c_tag.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef NDNBOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
-#define NDNBOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral_c_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-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 // NDNBOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/is_placeholder.hpp b/include/ndnboost/mpl/is_placeholder.hpp
deleted file mode 100644
index 93f9653..0000000
--- a/include/ndnboost/mpl/is_placeholder.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#ifndef NDNBOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
-#define NDNBOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: is_placeholder.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/arg_fwd.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/aux_/yes_no.hpp>
-#include <ndnboost/mpl/aux_/type_wrapper.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename T >
-struct is_placeholder
-    : bool_<false>
-{
-};
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct is_placeholder< arg<N> >
-    : bool_<true>
-{
-};
-
-#else
-
-namespace aux {
-
-aux::no_tag is_placeholder_helper(...);
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N) >
-aux::yes_tag is_placeholder_helper(aux::type_wrapper< arg<N> >*);
-
-} // namespace aux
-
-template< typename T >
-struct is_placeholder
-{
-    static aux::type_wrapper<T>* get();
-    NDNBOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(aux::is_placeholder_helper(get())) == sizeof(aux::yes_tag)
-        );
-    
-    typedef bool_<value> type;
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}
-
-#endif // NDNBOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/is_sequence.hpp b/include/ndnboost/mpl/is_sequence.hpp
deleted file mode 100644
index 24111bf..0000000
--- a/include/ndnboost/mpl/is_sequence.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-
-#ifndef NDNBOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
-#define NDNBOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: is_sequence.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/not.hpp>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/sequence_tag_fwd.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/mpl/void.hpp>
-#include <ndnboost/mpl/aux_/has_tag.hpp>
-#include <ndnboost/mpl/aux_/has_begin.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-#   include <ndnboost/mpl/aux_/msvc_is_class.hpp>
-#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-#   include <ndnboost/type_traits/is_class.hpp>
-#endif
-
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-
-namespace aux {
-
-// agurt, 11/jun/03: 
-// MSVC 6.5/7.0 fails if 'has_begin' is instantiated on a class type that has a
-// 'begin' member that doesn't name a type; e.g. 'has_begin< std::vector<int> >'
-// would fail; requiring 'T' to have _both_ 'tag' and 'begin' members workarounds
-// the issue for most real-world cases
-template< typename T > struct is_sequence_impl
-    : and_<
-          identity< aux::has_tag<T> >
-        , identity< aux::has_begin<T> >
-        >
-{
-};
-
-} // namespace aux
-        
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct is_sequence
-    : if_<
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-          aux::msvc_is_class<T> 
-#else
-          ndnboost::is_class<T> 
-#endif
-        , aux::is_sequence_impl<T>
-        , bool_<false>
-        >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
-};
-
-#elif defined(NDNBOOST_MPL_CFG_NO_HAS_XXX)
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct is_sequence
-    : bool_<false>
-{
-};
-
-#else
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct is_sequence
-    : not_< is_same< typename begin<T>::type, void_ > >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
-};
-
-#endif // NDNBOOST_MSVC
-
-#if defined(NDNBOOST_MPL_CFG_MSVC_60_ETI_BUG)
-template<> struct is_sequence<int>
-    : bool_<false>
-{
-};
-#endif
-
-NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(1, is_sequence)
-
-}}
-
-#endif // NDNBOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/iter_fold.hpp b/include/ndnboost/mpl/iter_fold.hpp
deleted file mode 100644
index a8480b8..0000000
--- a/include/ndnboost/mpl/iter_fold.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef NDNBOOST_MPL_ITER_FOLD_HPP_INCLUDED
-#define NDNBOOST_MPL_ITER_FOLD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/O1_size.hpp>
-#include <ndnboost/mpl/lambda.hpp>
-#include <ndnboost/mpl/aux_/iter_fold_impl.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(State)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(ForwardOp)
-    >
-struct iter_fold
-{
-    typedef typename aux::iter_fold_impl<
-          ::ndnboost::mpl::O1_size<Sequence>::value
-        , typename begin<Sequence>::type
-        , typename end<Sequence>::type
-        , State
-        , typename lambda<ForwardOp>::type
-        >::state type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,iter_fold,(Sequence,State,ForwardOp))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, iter_fold)
-
-}}
-
-#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
deleted file mode 100644
index 14f8765..0000000
--- a/include/ndnboost/mpl/iter_fold_if.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-
-#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
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_fold_if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/logical.hpp>
-#include <ndnboost/mpl/always.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/pair.hpp>
-#include <ndnboost/mpl/apply.hpp>
-#include <ndnboost/mpl/aux_/iter_fold_if_impl.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/config/forwarding.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< typename Predicate, typename LastIterator >
-struct iter_fold_if_pred
-{
-    template< typename State, typename Iterator > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : and_<
-              not_< is_same<Iterator,LastIterator> >
-            , apply1<Predicate,Iterator>
-            >
-    {
-#else
-    {
-        typedef and_<
-              not_< is_same<Iterator,LastIterator> >
-            , apply1<Predicate,Iterator>
-            > type;
-#endif
-    };
-};
-
-} // namespace aux
-
-template<
-      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
-{
-
-    typedef typename begin<Sequence>::type first_;
-    typedef typename end<Sequence>::type last_;
-
-    typedef typename eval_if<
-          is_na<BackwardPredicate>
-        , if_< is_na<BackwardOp>, always<false_>, always<true_> >
-        , identity<BackwardPredicate>
-        >::type backward_pred_;
-
-// cwpro8 doesn't like 'cut-off' type here (use typedef instead)
-#if !NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003)) && !NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
-    struct result_ :
-#else
-    typedef
-#endif
-        aux::iter_fold_if_impl<
-          first_
-        , State
-        , ForwardOp
-        , protect< aux::iter_fold_if_pred< ForwardPredicate,last_ > >
-        , BackwardOp
-        , backward_pred_
-        >
-#if !NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003)) && !NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
-    { };
-#else
-    result_;
-#endif
-
-public:
-
-    typedef pair<
-          typename result_::state
-        , typename result_::iterator
-        > type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , iter_fold_if
-        , (Sequence,State,ForwardOp,ForwardPredicate,BackwardOp,BackwardPredicate)
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(6, iter_fold_if)
-
-}}
-
-#endif // NDNBOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/iterator_range.hpp b/include/ndnboost/mpl/iterator_range.hpp
deleted file mode 100644
index cc8cc88..0000000
--- a/include/ndnboost/mpl/iterator_range.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef NDNBOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
-#define NDNBOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iterator_range.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-struct iterator_range_tag;
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(First)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(Last)
-    >
-struct iterator_range
-{
-    typedef iterator_range_tag tag;
-    typedef iterator_range type;
-    typedef First begin;
-    typedef Last end;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,iterator_range,(First,Last))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, iterator_range)
-
-}}
-
-#endif // NDNBOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/iterator_tags.hpp b/include/ndnboost/mpl/iterator_tags.hpp
deleted file mode 100644
index 986ab69..0000000
--- a/include/ndnboost/mpl/iterator_tags.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef NDNBOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
-#define NDNBOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iterator_tags.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/int.hpp>
-
-namespace ndnboost { namespace mpl {
-
-struct forward_iterator_tag       : int_<0> { typedef forward_iterator_tag type; };
-struct bidirectional_iterator_tag : int_<1> { typedef bidirectional_iterator_tag type; };
-struct random_access_iterator_tag : int_<2> { typedef random_access_iterator_tag type; };
-
-}}
-
-#endif // NDNBOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/lambda.hpp b/include/ndnboost/mpl/lambda.hpp
deleted file mode 100644
index a617547..0000000
--- a/include/ndnboost/mpl/lambda.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LAMBDA_HPP_INCLUDED
-#define NDNBOOST_MPL_LAMBDA_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/lambda_fwd.hpp>
-#include <ndnboost/mpl/bind.hpp>
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-
-#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 NDNBOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS
-#endif
-
-#endif // NDNBOOST_MPL_LAMBDA_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/lambda_fwd.hpp b/include/ndnboost/mpl/lambda_fwd.hpp
deleted file mode 100644
index 8fb94d8..0000000
--- a/include/ndnboost/mpl/lambda_fwd.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/void_fwd.hpp>
-#include <ndnboost/mpl/aux_/na.hpp>
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-#   include <ndnboost/mpl/int.hpp>
-#   include <ndnboost/mpl/aux_/lambda_arity_param.hpp>
-#   include <ndnboost/mpl/aux_/template_arity_fwd.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< 
-      typename T = na
-    , typename Tag = void_
-    NDNBOOST_MPL_AUX_LAMBDA_ARITY_PARAM(
-          typename Arity = int_< aux::template_arity<T>::value >
-        )
-    >
-struct lambda;
-
-}}
-
-#else // NDNBOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#   include <ndnboost/mpl/bool.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< 
-      typename T = na
-    , typename Tag = void_
-    , typename Protect = true_
-    > 
-struct lambda;
-
-}}
-
-#endif
-
-#endif // NDNBOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/less.hpp b/include/ndnboost/mpl/less.hpp
deleted file mode 100644
index 14431f5..0000000
--- a/include/ndnboost/mpl/less.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LESS_HPP_INCLUDED
-#define NDNBOOST_MPL_LESS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: less.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME less
-#define AUX778076_OP_TOKEN <
-#include <ndnboost/mpl/aux_/comparison_op.hpp>
-
-#endif // NDNBOOST_MPL_LESS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/less_equal.hpp b/include/ndnboost/mpl/less_equal.hpp
deleted file mode 100644
index b758a3f..0000000
--- a/include/ndnboost/mpl/less_equal.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LESS_EQUAL_HPP_INCLUDED
-#define NDNBOOST_MPL_LESS_EQUAL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: less_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME less_equal
-#define AUX778076_OP_TOKEN <=
-#include <ndnboost/mpl/aux_/comparison_op.hpp>
-
-#endif // NDNBOOST_MPL_LESS_EQUAL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/limits/arity.hpp b/include/ndnboost/mpl/limits/arity.hpp
deleted file mode 100644
index 0c9650b..0000000
--- a/include/ndnboost/mpl/limits/arity.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
-#define NDNBOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-#   define NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY 5
-#endif
-
-#endif // NDNBOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/limits/list.hpp b/include/ndnboost/mpl/limits/list.hpp
deleted file mode 100644
index 5a37ea0..0000000
--- a/include/ndnboost/mpl/limits/list.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIMITS_LIST_HPP_INCLUDED
-#define NDNBOOST_MPL_LIMITS_LIST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_LIMIT_LIST_SIZE)
-#   define NDNBOOST_MPL_LIMIT_LIST_SIZE 20
-#endif
-
-#endif // NDNBOOST_MPL_LIMITS_LIST_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/limits/unrolling.hpp b/include/ndnboost/mpl/limits/unrolling.hpp
deleted file mode 100644
index edf5500..0000000
--- a/include/ndnboost/mpl/limits/unrolling.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
-#define NDNBOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: unrolling.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_LIMIT_UNROLLING)
-#   define NDNBOOST_MPL_LIMIT_UNROLLING 4
-#endif
-
-#endif // NDNBOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/limits/vector.hpp b/include/ndnboost/mpl/limits/vector.hpp
deleted file mode 100644
index 567b258..0000000
--- a/include/ndnboost/mpl/limits/vector.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
-#define NDNBOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_LIMIT_VECTOR_SIZE)
-#   define NDNBOOST_MPL_LIMIT_VECTOR_SIZE 20
-#endif
-
-#endif // NDNBOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list.hpp b/include/ndnboost/mpl/list.hpp
deleted file mode 100644
index 134c828..0000000
--- a/include/ndnboost/mpl/list.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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>
-
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-#   include <ndnboost/preprocessor/stringize.hpp>
-
-#if !defined(NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-#   define AUX778076_LIST_HEADER \
-    NDNBOOST_PP_CAT(list,NDNBOOST_MPL_LIMIT_LIST_SIZE).hpp \
-    /**/
-#else
-#   define AUX778076_LIST_HEADER \
-    NDNBOOST_PP_CAT(list,NDNBOOST_MPL_LIMIT_LIST_SIZE)##.hpp \
-    /**/
-#endif
-
-#   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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/list.hpp>
-
-#   define AUX778076_SEQUENCE_NAME list
-#   define AUX778076_SEQUENCE_LIMIT NDNBOOST_MPL_LIMIT_LIST_SIZE
-#   include <ndnboost/mpl/aux_/sequence_wrapper.hpp>
-
-#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
deleted file mode 100644
index 801a404..0000000
--- a/include/ndnboost/mpl/list/aux_/O1_size.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/O1_size_fwd.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct O1_size_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-        : List::size
-    {
-    };
-};
-
-}}
-
-#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
deleted file mode 100644
index 481ece9..0000000
--- a/include/ndnboost/mpl/list/aux_/begin_end.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/begin_end_fwd.hpp>
-#include <ndnboost/mpl/list/aux_/iterator.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-#include <ndnboost/mpl/list/aux_/item.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct begin_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-    {
-        typedef l_iter<typename List::type> type;
-    };
-};
-
-template<>
-struct end_impl< aux::list_tag >
-{
-    template< typename > struct apply
-    {
-        typedef l_iter<l_end> type;
-    };
-};
-
-}}
-
-#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
deleted file mode 100644
index 986ca56..0000000
--- a/include/ndnboost/mpl/list/aux_/clear.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/clear_fwd.hpp>
-#include <ndnboost/mpl/list/aux_/item.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct clear_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-    {
-        typedef l_end type;
-    };
-};
-
-}}
-
-#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
deleted file mode 100644
index bdd9f31..0000000
--- a/include/ndnboost/mpl/list/aux_/empty.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: empty.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/empty_fwd.hpp>
-#include <ndnboost/mpl/not.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct empty_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-        : not_<typename List::size>
-    {
-    };
-};
-
-}}
-
-#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
deleted file mode 100644
index 9ee1dd6..0000000
--- a/include/ndnboost/mpl/list/aux_/front.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/front_fwd.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct front_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-    {
-        typedef typename List::item type;
-    };
-};
-
-}}
-
-#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
deleted file mode 100644
index cbeea8b..0000000
--- a/include/ndnboost/mpl/list/aux_/include_preprocessed.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/stringize.hpp>
-
-#   define AUX778076_HEADER \
-    aux_/preprocessed/plain/NDNBOOST_MPL_PREPROCESSED_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 NDNBOOST_PP_STRINGIZE(ndnboost/mpl/list/AUX778076_HEADER)
-#endif
-
-#   undef AUX778076_HEADER
-
-#undef NDNBOOST_MPL_PREPROCESSED_HEADER
diff --git a/include/ndnboost/mpl/list/aux_/item.hpp b/include/ndnboost/mpl/list/aux_/item.hpp
deleted file mode 100644
index 393529a..0000000
--- a/include/ndnboost/mpl/list/aux_/item.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: item.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Size
-    , typename T
-    , typename Next
-    >
-struct l_item
-{
-// agurt, 17/jul/03: to facilitate the deficient 'is_sequence' implementation 
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-    typedef int begin;
-#endif
-    typedef aux::list_tag tag;
-    typedef l_item type;
-
-    typedef Size size;
-    typedef T item;
-    typedef Next next;
-};
-
-struct l_end
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-    typedef int begin;
-#endif
-    typedef aux::list_tag tag;
-    typedef l_end type;
-    typedef long_<0> size;
-};
-
-}}
-
-#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
deleted file mode 100644
index 914a27d..0000000
--- a/include/ndnboost/mpl/list/aux_/iterator.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iterator.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/iterator_tags.hpp>
-#include <ndnboost/mpl/next_prior.hpp>
-#include <ndnboost/mpl/deref.hpp>
-#include <ndnboost/mpl/list/aux_/item.hpp>
-#include <ndnboost/mpl/aux_/na.hpp>
-#include <ndnboost/mpl/aux_/lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename Node >
-struct l_iter
-{
-    typedef aux::l_iter_tag tag;
-    typedef forward_iterator_tag category;
-};
-
-template< typename Node >
-struct deref< l_iter<Node> >
-{
-    typedef typename Node::item type;
-};
-
-template< typename Node >
-struct next< l_iter<Node> >
-{
-    typedef l_iter< typename Node::next > type;
-};
-
-#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< typename Node >
-struct l_iter
-{
-    typedef aux::l_iter_tag tag;
-    typedef forward_iterator_tag category;
-    typedef typename Node::item type;
-    typedef l_iter< typename mpl::next<Node>::type > next;
-};
-
-#endif
-
-
-template<> struct l_iter<l_end>
-{
-    typedef aux::l_iter_tag tag;
-    typedef forward_iterator_tag category;
-#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    typedef na type;
-    typedef l_iter next;
-#endif
-};
-
-NDNBOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, l_iter)
-
-}}
-
-#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
deleted file mode 100644
index 15c642e..0000000
--- a/include/ndnboost/mpl/list/aux_/numbered.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Peter Dimov 2000-2002
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numbered.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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 NDNBOOST_PP_FRAME_ITERATION(1)
-
-#if i == 1
-
-template<
-      NDNBOOST_PP_ENUM_PARAMS(i, typename T)
-    >
-struct list1
-    : l_item<
-          long_<1>
-        , T0
-        , l_end
-        >
-{
-    typedef list1 type;
-};
-
-#else
-
-#   define MPL_AUX_LIST_TAIL(list, i, T) \
-    NDNBOOST_PP_CAT(list,NDNBOOST_PP_DEC(i))< \
-      NDNBOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \
-    > \
-    /**/
-    
-template<
-      NDNBOOST_PP_ENUM_PARAMS(i, typename T)
-    >
-struct NDNBOOST_PP_CAT(list,i)
-    : l_item<
-          long_<i>
-        , T0
-        , MPL_AUX_LIST_TAIL(list,i,T)
-        >
-{
-    typedef NDNBOOST_PP_CAT(list,i) type;
-};
-
-#   undef MPL_AUX_LIST_TAIL
-
-#endif // i == 1
-
-#undef i
-
-#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
deleted file mode 100644
index dc8fd63..0000000
--- a/include/ndnboost/mpl/list/aux_/numbered_c.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numbered_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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 NDNBOOST_PP_FRAME_ITERATION(1)
-
-#if i == 1
-
-template<
-      typename T
-    , NDNBOOST_PP_ENUM_PARAMS(i, T C)
-    >
-struct list1_c
-    : l_item<
-          long_<1>
-        , integral_c<T,C0>
-        , l_end
-        >
-{
-    typedef list1_c type;
-    typedef T value_type;
-};
-
-#else
-
-#   define MPL_AUX_LIST_C_TAIL(list, 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
-    , NDNBOOST_PP_ENUM_PARAMS(i, T 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 NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(list,i),_c) type;
-    typedef T value_type;
-};
-
-#   undef MPL_AUX_LIST_C_TAIL
-
-#endif // i == 1
-
-#undef i
-
-#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
deleted file mode 100644
index b8d7444..0000000
--- a/include/ndnboost/mpl/list/aux_/pop_front.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/pop_front_fwd.hpp>
-#include <ndnboost/mpl/next_prior.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct pop_front_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-    {
-        typedef typename mpl::next<List>::type type;
-    };
-};
-
-}}
-
-#endif // NDNBOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list10.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list10.hpp
deleted file mode 100644
index 2e8edb2..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list10.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0
-    >
-struct list1
-    : l_item<
-          long_<1>
-        , T0
-        , l_end
-        >
-{
-    typedef list1 type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list2
-    : l_item<
-          long_<2>
-        , T0
-        , list1<T1>
-        >
-{
-    typedef list2 type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list3
-    : l_item<
-          long_<3>
-        , T0
-        , list2< T1,T2 >
-        >
-{
-    typedef list3 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list4
-    : l_item<
-          long_<4>
-        , T0
-        , list3< T1,T2,T3 >
-        >
-{
-    typedef list4 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list5
-    : l_item<
-          long_<5>
-        , T0
-        , list4< T1,T2,T3,T4 >
-        >
-{
-    typedef list5 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list6
-    : l_item<
-          long_<6>
-        , T0
-        , list5< T1,T2,T3,T4,T5 >
-        >
-{
-    typedef list6 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list7
-    : l_item<
-          long_<7>
-        , T0
-        , list6< T1,T2,T3,T4,T5,T6 >
-        >
-{
-    typedef list7 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list8
-    : l_item<
-          long_<8>
-        , T0
-        , list7< T1,T2,T3,T4,T5,T6,T7 >
-        >
-{
-    typedef list8 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list9
-    : l_item<
-          long_<9>
-        , T0
-        , list8< T1,T2,T3,T4,T5,T6,T7,T8 >
-        >
-{
-    typedef list9 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list10
-    : l_item<
-          long_<10>
-        , T0
-        , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-        >
-{
-    typedef list10 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list10_c.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list10_c.hpp
deleted file mode 100644
index bfc0582..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list10_c.hpp
+++ /dev/null
@@ -1,164 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0
-    >
-struct list1_c
-    : l_item<
-          long_<1>
-        , integral_c< T,C0 >
-        , l_end
-        >
-{
-    typedef list1_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1
-    >
-struct list2_c
-    : l_item<
-          long_<2>
-        , integral_c< T,C0 >
-        , list1_c< T,C1 >
-        >
-{
-    typedef list2_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2
-    >
-struct list3_c
-    : l_item<
-          long_<3>
-        , integral_c< T,C0 >
-        , list2_c< T,C1,C2 >
-        >
-{
-    typedef list3_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3
-    >
-struct list4_c
-    : l_item<
-          long_<4>
-        , integral_c< T,C0 >
-        , list3_c< T,C1,C2,C3 >
-        >
-{
-    typedef list4_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4
-    >
-struct list5_c
-    : l_item<
-          long_<5>
-        , integral_c< T,C0 >
-        , list4_c< T,C1,C2,C3,C4 >
-        >
-{
-    typedef list5_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5
-    >
-struct list6_c
-    : l_item<
-          long_<6>
-        , integral_c< T,C0 >
-        , list5_c< T,C1,C2,C3,C4,C5 >
-        >
-{
-    typedef list6_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6
-    >
-struct list7_c
-    : l_item<
-          long_<7>
-        , integral_c< T,C0 >
-        , list6_c< T,C1,C2,C3,C4,C5,C6 >
-        >
-{
-    typedef list7_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
-    >
-struct list8_c
-    : l_item<
-          long_<8>
-        , integral_c< T,C0 >
-        , list7_c< T,C1,C2,C3,C4,C5,C6,C7 >
-        >
-{
-    typedef list8_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
-    >
-struct list9_c
-    : l_item<
-          long_<9>
-        , integral_c< T,C0 >
-        , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 >
-        >
-{
-    typedef list9_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
-    >
-struct list10_c
-    : l_item<
-          long_<10>
-        , integral_c< T,C0 >
-        , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-        >
-{
-    typedef list10_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list20.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list20.hpp
deleted file mode 100644
index 8b64295..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list20.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list11
-    : l_item<
-          long_<11>
-        , T0
-        , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-        >
-{
-    typedef list11 type;
-};
-
-template<
-      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 list12
-    : l_item<
-          long_<12>
-        , T0
-        , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-        >
-{
-    typedef list12 type;
-};
-
-template<
-      typename T0, 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 list13
-    : l_item<
-          long_<13>
-        , T0
-        , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-        >
-{
-    typedef list13 type;
-};
-
-template<
-      typename T0, typename T1, 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 list14
-    : l_item<
-          long_<14>
-        , T0
-        , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-        >
-{
-    typedef list14 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 list15
-    : l_item<
-          long_<15>
-        , T0
-        , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >
-        >
-{
-    typedef list15 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 list16
-    : l_item<
-          long_<16>
-        , T0
-        , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >
-        >
-{
-    typedef list16 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 list17
-    : l_item<
-          long_<17>
-        , T0
-        , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >
-        >
-{
-    typedef list17 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 list18
-    : l_item<
-          long_<18>
-        , T0
-        , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >
-        >
-{
-    typedef list18 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 list19
-    : l_item<
-          long_<19>
-        , T0
-        , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >
-        >
-{
-    typedef list19 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 list20
-    : l_item<
-          long_<20>
-        , T0
-        , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >
-        >
-{
-    typedef list20 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list20_c.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list20_c.hpp
deleted file mode 100644
index ec34def..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list20_c.hpp
+++ /dev/null
@@ -1,173 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    >
-struct list11_c
-    : l_item<
-          long_<11>
-        , integral_c< T,C0 >
-        , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-        >
-{
-    typedef list11_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11
-    >
-struct list12_c
-    : l_item<
-          long_<12>
-        , integral_c< T,C0 >
-        , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-        >
-{
-    typedef list12_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12
-    >
-struct list13_c
-    : l_item<
-          long_<13>
-        , integral_c< T,C0 >
-        , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-        >
-{
-    typedef list13_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13
-    >
-struct list14_c
-    : l_item<
-          long_<14>
-        , integral_c< T,C0 >
-        , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >
-        >
-{
-    typedef list14_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14
-    >
-struct list15_c
-    : l_item<
-          long_<15>
-        , integral_c< T,C0 >
-        , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >
-        >
-{
-    typedef list15_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15
-    >
-struct list16_c
-    : l_item<
-          long_<16>
-        , integral_c< T,C0 >
-        , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >
-        >
-{
-    typedef list16_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16
-    >
-struct list17_c
-    : l_item<
-          long_<17>
-        , integral_c< T,C0 >
-        , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >
-        >
-{
-    typedef list17_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17
-    >
-struct list18_c
-    : l_item<
-          long_<18>
-        , integral_c< T,C0 >
-        , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >
-        >
-{
-    typedef list18_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18
-    >
-struct list19_c
-    : l_item<
-          long_<19>
-        , integral_c< T,C0 >
-        , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >
-        >
-{
-    typedef list19_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19
-    >
-struct list20_c
-    : l_item<
-          long_<20>
-        , integral_c< T,C0 >
-        , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >
-        >
-{
-    typedef list20_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list30.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list30.hpp
deleted file mode 100644
index 5cdcac7..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list30.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, 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 list21
-    : l_item<
-          long_<21>
-        , T0
-        , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 >
-        >
-{
-    typedef list21 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , 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 list22
-    : l_item<
-          long_<22>
-        , T0
-        , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 >
-        >
-{
-    typedef list22 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, 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 list23
-    : l_item<
-          long_<23>
-        , T0
-        , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 >
-        >
-{
-    typedef list23 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, 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 list24
-    : l_item<
-          long_<24>
-        , T0
-        , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 >
-        >
-{
-    typedef list24 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, 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 list25
-    : l_item<
-          long_<25>
-        , T0
-        , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 >
-        >
-{
-    typedef list25 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, 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 list26
-    : l_item<
-          long_<26>
-        , T0
-        , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 >
-        >
-{
-    typedef list26 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , 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 list27
-    : l_item<
-          long_<27>
-        , T0
-        , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 >
-        >
-{
-    typedef list27 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, 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 list28
-    : l_item<
-          long_<28>
-        , T0
-        , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 >
-        >
-{
-    typedef list28 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, 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 list29
-    : l_item<
-          long_<29>
-        , T0
-        , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 >
-        >
-{
-    typedef list29 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list30
-    : l_item<
-          long_<30>
-        , T0
-        , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 >
-        >
-{
-    typedef list30 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list30_c.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list30_c.hpp
deleted file mode 100644
index 3398150..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list30_c.hpp
+++ /dev/null
@@ -1,183 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    >
-struct list21_c
-    : l_item<
-          long_<21>
-        , integral_c< T,C0 >
-        , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 >
-        >
-{
-    typedef list21_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21
-    >
-struct list22_c
-    : l_item<
-          long_<22>
-        , integral_c< T,C0 >
-        , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 >
-        >
-{
-    typedef list22_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22
-    >
-struct list23_c
-    : l_item<
-          long_<23>
-        , integral_c< T,C0 >
-        , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 >
-        >
-{
-    typedef list23_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23
-    >
-struct list24_c
-    : l_item<
-          long_<24>
-        , integral_c< T,C0 >
-        , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 >
-        >
-{
-    typedef list24_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24
-    >
-struct list25_c
-    : l_item<
-          long_<25>
-        , integral_c< T,C0 >
-        , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 >
-        >
-{
-    typedef list25_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25
-    >
-struct list26_c
-    : l_item<
-          long_<26>
-        , integral_c< T,C0 >
-        , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 >
-        >
-{
-    typedef list26_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26
-    >
-struct list27_c
-    : l_item<
-          long_<27>
-        , integral_c< T,C0 >
-        , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 >
-        >
-{
-    typedef list27_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27
-    >
-struct list28_c
-    : l_item<
-          long_<28>
-        , integral_c< T,C0 >
-        , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 >
-        >
-{
-    typedef list28_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
-    >
-struct list29_c
-    : l_item<
-          long_<29>
-        , integral_c< T,C0 >
-        , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 >
-        >
-{
-    typedef list29_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
-    >
-struct list30_c
-    : l_item<
-          long_<30>
-        , integral_c< T,C0 >
-        , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 >
-        >
-{
-    typedef list30_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list40.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list40.hpp
deleted file mode 100644
index 810ae99..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list40.hpp
+++ /dev/null
@@ -1,209 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list31
-    : l_item<
-          long_<31>
-        , T0
-        , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 >
-        >
-{
-    typedef list31 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list32
-    : l_item<
-          long_<32>
-        , T0
-        , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 >
-        >
-{
-    typedef list32 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list33
-    : l_item<
-          long_<33>
-        , T0
-        , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 >
-        >
-{
-    typedef list33 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list34
-    : l_item<
-          long_<34>
-        , T0
-        , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 >
-        >
-{
-    typedef list34 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list35
-    : l_item<
-          long_<35>
-        , T0
-        , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 >
-        >
-{
-    typedef list35 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list36
-    : l_item<
-          long_<36>
-        , T0
-        , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 >
-        >
-{
-    typedef list36 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list37
-    : l_item<
-          long_<37>
-        , T0
-        , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 >
-        >
-{
-    typedef list37 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list38
-    : l_item<
-          long_<38>
-        , T0
-        , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 >
-        >
-{
-    typedef list38 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list39
-    : l_item<
-          long_<39>
-        , T0
-        , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 >
-        >
-{
-    typedef list39 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list40
-    : l_item<
-          long_<40>
-        , T0
-        , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 >
-        >
-{
-    typedef list40 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list40_c.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list40_c.hpp
deleted file mode 100644
index 18ed649..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list40_c.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    >
-struct list31_c
-    : l_item<
-          long_<31>
-        , integral_c< T,C0 >
-        , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 >
-        >
-{
-    typedef list31_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31
-    >
-struct list32_c
-    : l_item<
-          long_<32>
-        , integral_c< T,C0 >
-        , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 >
-        >
-{
-    typedef list32_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32
-    >
-struct list33_c
-    : l_item<
-          long_<33>
-        , integral_c< T,C0 >
-        , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 >
-        >
-{
-    typedef list33_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33
-    >
-struct list34_c
-    : l_item<
-          long_<34>
-        , integral_c< T,C0 >
-        , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 >
-        >
-{
-    typedef list34_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34
-    >
-struct list35_c
-    : l_item<
-          long_<35>
-        , integral_c< T,C0 >
-        , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 >
-        >
-{
-    typedef list35_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35
-    >
-struct list36_c
-    : l_item<
-          long_<36>
-        , integral_c< T,C0 >
-        , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 >
-        >
-{
-    typedef list36_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36
-    >
-struct list37_c
-    : l_item<
-          long_<37>
-        , integral_c< T,C0 >
-        , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 >
-        >
-{
-    typedef list37_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37
-    >
-struct list38_c
-    : l_item<
-          long_<38>
-        , integral_c< T,C0 >
-        , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 >
-        >
-{
-    typedef list38_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
-    >
-struct list39_c
-    : l_item<
-          long_<39>
-        , integral_c< T,C0 >
-        , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 >
-        >
-{
-    typedef list39_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
-    >
-struct list40_c
-    : l_item<
-          long_<40>
-        , integral_c< T,C0 >
-        , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 >
-        >
-{
-    typedef list40_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list50.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list50.hpp
deleted file mode 100644
index 5b8fda5..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list50.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list41
-    : l_item<
-          long_<41>
-        , T0
-        , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 >
-        >
-{
-    typedef list41 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list42
-    : l_item<
-          long_<42>
-        , T0
-        , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 >
-        >
-{
-    typedef list42 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list43
-    : l_item<
-          long_<43>
-        , T0
-        , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 >
-        >
-{
-    typedef list43 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list44
-    : l_item<
-          long_<44>
-        , T0
-        , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 >
-        >
-{
-    typedef list44 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list45
-    : l_item<
-          long_<45>
-        , T0
-        , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef list45 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list46
-    : l_item<
-          long_<46>
-        , T0
-        , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef list46 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list47
-    : l_item<
-          long_<47>
-        , T0
-        , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef list47 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list48
-    : l_item<
-          long_<48>
-        , T0
-        , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef list48 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list49
-    : l_item<
-          long_<49>
-        , T0
-        , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef list49 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 list50
-    : l_item<
-          long_<50>
-        , T0
-        , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef list50 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list50_c.hpp b/include/ndnboost/mpl/list/aux_/preprocessed/plain/list50_c.hpp
deleted file mode 100644
index d0f619e..0000000
--- a/include/ndnboost/mpl/list/aux_/preprocessed/plain/list50_c.hpp
+++ /dev/null
@@ -1,203 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/list/list50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    >
-struct list41_c
-    : l_item<
-          long_<41>
-        , integral_c< T,C0 >
-        , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 >
-        >
-{
-    typedef list41_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41
-    >
-struct list42_c
-    : l_item<
-          long_<42>
-        , integral_c< T,C0 >
-        , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 >
-        >
-{
-    typedef list42_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42
-    >
-struct list43_c
-    : l_item<
-          long_<43>
-        , integral_c< T,C0 >
-        , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 >
-        >
-{
-    typedef list43_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43
-    >
-struct list44_c
-    : l_item<
-          long_<44>
-        , integral_c< T,C0 >
-        , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 >
-        >
-{
-    typedef list44_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44
-    >
-struct list45_c
-    : l_item<
-          long_<45>
-        , integral_c< T,C0 >
-        , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 >
-        >
-{
-    typedef list45_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45
-    >
-struct list46_c
-    : l_item<
-          long_<46>
-        , integral_c< T,C0 >
-        , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 >
-        >
-{
-    typedef list46_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46
-    >
-struct list47_c
-    : l_item<
-          long_<47>
-        , integral_c< T,C0 >
-        , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 >
-        >
-{
-    typedef list47_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47
-    >
-struct list48_c
-    : l_item<
-          long_<48>
-        , integral_c< T,C0 >
-        , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 >
-        >
-{
-    typedef list48_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
-    >
-struct list49_c
-    : l_item<
-          long_<49>
-        , integral_c< T,C0 >
-        , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 >
-        >
-{
-    typedef list49_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
-    >
-struct list50_c
-    : l_item<
-          long_<50>
-        , integral_c< T,C0 >
-        , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 >
-        >
-{
-    typedef list50_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/list/aux_/push_back.hpp b/include/ndnboost/mpl/list/aux_/push_back.hpp
deleted file mode 100644
index f82758c..0000000
--- a/include/ndnboost/mpl/list/aux_/push_back.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/push_back_fwd.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct has_push_back_impl;
-
-template<>
-struct has_push_back_impl< aux::list_tag >
-{
-    template< typename Seq > struct apply
-        : false_
-    {
-    };
-};
-
-}}
-
-#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
deleted file mode 100644
index 2233882..0000000
--- a/include/ndnboost/mpl/list/aux_/push_front.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/push_front_fwd.hpp>
-#include <ndnboost/mpl/next.hpp>
-#include <ndnboost/mpl/list/aux_/item.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct push_front_impl< aux::list_tag >
-{
-    template< typename List, typename T > struct apply
-    {
-        typedef l_item<
-              typename next<typename List::size>::type
-            , T
-            , typename List::type
-            > type;
-    };
-};
-
-}}
-
-#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
deleted file mode 100644
index 5e9c5d1..0000000
--- a/include/ndnboost/mpl/list/aux_/size.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/size_fwd.hpp>
-#include <ndnboost/mpl/list/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct size_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-        : List::size
-    {
-    };
-};
-
-}}
-
-#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
deleted file mode 100644
index 9ea53c2..0000000
--- a/include/ndnboost/mpl/list/aux_/tag.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-struct list_tag;
-struct l_iter_tag;
-
-}}}
-
-#endif // NDNBOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list0.hpp b/include/ndnboost/mpl/list/list0.hpp
deleted file mode 100644
index 4fae937..0000000
--- a/include/ndnboost/mpl/list/list0.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST0_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/aux_/na.hpp>
-#include <ndnboost/mpl/list/aux_/push_front.hpp>
-#include <ndnboost/mpl/list/aux_/pop_front.hpp>
-#include <ndnboost/mpl/list/aux_/push_back.hpp>
-#include <ndnboost/mpl/list/aux_/front.hpp>
-#include <ndnboost/mpl/list/aux_/clear.hpp>
-#include <ndnboost/mpl/list/aux_/O1_size.hpp>
-#include <ndnboost/mpl/list/aux_/size.hpp>
-#include <ndnboost/mpl/list/aux_/empty.hpp>
-#include <ndnboost/mpl/list/aux_/begin_end.hpp>
-#include <ndnboost/mpl/list/aux_/item.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename Dummy = na > struct list0;
-
-template<> struct list0<na>
-    : l_end
-{
-    typedef l_end type;
-};
-
-}}
-
-#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
deleted file mode 100644
index 0761cab..0000000
--- a/include/ndnboost/mpl/list/list0_c.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list0_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/list/list0.hpp>
-#include <ndnboost/mpl/integral_c.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename T > struct list0_c
-    : l_end
-{
-    typedef l_end type;
-    typedef T value_type;
-};
-
-}}
-
-#endif // NDNBOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list10.hpp b/include/ndnboost/mpl/list/list10.hpp
deleted file mode 100644
index b8cc733..0000000
--- a/include/ndnboost/mpl/list/list10.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST10_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST10_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list10.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list0.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list10.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, 10, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index b5975cf..0000000
--- a/include/ndnboost/mpl/list/list10_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list10_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list0_c.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list10_c.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, 10, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list20.hpp b/include/ndnboost/mpl/list/list20.hpp
deleted file mode 100644
index 3817e54..0000000
--- a/include/ndnboost/mpl/list/list20.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST20_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST20_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list20.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list10.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list20.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(11, 20, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index c267b5f..0000000
--- a/include/ndnboost/mpl/list/list20_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list20_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list10_c.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list20_c.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(11, 20, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list30.hpp b/include/ndnboost/mpl/list/list30.hpp
deleted file mode 100644
index 97c73a3..0000000
--- a/include/ndnboost/mpl/list/list30.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST30_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST30_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list30.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list20.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list30.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(21, 30, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index fe865fd..0000000
--- a/include/ndnboost/mpl/list/list30_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list30_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list20_c.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list30_c.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(21, 30, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list40.hpp b/include/ndnboost/mpl/list/list40.hpp
deleted file mode 100644
index c1a1dec..0000000
--- a/include/ndnboost/mpl/list/list40.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST40_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST40_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list40.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list30.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list40.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(31, 40, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index 2e14c3c..0000000
--- a/include/ndnboost/mpl/list/list40_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list40_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list30_c.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list40_c.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(31, 40, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/list/list50.hpp b/include/ndnboost/mpl/list/list50.hpp
deleted file mode 100644
index 9bd00b5..0000000
--- a/include/ndnboost/mpl/list/list50.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST50_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST50_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list50.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list40.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list50.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(41, 50, <ndnboost/mpl/list/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index b784db6..0000000
--- a/include/ndnboost/mpl/list/list50_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
-#define NDNBOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list50_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/list/list40_c.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER list50_c.hpp
-#   include <ndnboost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(41, 50, <ndnboost/mpl/list/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/logical.hpp b/include/ndnboost/mpl/logical.hpp
deleted file mode 100644
index 5c436c8..0000000
--- a/include/ndnboost/mpl/logical.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LOGICAL_HPP_INCLUDED
-#define NDNBOOST_MPL_LOGICAL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: logical.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/or.hpp>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/not.hpp>
-
-#endif // NDNBOOST_MPL_LOGICAL_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/long.hpp b/include/ndnboost/mpl/long.hpp
deleted file mode 100644
index 4b70b49..0000000
--- a/include/ndnboost/mpl/long.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LONG_HPP_INCLUDED
-#define NDNBOOST_MPL_LONG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: long.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/long_fwd.hpp>
-
-#define AUX_WRAPPER_VALUE_TYPE long
-#include <ndnboost/mpl/aux_/integral_wrapper.hpp>
-
-#endif // NDNBOOST_MPL_LONG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/long_fwd.hpp b/include/ndnboost/mpl/long_fwd.hpp
deleted file mode 100644
index adcdada..0000000
--- a/include/ndnboost/mpl/long_fwd.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef NDNBOOST_MPL_LONG_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_LONG_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: long_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > struct long_;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(long_)
-
-#endif // NDNBOOST_MPL_LONG_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/minus.hpp b/include/ndnboost/mpl/minus.hpp
deleted file mode 100644
index a765cb7..0000000
--- a/include/ndnboost/mpl/minus.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_MINUS_HPP_INCLUDED
-#define NDNBOOST_MPL_MINUS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: minus.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME minus
-#define AUX778076_OP_TOKEN -
-#include <ndnboost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // NDNBOOST_MPL_MINUS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/multiplies.hpp b/include/ndnboost/mpl/multiplies.hpp
deleted file mode 100644
index ab06d77..0000000
--- a/include/ndnboost/mpl/multiplies.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-#ifndef NDNBOOST_MPL_MULTIPLIES_HPP_INCLUDED
-#define NDNBOOST_MPL_MULTIPLIES_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: multiplies.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/times.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/default_params.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-// backward compatibility header, deprecated
-
-namespace ndnboost { namespace mpl {
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#   define AUX778076_OP_ARITY NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#else
-#   define AUX778076_OP_ARITY 2
-#endif
-
-template<
-      NDNBOOST_MPL_PP_DEFAULT_PARAMS(AUX778076_OP_ARITY, typename N, na)
-    >
-struct multiplies
-    : times< NDNBOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(
-          AUX778076_OP_ARITY
-        , multiplies
-        , ( NDNBOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
-        )
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(AUX778076_OP_ARITY, multiplies)
-
-#undef AUX778076_OP_ARITY
-
-}}
-
-#endif // NDNBOOST_MPL_MULTIPLIES_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/negate.hpp b/include/ndnboost/mpl/negate.hpp
deleted file mode 100644
index e8b9acc..0000000
--- a/include/ndnboost/mpl/negate.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-
-#ifndef NDNBOOST_MPL_NEGATE_HPP_INCLUDED
-#define NDNBOOST_MPL_NEGATE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: negate.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/integral_c.hpp>
-#include <ndnboost/mpl/aux_/msvc_eti_base.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-#include <ndnboost/mpl/aux_/config/integral.hpp>
-#include <ndnboost/mpl/aux_/config/static_constant.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct negate_impl;
-
-template< typename T > struct negate_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(N)
-    >
-struct negate
-#if !defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
-    : negate_impl<
-          typename negate_tag<N>::type
-        >::template apply<N>::type
-#else
-    : aux::msvc_eti_base< typename apply_wrap1<
-          negate_impl< typename negate_tag<N>::type >
-        , N
-        >::type >::type
-#endif
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, negate, (N))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(1, negate)
-
-
-#if defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-namespace aux {
-template< typename T, T n > struct negate_wknd
-{
-    NDNBOOST_STATIC_CONSTANT(T, value = -n);
-    typedef integral_c<T,value> type;
-};
-}
-#endif
-
-template<>
-struct negate_impl<integral_c_tag>
-{
-#if defined(NDNBOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-    template< typename N > struct apply
-        : aux::negate_wknd< typename N::value_type, N::value >
-#else
-    template< typename N > struct apply
-        : integral_c< typename N::value_type, (-N::value) >
-#endif    
-    {
-    };
-};
-
-}}
-
-#endif // NDNBOOST_MPL_NEGATE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/next.hpp b/include/ndnboost/mpl/next.hpp
deleted file mode 100644
index 99c4c99..0000000
--- a/include/ndnboost/mpl/next.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef NDNBOOST_MPL_NEXT_HPP_INCLUDED
-#define NDNBOOST_MPL_NEXT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: next.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/next_prior.hpp>
-
-#endif // NDNBOOST_MPL_NEXT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/next_prior.hpp b/include/ndnboost/mpl/next_prior.hpp
deleted file mode 100644
index e1902c7..0000000
--- a/include/ndnboost/mpl/next_prior.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef NDNBOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
-#define NDNBOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: next_prior.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/common_name_wknd.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-NDNBOOST_MPL_AUX_COMMON_NAME_WKND(next)
-NDNBOOST_MPL_AUX_COMMON_NAME_WKND(prior)
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct next
-{
-    typedef typename T::next type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,next,(T))
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct prior
-{
-    typedef typename T::prior type;
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,prior,(T))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(1, next)
-NDNBOOST_MPL_AUX_NA_SPEC(1, prior)
-
-}}
-
-#endif // NDNBOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/not.hpp b/include/ndnboost/mpl/not.hpp
deleted file mode 100644
index 2612a95..0000000
--- a/include/ndnboost/mpl/not.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#ifndef NDNBOOST_MPL_NOT_HPP_INCLUDED
-#define NDNBOOST_MPL_NOT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: not.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#include <ndnboost/mpl/aux_/nested_type_wknd.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, C_) > // 'long' is intentional here
-struct not_impl
-    : bool_<!C_>
-{
-};
-
-} // namespace aux
-
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct not_
-    : aux::not_impl<
-          NDNBOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value
-        >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,not_,(T))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(1,not_)
-
-}}
-
-#endif // NDNBOOST_MPL_NOT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/not_equal_to.hpp b/include/ndnboost/mpl/not_equal_to.hpp
deleted file mode 100644
index 074af8a..0000000
--- a/include/ndnboost/mpl/not_equal_to.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
-#define NDNBOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: not_equal_to.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME not_equal_to
-#define AUX778076_OP_TOKEN !=
-#include <ndnboost/mpl/aux_/comparison_op.hpp>
-
-#endif // NDNBOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/numeric_cast.hpp b/include/ndnboost/mpl/numeric_cast.hpp
deleted file mode 100644
index 1bf4abf..0000000
--- a/include/ndnboost/mpl/numeric_cast.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef NDNBOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
-#define NDNBOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numeric_cast.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-// agurt 21/sep/04: portability macro for the sake of MSVC 6.x-7.0;
-// 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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300) || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x570) )
-#   define NDNBOOST_MPL_AUX_NUMERIC_CAST numeric_cast_
-#else
-#   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 NDNBOOST_MPL_AUX_NUMERIC_CAST
-{
-    template< typename N > struct apply;
-};
-
-}}
-
-#endif // NDNBOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/or.hpp b/include/ndnboost/mpl/or.hpp
deleted file mode 100644
index d35db4d..0000000
--- a/include/ndnboost/mpl/or.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-
-#ifndef NDNBOOST_MPL_OR_HPP_INCLUDED
-#define NDNBOOST_MPL_OR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: or.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#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>
-#   include <ndnboost/mpl/aux_/na_spec.hpp>
-#   include <ndnboost/mpl/aux_/lambda_support.hpp>
-#   include <ndnboost/mpl/aux_/config/msvc.hpp>
-
-// agurt, 19/may/04: workaround a conflict with <iso646.h> header's 
-// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(or)'
-// has to be checked in a separate condition, otherwise GCC complains 
-// about 'or' being an alternative token
-#if defined(_MSC_VER)
-#ifndef __GCCXML__
-#if defined(or)
-#   pragma push_macro("or")
-#   undef or
-#   define or(x)
-#endif
-#endif
-#endif
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER or.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#if defined(_MSC_VER) 
-#ifndef __GCCXML__
-#if defined(or)
-#   pragma pop_macro("or")
-#endif
-#endif
-#endif
-
-#else
-
-#   define AUX778076_OP_NAME or_
-#   define AUX778076_OP_VALUE1 true
-#   define AUX778076_OP_VALUE2 false
-#   include <ndnboost/mpl/aux_/logical_op.hpp>
-
-#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
deleted file mode 100644
index 3c295c5..0000000
--- a/include/ndnboost/mpl/pair.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-
-#ifndef NDNBOOST_MPL_PAIR_HPP_INCLUDED
-#define NDNBOOST_MPL_PAIR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pair.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/msvc_eti_base.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T1)
-    , typename NDNBOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct pair
-{
-    typedef pair type;
-    typedef T1 first;
-    typedef T2 second;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,pair,(T1,T2))
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(P)
-    >
-struct first
-{
-#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
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,first,(P))
-};
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(P)
-    >
-struct second
-{
-#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
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,second,(P))
-};
-
-
-NDNBOOST_MPL_AUX_NA_SPEC_NO_ETI(2, pair)
-NDNBOOST_MPL_AUX_NA_SPEC(1, first)
-NDNBOOST_MPL_AUX_NA_SPEC(1, second)
-
-}}
-
-#endif // NDNBOOST_MPL_PAIR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/placeholders.hpp b/include/ndnboost/mpl/placeholders.hpp
deleted file mode 100644
index 0444d8a..0000000
--- a/include/ndnboost/mpl/placeholders.hpp
+++ /dev/null
@@ -1,100 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-#define NDNBOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: placeholders.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/arg.hpp>
-#   include <ndnboost/mpl/aux_/adl_barrier.hpp>
-
-#   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 NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/
-#   endif
-
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER placeholders.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-// watch out for GNU gettext users, who #define _(x)
-#if !defined(_) || defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<-1> _;
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-namespace ndnboost { namespace mpl { 
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-#endif
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, <ndnboost/mpl/placeholders.hpp>))
-#include NDNBOOST_PP_ITERATE()
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // NDNBOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-typedef arg<i_> NDNBOOST_PP_CAT(_,i_);
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-namespace ndnboost { namespace mpl { 
-
-NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(NDNBOOST_PP_CAT(_,i_))
-
-namespace placeholders {
-using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::NDNBOOST_PP_CAT(_,i_);
-}
-
-}}
-
-#undef i_
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/plus.hpp b/include/ndnboost/mpl/plus.hpp
deleted file mode 100644
index 2265cfa..0000000
--- a/include/ndnboost/mpl/plus.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_PLUS_HPP_INCLUDED
-#define NDNBOOST_MPL_PLUS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: plus.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME plus
-#define AUX778076_OP_TOKEN +
-#include <ndnboost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // NDNBOOST_MPL_PLUS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/pop_back_fwd.hpp b/include/ndnboost/mpl/pop_back_fwd.hpp
deleted file mode 100644
index f3e9451..0000000
--- a/include/ndnboost/mpl/pop_back_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct pop_back_impl;
-template< typename Sequence > struct pop_back;
-
-}}
-
-#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
deleted file mode 100644
index f41205b..0000000
--- a/include/ndnboost/mpl/pop_front_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct pop_front_impl;
-template< typename Sequence > struct pop_front;
-
-}}
-
-#endif // NDNBOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/prior.hpp b/include/ndnboost/mpl/prior.hpp
deleted file mode 100644
index 9e880ea..0000000
--- a/include/ndnboost/mpl/prior.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef NDNBOOST_MPL_PRIOR_HPP_INCLUDED
-#define NDNBOOST_MPL_PRIOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: prior.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/next_prior.hpp>
-
-#endif // NDNBOOST_MPL_PRIOR_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/protect.hpp b/include/ndnboost/mpl/protect.hpp
deleted file mode 100644
index 02d4c41..0000000
--- a/include/ndnboost/mpl/protect.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#ifndef NDNBOOST_MPL_PROTECT_HPP_INCLUDED
-#define NDNBOOST_MPL_PROTECT_HPP_INCLUDED
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: protect.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/arity.hpp>
-#include <ndnboost/mpl/aux_/config/dtp.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(T)
-    , int not_le_ = 0
-    >
-struct protect : T
-{
-#if NDNBOOST_WORKAROUND(__EDG_VERSION__, == 238)
-    typedef mpl::protect type;
-#else
-    typedef protect type;
-#endif
-};
-
-#if defined(NDNBOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-namespace aux { 
-template< NDNBOOST_MPL_AUX_NTTP_DECL(int, N), typename T >
-struct arity< protect<T>, N > 
-    : arity<T,N>
-{ 
-};
-} // namespace aux
-#endif
-
-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 // NDNBOOST_MPL_PROTECT_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/push_back.hpp b/include/ndnboost/mpl/push_back.hpp
deleted file mode 100644
index 9cea895..0000000
--- a/include/ndnboost/mpl/push_back.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-#ifndef NDNBOOST_MPL_PUSH_BACK_HPP_INCLUDED
-#define NDNBOOST_MPL_PUSH_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/push_back_fwd.hpp>
-#include <ndnboost/mpl/aux_/push_back_impl.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      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 >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_back,(Sequence,T))
-};
-
-
-template< 
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct has_push_back
-    : has_push_back_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_back,(Sequence))
-};
-
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, push_back)
-NDNBOOST_MPL_AUX_NA_SPEC(1, has_push_back)
-
-}}
-
-#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
deleted file mode 100644
index 9de0ff0..0000000
--- a/include/ndnboost/mpl/push_back_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct push_back_impl;
-template< typename Sequence, typename T > struct push_back;
-
-}}
-
-#endif // NDNBOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/push_front.hpp b/include/ndnboost/mpl/push_front.hpp
deleted file mode 100644
index d3313c8..0000000
--- a/include/ndnboost/mpl/push_front.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef NDNBOOST_MPL_PUSH_FRONT_HPP_INCLUDED
-#define NDNBOOST_MPL_PUSH_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/push_front_fwd.hpp>
-#include <ndnboost/mpl/aux_/push_front_impl.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      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 >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_front,(Sequence,T))
-};
-
-
-template< 
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct has_push_front
-    : has_push_front_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_front,(Sequence))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(2, push_front)
-NDNBOOST_MPL_AUX_NA_SPEC(1, has_push_front)
-
-}}
-
-#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
deleted file mode 100644
index 44394fd..0000000
--- a/include/ndnboost/mpl/push_front_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct push_front_impl;
-template< typename Sequence, typename T > struct push_front;
-
-}}
-
-#endif // NDNBOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/quote.hpp b/include/ndnboost/mpl/quote.hpp
deleted file mode 100644
index 59b7d3a..0000000
--- a/include/ndnboost/mpl/quote.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef NDNBOOST_MPL_QUOTE_HPP_INCLUDED
-#define NDNBOOST_MPL_QUOTE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: quote.hpp 49272 2008-10-11 06:50:46Z agurtovoy $
-// $Date: 2008-10-10 23:50:46 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49272 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/void.hpp>
-#   include <ndnboost/mpl/aux_/has_type.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/bcc.hpp>
-#include <ndnboost/mpl/aux_/config/ttp.hpp>
-
-#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(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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER quote.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/arity.hpp>
-#   include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_QUOTE_TEMPLATE)
-
-namespace ndnboost { namespace mpl {
-
-#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 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;
-};
-# else 
-    : T
-{
-};
-# endif 
-
-template< typename T >
-struct quote_impl<T,false>
-{
-    typedef T type;
-};
-
-#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< bool > struct quote_impl
-{
-    template< typename T > struct result_
-        : T
-    {
-    };
-};
-
-template<> struct quote_impl<false>
-{
-    template< typename T > struct result_
-    {
-        typedef T type;
-    };
-};
-
-#endif 
-
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY, <ndnboost/mpl/quote.hpp>))
-#include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_QUOTE_TEMPLATE
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // NDNBOOST_MPL_QUOTE_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-template<
-      template< NDNBOOST_MPL_PP_PARAMS(i_, typename P) > class F
-    , typename Tag = void_
-    >
-struct NDNBOOST_PP_CAT(quote,i_)
-{
-    template< NDNBOOST_MPL_PP_PARAMS(i_, typename U) > struct apply
-#if defined(NDNBOOST_MPL_CFG_BCC590_WORKAROUNDS)
-    {
-        typedef typename quote_impl<
-              F< NDNBOOST_MPL_PP_PARAMS(i_, U) >
-            , aux::has_type< F< NDNBOOST_MPL_PP_PARAMS(i_, U) > >::value
-            >::type type;
-    };
-#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-        : quote_impl<
-              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< NDNBOOST_MPL_PP_PARAMS(i_, U) > >::value >
-            ::template result_< F< NDNBOOST_MPL_PP_PARAMS(i_, U) > >
-    {
-    };
-#endif
-};
-
-#undef i_
-#endif // NDNBOOST_PP_IS_ITERATING
diff --git a/include/ndnboost/mpl/remove_if.hpp b/include/ndnboost/mpl/remove_if.hpp
deleted file mode 100644
index ad997e2..0000000
--- a/include/ndnboost/mpl/remove_if.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-
-#ifndef NDNBOOST_MPL_REMOVE_IF_HPP_INCLUDED
-#define NDNBOOST_MPL_REMOVE_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: remove_if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/fold.hpp>
-#include <ndnboost/mpl/reverse_fold.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/mpl/protect.hpp>
-#include <ndnboost/mpl/lambda.hpp>
-#include <ndnboost/mpl/apply.hpp>
-#include <ndnboost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-
-template< typename Pred, typename InsertOp > struct remove_if_helper
-{
-    template< typename Sequence, typename U > struct apply
-    {
-        typedef typename eval_if<
-              typename apply1<Pred,U>::type
-            , identity<Sequence>
-            , apply2<InsertOp,Sequence,U>
-            >::type type;
-    };
-};
-
-template<
-      typename Sequence
-    , typename Predicate
-    , typename Inserter
-    >
-struct remove_if_impl
-    : fold<
-          Sequence
-        , typename Inserter::state
-        , protect< aux::remove_if_helper<
-              typename lambda<Predicate>::type
-            , typename Inserter::operation
-            > >
-        >
-{
-};
-
-template<
-      typename Sequence
-    , typename Predicate
-    , typename Inserter
-    >
-struct reverse_remove_if_impl
-    : reverse_fold<
-          Sequence
-        , typename Inserter::state
-        , protect< aux::remove_if_helper<
-              typename lambda<Predicate>::type
-            , typename Inserter::operation
-            > >
-        >
-{
-};
-
-} // namespace aux
-
-NDNBOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove_if)
-
-}}
-
-#endif // NDNBOOST_MPL_REMOVE_IF_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/reverse_fold.hpp b/include/ndnboost/mpl/reverse_fold.hpp
deleted file mode 100644
index b790a43..0000000
--- a/include/ndnboost/mpl/reverse_fold.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-
-#ifndef NDNBOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
-#define NDNBOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: reverse_fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/O1_size.hpp>
-#include <ndnboost/mpl/arg.hpp>
-#include <ndnboost/mpl/aux_/reverse_fold_impl.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      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
-{
-    typedef typename aux::reverse_fold_impl<
-          ::ndnboost::mpl::O1_size<Sequence>::value
-        , typename begin<Sequence>::type
-        , typename end<Sequence>::type
-        , State
-        , BackwardOp
-        , ForwardOp
-        >::state type;
-
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,reverse_fold,(Sequence,State,BackwardOp))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(3, reverse_fold)
-
-}}
-
-#endif // NDNBOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/same_as.hpp b/include/ndnboost/mpl/same_as.hpp
deleted file mode 100644
index d9fdbcb..0000000
--- a/include/ndnboost/mpl/same_as.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#ifndef NDNBOOST_MPL_SAME_AS_HPP_INCLUDED
-#define NDNBOOST_MPL_SAME_AS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: same_as.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/not.hpp>
-#include <ndnboost/mpl/aux_/lambda_spec.hpp>
-#include <ndnboost/mpl/aux_/config/forwarding.hpp>
-
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename T1 >
-struct same_as
-{
-    template< typename T2 > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : is_same<T1,T2>
-    {
-#else
-    {
-        typedef typename is_same<T1,T2>::type type;
-#endif
-    };
-};
-
-template< typename T1 >
-struct not_same_as
-{
-    template< typename T2 > struct apply
-#if !defined(NDNBOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : not_< is_same<T1,T2> >
-    {
-#else
-    {
-        typedef typename not_< is_same<T1,T2> >::type type;
-#endif
-    };
-};
-
-}}
-
-#endif // NDNBOOST_MPL_SAME_AS_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/sequence_tag.hpp b/include/ndnboost/mpl/sequence_tag.hpp
deleted file mode 100644
index 51c1e78..0000000
--- a/include/ndnboost/mpl/sequence_tag.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-
-#ifndef NDNBOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
-#define NDNBOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: sequence_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/sequence_tag_fwd.hpp>
-#include <ndnboost/mpl/aux_/has_tag.hpp>
-#include <ndnboost/mpl/aux_/has_begin.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/is_msvc_eti_arg.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-#include <ndnboost/mpl/aux_/yes_no.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-namespace ndnboost { namespace mpl {
-
-// agurt, 27/nov/02: have to use a simplistic 'sequence_tag' implementation
-// on MSVC to avoid dreadful "internal structure overflow" error
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
-    || defined(NDNBOOST_MPL_CFG_NO_HAS_XXX)
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct sequence_tag
-{
-    typedef typename Sequence::tag type;
-};
-
-#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)
-
-// agurt, 07/feb/03: workaround for what seems to be MSVC 7.0-specific ETI issue
-
-namespace aux {
-
-template< bool >
-struct sequence_tag_impl
-{
-    template< typename Sequence > struct result_
-    {
-        typedef typename Sequence::tag type;
-    };
-};
-
-template<>
-struct sequence_tag_impl<false>
-{
-    template< typename Sequence > struct result_
-    {
-        typedef int type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct sequence_tag
-    : aux::sequence_tag_impl< !aux::is_msvc_eti_arg<Sequence>::value >
-        ::template result_<Sequence>
-{
-};
-
-#else
-
-namespace aux {
-
-template< bool has_tag_, bool has_begin_ >
-struct sequence_tag_impl
-{
-    // agurt 24/nov/02: MSVC 6.5 gets confused in 'sequence_tag_impl<true>' 
-    // specialization below, if we name it 'result_' here
-    template< typename Sequence > struct result2_;
-};
-
-#   define AUX_CLASS_SEQUENCE_TAG_SPEC(has_tag, has_begin, result_type) \
-template<> struct sequence_tag_impl<has_tag,has_begin> \
-{ \
-    template< typename Sequence > struct result2_ \
-    { \
-        typedef result_type type; \
-    }; \
-}; \
-/**/
-
-AUX_CLASS_SEQUENCE_TAG_SPEC(true, true, typename Sequence::tag)
-AUX_CLASS_SEQUENCE_TAG_SPEC(true, false, typename Sequence::tag)
-AUX_CLASS_SEQUENCE_TAG_SPEC(false, true, nested_begin_end_tag)
-AUX_CLASS_SEQUENCE_TAG_SPEC(false, false, non_sequence_tag)
-
-#   undef AUX_CLASS_SEQUENCE_TAG_SPEC
-
-} // namespace aux
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct sequence_tag
-    : aux::sequence_tag_impl<
-          ::ndnboost::mpl::aux::has_tag<Sequence>::value
-        , ::ndnboost::mpl::aux::has_begin<Sequence>::value
-        >::template result2_<Sequence>
-{
-};
-
-#endif // NDNBOOST_MSVC
-
-NDNBOOST_MPL_AUX_NA_SPEC(1, sequence_tag)
-
-}}
-
-#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
deleted file mode 100644
index 9e3aee3..0000000
--- a/include/ndnboost/mpl/sequence_tag_fwd.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef NDNBOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: sequence_tag_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-struct nested_begin_end_tag;
-struct non_sequence_tag;
-
-template< typename Sequence > struct sequence_tag;
-
-}}
-
-#endif // NDNBOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/size.hpp b/include/ndnboost/mpl/size.hpp
deleted file mode 100644
index d51549b..0000000
--- a/include/ndnboost/mpl/size.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef NDNBOOST_MPL_SIZE_HPP_INCLUDED
-#define NDNBOOST_MPL_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/size_fwd.hpp>
-#include <ndnboost/mpl/sequence_tag.hpp>
-#include <ndnboost/mpl/aux_/size_impl.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/aux_/msvc_eti_base.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename NDNBOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct size
-    : aux::msvc_eti_base<
-        typename size_impl< typename sequence_tag<Sequence>::type >
-            ::template apply< Sequence >::type
-      >::type
-{
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1, size, (Sequence))
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(1, size)
-
-}}
-
-#endif // NDNBOOST_MPL_SIZE_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/size_fwd.hpp b/include/ndnboost/mpl/size_fwd.hpp
deleted file mode 100644
index 1d948a2..0000000
--- a/include/ndnboost/mpl/size_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef NDNBOOST_MPL_SIZE_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_SIZE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace ndnboost { namespace mpl {
-
-template< typename Tag > struct size_impl;
-template< typename Sequence > struct size;
-
-}}
-
-#endif // NDNBOOST_MPL_SIZE_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/size_t.hpp b/include/ndnboost/mpl/size_t.hpp
deleted file mode 100644
index fc86699..0000000
--- a/include/ndnboost/mpl/size_t.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef NDNBOOST_MPL_SIZE_T_HPP_INCLUDED
-#define NDNBOOST_MPL_SIZE_T_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size_t.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/size_t_fwd.hpp>
-
-#define AUX_WRAPPER_VALUE_TYPE std::size_t
-#define AUX_WRAPPER_NAME size_t
-#define AUX_WRAPPER_PARAMS(N) std::size_t N
-
-#include <ndnboost/mpl/aux_/integral_wrapper.hpp>
-
-#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
deleted file mode 100644
index 6adc981..0000000
--- a/include/ndnboost/mpl/size_t_fwd.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef NDNBOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size_t_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-#include <ndnboost/config.hpp> // make sure 'size_t' is placed into 'std'
-#include <cstddef>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< std::size_t N > struct size_t;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(size_t)
-
-#endif // NDNBOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/tag.hpp b/include/ndnboost/mpl/tag.hpp
deleted file mode 100644
index 4eed698..0000000
--- a/include/ndnboost/mpl/tag.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef NDNBOOST_MPL_TAG_HPP_INCLUDED
-#define NDNBOOST_MPL_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/void.hpp>
-#include <ndnboost/mpl/aux_/has_tag.hpp>
-#include <ndnboost/mpl/aux_/config/eti.hpp>
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template< typename T > struct tag_impl
-{
-    typedef typename T::tag type;
-};
-}
-
-template< typename T, typename Default = void_ > struct tag
-#if !defined(NDNBOOST_MPL_CFG_MSVC_ETI_BUG)
-    : if_< 
-          aux::has_tag<T>
-        , aux::tag_impl<T>
-        , Default
-        >::type
-{
-#else
-{
-    typedef typename eval_if< 
-          aux::has_tag<T>
-        , aux::tag_impl<T>
-        , Default
-        >::type type;
-
-#endif
-};
-
-}}
-
-#endif // NDNBOOST_MPL_TAG_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/times.hpp b/include/ndnboost/mpl/times.hpp
deleted file mode 100644
index e6fa702..0000000
--- a/include/ndnboost/mpl/times.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef NDNBOOST_MPL_TIMES_HPP_INCLUDED
-#define NDNBOOST_MPL_TIMES_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: times.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME times
-#define AUX778076_OP_TOKEN *
-#include <ndnboost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // NDNBOOST_MPL_TIMES_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector.hpp b/include/ndnboost/mpl/vector.hpp
deleted file mode 100644
index 4492f22..0000000
--- a/include/ndnboost/mpl/vector.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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>
-
-#   include <ndnboost/preprocessor/inc.hpp>
-#   include <ndnboost/preprocessor/cat.hpp>
-#   include <ndnboost/preprocessor/stringize.hpp>
-
-#if !defined(NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-#   define AUX778076_VECTOR_HEADER \
-    NDNBOOST_PP_CAT(vector, NDNBOOST_MPL_LIMIT_VECTOR_SIZE).hpp \
-    /**/
-#else
-#   define AUX778076_VECTOR_HEADER \
-    NDNBOOST_PP_CAT(vector, NDNBOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \
-    /**/
-#endif
-
-#   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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector.hpp
-#   include <ndnboost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/limits/vector.hpp>
-
-#   define AUX778076_SEQUENCE_NAME vector
-#   define AUX778076_SEQUENCE_LIMIT NDNBOOST_MPL_LIMIT_VECTOR_SIZE
-#   include <ndnboost/mpl/aux_/sequence_wrapper.hpp>
-
-#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
deleted file mode 100644
index 50b0f88..0000000
--- a/include/ndnboost/mpl/vector/aux_/O1_size.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/O1_size_fwd.hpp>
-#include <ndnboost/mpl/minus.hpp>
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/vector/aux_/tag.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct O1_size_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-        : Vector::size
-    {
-    };
-};
-
-#else
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct O1_size_impl< aux::vector_tag<N> >
-{
-    template< typename Vector > struct apply
-        : mpl::long_<N>
-    {
-    };
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#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
deleted file mode 100644
index b507743..0000000
--- a/include/ndnboost/mpl/vector/aux_/at.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: at.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/at_fwd.hpp>
-#include <ndnboost/mpl/vector/aux_/tag.hpp>
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/void.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#include <ndnboost/mpl/aux_/type_wrapper.hpp>
-#include <ndnboost/mpl/aux_/value_wknd.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template< typename Vector, long n_ >
-struct v_at_impl
-{
-    typedef long_< (Vector::lower_bound_::value + n_) > index_;
-    typedef __typeof__( Vector::item_(index_()) ) type;
-};
-
-
-template< typename Vector, long n_ >
-struct v_at
-    : aux::wrapped_type< typename v_at_impl<Vector,n_>::type >
-{
-};
-
-template<>
-struct at_impl< aux::vector_tag >
-{
-    template< typename Vector, typename N > struct apply
-        : v_at<
-              Vector
-            , NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-            >
-    {
-    };
-};
-
-#else
-
-#   if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(NDNBOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-template< typename Vector, NDNBOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at;
-
-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
-            , NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-            >
-    {
-#else
-    {
-        typedef typename v_at<
-              Vector
-            , NDNBOOST_MPL_AUX_VALUE_WKND(N)::value
-            >::type type;
-#endif
-    };
-};
-
-#   else
-
-namespace aux {
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at_impl
-{
-    template< typename V > struct result_;
-};
-
-// to work around ETI, etc.
-template<> struct v_at_impl<-1>
-{
-    template< typename V > struct result_
-    {
-        typedef void_ type;
-    };
-};
-
-} // namespace aux
-
-template< typename T, NDNBOOST_MPL_AUX_NTTP_DECL(long, n_) >
-struct v_at
-    : aux::v_at_impl<n_>::template result_<T>
-{
-};
-
-#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#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
deleted file mode 100644
index e7946af..0000000
--- a/include/ndnboost/mpl/vector/aux_/back.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/back_fwd.hpp>
-#include <ndnboost/mpl/next_prior.hpp>
-#include <ndnboost/mpl/vector/aux_/at.hpp>
-#include <ndnboost/mpl/vector/aux_/tag.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct back_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-        : v_at<
-              Vector
-            , prior<typename Vector::size>::type::value
-            >
-    {
-    };
-};
-
-#else
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long n_ >
-struct back_impl< aux::vector_tag<n_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#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
deleted file mode 100644
index 1b4d068..0000000
--- a/include/ndnboost/mpl/vector/aux_/begin_end.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <ndnboost/mpl/begin_end_fwd.hpp>
-#   include <ndnboost/mpl/vector/aux_/iterator.hpp>
-#   include <ndnboost/mpl/vector/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct begin_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef v_iter<Vector,0> type;
-    };
-};
-
-template<>
-struct end_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef v_iter<Vector,Vector::size::value> type;
-    };
-};
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#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
deleted file mode 100644
index 6bbc78c..0000000
--- a/include/ndnboost/mpl/vector/aux_/clear.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/clear_fwd.hpp>
-#include <ndnboost/mpl/vector/aux_/vector0.hpp>
-#include <ndnboost/mpl/vector/aux_/tag.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct clear_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-#else
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct clear_impl< aux::vector_tag<N> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#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
deleted file mode 100644
index 91779e3..0000000
--- a/include/ndnboost/mpl/vector/aux_/empty.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: empty.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/empty_fwd.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/vector/aux_/tag.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct empty_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-        : is_same<
-              typename Vector::lower_bound_
-            , typename Vector::upper_bound_
-            >
-    {
-    };
-};
-
-#else
-
-template<>
-struct empty_impl< aux::vector_tag<0> >
-{
-    template< typename Vector > struct apply
-        : true_
-    {
-    };
-};
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct empty_impl< aux::vector_tag<N> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#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
deleted file mode 100644
index d01b4ae..0000000
--- a/include/ndnboost/mpl/vector/aux_/front.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/front_fwd.hpp>
-#include <ndnboost/mpl/vector/aux_/at.hpp>
-#include <ndnboost/mpl/vector/aux_/tag.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct front_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-        : v_at<Vector,0>
-    {
-    };
-};
-
-#else
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, n_) >
-struct front_impl< aux::vector_tag<n_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#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
deleted file mode 100644
index 34270da..0000000
--- a/include/ndnboost/mpl/vector/aux_/include_preprocessed.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-#include <ndnboost/mpl/aux_/config/preprocessor.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/stringize.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-#   define AUX778076_INCLUDE_DIR typeof_based
-#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(NDNBOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-#   define AUX778076_HEADER \
-    AUX778076_INCLUDE_DIR/NDNBOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#else
-#   define AUX778076_HEADER \
-    NDNBOOST_PP_CAT(AUX778076_INCLUDE_DIR,/)##NDNBOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#endif
-
-
-#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 NDNBOOST_PP_STRINGIZE(ndnboost/mpl/vector/aux_/preprocessed/AUX778076_HEADER)
-#endif
-
-#   undef AUX778076_HEADER
-#   undef AUX778076_INCLUDE_DIR
-
-#undef NDNBOOST_MPL_PREPROCESSED_HEADER
diff --git a/include/ndnboost/mpl/vector/aux_/item.hpp b/include/ndnboost/mpl/vector/aux_/item.hpp
deleted file mode 100644
index 8858aa0..0000000
--- a/include/ndnboost/mpl/vector/aux_/item.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: item.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/void.hpp>
-#include <ndnboost/mpl/next_prior.hpp>
-#include <ndnboost/mpl/aux_/type_wrapper.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template< 
-      typename T
-    , typename Base
-    , int at_front = 0
-    >
-struct v_item
-    : Base
-{
-    typedef typename Base::upper_bound_ index_;
-    typedef typename next<index_>::type upper_bound_;
-    typedef typename next<typename Base::size>::type size;
-    typedef Base base;
-    typedef v_item type;
-
-    // agurt 10/sep/04: MWCW <= 9.3 workaround here and below; the compiler
-    // breaks if using declaration comes _before_ the new overload
-    static aux::type_wrapper<T> item_(index_);
-    using Base::item_;
-};
-
-template<
-      typename T
-    , typename Base
-    >
-struct v_item<T,Base,1>
-    : Base
-{
-    typedef typename prior<typename Base::lower_bound_>::type index_;
-    typedef index_ lower_bound_;
-    typedef typename next<typename Base::size>::type size;
-    typedef Base base;
-    typedef v_item type;
-
-    static aux::type_wrapper<T> item_(index_);
-    using Base::item_;
-};
-
-// "erasure" item
-template< 
-      typename Base
-    , int at_front
-    >
-struct v_mask
-    : Base
-{
-    typedef typename prior<typename Base::upper_bound_>::type index_;
-    typedef index_ upper_bound_;
-    typedef typename prior<typename Base::size>::type size;
-    typedef Base base;
-    typedef v_mask type;
-
-    static aux::type_wrapper<void_> item_(index_);
-    using Base::item_;
-};
-
-template< 
-      typename Base
-    >
-struct v_mask<Base,1>
-    : Base
-{
-    typedef typename Base::lower_bound_ index_;
-    typedef typename next<index_>::type lower_bound_;
-    typedef typename prior<typename Base::size>::type size;
-    typedef Base base;
-    typedef v_mask type;
-
-    static aux::type_wrapper<void_> item_(index_);
-    using Base::item_;
-};
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#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
deleted file mode 100644
index 799d0e7..0000000
--- a/include/ndnboost/mpl/vector/aux_/iterator.hpp
+++ /dev/null
@@ -1,130 +0,0 @@
-
-#ifndef NDNBOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
-#define NDNBOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iterator.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/vector/aux_/at.hpp>
-#include <ndnboost/mpl/iterator_tags.hpp>
-#include <ndnboost/mpl/plus.hpp>
-#include <ndnboost/mpl/minus.hpp>
-#include <ndnboost/mpl/advance_fwd.hpp>
-#include <ndnboost/mpl/distance_fwd.hpp>
-#include <ndnboost/mpl/next.hpp>
-#include <ndnboost/mpl/prior.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-#include <ndnboost/mpl/aux_/value_wknd.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename Vector
-    , NDNBOOST_MPL_AUX_NTTP_DECL(long, n_)
-    >
-struct v_iter
-{
-    typedef aux::v_iter_tag tag;
-    typedef random_access_iterator_tag category;
-    typedef typename v_at<Vector,n_>::type type;
-
-    typedef Vector vector_;
-    typedef mpl::long_<n_> pos;
-
-#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    enum { 
-          next_ = n_ + 1
-        , prior_ = n_ - 1
-        , pos_ = n_
-    };
-    
-    typedef v_iter<Vector,next_> next;
-    typedef v_iter<Vector,prior_> prior;
-#endif
-
-};
-
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      typename Vector
-    , NDNBOOST_MPL_AUX_NTTP_DECL(long, n_)
-    >
-struct next< v_iter<Vector,n_> >
-{
-    typedef v_iter<Vector,(n_ + 1)> type;
-};
-
-template<
-      typename Vector
-    , NDNBOOST_MPL_AUX_NTTP_DECL(long, n_)
-    >
-struct prior< v_iter<Vector,n_> >
-{
-    typedef v_iter<Vector,(n_ - 1)> type;
-};
-
-template<
-      typename Vector
-    , NDNBOOST_MPL_AUX_NTTP_DECL(long, n_)
-    , typename Distance
-    >
-struct advance< v_iter<Vector,n_>,Distance>
-{
-    typedef v_iter<
-          Vector
-        , (n_ + NDNBOOST_MPL_AUX_NESTED_VALUE_WKND(long, Distance))
-        > type;
-};
-
-template< 
-      typename Vector
-    , 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 // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<> struct advance_impl<aux::v_iter_tag>
-{
-    template< typename Iterator, typename N > struct apply
-    {
-        enum { pos_ = Iterator::pos_, n_ = N::value };
-        typedef v_iter<
-              typename Iterator::vector_
-            , (pos_ + n_)
-            > type;
-    };
-};
-
-template<> struct distance_impl<aux::v_iter_tag>
-{
-    template< typename Iter1, typename Iter2 > struct apply
-    {
-        enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ };
-        typedef long_<( pos2_ - pos1_ )> type;
-        NDNBOOST_STATIC_CONSTANT(long, value = ( pos2_ - pos1_ ));
-    };
-};
-
-#endif
-
-}}
-
-#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
deleted file mode 100644
index d256e31..0000000
--- a/include/ndnboost/mpl/vector/aux_/numbered.hpp
+++ /dev/null
@@ -1,218 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if defined(NDNBOOST_PP_IS_ITERATING)
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numbered.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/preprocessor/enum_params.hpp>
-#include <ndnboost/preprocessor/enum_shifted_params.hpp>
-#include <ndnboost/preprocessor/comma_if.hpp>
-#include <ndnboost/preprocessor/repeat.hpp>
-#include <ndnboost/preprocessor/dec.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   define AUX778076_VECTOR_TAIL(vector, i_, T) \
-    NDNBOOST_PP_CAT(vector,i_)< \
-          NDNBOOST_PP_ENUM_PARAMS(i_, T) \
-        > \
-    /**/
-
-#if i_ > 0
-template<
-      NDNBOOST_PP_ENUM_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(vector,i_)
-    : v_item<
-          NDNBOOST_PP_CAT(T,NDNBOOST_PP_DEC(i_))
-        , AUX778076_VECTOR_TAIL(vector,NDNBOOST_PP_DEC(i_),T)
-        >
-{
-    typedef NDNBOOST_PP_CAT(vector,i_) type;
-};
-#endif
-
-#   undef AUX778076_VECTOR_TAIL
-
-#else // "brute force" implementation
-
-#   if i_ > 0
-
-template<
-      NDNBOOST_PP_ENUM_PARAMS(i_, typename T)
-    >
-struct NDNBOOST_PP_CAT(vector,i_)
-{
-    typedef aux::vector_tag<i_> tag;
-    typedef NDNBOOST_PP_CAT(vector,i_) type;
-
-#   define AUX778076_VECTOR_ITEM(unused, i_, unused2) \
-    typedef NDNBOOST_PP_CAT(T,i_) NDNBOOST_PP_CAT(item,i_); \
-    /**/
-
-    NDNBOOST_PP_REPEAT(i_, AUX778076_VECTOR_ITEM, unused)
-#   undef AUX778076_VECTOR_ITEM
-    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;
-    typedef v_iter<type,i_> end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<NDNBOOST_PP_DEC(i_)> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef NDNBOOST_PP_CAT(vector,i_)<
-              T
-              NDNBOOST_PP_COMMA_IF(NDNBOOST_PP_DEC(i_))
-              NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_DEC(i_), typename Vector::item)
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        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<NDNBOOST_PP_DEC(i_)> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        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;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        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(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::NDNBOOST_PP_CAT(item,i_) type;
-};
-
-#   else
-
-namespace aux {
-template<> struct v_at_impl<i_>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::NDNBOOST_PP_CAT(item,i_) type;
-    };
-};
-}
-
-template<>
-struct at_impl< aux::vector_tag<i_> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-#if i_ > 0
-template<>
-struct front_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-#endif
-
-template<>
-struct size_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-        : long_<i_>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<i_> >
-    : size_impl< aux::vector_tag<i_> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-#   endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#undef i_
-
-#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
deleted file mode 100644
index a9fd904..0000000
--- a/include/ndnboost/mpl/vector/aux_/numbered_c.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if defined(NDNBOOST_PP_IS_ITERATING)
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numbered_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/preprocessor/enum_params.hpp>
-#include <ndnboost/preprocessor/enum_shifted_params.hpp>
-#include <ndnboost/preprocessor/comma_if.hpp>
-#include <ndnboost/preprocessor/repeat.hpp>
-#include <ndnboost/preprocessor/dec.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-
-#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   define AUX778076_VECTOR_TAIL(vector, 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
-    , NDNBOOST_PP_ENUM_PARAMS(i_, T C)
-    >
-struct NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(vector,i_),_c)
-    : v_item<
-          integral_c<T,NDNBOOST_PP_CAT(C,NDNBOOST_PP_DEC(i_))>
-        , AUX778076_VECTOR_TAIL(vector,NDNBOOST_PP_DEC(i_),C)
-        >
-{
-    typedef NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(vector,i_),_c) type;
-    typedef T value_type;
-};
-#endif
-
-#   undef AUX778076_VECTOR_TAIL
-
-#else // "brute force" implementation
-
-#   define AUX778076_VECTOR_C_PARAM_FUNC(unused, i_, param) \
-    NDNBOOST_PP_COMMA_IF(i_) \
-    integral_c<T,NDNBOOST_PP_CAT(param,i_)> \
-    /**/
-
-template<
-      typename T
-    , NDNBOOST_PP_ENUM_PARAMS(i_, T 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 NDNBOOST_PP_CAT(NDNBOOST_PP_CAT(vector,i_),_c) type;
-    typedef T value_type;
-};
-
-#   undef AUX778076_VECTOR_C_PARAM_FUNC
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#undef i_
-
-#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
deleted file mode 100644
index fb603aa..0000000
--- a/include/ndnboost/mpl/vector/aux_/pop_back.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/pop_back_fwd.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <ndnboost/mpl/vector/aux_/item.hpp>
-#   include <ndnboost/mpl/vector/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct pop_back_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef v_mask<Vector,0> type;
-    };
-};
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#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
deleted file mode 100644
index 497b540..0000000
--- a/include/ndnboost/mpl/vector/aux_/pop_front.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/pop_front_fwd.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <ndnboost/mpl/vector/aux_/item.hpp>
-#   include <ndnboost/mpl/vector/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct pop_front_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef v_mask<Vector,1> type;
-    };
-};
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#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
deleted file mode 100644
index 1f9ae7f..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp
+++ /dev/null
@@ -1,1528 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-namespace aux {
-template<> struct v_at_impl<0>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item0 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<0> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<0> >
-{
-    template< typename Vector > struct apply
-        : long_<0>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<0> >
-    : size_impl< aux::vector_tag<0> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<0> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0
-    >
-struct vector1
-{
-    typedef aux::vector_tag<1> tag;
-    typedef vector1 type;
-    typedef T0 item0;
-    typedef void_ item1;
-    typedef T0 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,1 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<0> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector1<
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<
-             
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<0> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector1<
-             
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<
-             
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<1>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item1 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<1> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-        : long_<1>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<1> >
-    : size_impl< aux::vector_tag<1> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector2
-{
-    typedef aux::vector_tag<2> tag;
-    typedef vector2 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    
-
-    typedef void_ item2;
-    typedef T1 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,2 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector2<
-              T
-              ,
-              typename Vector::item0
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector1<
-              typename Vector::item1
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector2<
-              typename Vector::item0
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector1<
-              typename Vector::item0
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<2>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item2 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<2> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-        : long_<2>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<2> >
-    : size_impl< aux::vector_tag<2> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector3
-{
-    typedef aux::vector_tag<3> tag;
-    typedef vector3 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    
-
-    typedef void_ item3;
-    typedef T2 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,3 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector3<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector2<
-              typename Vector::item1, typename Vector::item2
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector3<
-              typename Vector::item0, typename Vector::item1
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector2<
-              typename Vector::item0, typename Vector::item1
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<3>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item3 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<3> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-        : long_<3>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<3> >
-    : size_impl< aux::vector_tag<3> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector4
-{
-    typedef aux::vector_tag<4> tag;
-    typedef vector4 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    
-
-    typedef void_ item4;
-    typedef T3 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,4 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector4<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector3<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector4<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector3<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<4>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item4 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<4> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-        : long_<4>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<4> >
-    : size_impl< aux::vector_tag<4> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector5
-{
-    typedef aux::vector_tag<5> tag;
-    typedef vector5 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    
-
-    typedef void_ item5;
-    typedef T4 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,5 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector5<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector4<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector5<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector4<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<5>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item5 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<5> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-        : long_<5>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<5> >
-    : size_impl< aux::vector_tag<5> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector6
-{
-    typedef aux::vector_tag<6> tag;
-    typedef vector6 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    
-
-    typedef void_ item6;
-    typedef T5 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,6 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector6<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector5<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector6<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector5<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<6>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item6 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<6> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-        : long_<6>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<6> >
-    : size_impl< aux::vector_tag<6> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector7
-{
-    typedef aux::vector_tag<7> tag;
-    typedef vector7 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    
-
-    typedef void_ item7;
-    typedef T6 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,7 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector7<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector6<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector7<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector6<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<7>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item7 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<7> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-        : long_<7>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<7> >
-    : size_impl< aux::vector_tag<7> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector8
-{
-    typedef aux::vector_tag<8> tag;
-    typedef vector8 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    
-
-    typedef void_ item8;
-    typedef T7 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,8 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector8<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector7<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector8<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector7<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<8>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item8 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<8> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-        : long_<8>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<8> >
-    : size_impl< aux::vector_tag<8> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector9
-{
-    typedef aux::vector_tag<9> tag;
-    typedef vector9 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    
-
-    typedef void_ item9;
-    typedef T8 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,9 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector9<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector8<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector9<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector8<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<9>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item9 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<9> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-        : long_<9>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<9> >
-    : size_impl< aux::vector_tag<9> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector10
-{
-    typedef aux::vector_tag<10> tag;
-    typedef vector10 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    
-
-    typedef void_ item10;
-    typedef T9 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,10 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector10<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector9<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector10<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector9<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<10>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item10 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<10> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-        : long_<10>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<10> >
-    : size_impl< aux::vector_tag<10> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp
deleted file mode 100644
index d25c93f..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0
-    >
-struct vector1_c
-    : vector1< integral_c< T,C0 > >
-{
-    typedef vector1_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1
-    >
-struct vector2_c
-    : vector2< integral_c< T,C0 >, integral_c< T,C1 > >
-{
-    typedef vector2_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2
-    >
-struct vector3_c
-    : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > >
-{
-    typedef vector3_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3
-    >
-struct vector4_c
-    : vector4<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >, integral_c<T
-        , C3> 
- >
-{
-    typedef vector4_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4
-    >
-struct vector5_c
-    : vector5<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 > 
- >
-{
-    typedef vector5_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5
-    >
-struct vector6_c
-    : vector6<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 > 
- >
-{
-    typedef vector6_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6
-    >
-struct vector7_c
-    : vector7<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c<T
-        , C6> 
- >
-{
-    typedef vector7_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
-    >
-struct vector8_c
-    : vector8<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 > 
- >
-{
-    typedef vector8_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
-    >
-struct vector9_c
-    : vector9<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 > 
- >
-{
-    typedef vector9_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
-    >
-struct vector10_c
-    : vector10<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > 
- >
-{
-    typedef vector10_c type;
-    typedef T value_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
deleted file mode 100644
index 2fb6d7d..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp
+++ /dev/null
@@ -1,1804 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector11
-{
-    typedef aux::vector_tag<11> tag;
-    typedef vector11 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    
-
-    typedef void_ item11;
-    typedef T10 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,11 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector11<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector10<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector11<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector10<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<11>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item11 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<11> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-        : long_<11>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<11> >
-    : size_impl< aux::vector_tag<11> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      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 vector12
-{
-    typedef aux::vector_tag<12> tag;
-    typedef vector12 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    
-
-    typedef void_ item12;
-    typedef T11 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,12 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector12<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector11<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector12<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector11<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<12>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item12 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<12> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-        : long_<12>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<12> >
-    : size_impl< aux::vector_tag<12> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, 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 vector13
-{
-    typedef aux::vector_tag<13> tag;
-    typedef vector13 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    
-
-    typedef void_ item13;
-    typedef T12 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,13 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector13<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector12<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector13<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector12<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<13>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item13 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<13> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-        : long_<13>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<13> >
-    : size_impl< aux::vector_tag<13> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, 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 vector14
-{
-    typedef aux::vector_tag<14> tag;
-    typedef vector14 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    
-
-    typedef void_ item14;
-    typedef T13 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,14 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector14<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector13<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector14<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector13<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<14>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item14 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<14> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-        : long_<14>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<14> >
-    : size_impl< aux::vector_tag<14> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector15
-{
-    typedef aux::vector_tag<15> tag;
-    typedef vector15 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    
-
-    typedef void_ item15;
-    typedef T14 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,15 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector15<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector14<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector15<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector14<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<15>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item15 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<15> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-        : long_<15>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<15> >
-    : size_impl< aux::vector_tag<15> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector16
-{
-    typedef aux::vector_tag<16> tag;
-    typedef vector16 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    
-
-    typedef void_ item16;
-    typedef T15 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,16 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector16<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector15<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector16<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector15<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<16>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item16 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<16> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-        : long_<16>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<16> >
-    : size_impl< aux::vector_tag<16> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector17
-{
-    typedef aux::vector_tag<17> tag;
-    typedef vector17 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    
-
-    typedef void_ item17;
-    typedef T16 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,17 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector17<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector16<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector17<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector16<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<17>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item17 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<17> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-        : long_<17>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<17> >
-    : size_impl< aux::vector_tag<17> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector18
-{
-    typedef aux::vector_tag<18> tag;
-    typedef vector18 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    
-
-    typedef void_ item18;
-    typedef T17 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,18 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector18<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector17<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector18<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector17<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<18>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item18 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<18> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-        : long_<18>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<18> >
-    : size_impl< aux::vector_tag<18> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector19
-{
-    typedef aux::vector_tag<19> tag;
-    typedef vector19 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    
-
-    typedef void_ item19;
-    typedef T18 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,19 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector19<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector18<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector19<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector18<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<19>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item19 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<19> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-        : long_<19>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<19> >
-    : size_impl< aux::vector_tag<19> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector20
-{
-    typedef aux::vector_tag<20> tag;
-    typedef vector20 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    
-
-    typedef void_ item20;
-    typedef T19 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,20 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector20<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector19<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector20<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector19<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<20>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item20 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<20> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-        : long_<20>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<20> >
-    : size_impl< aux::vector_tag<20> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp
deleted file mode 100644
index 1814ccb..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    >
-struct vector11_c
-    : vector11<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >, integral_c<T
-        , C10> 
- >
-{
-    typedef vector11_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11
-    >
-struct vector12_c
-    : vector12<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 > 
- >
-{
-    typedef vector12_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12
-    >
-struct vector13_c
-    : vector13<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > 
- >
-{
-    typedef vector13_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13
-    >
-struct vector14_c
-    : vector14<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >, integral_c<T
-        , C13> 
- >
-{
-    typedef vector14_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14
-    >
-struct vector15_c
-    : vector15<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 > 
- >
-{
-    typedef vector15_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15
-    >
-struct vector16_c
-    : vector16<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > 
- >
-{
-    typedef vector16_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16
-    >
-struct vector17_c
-    : vector17<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >, integral_c<T
-        , C16> 
- >
-{
-    typedef vector17_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17
-    >
-struct vector18_c
-    : vector18<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 > 
- >
-{
-    typedef vector18_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18
-    >
-struct vector19_c
-    : vector19<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > 
- >
-{
-    typedef vector19_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19
-    >
-struct vector20_c
-    : vector20<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >, integral_c<T
-        , C19> 
- >
-{
-    typedef vector20_c type;
-    typedef T value_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
deleted file mode 100644
index d0705f6..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp
+++ /dev/null
@@ -1,2124 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, 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 vector21
-{
-    typedef aux::vector_tag<21> tag;
-    typedef vector21 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    
-
-    typedef void_ item21;
-    typedef T20 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,21 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector21<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector20<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector21<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector20<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<21>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item21 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<21> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-        : long_<21>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<21> >
-    : size_impl< aux::vector_tag<21> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , 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 vector22
-{
-    typedef aux::vector_tag<22> tag;
-    typedef vector22 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    
-
-    typedef void_ item22;
-    typedef T21 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,22 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector22<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector21<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector22<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector21<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<22>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item22 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<22> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-        : long_<22>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<22> >
-    : size_impl< aux::vector_tag<22> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, 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 vector23
-{
-    typedef aux::vector_tag<23> tag;
-    typedef vector23 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    
-
-    typedef void_ item23;
-    typedef T22 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,23 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector23<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector22<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector23<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector22<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<23>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item23 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<23> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-        : long_<23>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<23> >
-    : size_impl< aux::vector_tag<23> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, 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 vector24
-{
-    typedef aux::vector_tag<24> tag;
-    typedef vector24 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    
-
-    typedef void_ item24;
-    typedef T23 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,24 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector24<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector23<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector24<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector23<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<24>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item24 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<24> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-        : long_<24>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<24> >
-    : size_impl< aux::vector_tag<24> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, 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 vector25
-{
-    typedef aux::vector_tag<25> tag;
-    typedef vector25 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    
-
-    typedef void_ item25;
-    typedef T24 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,25 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector25<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector24<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector25<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector24<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<25>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item25 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<25> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-        : long_<25>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<25> >
-    : size_impl< aux::vector_tag<25> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, 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 vector26
-{
-    typedef aux::vector_tag<26> tag;
-    typedef vector26 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    
-
-    typedef void_ item26;
-    typedef T25 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,26 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector26<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector25<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector26<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector25<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<26>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item26 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<26> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-        : long_<26>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<26> >
-    : size_impl< aux::vector_tag<26> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , 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 vector27
-{
-    typedef aux::vector_tag<27> tag;
-    typedef vector27 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    
-
-    typedef void_ item27;
-    typedef T26 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,27 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector27<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector26<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector27<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector26<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<27>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item27 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<27> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-        : long_<27>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<27> >
-    : size_impl< aux::vector_tag<27> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, 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 vector28
-{
-    typedef aux::vector_tag<28> tag;
-    typedef vector28 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    
-
-    typedef void_ item28;
-    typedef T27 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,28 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector28<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector27<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector28<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector27<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<28>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item28 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<28> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-        : long_<28>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<28> >
-    : size_impl< aux::vector_tag<28> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, 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 vector29
-{
-    typedef aux::vector_tag<29> tag;
-    typedef vector29 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    
-
-    typedef void_ item29;
-    typedef T28 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,29 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector29<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector28<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector29<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector28<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<29>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item29 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<29> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-        : long_<29>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<29> >
-    : size_impl< aux::vector_tag<29> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector30
-{
-    typedef aux::vector_tag<30> tag;
-    typedef vector30 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    
-
-    typedef void_ item30;
-    typedef T29 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,30 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector30<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector29<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector30<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector29<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<30>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item30 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<30> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-        : long_<30>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<30> >
-    : size_impl< aux::vector_tag<30> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp
deleted file mode 100644
index 7b10444..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp
+++ /dev/null
@@ -1,238 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    >
-struct vector21_c
-    : vector21<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 > 
- >
-{
-    typedef vector21_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21
-    >
-struct vector22_c
-    : vector22<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > 
- >
-{
-    typedef vector22_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22
-    >
-struct vector23_c
-    : vector23<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >, integral_c<T
-        , C22> 
- >
-{
-    typedef vector23_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23
-    >
-struct vector24_c
-    : vector24<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 > 
- >
-{
-    typedef vector24_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24
-    >
-struct vector25_c
-    : vector25<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > 
- >
-{
-    typedef vector25_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25
-    >
-struct vector26_c
-    : vector26<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >, integral_c<T
-        , C25> 
- >
-{
-    typedef vector26_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26
-    >
-struct vector27_c
-    : vector27<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 > 
- >
-{
-    typedef vector27_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27
-    >
-struct vector28_c
-    : vector28<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > 
- >
-{
-    typedef vector28_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
-    >
-struct vector29_c
-    : vector29<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >, integral_c<T
-        , C28> 
- >
-{
-    typedef vector29_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
-    >
-struct vector30_c
-    : vector30<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 > 
- >
-{
-    typedef vector30_c type;
-    typedef T value_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
deleted file mode 100644
index b520455..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp
+++ /dev/null
@@ -1,2444 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector31
-{
-    typedef aux::vector_tag<31> tag;
-    typedef vector31 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    
-
-    typedef void_ item31;
-    typedef T30 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,31 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector31<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector30<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector31<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector30<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<31>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item31 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<31> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-        : long_<31>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<31> >
-    : size_impl< aux::vector_tag<31> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector32
-{
-    typedef aux::vector_tag<32> tag;
-    typedef vector32 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    
-
-    typedef void_ item32;
-    typedef T31 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,32 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector32<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector31<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector32<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector31<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<32>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item32 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<32> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-        : long_<32>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<32> >
-    : size_impl< aux::vector_tag<32> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector33
-{
-    typedef aux::vector_tag<33> tag;
-    typedef vector33 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    
-
-    typedef void_ item33;
-    typedef T32 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,33 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector33<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector32<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector33<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector32<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<33>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item33 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<33> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-        : long_<33>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<33> >
-    : size_impl< aux::vector_tag<33> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector34
-{
-    typedef aux::vector_tag<34> tag;
-    typedef vector34 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    
-
-    typedef void_ item34;
-    typedef T33 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,34 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector34<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector33<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector34<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector33<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<34>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item34 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<34> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-        : long_<34>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<34> >
-    : size_impl< aux::vector_tag<34> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector35
-{
-    typedef aux::vector_tag<35> tag;
-    typedef vector35 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    
-
-    typedef void_ item35;
-    typedef T34 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,35 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector35<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector34<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector35<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector34<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<35>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item35 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<35> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-        : long_<35>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<35> >
-    : size_impl< aux::vector_tag<35> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector36
-{
-    typedef aux::vector_tag<36> tag;
-    typedef vector36 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    
-
-    typedef void_ item36;
-    typedef T35 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,36 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector36<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector35<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector36<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector35<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<36>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item36 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<36> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-        : long_<36>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<36> >
-    : size_impl< aux::vector_tag<36> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector37
-{
-    typedef aux::vector_tag<37> tag;
-    typedef vector37 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    
-
-    typedef void_ item37;
-    typedef T36 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,37 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector37<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector36<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector37<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector36<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<37>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item37 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<37> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-        : long_<37>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<37> >
-    : size_impl< aux::vector_tag<37> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector38
-{
-    typedef aux::vector_tag<38> tag;
-    typedef vector38 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    
-
-    typedef void_ item38;
-    typedef T37 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,38 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector38<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector37<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector38<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector37<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<38>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item38 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<38> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-        : long_<38>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<38> >
-    : size_impl< aux::vector_tag<38> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector39
-{
-    typedef aux::vector_tag<39> tag;
-    typedef vector39 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    
-
-    typedef void_ item39;
-    typedef T38 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,39 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector39<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector38<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector39<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector38<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<39>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item39 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<39> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-        : long_<39>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<39> >
-    : size_impl< aux::vector_tag<39> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector40
-{
-    typedef aux::vector_tag<40> tag;
-    typedef vector40 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    
-
-    typedef void_ item40;
-    typedef T39 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,40 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector40<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector39<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector40<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector39<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<40>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item40 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<40> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-        : long_<40>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<40> >
-    : size_impl< aux::vector_tag<40> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp
deleted file mode 100644
index 45d62d3..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp
+++ /dev/null
@@ -1,281 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    >
-struct vector31_c
-    : vector31<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > 
- >
-{
-    typedef vector31_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31
-    >
-struct vector32_c
-    : vector32<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >, integral_c<T
-        , C31> 
- >
-{
-    typedef vector32_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32
-    >
-struct vector33_c
-    : vector33<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 > 
- >
-{
-    typedef vector33_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33
-    >
-struct vector34_c
-    : vector34<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > 
- >
-{
-    typedef vector34_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34
-    >
-struct vector35_c
-    : vector35<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >, integral_c<T
-        , C34> 
- >
-{
-    typedef vector35_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35
-    >
-struct vector36_c
-    : vector36<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 > 
- >
-{
-    typedef vector36_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36
-    >
-struct vector37_c
-    : vector37<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > 
- >
-{
-    typedef vector37_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37
-    >
-struct vector38_c
-    : vector38<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >, integral_c<T
-        , C37> 
- >
-{
-    typedef vector38_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
-    >
-struct vector39_c
-    : vector39<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 > 
- >
-{
-    typedef vector39_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
-    >
-struct vector40_c
-    : vector40<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > 
- >
-{
-    typedef vector40_c type;
-    typedef T value_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
deleted file mode 100644
index 2e6e5de..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp
+++ /dev/null
@@ -1,2764 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector41
-{
-    typedef aux::vector_tag<41> tag;
-    typedef vector41 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    
-
-    typedef void_ item41;
-    typedef T40 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,41 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector41<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector40<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector41<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector40<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<41>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item41 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<41> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-        : long_<41>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<41> >
-    : size_impl< aux::vector_tag<41> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector42
-{
-    typedef aux::vector_tag<42> tag;
-    typedef vector42 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    
-
-    typedef void_ item42;
-    typedef T41 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,42 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector42<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector41<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector42<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector41<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<42>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item42 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<42> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-        : long_<42>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<42> >
-    : size_impl< aux::vector_tag<42> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector43
-{
-    typedef aux::vector_tag<43> tag;
-    typedef vector43 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    
-
-    typedef void_ item43;
-    typedef T42 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,43 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector43<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector42<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector43<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector42<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<43>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item43 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<43> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-        : long_<43>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<43> >
-    : size_impl< aux::vector_tag<43> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector44
-{
-    typedef aux::vector_tag<44> tag;
-    typedef vector44 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    
-
-    typedef void_ item44;
-    typedef T43 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,44 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector44<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector43<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector44<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector43<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<44>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item44 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<44> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-        : long_<44>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<44> >
-    : size_impl< aux::vector_tag<44> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector45
-{
-    typedef aux::vector_tag<45> tag;
-    typedef vector45 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    
-
-    typedef void_ item45;
-    typedef T44 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,45 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector45<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector44<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector45<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector44<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<45>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item45 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<45> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-        : long_<45>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<45> >
-    : size_impl< aux::vector_tag<45> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector46
-{
-    typedef aux::vector_tag<46> tag;
-    typedef vector46 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    
-
-    typedef void_ item46;
-    typedef T45 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,46 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector46<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector45<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector46<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector45<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<46>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item46 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<46> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-        : long_<46>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<46> >
-    : size_impl< aux::vector_tag<46> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector47
-{
-    typedef aux::vector_tag<47> tag;
-    typedef vector47 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    
-
-    typedef void_ item47;
-    typedef T46 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,47 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector47<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector46<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector47<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector46<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<47>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item47 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<47> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-        : long_<47>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<47> >
-    : size_impl< aux::vector_tag<47> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector48
-{
-    typedef aux::vector_tag<48> tag;
-    typedef vector48 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    
-
-    typedef void_ item48;
-    typedef T47 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,48 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector48<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector47<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector48<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector47<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<48>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item48 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<48> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-        : long_<48>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<48> >
-    : size_impl< aux::vector_tag<48> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector49
-{
-    typedef aux::vector_tag<49> tag;
-    typedef vector49 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    typedef T48 item48;
-    
-
-    typedef void_ item49;
-    typedef T48 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,49 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector49<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector48<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47, typename Vector::item48
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector49<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector48<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<49>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item49 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<49> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-        : long_<49>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<49> >
-    : size_impl< aux::vector_tag<49> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector50
-{
-    typedef aux::vector_tag<50> tag;
-    typedef vector50 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    typedef T48 item48;
-    typedef T49 item49;
-    
-
-    typedef void_ item50;
-    typedef T49 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,50 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector50<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector49<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47, typename Vector::item48
-            , typename Vector::item49
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector50<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector49<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<50>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item50 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<50> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<NDNBOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-        : long_<50>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<50> >
-    : size_impl< aux::vector_tag<50> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp
deleted file mode 100644
index 4e5a639..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp
+++ /dev/null
@@ -1,325 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    >
-struct vector41_c
-    : vector41<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >, integral_c<T
-        , C40> 
- >
-{
-    typedef vector41_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41
-    >
-struct vector42_c
-    : vector42<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 > 
- >
-{
-    typedef vector42_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42
-    >
-struct vector43_c
-    : vector43<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > 
- >
-{
-    typedef vector43_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43
-    >
-struct vector44_c
-    : vector44<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >, integral_c<T
-        , C43> 
- >
-{
-    typedef vector44_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44
-    >
-struct vector45_c
-    : vector45<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 > 
- >
-{
-    typedef vector45_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45
-    >
-struct vector46_c
-    : vector46<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > 
- >
-{
-    typedef vector46_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46
-    >
-struct vector47_c
-    : vector47<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >, integral_c<T
-        , C46> 
- >
-{
-    typedef vector47_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47
-    >
-struct vector48_c
-    : vector48<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 > 
- >
-{
-    typedef vector48_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
-    >
-struct vector49_c
-    : vector49<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 > 
- >
-{
-    typedef vector49_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
-    >
-struct vector50_c
-    : vector50<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >, integral_c<T
-        , C49> 
- >
-{
-    typedef vector50_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector10.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector10.hpp
deleted file mode 100644
index 9efe32b..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector10.hpp
+++ /dev/null
@@ -1,829 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template< typename V >
-struct v_at< V,0 >
-{
-    typedef typename V::item0 type;
-};
-
-template<
-      typename T0
-    >
-struct vector1
-{
-    typedef aux::vector_tag<1> tag;
-    typedef vector1 type;
-    typedef T0 item0;
-    typedef void_ item1;
-    typedef T0 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,1 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<0> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector1<
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<
-             
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<0> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector1<
-             
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<
-             
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,1 >
-{
-    typedef typename V::item1 type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector2
-{
-    typedef aux::vector_tag<2> tag;
-    typedef vector2 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    
-
-    typedef void_ item2;
-    typedef T1 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,2 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector2<
-              T
-              ,
-              typename Vector::item0
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector1<
-              typename Vector::item1
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector2<
-              typename Vector::item0
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector1<
-              typename Vector::item0
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,2 >
-{
-    typedef typename V::item2 type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector3
-{
-    typedef aux::vector_tag<3> tag;
-    typedef vector3 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    
-
-    typedef void_ item3;
-    typedef T2 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,3 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector3<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector2<
-              typename Vector::item1, typename Vector::item2
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector3<
-              typename Vector::item0, typename Vector::item1
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector2<
-              typename Vector::item0, typename Vector::item1
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,3 >
-{
-    typedef typename V::item3 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector4
-{
-    typedef aux::vector_tag<4> tag;
-    typedef vector4 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    
-
-    typedef void_ item4;
-    typedef T3 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,4 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector4<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector3<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector4<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector3<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,4 >
-{
-    typedef typename V::item4 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector5
-{
-    typedef aux::vector_tag<5> tag;
-    typedef vector5 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    
-
-    typedef void_ item5;
-    typedef T4 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,5 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector5<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector4<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector5<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector4<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,5 >
-{
-    typedef typename V::item5 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector6
-{
-    typedef aux::vector_tag<6> tag;
-    typedef vector6 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    
-
-    typedef void_ item6;
-    typedef T5 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,6 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector6<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector5<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector6<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector5<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,6 >
-{
-    typedef typename V::item6 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector7
-{
-    typedef aux::vector_tag<7> tag;
-    typedef vector7 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    
-
-    typedef void_ item7;
-    typedef T6 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,7 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector7<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector6<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector7<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector6<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,7 >
-{
-    typedef typename V::item7 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector8
-{
-    typedef aux::vector_tag<8> tag;
-    typedef vector8 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    
-
-    typedef void_ item8;
-    typedef T7 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,8 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector8<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector7<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector8<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector7<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,8 >
-{
-    typedef typename V::item8 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector9
-{
-    typedef aux::vector_tag<9> tag;
-    typedef vector9 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    
-
-    typedef void_ item9;
-    typedef T8 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,9 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector9<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector8<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector9<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector8<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,9 >
-{
-    typedef typename V::item9 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector10
-{
-    typedef aux::vector_tag<10> tag;
-    typedef vector10 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    
-
-    typedef void_ item10;
-    typedef T9 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,10 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector10<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector9<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector10<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector9<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,10 >
-{
-    typedef typename V::item10 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp
deleted file mode 100644
index d25c93f..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0
-    >
-struct vector1_c
-    : vector1< integral_c< T,C0 > >
-{
-    typedef vector1_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1
-    >
-struct vector2_c
-    : vector2< integral_c< T,C0 >, integral_c< T,C1 > >
-{
-    typedef vector2_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2
-    >
-struct vector3_c
-    : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > >
-{
-    typedef vector3_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3
-    >
-struct vector4_c
-    : vector4<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >, integral_c<T
-        , C3> 
- >
-{
-    typedef vector4_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4
-    >
-struct vector5_c
-    : vector5<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 > 
- >
-{
-    typedef vector5_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5
-    >
-struct vector6_c
-    : vector6<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 > 
- >
-{
-    typedef vector6_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6
-    >
-struct vector7_c
-    : vector7<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c<T
-        , C6> 
- >
-{
-    typedef vector7_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
-    >
-struct vector8_c
-    : vector8<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 > 
- >
-{
-    typedef vector8_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
-    >
-struct vector9_c
-    : vector9<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 > 
- >
-{
-    typedef vector9_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
-    >
-struct vector10_c
-    : vector10<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > 
- >
-{
-    typedef vector10_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector20.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector20.hpp
deleted file mode 100644
index 449209e..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector20.hpp
+++ /dev/null
@@ -1,1144 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector11
-{
-    typedef aux::vector_tag<11> tag;
-    typedef vector11 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    
-
-    typedef void_ item11;
-    typedef T10 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,11 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector11<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector10<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector11<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector10<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,11 >
-{
-    typedef typename V::item11 type;
-};
-
-template<
-      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 vector12
-{
-    typedef aux::vector_tag<12> tag;
-    typedef vector12 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    
-
-    typedef void_ item12;
-    typedef T11 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,12 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector12<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector11<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector12<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector11<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,12 >
-{
-    typedef typename V::item12 type;
-};
-
-template<
-      typename T0, 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 vector13
-{
-    typedef aux::vector_tag<13> tag;
-    typedef vector13 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    
-
-    typedef void_ item13;
-    typedef T12 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,13 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector13<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector12<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector13<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector12<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,13 >
-{
-    typedef typename V::item13 type;
-};
-
-template<
-      typename T0, typename T1, 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 vector14
-{
-    typedef aux::vector_tag<14> tag;
-    typedef vector14 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    
-
-    typedef void_ item14;
-    typedef T13 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,14 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector14<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector13<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector14<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector13<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,14 >
-{
-    typedef typename V::item14 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector15
-{
-    typedef aux::vector_tag<15> tag;
-    typedef vector15 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    
-
-    typedef void_ item15;
-    typedef T14 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,15 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector15<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector14<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector15<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector14<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,15 >
-{
-    typedef typename V::item15 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector16
-{
-    typedef aux::vector_tag<16> tag;
-    typedef vector16 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    
-
-    typedef void_ item16;
-    typedef T15 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,16 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector16<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector15<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector16<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector15<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,16 >
-{
-    typedef typename V::item16 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector17
-{
-    typedef aux::vector_tag<17> tag;
-    typedef vector17 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    
-
-    typedef void_ item17;
-    typedef T16 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,17 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector17<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector16<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector17<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector16<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,17 >
-{
-    typedef typename V::item17 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector18
-{
-    typedef aux::vector_tag<18> tag;
-    typedef vector18 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    
-
-    typedef void_ item18;
-    typedef T17 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,18 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector18<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector17<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector18<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector17<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,18 >
-{
-    typedef typename V::item18 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector19
-{
-    typedef aux::vector_tag<19> tag;
-    typedef vector19 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    
-
-    typedef void_ item19;
-    typedef T18 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,19 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector19<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector18<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector19<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector18<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,19 >
-{
-    typedef typename V::item19 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector20
-{
-    typedef aux::vector_tag<20> tag;
-    typedef vector20 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    
-
-    typedef void_ item20;
-    typedef T19 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,20 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector20<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector19<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector20<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector19<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,20 >
-{
-    typedef typename V::item20 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp
deleted file mode 100644
index 1814ccb..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    >
-struct vector11_c
-    : vector11<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >, integral_c<T
-        , C10> 
- >
-{
-    typedef vector11_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11
-    >
-struct vector12_c
-    : vector12<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 > 
- >
-{
-    typedef vector12_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12
-    >
-struct vector13_c
-    : vector13<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > 
- >
-{
-    typedef vector13_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13
-    >
-struct vector14_c
-    : vector14<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >, integral_c<T
-        , C13> 
- >
-{
-    typedef vector14_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14
-    >
-struct vector15_c
-    : vector15<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 > 
- >
-{
-    typedef vector15_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15
-    >
-struct vector16_c
-    : vector16<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > 
- >
-{
-    typedef vector16_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16
-    >
-struct vector17_c
-    : vector17<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >, integral_c<T
-        , C16> 
- >
-{
-    typedef vector17_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17
-    >
-struct vector18_c
-    : vector18<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 > 
- >
-{
-    typedef vector18_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18
-    >
-struct vector19_c
-    : vector19<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > 
- >
-{
-    typedef vector19_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19
-    >
-struct vector20_c
-    : vector20<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >, integral_c<T
-        , C19> 
- >
-{
-    typedef vector20_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector30.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector30.hpp
deleted file mode 100644
index 588f5ca..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector30.hpp
+++ /dev/null
@@ -1,1464 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, 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 vector21
-{
-    typedef aux::vector_tag<21> tag;
-    typedef vector21 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    
-
-    typedef void_ item21;
-    typedef T20 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,21 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector21<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector20<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector21<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector20<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,21 >
-{
-    typedef typename V::item21 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , 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 vector22
-{
-    typedef aux::vector_tag<22> tag;
-    typedef vector22 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    
-
-    typedef void_ item22;
-    typedef T21 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,22 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector22<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector21<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector22<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector21<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,22 >
-{
-    typedef typename V::item22 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, 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 vector23
-{
-    typedef aux::vector_tag<23> tag;
-    typedef vector23 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    
-
-    typedef void_ item23;
-    typedef T22 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,23 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector23<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector22<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector23<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector22<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,23 >
-{
-    typedef typename V::item23 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, 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 vector24
-{
-    typedef aux::vector_tag<24> tag;
-    typedef vector24 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    
-
-    typedef void_ item24;
-    typedef T23 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,24 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector24<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector23<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector24<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector23<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,24 >
-{
-    typedef typename V::item24 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, 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 vector25
-{
-    typedef aux::vector_tag<25> tag;
-    typedef vector25 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    
-
-    typedef void_ item25;
-    typedef T24 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,25 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector25<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector24<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector25<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector24<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,25 >
-{
-    typedef typename V::item25 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, 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 vector26
-{
-    typedef aux::vector_tag<26> tag;
-    typedef vector26 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    
-
-    typedef void_ item26;
-    typedef T25 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,26 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector26<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector25<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector26<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector25<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,26 >
-{
-    typedef typename V::item26 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , 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 vector27
-{
-    typedef aux::vector_tag<27> tag;
-    typedef vector27 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    
-
-    typedef void_ item27;
-    typedef T26 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,27 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector27<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector26<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector27<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector26<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,27 >
-{
-    typedef typename V::item27 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, 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 vector28
-{
-    typedef aux::vector_tag<28> tag;
-    typedef vector28 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    
-
-    typedef void_ item28;
-    typedef T27 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,28 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector28<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector27<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector28<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector27<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,28 >
-{
-    typedef typename V::item28 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, 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 vector29
-{
-    typedef aux::vector_tag<29> tag;
-    typedef vector29 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    
-
-    typedef void_ item29;
-    typedef T28 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,29 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector29<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector28<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector29<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector28<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,29 >
-{
-    typedef typename V::item29 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector30
-{
-    typedef aux::vector_tag<30> tag;
-    typedef vector30 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    
-
-    typedef void_ item30;
-    typedef T29 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,30 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector30<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector29<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector30<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector29<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,30 >
-{
-    typedef typename V::item30 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp
deleted file mode 100644
index 7b10444..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp
+++ /dev/null
@@ -1,238 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    >
-struct vector21_c
-    : vector21<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 > 
- >
-{
-    typedef vector21_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21
-    >
-struct vector22_c
-    : vector22<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > 
- >
-{
-    typedef vector22_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22
-    >
-struct vector23_c
-    : vector23<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >, integral_c<T
-        , C22> 
- >
-{
-    typedef vector23_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23
-    >
-struct vector24_c
-    : vector24<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 > 
- >
-{
-    typedef vector24_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24
-    >
-struct vector25_c
-    : vector25<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > 
- >
-{
-    typedef vector25_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25
-    >
-struct vector26_c
-    : vector26<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >, integral_c<T
-        , C25> 
- >
-{
-    typedef vector26_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26
-    >
-struct vector27_c
-    : vector27<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 > 
- >
-{
-    typedef vector27_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27
-    >
-struct vector28_c
-    : vector28<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > 
- >
-{
-    typedef vector28_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
-    >
-struct vector29_c
-    : vector29<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >, integral_c<T
-        , C28> 
- >
-{
-    typedef vector29_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
-    >
-struct vector30_c
-    : vector30<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 > 
- >
-{
-    typedef vector30_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector40.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector40.hpp
deleted file mode 100644
index d7c753d..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector40.hpp
+++ /dev/null
@@ -1,1784 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector31
-{
-    typedef aux::vector_tag<31> tag;
-    typedef vector31 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    
-
-    typedef void_ item31;
-    typedef T30 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,31 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector31<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector30<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector31<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector30<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,31 >
-{
-    typedef typename V::item31 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector32
-{
-    typedef aux::vector_tag<32> tag;
-    typedef vector32 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    
-
-    typedef void_ item32;
-    typedef T31 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,32 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector32<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector31<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector32<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector31<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,32 >
-{
-    typedef typename V::item32 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector33
-{
-    typedef aux::vector_tag<33> tag;
-    typedef vector33 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    
-
-    typedef void_ item33;
-    typedef T32 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,33 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector33<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector32<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector33<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector32<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,33 >
-{
-    typedef typename V::item33 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector34
-{
-    typedef aux::vector_tag<34> tag;
-    typedef vector34 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    
-
-    typedef void_ item34;
-    typedef T33 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,34 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector34<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector33<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector34<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector33<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,34 >
-{
-    typedef typename V::item34 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector35
-{
-    typedef aux::vector_tag<35> tag;
-    typedef vector35 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    
-
-    typedef void_ item35;
-    typedef T34 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,35 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector35<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector34<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector35<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector34<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,35 >
-{
-    typedef typename V::item35 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector36
-{
-    typedef aux::vector_tag<36> tag;
-    typedef vector36 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    
-
-    typedef void_ item36;
-    typedef T35 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,36 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector36<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector35<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector36<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector35<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,36 >
-{
-    typedef typename V::item36 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector37
-{
-    typedef aux::vector_tag<37> tag;
-    typedef vector37 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    
-
-    typedef void_ item37;
-    typedef T36 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,37 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector37<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector36<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector37<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector36<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,37 >
-{
-    typedef typename V::item37 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector38
-{
-    typedef aux::vector_tag<38> tag;
-    typedef vector38 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    
-
-    typedef void_ item38;
-    typedef T37 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,38 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector38<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector37<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector38<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector37<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,38 >
-{
-    typedef typename V::item38 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector39
-{
-    typedef aux::vector_tag<39> tag;
-    typedef vector39 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    
-
-    typedef void_ item39;
-    typedef T38 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,39 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector39<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector38<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector39<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector38<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,39 >
-{
-    typedef typename V::item39 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector40
-{
-    typedef aux::vector_tag<40> tag;
-    typedef vector40 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    
-
-    typedef void_ item40;
-    typedef T39 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,40 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector40<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector39<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector40<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector39<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,40 >
-{
-    typedef typename V::item40 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp
deleted file mode 100644
index 45d62d3..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp
+++ /dev/null
@@ -1,281 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    >
-struct vector31_c
-    : vector31<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > 
- >
-{
-    typedef vector31_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31
-    >
-struct vector32_c
-    : vector32<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >, integral_c<T
-        , C31> 
- >
-{
-    typedef vector32_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32
-    >
-struct vector33_c
-    : vector33<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 > 
- >
-{
-    typedef vector33_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33
-    >
-struct vector34_c
-    : vector34<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > 
- >
-{
-    typedef vector34_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34
-    >
-struct vector35_c
-    : vector35<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >, integral_c<T
-        , C34> 
- >
-{
-    typedef vector35_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35
-    >
-struct vector36_c
-    : vector36<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 > 
- >
-{
-    typedef vector36_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36
-    >
-struct vector37_c
-    : vector37<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > 
- >
-{
-    typedef vector37_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37
-    >
-struct vector38_c
-    : vector38<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >, integral_c<T
-        , C37> 
- >
-{
-    typedef vector38_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
-    >
-struct vector39_c
-    : vector39<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 > 
- >
-{
-    typedef vector39_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
-    >
-struct vector40_c
-    : vector40<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > 
- >
-{
-    typedef vector40_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector50.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector50.hpp
deleted file mode 100644
index 8fd2c3a..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector50.hpp
+++ /dev/null
@@ -1,2104 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector41
-{
-    typedef aux::vector_tag<41> tag;
-    typedef vector41 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    
-
-    typedef void_ item41;
-    typedef T40 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,41 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector41<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector40<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector41<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector40<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,41 >
-{
-    typedef typename V::item41 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector42
-{
-    typedef aux::vector_tag<42> tag;
-    typedef vector42 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    
-
-    typedef void_ item42;
-    typedef T41 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,42 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector42<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector41<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector42<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector41<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,42 >
-{
-    typedef typename V::item42 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector43
-{
-    typedef aux::vector_tag<43> tag;
-    typedef vector43 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    
-
-    typedef void_ item43;
-    typedef T42 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,43 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector43<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector42<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector43<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector42<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,43 >
-{
-    typedef typename V::item43 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector44
-{
-    typedef aux::vector_tag<44> tag;
-    typedef vector44 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    
-
-    typedef void_ item44;
-    typedef T43 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,44 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector44<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector43<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector44<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector43<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,44 >
-{
-    typedef typename V::item44 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector45
-{
-    typedef aux::vector_tag<45> tag;
-    typedef vector45 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    
-
-    typedef void_ item45;
-    typedef T44 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,45 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector45<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector44<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector45<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector44<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,45 >
-{
-    typedef typename V::item45 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector46
-{
-    typedef aux::vector_tag<46> tag;
-    typedef vector46 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    
-
-    typedef void_ item46;
-    typedef T45 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,46 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector46<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector45<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector46<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector45<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,46 >
-{
-    typedef typename V::item46 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector47
-{
-    typedef aux::vector_tag<47> tag;
-    typedef vector47 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    
-
-    typedef void_ item47;
-    typedef T46 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,47 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector47<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector46<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector47<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector46<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,47 >
-{
-    typedef typename V::item47 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector48
-{
-    typedef aux::vector_tag<48> tag;
-    typedef vector48 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    
-
-    typedef void_ item48;
-    typedef T47 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,48 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector48<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector47<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector48<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector47<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,48 >
-{
-    typedef typename V::item48 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector49
-{
-    typedef aux::vector_tag<49> tag;
-    typedef vector49 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    typedef T48 item48;
-    
-
-    typedef void_ item49;
-    typedef T48 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,49 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector49<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector48<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47, typename Vector::item48
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector49<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector48<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,49 >
-{
-    typedef typename V::item49 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector50
-{
-    typedef aux::vector_tag<50> tag;
-    typedef vector50 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    typedef T48 item48;
-    typedef T49 item49;
-    
-
-    typedef void_ item50;
-    typedef T49 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,50 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector50<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector49<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47, typename Vector::item48
-            , typename Vector::item49
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector50<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector49<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,50 >
-{
-    typedef typename V::item50 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp
deleted file mode 100644
index 4e5a639..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp
+++ /dev/null
@@ -1,325 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    >
-struct vector41_c
-    : vector41<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >, integral_c<T
-        , C40> 
- >
-{
-    typedef vector41_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41
-    >
-struct vector42_c
-    : vector42<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 > 
- >
-{
-    typedef vector42_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42
-    >
-struct vector43_c
-    : vector43<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > 
- >
-{
-    typedef vector43_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43
-    >
-struct vector44_c
-    : vector44<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >, integral_c<T
-        , C43> 
- >
-{
-    typedef vector44_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44
-    >
-struct vector45_c
-    : vector45<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 > 
- >
-{
-    typedef vector45_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45
-    >
-struct vector46_c
-    : vector46<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > 
- >
-{
-    typedef vector46_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46
-    >
-struct vector47_c
-    : vector47<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >, integral_c<T
-        , C46> 
- >
-{
-    typedef vector47_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47
-    >
-struct vector48_c
-    : vector48<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 > 
- >
-{
-    typedef vector48_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
-    >
-struct vector49_c
-    : vector49<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 > 
- >
-{
-    typedef vector49_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
-    >
-struct vector50_c
-    : vector50<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >, integral_c<T
-        , C49> 
- >
-{
-    typedef vector50_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp
deleted file mode 100644
index a4f4a21..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0
-    >
-struct vector1
-    : v_item<
-          T0
-        , vector0<  >
-        >
-{
-    typedef vector1 type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector2
-    : v_item<
-          T1
-        , vector1<T0>
-        >
-{
-    typedef vector2 type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector3
-    : v_item<
-          T2
-        , vector2< T0,T1 >
-        >
-{
-    typedef vector3 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector4
-    : v_item<
-          T3
-        , vector3< T0,T1,T2 >
-        >
-{
-    typedef vector4 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector5
-    : v_item<
-          T4
-        , vector4< T0,T1,T2,T3 >
-        >
-{
-    typedef vector5 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector6
-    : v_item<
-          T5
-        , vector5< T0,T1,T2,T3,T4 >
-        >
-{
-    typedef vector6 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector7
-    : v_item<
-          T6
-        , vector6< T0,T1,T2,T3,T4,T5 >
-        >
-{
-    typedef vector7 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector8
-    : v_item<
-          T7
-        , vector7< T0,T1,T2,T3,T4,T5,T6 >
-        >
-{
-    typedef vector8 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector9
-    : v_item<
-          T8
-        , vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-        >
-{
-    typedef vector9 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector10
-    : v_item<
-          T9
-        , vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-        >
-{
-    typedef vector10 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp
deleted file mode 100644
index a0a1821..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp
+++ /dev/null
@@ -1,154 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0
-    >
-struct vector1_c
-    : v_item<
-          integral_c< T,C0 >
-        , vector0_c<T>
-        >
-{
-    typedef vector1_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1
-    >
-struct vector2_c
-    : v_item<
-          integral_c< T,C1 >
-        , vector1_c< T,C0 >
-        >
-{
-    typedef vector2_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2
-    >
-struct vector3_c
-    : v_item<
-          integral_c< T,C2 >
-        , vector2_c< T,C0,C1 >
-        >
-{
-    typedef vector3_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3
-    >
-struct vector4_c
-    : v_item<
-          integral_c< T,C3 >
-        , vector3_c< T,C0,C1,C2 >
-        >
-{
-    typedef vector4_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4
-    >
-struct vector5_c
-    : v_item<
-          integral_c< T,C4 >
-        , vector4_c< T,C0,C1,C2,C3 >
-        >
-{
-    typedef vector5_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5
-    >
-struct vector6_c
-    : v_item<
-          integral_c< T,C5 >
-        , vector5_c< T,C0,C1,C2,C3,C4 >
-        >
-{
-    typedef vector6_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6
-    >
-struct vector7_c
-    : v_item<
-          integral_c< T,C6 >
-        , vector6_c< T,C0,C1,C2,C3,C4,C5 >
-        >
-{
-    typedef vector7_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
-    >
-struct vector8_c
-    : v_item<
-          integral_c< T,C7 >
-        , vector7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-        >
-{
-    typedef vector8_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
-    >
-struct vector9_c
-    : v_item<
-          integral_c< T,C8 >
-        , vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-        >
-{
-    typedef vector9_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
-    >
-struct vector10_c
-    : v_item<
-          integral_c< T,C9 >
-        , vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-        >
-{
-    typedef vector10_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp
deleted file mode 100644
index da34f30..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp
+++ /dev/null
@@ -1,159 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector11
-    : v_item<
-          T10
-        , vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-        >
-{
-    typedef vector11 type;
-};
-
-template<
-      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 vector12
-    : v_item<
-          T11
-        , vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-        >
-{
-    typedef vector12 type;
-};
-
-template<
-      typename T0, 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 vector13
-    : v_item<
-          T12
-        , vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-        >
-{
-    typedef vector13 type;
-};
-
-template<
-      typename T0, typename T1, 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 vector14
-    : v_item<
-          T13
-        , vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-        >
-{
-    typedef vector14 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, 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 vector15
-    : v_item<
-          T14
-        , vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-        >
-{
-    typedef vector15 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, 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 vector16
-    : v_item<
-          T15
-        , vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >
-        >
-{
-    typedef vector16 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , 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 vector17
-    : v_item<
-          T16
-        , vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >
-        >
-{
-    typedef vector17 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, 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 vector18
-    : v_item<
-          T17
-        , vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >
-        >
-{
-    typedef vector18 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, 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 vector19
-    : v_item<
-          T18
-        , vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >
-        >
-{
-    typedef vector19 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, 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 vector20
-    : v_item<
-          T19
-        , vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >
-        >
-{
-    typedef vector20 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp
deleted file mode 100644
index e51e78e..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp
+++ /dev/null
@@ -1,163 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    >
-struct vector11_c
-    : v_item<
-          integral_c< T,C10 >
-        , vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-        >
-{
-    typedef vector11_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11
-    >
-struct vector12_c
-    : v_item<
-          integral_c< T,C11 >
-        , vector11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-        >
-{
-    typedef vector12_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12
-    >
-struct vector13_c
-    : v_item<
-          integral_c< T,C12 >
-        , vector12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-        >
-{
-    typedef vector13_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13
-    >
-struct vector14_c
-    : v_item<
-          integral_c< T,C13 >
-        , vector13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-        >
-{
-    typedef vector14_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14
-    >
-struct vector15_c
-    : v_item<
-          integral_c< T,C14 >
-        , vector14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >
-        >
-{
-    typedef vector15_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15
-    >
-struct vector16_c
-    : v_item<
-          integral_c< T,C15 >
-        , vector15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >
-        >
-{
-    typedef vector16_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16
-    >
-struct vector17_c
-    : v_item<
-          integral_c< T,C16 >
-        , vector16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >
-        >
-{
-    typedef vector17_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17
-    >
-struct vector18_c
-    : v_item<
-          integral_c< T,C17 >
-        , vector17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >
-        >
-{
-    typedef vector18_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18
-    >
-struct vector19_c
-    : v_item<
-          integral_c< T,C18 >
-        , vector18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >
-        >
-{
-    typedef vector19_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19
-    >
-struct vector20_c
-    : v_item<
-          integral_c< T,C19 >
-        , vector19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >
-        >
-{
-    typedef vector20_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp
deleted file mode 100644
index a76d5df..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp
+++ /dev/null
@@ -1,179 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, 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 vector21
-    : v_item<
-          T20
-        , vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >
-        >
-{
-    typedef vector21 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , 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 vector22
-    : v_item<
-          T21
-        , vector21< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 >
-        >
-{
-    typedef vector22 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, 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 vector23
-    : v_item<
-          T22
-        , vector22< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 >
-        >
-{
-    typedef vector23 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, 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 vector24
-    : v_item<
-          T23
-        , vector23< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 >
-        >
-{
-    typedef vector24 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, 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 vector25
-    : v_item<
-          T24
-        , vector24< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 >
-        >
-{
-    typedef vector25 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, 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 vector26
-    : v_item<
-          T25
-        , vector25< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 >
-        >
-{
-    typedef vector26 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , 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 vector27
-    : v_item<
-          T26
-        , vector26< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 >
-        >
-{
-    typedef vector27 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, 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 vector28
-    : v_item<
-          T27
-        , vector27< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 >
-        >
-{
-    typedef vector28 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, 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 vector29
-    : v_item<
-          T28
-        , vector28< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 >
-        >
-{
-    typedef vector29 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector30
-    : v_item<
-          T29
-        , vector29< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 >
-        >
-{
-    typedef vector30 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp
deleted file mode 100644
index 27fa235..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp
+++ /dev/null
@@ -1,173 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    >
-struct vector21_c
-    : v_item<
-          integral_c< T,C20 >
-        , vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >
-        >
-{
-    typedef vector21_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21
-    >
-struct vector22_c
-    : v_item<
-          integral_c< T,C21 >
-        , vector21_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 >
-        >
-{
-    typedef vector22_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22
-    >
-struct vector23_c
-    : v_item<
-          integral_c< T,C22 >
-        , vector22_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 >
-        >
-{
-    typedef vector23_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23
-    >
-struct vector24_c
-    : v_item<
-          integral_c< T,C23 >
-        , vector23_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 >
-        >
-{
-    typedef vector24_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24
-    >
-struct vector25_c
-    : v_item<
-          integral_c< T,C24 >
-        , vector24_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 >
-        >
-{
-    typedef vector25_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25
-    >
-struct vector26_c
-    : v_item<
-          integral_c< T,C25 >
-        , vector25_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 >
-        >
-{
-    typedef vector26_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26
-    >
-struct vector27_c
-    : v_item<
-          integral_c< T,C26 >
-        , vector26_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 >
-        >
-{
-    typedef vector27_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27
-    >
-struct vector28_c
-    : v_item<
-          integral_c< T,C27 >
-        , vector27_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 >
-        >
-{
-    typedef vector28_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
-    >
-struct vector29_c
-    : v_item<
-          integral_c< T,C28 >
-        , vector28_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 >
-        >
-{
-    typedef vector29_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
-    >
-struct vector30_c
-    : v_item<
-          integral_c< T,C29 >
-        , vector29_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 >
-        >
-{
-    typedef vector30_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp
deleted file mode 100644
index 7a14235..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp
+++ /dev/null
@@ -1,199 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector31
-    : v_item<
-          T30
-        , vector30< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 >
-        >
-{
-    typedef vector31 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector32
-    : v_item<
-          T31
-        , vector31< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 >
-        >
-{
-    typedef vector32 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector33
-    : v_item<
-          T32
-        , vector32< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 >
-        >
-{
-    typedef vector33 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector34
-    : v_item<
-          T33
-        , vector33< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 >
-        >
-{
-    typedef vector34 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector35
-    : v_item<
-          T34
-        , vector34< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 >
-        >
-{
-    typedef vector35 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector36
-    : v_item<
-          T35
-        , vector35< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 >
-        >
-{
-    typedef vector36 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector37
-    : v_item<
-          T36
-        , vector36< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 >
-        >
-{
-    typedef vector37 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector38
-    : v_item<
-          T37
-        , vector37< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 >
-        >
-{
-    typedef vector38 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector39
-    : v_item<
-          T38
-        , vector38< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 >
-        >
-{
-    typedef vector39 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector40
-    : v_item<
-          T39
-        , vector39< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 >
-        >
-{
-    typedef vector40 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp
deleted file mode 100644
index 1a748a9..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp
+++ /dev/null
@@ -1,183 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    >
-struct vector31_c
-    : v_item<
-          integral_c< T,C30 >
-        , vector30_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 >
-        >
-{
-    typedef vector31_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31
-    >
-struct vector32_c
-    : v_item<
-          integral_c< T,C31 >
-        , vector31_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 >
-        >
-{
-    typedef vector32_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32
-    >
-struct vector33_c
-    : v_item<
-          integral_c< T,C32 >
-        , vector32_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 >
-        >
-{
-    typedef vector33_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33
-    >
-struct vector34_c
-    : v_item<
-          integral_c< T,C33 >
-        , vector33_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 >
-        >
-{
-    typedef vector34_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34
-    >
-struct vector35_c
-    : v_item<
-          integral_c< T,C34 >
-        , vector34_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 >
-        >
-{
-    typedef vector35_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35
-    >
-struct vector36_c
-    : v_item<
-          integral_c< T,C35 >
-        , vector35_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 >
-        >
-{
-    typedef vector36_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36
-    >
-struct vector37_c
-    : v_item<
-          integral_c< T,C36 >
-        , vector36_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 >
-        >
-{
-    typedef vector37_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37
-    >
-struct vector38_c
-    : v_item<
-          integral_c< T,C37 >
-        , vector37_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 >
-        >
-{
-    typedef vector38_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
-    >
-struct vector39_c
-    : v_item<
-          integral_c< T,C38 >
-        , vector38_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 >
-        >
-{
-    typedef vector39_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
-    >
-struct vector40_c
-    : v_item<
-          integral_c< T,C39 >
-        , vector39_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 >
-        >
-{
-    typedef vector40_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp
deleted file mode 100644
index 5f6ae67..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp
+++ /dev/null
@@ -1,219 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector41
-    : v_item<
-          T40
-        , vector40< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 >
-        >
-{
-    typedef vector41 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector42
-    : v_item<
-          T41
-        , vector41< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 >
-        >
-{
-    typedef vector42 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector43
-    : v_item<
-          T42
-        , vector42< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 >
-        >
-{
-    typedef vector43 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector44
-    : v_item<
-          T43
-        , vector43< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 >
-        >
-{
-    typedef vector44 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector45
-    : v_item<
-          T44
-        , vector44< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 >
-        >
-{
-    typedef vector45 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector46
-    : v_item<
-          T45
-        , vector45< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef vector46 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector47
-    : v_item<
-          T46
-        , vector46< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef vector47 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector48
-    : v_item<
-          T47
-        , vector47< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef vector48 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector49
-    : v_item<
-          T48
-        , vector48< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef vector49 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename 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 vector50
-    : v_item<
-          T49
-        , vector49< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,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 >
-        >
-{
-    typedef vector50 type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp b/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp
deleted file mode 100644
index 869c6a1..0000000
--- a/include/ndnboost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-
-// Preprocessed version of "ndnboost/mpl/vector/vector50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace ndnboost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    >
-struct vector41_c
-    : v_item<
-          integral_c< T,C40 >
-        , vector40_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 >
-        >
-{
-    typedef vector41_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41
-    >
-struct vector42_c
-    : v_item<
-          integral_c< T,C41 >
-        , vector41_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 >
-        >
-{
-    typedef vector42_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42
-    >
-struct vector43_c
-    : v_item<
-          integral_c< T,C42 >
-        , vector42_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 >
-        >
-{
-    typedef vector43_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43
-    >
-struct vector44_c
-    : v_item<
-          integral_c< T,C43 >
-        , vector43_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 >
-        >
-{
-    typedef vector44_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44
-    >
-struct vector45_c
-    : v_item<
-          integral_c< T,C44 >
-        , vector44_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 >
-        >
-{
-    typedef vector45_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45
-    >
-struct vector46_c
-    : v_item<
-          integral_c< T,C45 >
-        , vector45_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 >
-        >
-{
-    typedef vector46_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46
-    >
-struct vector47_c
-    : v_item<
-          integral_c< T,C46 >
-        , vector46_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 >
-        >
-{
-    typedef vector47_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47
-    >
-struct vector48_c
-    : v_item<
-          integral_c< T,C47 >
-        , vector47_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 >
-        >
-{
-    typedef vector48_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
-    >
-struct vector49_c
-    : v_item<
-          integral_c< T,C48 >
-        , vector48_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 >
-        >
-{
-    typedef vector49_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
-    >
-struct vector50_c
-    : v_item<
-          integral_c< T,C49 >
-        , vector49_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 >
-        >
-{
-    typedef vector50_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/include/ndnboost/mpl/vector/aux_/push_back.hpp b/include/ndnboost/mpl/vector/aux_/push_back.hpp
deleted file mode 100644
index f61d9b2..0000000
--- a/include/ndnboost/mpl/vector/aux_/push_back.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/push_back_fwd.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <ndnboost/mpl/vector/aux_/item.hpp>
-#   include <ndnboost/mpl/vector/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct push_back_impl< aux::vector_tag >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef v_item<T,Vector,0> type;
-    };
-};
-
-}}
-
-#endif 
-
-#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
deleted file mode 100644
index 0643fef..0000000
--- a/include/ndnboost/mpl/vector/aux_/push_front.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/push_front_fwd.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <ndnboost/mpl/vector/aux_/item.hpp>
-#   include <ndnboost/mpl/vector/aux_/tag.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template<>
-struct push_front_impl< aux::vector_tag >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef v_item<T,Vector,1> type;
-    };
-};
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#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
deleted file mode 100644
index e387afa..0000000
--- a/include/ndnboost/mpl/vector/aux_/size.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/size_fwd.hpp>
-#include <ndnboost/mpl/vector/aux_/O1_size.hpp>
-#include <ndnboost/mpl/vector/aux_/tag.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/config/ctps.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct size_impl< aux::vector_tag >
-    : O1_size_impl< aux::vector_tag >
-{
-};
-
-#else
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct size_impl< aux::vector_tag<N> >
-    : O1_size_impl< aux::vector_tag<N> >
-{
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#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
deleted file mode 100644
index bcd51d4..0000000
--- a/include/ndnboost/mpl/vector/aux_/tag.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-#include <ndnboost/mpl/aux_/nttp_decl.hpp>
-
-namespace ndnboost { namespace mpl { namespace aux {
-
-struct v_iter_tag;
-
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-struct vector_tag;
-#else
-template< NDNBOOST_MPL_AUX_NTTP_DECL(long, N) > struct vector_tag;
-#endif
-
-}}}
-
-#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
deleted file mode 100644
index 8aadb13..0000000
--- a/include/ndnboost/mpl/vector/aux_/vector0.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/long.hpp>
-#include <ndnboost/mpl/void.hpp>
-#include <ndnboost/mpl/aux_/na.hpp>
-#include <ndnboost/mpl/aux_/type_wrapper.hpp>
-
-#include <ndnboost/mpl/vector/aux_/iterator.hpp>
-#include <ndnboost/mpl/vector/aux_/tag.hpp>
-#include <ndnboost/mpl/aux_/config/typeof.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename Dummy = na > struct vector0;
-
-template<> struct vector0<na>
-{
-#if defined(NDNBOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-    typedef aux::vector_tag tag;
-    typedef vector0         type;
-    typedef long_<32768>    lower_bound_;
-    typedef lower_bound_    upper_bound_;
-    typedef long_<0>        size;
-
-    static aux::type_wrapper<void_> item_(...);
-#else
-    typedef aux::vector_tag<0> tag;
-    typedef vector0 type;
-    typedef void_ item0;
-    
-    typedef v_iter<vector0<>,0> begin;
-    typedef v_iter<vector0<>,0> end;
-#endif
-};
-
-}}
-
-#endif // NDNBOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector0.hpp b/include/ndnboost/mpl/vector/vector0.hpp
deleted file mode 100644
index fe11b61..0000000
--- a/include/ndnboost/mpl/vector/vector0.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/vector/aux_/at.hpp>
-#include <ndnboost/mpl/vector/aux_/front.hpp>
-#include <ndnboost/mpl/vector/aux_/push_front.hpp>
-#include <ndnboost/mpl/vector/aux_/pop_front.hpp>
-#include <ndnboost/mpl/vector/aux_/push_back.hpp>
-#include <ndnboost/mpl/vector/aux_/pop_back.hpp>
-#include <ndnboost/mpl/vector/aux_/back.hpp>
-#include <ndnboost/mpl/vector/aux_/clear.hpp>
-#include <ndnboost/mpl/vector/aux_/O1_size.hpp>
-#include <ndnboost/mpl/vector/aux_/size.hpp>
-#include <ndnboost/mpl/vector/aux_/empty.hpp>
-#include <ndnboost/mpl/vector/aux_/item.hpp>
-#include <ndnboost/mpl/vector/aux_/iterator.hpp>
-#include <ndnboost/mpl/vector/aux_/vector0.hpp>
-#include <ndnboost/mpl/vector/aux_/begin_end.hpp>
-#include <ndnboost/mpl/vector/aux_/tag.hpp>
-
-#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
deleted file mode 100644
index 1c6bbab..0000000
--- a/include/ndnboost/mpl/vector/vector0_c.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector0_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/vector/vector0.hpp>
-#include <ndnboost/mpl/integral_c.hpp>
-
-namespace ndnboost { namespace mpl {
-
-template< typename T > struct vector0_c
-    : vector0<>
-{
-    typedef vector0_c type;
-    typedef T value_type;
-};
-
-}}
-
-#endif // NDNBOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector10.hpp b/include/ndnboost/mpl/vector/vector10.hpp
deleted file mode 100644
index 0db48cb..0000000
--- a/include/ndnboost/mpl/vector/vector10.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector10.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/vector/vector0.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector10.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, 10, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index cafd1f9..0000000
--- a/include/ndnboost/mpl/vector/vector10_c.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector10_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector10_c.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, 10, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector20.hpp b/include/ndnboost/mpl/vector/vector20.hpp
deleted file mode 100644
index 7b0a0d4..0000000
--- a/include/ndnboost/mpl/vector/vector20.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector20.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/vector/vector10.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector20.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(11, 20, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index 0324ed2..0000000
--- a/include/ndnboost/mpl/vector/vector20_c.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector20_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector20_c.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(11, 20, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector30.hpp b/include/ndnboost/mpl/vector/vector30.hpp
deleted file mode 100644
index 4ee4e46..0000000
--- a/include/ndnboost/mpl/vector/vector30.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector30.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/vector/vector20.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector30.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(21, 30, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index 5ca10f2..0000000
--- a/include/ndnboost/mpl/vector/vector30_c.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector30_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector30_c.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/config.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(21, 30, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_USE_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector40.hpp b/include/ndnboost/mpl/vector/vector40.hpp
deleted file mode 100644
index 555ffd7..0000000
--- a/include/ndnboost/mpl/vector/vector40.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector40.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/vector/vector30.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector40.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(31, 40, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index 5047a02..0000000
--- a/include/ndnboost/mpl/vector/vector40_c.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector40_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector40_c.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(31, 40, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/vector/vector50.hpp b/include/ndnboost/mpl/vector/vector50.hpp
deleted file mode 100644
index 6fa916a..0000000
--- a/include/ndnboost/mpl/vector/vector50.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector50.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-#   include <ndnboost/mpl/vector/vector40.hpp>
-#endif
-
-#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector50.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(41, 50, <ndnboost/mpl/vector/aux_/numbered.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#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
deleted file mode 100644
index 3bdcf64..0000000
--- a/include/ndnboost/mpl/vector/vector50_c.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
-#define NDNBOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector50_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#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(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
-
-#   define NDNBOOST_MPL_PREPROCESSED_HEADER vector50_c.hpp
-#   include <ndnboost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <ndnboost/mpl/aux_/config/typeof.hpp>
-#   include <ndnboost/mpl/aux_/config/ctps.hpp>
-#   include <ndnboost/preprocessor/iterate.hpp>
-
-namespace ndnboost { namespace mpl {
-
-#   define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3,(41, 50, <ndnboost/mpl/vector/aux_/numbered_c.hpp>))
-#   include NDNBOOST_PP_ITERATE()
-
-}}
-
-#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // NDNBOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/void.hpp b/include/ndnboost/mpl/void.hpp
deleted file mode 100644
index 9aa237b..0000000
--- a/include/ndnboost/mpl/void.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VOID_HPP_INCLUDED
-#define NDNBOOST_MPL_VOID_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: void.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/void_fwd.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/aux_/na_spec.hpp>
-#include <ndnboost/mpl/aux_/config/msvc.hpp>
-#include <ndnboost/mpl/aux_/config/workaround.hpp>
-
-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
-//  used to select an overloaded function. Possible use includes signaling
-//  a zero arity functor evaluation call.
-struct void_ { typedef void_ type; };
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-namespace ndnboost { namespace mpl {
-
-template< typename T >
-struct is_void_
-    : false_
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    using false_::value;
-#endif
-};
-
-template<>
-struct is_void_<void_>
-    : true_
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    using true_::value;
-#endif
-};
-
-template< typename T >
-struct is_not_void_
-    : true_
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    using true_::value;
-#endif
-};
-
-template<>
-struct is_not_void_<void_>
-    : false_
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-    using false_::value;
-#endif
-};
-
-NDNBOOST_MPL_AUX_NA_SPEC(1, is_void_)
-NDNBOOST_MPL_AUX_NA_SPEC(1, is_not_void_)
-
-}}
-
-#endif // NDNBOOST_MPL_VOID_HPP_INCLUDED
diff --git a/include/ndnboost/mpl/void_fwd.hpp b/include/ndnboost/mpl/void_fwd.hpp
deleted file mode 100644
index 0f2a76d..0000000
--- a/include/ndnboost/mpl/void_fwd.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef NDNBOOST_MPL_VOID_FWD_HPP_INCLUDED
-#define NDNBOOST_MPL_VOID_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// 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)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: void_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <ndnboost/mpl/aux_/adl_barrier.hpp>
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-struct void_;
-
-NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-NDNBOOST_MPL_AUX_ADL_BARRIER_DECL(void_)
-
-#endif // NDNBOOST_MPL_VOID_FWD_HPP_INCLUDED
diff --git a/include/ndnboost/next_prior.hpp b/include/ndnboost/next_prior.hpp
deleted file mode 100644
index 4e60280..0000000
--- a/include/ndnboost/next_prior.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//  Boost next_prior.hpp header file  ---------------------------------------//
-
-//  (C) Copyright Dave Abrahams and Daniel Walker 1999-2003. 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)
-
-//  See http://www.boost.org/libs/utility for documentation.
-
-//  Revision History
-//  13 Dec 2003  Added next(x, n) and prior(x, n) (Daniel Walker)
-
-#ifndef NDNBOOST_NEXT_PRIOR_HPP_INCLUDED
-#define NDNBOOST_NEXT_PRIOR_HPP_INCLUDED
-
-#include <iterator>
-
-namespace ndnboost {
-
-//  Helper functions for classes like bidirectional iterators not supporting
-//  operator+ and operator-
-//
-//  Usage:
-//    const std::list<T>::iterator p = get_some_iterator();
-//    const std::list<T>::iterator prev = ndnboost::prior(p);
-//    const std::list<T>::iterator next = ndnboost::next(prev, 2);
-
-//  Contributed by Dave Abrahams
-
-template <class T>
-inline T next(T x) { return ++x; }
-
-template <class T, class Distance>
-inline T next(T x, Distance n)
-{
-    std::advance(x, n);
-    return x;
-}
-
-template <class T>
-inline T prior(T x) { return --x; }
-
-template <class T, class Distance>
-inline T prior(T x, Distance n)
-{
-    std::advance(x, -n);
-    return x;
-}
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_NEXT_PRIOR_HPP_INCLUDED
diff --git a/include/ndnboost/non_type.hpp b/include/ndnboost/non_type.hpp
deleted file mode 100644
index 5550b1c..0000000
--- a/include/ndnboost/non_type.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// -------------------------------------
-//
-//           (C) Copyright Gennaro Prota 2003.
-//
-// 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 NDNBOOST_NON_TYPE_HPP_GP_20030417
-#define NDNBOOST_NON_TYPE_HPP_GP_20030417
-
-
-namespace ndnboost {
-
-  // Just a simple "envelope" for non-type template parameters. Useful
-  // to work around some MSVC deficiencies.
-
- template <typename T, T n>
- struct non_type { };
-
-
-}
-
-
-#endif // include guard
diff --git a/include/ndnboost/noncopyable.hpp b/include/ndnboost/noncopyable.hpp
deleted file mode 100644
index 3ae9d11..0000000
--- a/include/ndnboost/noncopyable.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  Boost noncopyable.hpp header file  --------------------------------------//
-
-//  (C) Copyright Beman Dawes 1999-2003. 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)
-
-//  See http://www.boost.org/libs/utility for documentation.
-
-#ifndef NDNBOOST_NONCOPYABLE_HPP_INCLUDED
-#define NDNBOOST_NONCOPYABLE_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-namespace ndnboost {
-
-//  Private copy constructor and copy assignment ensure classes derived from
-//  class noncopyable cannot be copied.
-
-//  Contributed by Dave Abrahams
-
-namespace noncopyable_  // protection from unintended ADL
-{
-  class noncopyable
-  {
-   protected:
-#ifndef NDNBOOST_NO_DEFAULTED_FUNCTIONS
-    NDNBOOST_CONSTEXPR noncopyable() = default;
-    ~noncopyable() = default;
-#else
-    noncopyable() {}
-      ~noncopyable() {}
-#endif
-#ifndef NDNBOOST_NO_DELETED_FUNCTIONS
-        noncopyable( const noncopyable& ) = delete;
-        noncopyable& operator=( const noncopyable& ) = delete;
-#else
-    private:  // emphasize the following members are private
-      noncopyable( const noncopyable& );
-      noncopyable& operator=( const noncopyable& );
-#endif
-  };
-}
-
-typedef noncopyable_::noncopyable noncopyable;
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_NONCOPYABLE_HPP_INCLUDED
diff --git a/include/ndnboost/none.hpp b/include/ndnboost/none.hpp
deleted file mode 100644
index 44e1921..0000000
--- a/include/ndnboost/none.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-//
-// 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)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola@hotmail.com
-//
-#ifndef NDNBOOST_NONE_17SEP2003_HPP
-#define NDNBOOST_NONE_17SEP2003_HPP
-
-#include "ndnboost/none_t.hpp"
-
-// NOTE: Borland users have to include this header outside any precompiled headers
-// (bcc<=5.64 cannot include instance data in a precompiled header)
-//  -- * To be verified, now that there's no unnamed namespace
-
-namespace ndnboost {
-
-none_t const none = (static_cast<none_t>(0)) ;
-
-} // namespace ndnboost
-
-#endif
-
diff --git a/include/ndnboost/none_t.hpp b/include/ndnboost/none_t.hpp
deleted file mode 100644
index 3684288..0000000
--- a/include/ndnboost/none_t.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to 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)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola@hotmail.com
-//
-#ifndef NDNBOOST_NONE_T_17SEP2003_HPP
-#define NDNBOOST_NONE_T_17SEP2003_HPP
-
-namespace ndnboost {
-
-namespace detail { struct none_helper{}; }
-
-typedef int detail::none_helper::*none_t ;
-
-} // namespace ndnboost
-
-#endif
-
diff --git a/include/ndnboost/numeric/conversion/bounds.hpp b/include/ndnboost/numeric/conversion/bounds.hpp
deleted file mode 100644
index 519de81..0000000
--- a/include/ndnboost/numeric/conversion/bounds.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#ifndef NDNBOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP
-#define NDNBOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP
-
-#include "ndnboost/numeric/conversion/detail/bounds.hpp"
-
-namespace ndnboost { namespace numeric 
-{
-
-template<class N>
-struct bounds : boundsdetail::get_impl<N>::type
-{} ;
-
-} } // namespace ndnboost::numeric
-
-#endif
diff --git a/include/ndnboost/numeric/conversion/cast.hpp b/include/ndnboost/numeric/conversion/cast.hpp
deleted file mode 100644
index 5799fcd..0000000
--- a/include/ndnboost/numeric/conversion/cast.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-//
-//
-//  Revision History
-//
-//    19 Nov 2001 Syntatic changes as suggested by Darin Adler (Fernando Cacciola)
-//    08 Nov 2001 Fixes to accommodate MSVC (Fernando Cacciola)
-//    04 Nov 2001 Fixes to accommodate gcc2.92 (Fernando Cacciola)
-//    30 Oct 2001 Some fixes suggested by Daryle Walker (Fernando Cacciola)
-//    25 Oct 2001 Initial boostification (Fernando Cacciola)
-//    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 NDNBOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
-#define NDNBOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
-
-#include <ndnboost/detail/workaround.hpp>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) || NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x582))
-
-#  include<ndnboost/numeric/conversion/detail/old_numeric_cast.hpp>
-
-#else
-
-#include <ndnboost/type.hpp>
-#include <ndnboost/numeric/conversion/converter.hpp>
-#include <ndnboost/numeric/conversion/numeric_cast_traits.hpp>
-
-namespace ndnboost
-{
-    template <typename Target, typename Source> 
-    inline Target numeric_cast( Source arg )
-    {
-        typedef numeric::conversion_traits<Target, Source>   conv_traits;
-        typedef numeric::numeric_cast_traits<Target, Source> cast_traits;
-        typedef ndnboost::numeric::converter
-            <
-                Target,
-                Source, 
-                conv_traits,
-                typename cast_traits::overflow_policy, 
-                typename cast_traits::rounding_policy, 
-                ndnboost::numeric::raw_converter< conv_traits >,
-                typename cast_traits::range_checking_policy
-            > converter;
-        return converter::convert(arg);
-    }
-    
-    using numeric::bad_numeric_cast;
-} // namespace ndnboost
-
-#endif
-
-#endif
diff --git a/include/ndnboost/numeric/conversion/conversion_traits.hpp b/include/ndnboost/numeric/conversion/conversion_traits.hpp
deleted file mode 100644
index de25d8e..0000000
--- a/include/ndnboost/numeric/conversion/conversion_traits.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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"
-#include "ndnboost/config.hpp"
-
-namespace ndnboost { namespace numeric
-{
-
-template<class T, class S>
-struct conversion_traits 
-    : convdetail::get_conversion_traits<T,S>::type 
-{
-#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;
-    typedef typename base_::result_type     result_type;
-    typedef typename base_::argument_type   argument_type;
-#endif
-} ;
-
-} } // namespace ndnboost::numeric
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/include/ndnboost/numeric/conversion/converter.hpp b/include/ndnboost/numeric/conversion/converter.hpp
deleted file mode 100644
index 95752ff..0000000
--- a/include/ndnboost/numeric/conversion/converter.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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"
-
-#include "ndnboost/numeric/conversion/detail/converter.hpp"
-
-namespace ndnboost { namespace numeric 
-{
-
-template<class T,
-         class S,
-         class Traits           = conversion_traits<T,S>,
-         class OverflowHandler  = def_overflow_handler,
-         class Float2IntRounder = Trunc< NDNBOOST_DEDUCED_TYPENAME Traits::source_type>  ,
-         class RawConverter     = raw_converter<Traits>,
-         class UserRangeChecker = UseInternalRangeChecker
-        >
-struct converter : convdetail::get_converter_impl<Traits,
-                                                  OverflowHandler,
-                                                  Float2IntRounder,
-                                                  RawConverter,
-                                                  UserRangeChecker
-                                                 >::type
-{
-  typedef Traits traits ;
-
-  typedef typename Traits::argument_type argument_type ;
-  typedef typename Traits::result_type   result_type   ;
-
-  result_type operator() ( argument_type s ) const { return this->convert(s) ; }
-} ;
-
-
-
-template<class S,
-         class OverflowHandler  = def_overflow_handler,
-         class Float2IntRounder = Trunc<S>  ,
-         class UserRangeChecker = UseInternalRangeChecker
-        >
-struct make_converter_from
-{
-  template<class T,
-           class Traits       = conversion_traits<T,S>,
-           class RawConverter = raw_converter<Traits>
-          > 
-  struct to
-  {
-    typedef converter<T,S,Traits,OverflowHandler,Float2IntRounder,RawConverter,UserRangeChecker> type ;
-  } ;
-
-} ;
-
-} } // namespace ndnboost::numeric
-
-#endif
-
-
diff --git a/include/ndnboost/numeric/conversion/converter_policies.hpp b/include/ndnboost/numeric/conversion/converter_policies.hpp
deleted file mode 100644
index c1c978e..0000000
--- a/include/ndnboost/numeric/conversion/converter_policies.hpp
+++ /dev/null
@@ -1,194 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-//
-#ifndef NDNBOOST_NUMERIC_CONVERSION_CONVERTER_POLICIES_FLC_12NOV2002_HPP
-#define NDNBOOST_NUMERIC_CONVERSION_CONVERTER_POLICIES_FLC_12NOV2002_HPP
-
-#include <typeinfo> // for std::bad_cast
-
-#include <ndnboost/config/no_tr1/cmath.hpp> // for std::floor and std::ceil
-#include <ndnboost/throw_exception.hpp>
-
-#include <functional>
-
-#include "ndnboost/type_traits/is_arithmetic.hpp"
-
-#include "ndnboost/mpl/if.hpp"
-#include "ndnboost/mpl/integral_c.hpp"
-
-namespace ndnboost { namespace numeric
-{
-
-template<class S>
-struct Trunc
-{
-  typedef S source_type ;
-
-  typedef typename mpl::if_< is_arithmetic<S>,S,S const&>::type argument_type ;
-
-  static source_type nearbyint ( argument_type s )
-  {
-#if !defined(NDNBOOST_NO_STDC_NAMESPACE)
-    using std::floor ;
-    using std::ceil  ;
-#endif
-
-    return s < static_cast<S>(0) ? ceil(s) : floor(s) ;
-  }
-
-  typedef mpl::integral_c< std::float_round_style, std::round_toward_zero> round_style ;
-} ;
-
-
-
-template<class S>
-struct Floor
-{
-  typedef S source_type ;
-
-  typedef typename mpl::if_< is_arithmetic<S>,S,S const&>::type argument_type ;
-
-  static source_type nearbyint ( argument_type s )
-  {
-#if !defined(NDNBOOST_NO_STDC_NAMESPACE)
-    using std::floor ;
-#endif
-
-    return floor(s) ;
-  }
-
-  typedef mpl::integral_c< std::float_round_style, std::round_toward_neg_infinity> round_style ;
-} ;
-
-template<class S>
-struct Ceil
-{
-  typedef S source_type ;
-
-  typedef typename mpl::if_< is_arithmetic<S>,S,S const&>::type argument_type ;
-
-  static source_type nearbyint ( argument_type s )
-  {
-#if !defined(NDNBOOST_NO_STDC_NAMESPACE)
-    using std::ceil ;
-#endif
-
-    return ceil(s) ;
-  }
-
-  typedef mpl::integral_c< std::float_round_style, std::round_toward_infinity> round_style ;
-} ;
-
-template<class S>
-struct RoundEven
-{
-  typedef S source_type ;
-
-  typedef typename mpl::if_< is_arithmetic<S>,S,S const&>::type argument_type ;
-
-  static source_type nearbyint ( argument_type s )
-  {
-    // Algorithm contributed by Guillaume Melquiond
-
-#if !defined(NDNBOOST_NO_STDC_NAMESPACE)
-    using std::floor ;
-    using std::ceil  ;
-#endif
-
-    // only works inside the range not at the boundaries
-    S prev = floor(s);
-    S next = ceil(s);
-
-    S rt = (s - prev) - (next - s); // remainder type
-
-    S const zero(0.0);
-    S const two(2.0);
-
-    if ( rt < zero )
-      return prev;
-    else if ( rt > zero )
-      return next;
-    else
-    {
-      bool is_prev_even = two * floor(prev / two) == prev ;
-      return ( is_prev_even ? prev : next ) ;
-    }
-  }
-
-  typedef mpl::integral_c< std::float_round_style, std::round_to_nearest> round_style ;
-} ;
-
-
-enum range_check_result
-{
-  cInRange     = 0 ,
-  cNegOverflow = 1 ,
-  cPosOverflow = 2
-} ;
-
-class bad_numeric_cast : public std::bad_cast
-{
-  public:
-
-    virtual const char * what() const throw()
-      {  return "bad numeric conversion: overflow"; }
-};
-
-class negative_overflow : public bad_numeric_cast
-{
-  public:
-
-    virtual const char * what() const throw()
-      {  return "bad numeric conversion: negative overflow"; }
-};
-class positive_overflow : public bad_numeric_cast
-{
-  public:
-
-    virtual const char * what() const throw()
-      { return "bad numeric conversion: positive overflow"; }
-};
-
-struct def_overflow_handler
-{
-  void operator() ( range_check_result r ) // throw(negative_overflow,positive_overflow)
-  {
-#ifndef NDNBOOST_NO_EXCEPTIONS
-    if ( r == cNegOverflow )
-      throw negative_overflow() ;
-    else if ( r == cPosOverflow )
-           throw positive_overflow() ;
-#else
-    if ( r == cNegOverflow )
-      ::ndnboost::throw_exception(negative_overflow()) ;
-    else if ( r == cPosOverflow )
-           ::ndnboost::throw_exception(positive_overflow()) ;
-#endif
-  }
-} ;
-
-struct silent_overflow_handler
-{
-  void operator() ( range_check_result ) {} // throw()
-} ;
-
-template<class Traits>
-struct raw_converter
-{
-  typedef typename Traits::result_type   result_type   ;
-  typedef typename Traits::argument_type argument_type ;
-
-  static result_type low_level_convert ( argument_type s ) { return static_cast<result_type>(s) ; }
-} ;
-
-struct UseInternalRangeChecker {} ;
-
-} } // namespace ndnboost::numeric
-
-#endif
diff --git a/include/ndnboost/numeric/conversion/detail/bounds.hpp b/include/ndnboost/numeric/conversion/detail/bounds.hpp
deleted file mode 100644
index 59d3202..0000000
--- a/include/ndnboost/numeric/conversion/detail/bounds.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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"
-#include "ndnboost/mpl/if.hpp"
-
-namespace ndnboost { namespace numeric { namespace boundsdetail
-{
-  template<class N>
-  class Integral
-  {
-      typedef std::numeric_limits<N> limits ;
-
-    public :
-    
-      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); }
-  } ;
-
-  template<class N>
-  class Float
-  {
-      typedef std::numeric_limits<N> limits ;
-
-    public :
-    
-      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>
-  struct get_impl
-  {
-    typedef mpl::bool_< ::std::numeric_limits<N>::is_integer > is_int ;
-
-    typedef Integral<N> impl_int   ;
-    typedef Float   <N> impl_float ;
-
-    typedef typename mpl::if_<is_int,impl_int,impl_float>::type type ;
-  } ;
-
-} } } // namespace ndnboost::numeric::boundsdetail.
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/include/ndnboost/numeric/conversion/detail/conversion_traits.hpp b/include/ndnboost/numeric/conversion/detail/conversion_traits.hpp
deleted file mode 100644
index 09fe107..0000000
--- a/include/ndnboost/numeric/conversion/detail/conversion_traits.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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"
-#include "ndnboost/type_traits/remove_cv.hpp"
-
-#include "ndnboost/numeric/conversion/detail/meta.hpp"
-#include "ndnboost/numeric/conversion/detail/int_float_mixture.hpp"
-#include "ndnboost/numeric/conversion/detail/sign_mixture.hpp"
-#include "ndnboost/numeric/conversion/detail/udt_builtin_mixture.hpp"
-#include "ndnboost/numeric/conversion/detail/is_subranged.hpp"
-
-namespace ndnboost { namespace numeric { namespace convdetail
-{
-  //-------------------------------------------------------------------
-  // Implementation of the Conversion Traits for T != S
-  //
-  // This is a VISIBLE base class of the user-level conversion_traits<> class.
-  //-------------------------------------------------------------------
-  template<class T,class S>
-  struct non_trivial_traits_impl
-  {
-    typedef typename get_int_float_mixture   <T,S>::type int_float_mixture ;
-    typedef typename get_sign_mixture        <T,S>::type sign_mixture ;
-    typedef typename get_udt_builtin_mixture <T,S>::type udt_builtin_mixture ;
-
-    typedef typename get_is_subranged<T,S>::type subranged ;
-
-    typedef mpl::false_ trivial ;
-
-    typedef T target_type ;
-    typedef S source_type ;
-    typedef T result_type ;
-
-    typedef typename mpl::if_< is_arithmetic<S>, S, S const&>::type argument_type ;
-
-    typedef typename mpl::if_<subranged,S,T>::type supertype ;
-    typedef typename mpl::if_<subranged,T,S>::type subtype   ;
-  } ;
-
-  //-------------------------------------------------------------------
-  // Implementation of the Conversion Traits for T == S
-  //
-  // This is a VISIBLE base class of the user-level conversion_traits<> class.
-  //-------------------------------------------------------------------
-  template<class N>
-  struct trivial_traits_impl
-  {
-    typedef typename get_int_float_mixture  <N,N>::type int_float_mixture ;
-    typedef typename get_sign_mixture       <N,N>::type sign_mixture ;
-    typedef typename get_udt_builtin_mixture<N,N>::type udt_builtin_mixture ;
-
-    typedef mpl::false_ subranged ;
-    typedef mpl::true_  trivial ;
-
-    typedef N        target_type ;
-    typedef N        source_type ;
-    typedef N const& result_type ;
-    typedef N const& argument_type ;
-
-    typedef N supertype ;
-    typedef N subtype  ;
-
-  } ;
-
-  //-------------------------------------------------------------------
-  // Top level implementation selector.
-  //-------------------------------------------------------------------
-  template<class T, class S>
-  struct get_conversion_traits
-  {
-    typedef typename remove_cv<T>::type target_type ;
-    typedef typename remove_cv<S>::type source_type ;
-
-    typedef typename is_same<target_type,source_type>::type is_trivial ;
-
-    typedef trivial_traits_impl    <target_type>             trivial_imp ;
-    typedef non_trivial_traits_impl<target_type,source_type> non_trivial_imp ;
-
-    typedef typename mpl::if_<is_trivial,trivial_imp,non_trivial_imp>::type type ;
-  } ;
-
-} } } // namespace ndnboost::numeric::convdetail
-
-#endif
-
-
diff --git a/include/ndnboost/numeric/conversion/detail/converter.hpp b/include/ndnboost/numeric/conversion/detail/converter.hpp
deleted file mode 100644
index 37099ef..0000000
--- a/include/ndnboost/numeric/conversion/detail/converter.hpp
+++ /dev/null
@@ -1,602 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-//
-#ifndef NDNBOOST_NUMERIC_CONVERSION_DETAIL_CONVERTER_FLC_12NOV2002_HPP
-#define NDNBOOST_NUMERIC_CONVERSION_DETAIL_CONVERTER_FLC_12NOV2002_HPP
-
-#include <functional>
-
-#include "ndnboost/numeric/conversion/detail/meta.hpp"
-#include "ndnboost/numeric/conversion/detail/conversion_traits.hpp"
-#include "ndnboost/numeric/conversion/bounds.hpp"
-
-#include "ndnboost/type_traits/is_same.hpp"
-
-#include "ndnboost/mpl/integral_c.hpp"
-
-namespace ndnboost { namespace numeric { namespace convdetail
-{
-  // Integral Constants representing rounding modes
-  typedef mpl::integral_c<std::float_round_style, std::round_toward_zero>         round2zero_c ;
-  typedef mpl::integral_c<std::float_round_style, std::round_to_nearest>          round2nearest_c ;
-  typedef mpl::integral_c<std::float_round_style, std::round_toward_infinity>     round2inf_c ;
-  typedef mpl::integral_c<std::float_round_style, std::round_toward_neg_infinity> round2neg_inf_c ;
-
-  // Metafunction:
-  //
-  //   for_round_style<RoundStyle,RoundToZero,RoundToNearest,RoundToInf,RoundToNegInf>::type
-  //
-  // {RoundStyle} Integral Constant specifying a round style as declared above.
-  // {RoundToZero,RoundToNearest,RoundToInf,RoundToNegInf} arbitrary types.
-  //
-  // Selects one of the 4 types according to the value of RoundStyle.
-  //
-  template<class RoundStyle,class RoundToZero,class RoundToNearest,class RoundToInf,class RoundToNegInf>
-  struct for_round_style
-  {
-    typedef ct_switch4<RoundStyle
-                       , round2zero_c, round2nearest_c, round2inf_c // round2neg_inf_c
-                       , RoundToZero , RoundToNearest , RoundToInf , RoundToNegInf
-                      > selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-//--------------------------------------------------------------------------
-//                             Range Checking Logic.
-//
-// The range checking logic is built up by combining 1 or 2 predicates.
-// Each predicate is encapsulated in a template class and exposes
-// the static member function 'apply'.
-//
-//--------------------------------------------------------------------------
-
-
-  // Because a particular logic can combine either 1 or two predicates, the following
-  // tags are used to allow the predicate applier to receive 2 preds, but optimize away
-  // one of them if it is 'non-applicable'
-  struct non_applicable { typedef mpl::false_ do_apply ; } ;
-  struct applicable     { typedef mpl::true_  do_apply ; } ;
-
-
-  //--------------------------------------------------------------------------
-  //
-  //                      Range Checking Logic implementations.
-  //
-  // The following classes, collectivelly named 'Predicates', are instantiated within
-  // the corresponding range checkers.
-  // Their static member function 'apply' is called to perform the actual range checking logic.
-  //--------------------------------------------------------------------------
-
-    // s < Lowest(T) ? cNegOverflow : cInRange
-    //
-    template<class Traits>
-    struct LT_LoT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s < static_cast<S>(bounds<T>::lowest()) ? cNegOverflow : cInRange ;
-      }
-    } ;
-
-    // s < 0 ? cNegOverflow : cInRange
-    //
-    template<class Traits>
-    struct LT_Zero : applicable
-    {
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s < static_cast<S>(0) ? cNegOverflow : cInRange ;
-      }
-    } ;
-
-    // s <= Lowest(T)-1 ? cNegOverflow : cInRange
-    //
-    template<class Traits>
-    struct LE_PrevLoT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s <= static_cast<S>(bounds<T>::lowest()) - static_cast<S>(1.0)
-                 ? cNegOverflow : cInRange ;
-      }
-    } ;
-
-    // s < Lowest(T)-0.5 ? cNegOverflow : cInRange
-    //
-    template<class Traits>
-    struct LT_HalfPrevLoT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s < static_cast<S>(bounds<T>::lowest()) - static_cast<S>(0.5)
-                 ? cNegOverflow : cInRange ;
-      }
-    } ;
-
-    // s > Highest(T) ? cPosOverflow : cInRange
-    //
-    template<class Traits>
-    struct GT_HiT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s > static_cast<S>(bounds<T>::highest())
-                 ? cPosOverflow : cInRange ;
-      }
-    } ;
-
-    // s >= Lowest(T) + 1 ? cPosOverflow : cInRange
-    //
-    template<class Traits>
-    struct GE_SuccHiT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s >= static_cast<S>(bounds<T>::highest()) + static_cast<S>(1.0)
-                 ? cPosOverflow : cInRange ;
-      }
-    } ;
-
-    // s >= Lowest(T) + 0.5 ? cPosgOverflow : cInRange
-    //
-    template<class Traits>
-    struct GT_HalfSuccHiT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s >= static_cast<S>(bounds<T>::highest()) + static_cast<S>(0.5)
-                 ? cPosOverflow : cInRange ;
-      }
-    } ;
-
-
-  //--------------------------------------------------------------------------
-  //
-  // Predicate Combiner.
-  //
-  // This helper classes are used to possibly combine the range checking logic
-  // individually performed by the predicates
-  //
-  //--------------------------------------------------------------------------
-
-
-    // Applies both predicates: first 'PredA', and if it equals 'cInRange', 'PredB'
-    template<class PredA, class PredB>
-    struct applyBoth
-    {
-      typedef typename PredA::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        range_check_result r = PredA::apply(s) ;
-        if ( r == cInRange )
-          r = PredB::apply(s);
-        return r ;
-      }
-    } ;
-
-    template<class PredA, class PredB>
-    struct combine
-    {
-      typedef applyBoth<PredA,PredB> Both ;
-      typedef void                   NNone ; // 'None' is defined as a macro in (/usr/X11R6/include/X11/X.h)
-
-      typedef typename PredA::do_apply do_applyA ;
-      typedef typename PredB::do_apply do_applyB ;
-
-      typedef typename for_both<do_applyA, do_applyB, Both, PredA, PredB, NNone>::type type ;
-    } ;
-
-
-
-
-
-
-
-
-
-
-
-
-//--------------------------------------------------------------------------
-//                             Range Checker classes.
-//
-// The following classes are VISIBLE base classes of the user-level converter<> class.
-// They supply the optimized 'out_of_range()' and 'validate_range()' static member functions
-// visible in the user interface.
-//
-//--------------------------------------------------------------------------
-
-  // Dummy range checker.
-  template<class Traits>
-  struct dummy_range_checker
-  {
-    typedef typename Traits::argument_type argument_type ;
-
-    static range_check_result out_of_range ( argument_type ) { return cInRange ; }
-    static void validate_range ( argument_type ) {}
-  } ;
-
-  // Generic range checker.
-  //
-  // All the range checking logic for all possible combinations of source and target
-  // can be arranged in terms of one or two predicates, which test overflow on both neg/pos 'sides'
-  // of the ranges.
-  //
-  // These predicates are given here as IsNegOverflow and IsPosOverflow.
-  //
-  template<class Traits, class IsNegOverflow, class IsPosOverflow, class OverflowHandler>
-  struct generic_range_checker
-  {
-    typedef OverflowHandler overflow_handler ;
-
-    typedef typename Traits::argument_type argument_type ;
-
-    static range_check_result out_of_range ( argument_type s )
-    {
-      typedef typename combine<IsNegOverflow,IsPosOverflow>::type Predicate ;
-
-      return Predicate::apply(s);
-    }
-
-    static void validate_range ( argument_type s )
-      { OverflowHandler()( out_of_range(s) ) ; }
-  } ;
-
-
-
-//--------------------------------------------------------------------------
-//
-// Selectors for the optimized Range Checker class.
-//
-//--------------------------------------------------------------------------
-
-  template<class Traits,class OverflowHandler>
-  struct GetRC_Sig2Sig_or_Unsig2Unsig
-  {
-    typedef dummy_range_checker<Traits> Dummy ;
-
-    typedef LT_LoT<Traits> Pred1 ;
-    typedef GT_HiT<Traits> Pred2 ;
-
-    typedef generic_range_checker<Traits,Pred1,Pred2,OverflowHandler> Normal ;
-
-    typedef typename Traits::subranged subranged ;
-
-    typedef typename mpl::if_<subranged,Normal,Dummy>::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler>
-  struct GetRC_Sig2Unsig
-  {
-    typedef LT_Zero<Traits> Pred1 ;
-    typedef GT_HiT <Traits> Pred2 ;
-
-    typedef generic_range_checker<Traits,Pred1,Pred2,OverflowHandler> ChoiceA ;
-
-    typedef generic_range_checker<Traits,Pred1,non_applicable,OverflowHandler> ChoiceB ;
-
-    typedef typename Traits::target_type T ;
-    typedef typename Traits::source_type S ;
-
-    typedef typename subranged_Unsig2Sig<S,T>::type oposite_subranged ;
-
-    typedef typename mpl::not_<oposite_subranged>::type positively_subranged ;
-
-    typedef typename mpl::if_<positively_subranged,ChoiceA,ChoiceB>::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler>
-  struct GetRC_Unsig2Sig
-  {
-    typedef GT_HiT<Traits> Pred1 ;
-
-    typedef generic_range_checker<Traits,non_applicable,Pred1,OverflowHandler> type ;
-  } ;
-
-  template<class Traits,class OverflowHandler>
-  struct GetRC_Int2Int
-  {
-    typedef GetRC_Sig2Sig_or_Unsig2Unsig<Traits,OverflowHandler> Sig2SigQ     ;
-    typedef GetRC_Sig2Unsig             <Traits,OverflowHandler> Sig2UnsigQ   ;
-    typedef GetRC_Unsig2Sig             <Traits,OverflowHandler> Unsig2SigQ   ;
-    typedef Sig2SigQ                                             Unsig2UnsigQ ;
-
-    typedef typename Traits::sign_mixture sign_mixture ;
-
-    typedef typename
-      for_sign_mixture<sign_mixture,Sig2SigQ,Sig2UnsigQ,Unsig2SigQ,Unsig2UnsigQ>::type
-        selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-  template<class Traits>
-  struct GetRC_Int2Float
-  {
-    typedef dummy_range_checker<Traits> type ;
-  } ;
-
-  template<class Traits, class OverflowHandler, class Float2IntRounder>
-  struct GetRC_Float2Int
-  {
-    typedef LE_PrevLoT    <Traits> Pred1 ;
-    typedef GE_SuccHiT    <Traits> Pred2 ;
-    typedef LT_HalfPrevLoT<Traits> Pred3 ;
-    typedef GT_HalfSuccHiT<Traits> Pred4 ;
-    typedef GT_HiT        <Traits> Pred5 ;
-    typedef LT_LoT        <Traits> Pred6 ;
-
-    typedef generic_range_checker<Traits,Pred1,Pred2,OverflowHandler> ToZero    ;
-    typedef generic_range_checker<Traits,Pred3,Pred4,OverflowHandler> ToNearest ;
-    typedef generic_range_checker<Traits,Pred1,Pred5,OverflowHandler> ToInf     ;
-    typedef generic_range_checker<Traits,Pred6,Pred2,OverflowHandler> ToNegInf  ;
-
-    typedef typename Float2IntRounder::round_style round_style ;
-
-    typedef typename for_round_style<round_style,ToZero,ToNearest,ToInf,ToNegInf>::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler>
-  struct GetRC_Float2Float
-  {
-    typedef dummy_range_checker<Traits> Dummy ;
-
-    typedef LT_LoT<Traits> Pred1 ;
-    typedef GT_HiT<Traits> Pred2 ;
-
-    typedef generic_range_checker<Traits,Pred1,Pred2,OverflowHandler> Normal ;
-
-    typedef typename Traits::subranged subranged ;
-
-    typedef typename mpl::if_<subranged,Normal,Dummy>::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler, class Float2IntRounder>
-  struct GetRC_BuiltIn2BuiltIn
-  {
-    typedef GetRC_Int2Int<Traits,OverflowHandler>                    Int2IntQ ;
-    typedef GetRC_Int2Float<Traits>                                  Int2FloatQ ;
-    typedef GetRC_Float2Int<Traits,OverflowHandler,Float2IntRounder> Float2IntQ ;
-    typedef GetRC_Float2Float<Traits,OverflowHandler>                Float2FloatQ ;
-
-    typedef typename Traits::int_float_mixture int_float_mixture ;
-
-    typedef typename for_int_float_mixture<int_float_mixture, Int2IntQ, Int2FloatQ, Float2IntQ, Float2FloatQ>::type selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler, class Float2IntRounder>
-  struct GetRC
-  {
-    typedef GetRC_BuiltIn2BuiltIn<Traits,OverflowHandler,Float2IntRounder> BuiltIn2BuiltInQ ;
-
-    typedef dummy_range_checker<Traits> Dummy ;
-
-    typedef mpl::identity<Dummy> DummyQ ;
-
-    typedef typename Traits::udt_builtin_mixture udt_builtin_mixture ;
-
-    typedef typename for_udt_builtin_mixture<udt_builtin_mixture,BuiltIn2BuiltInQ,DummyQ,DummyQ,DummyQ>::type selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-
-
-
-//--------------------------------------------------------------------------
-//                             Converter classes.
-//
-// The following classes are VISIBLE base classes of the user-level converter<> class.
-// They supply the optimized 'nearbyint()' and 'convert()' static member functions
-// visible in the user interface.
-//
-//--------------------------------------------------------------------------
-
-  //
-  // Trivial Converter : used when (cv-unqualified) T == (cv-unqualified)  S
-  //
-  template<class Traits>
-  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>
-  {
-    typedef Traits traits ;
-
-    typedef typename Traits::source_type   source_type   ;
-    typedef typename Traits::argument_type argument_type ;
-    typedef typename Traits::result_type   result_type   ;
-
-    static result_type low_level_convert ( argument_type s ) { return s ; }
-    static source_type nearbyint         ( argument_type s ) { return s ; }
-    static result_type convert           ( argument_type s ) { return s ; }
-  } ;
-
-
-  //
-  // Rounding Converter : used for float to integral conversions.
-  //
-  template<class Traits,class RangeChecker,class RawConverter,class Float2IntRounder>
-  struct rounding_converter : public std::unary_function<  NDNBOOST_DEDUCED_TYPENAME Traits::argument_type
-                                                          ,NDNBOOST_DEDUCED_TYPENAME Traits::result_type
-                                                        >
-                             ,public RangeChecker
-                             ,public Float2IntRounder
-                             ,public RawConverter
-  {
-    typedef RangeChecker     RangeCheckerBase ;
-    typedef Float2IntRounder Float2IntRounderBase ;
-    typedef RawConverter     RawConverterBase ;
-
-    typedef Traits traits ;
-
-    typedef typename Traits::source_type   source_type   ;
-    typedef typename Traits::argument_type argument_type ;
-    typedef typename Traits::result_type   result_type   ;
-
-    static result_type convert ( argument_type s )
-    {
-      RangeCheckerBase::validate_range(s);
-      source_type s1 = Float2IntRounderBase::nearbyint(s);
-      return RawConverterBase::low_level_convert(s1);
-    }
-  } ;
-
-
-  //
-  // Non-Rounding Converter : used for all other conversions.
-  //
-  template<class Traits,class RangeChecker,class RawConverter>
-  struct non_rounding_converter : public std::unary_function< NDNBOOST_DEDUCED_TYPENAME Traits::argument_type
-                                                             ,NDNBOOST_DEDUCED_TYPENAME Traits::result_type
-                                                           >
-                                 ,public RangeChecker
-                                 ,public RawConverter
-  {
-    typedef RangeChecker RangeCheckerBase ;
-    typedef RawConverter RawConverterBase ;
-
-    typedef Traits traits ;
-
-    typedef typename Traits::source_type   source_type   ;
-    typedef typename Traits::argument_type argument_type ;
-    typedef typename Traits::result_type   result_type   ;
-
-    static source_type nearbyint ( argument_type s ) { return s ; }
-
-    static result_type convert ( argument_type s )
-    {
-      RangeCheckerBase::validate_range(s);
-      return RawConverterBase::low_level_convert(s);
-    }
-  } ;
-
-
-
-
-//--------------------------------------------------------------------------
-//
-// Selectors for the optimized Converter class.
-//
-//--------------------------------------------------------------------------
-
-  template<class Traits,class OverflowHandler,class Float2IntRounder,class RawConverter, class UserRangeChecker>
-  struct get_non_trivial_converter
-  {
-    typedef GetRC<Traits,OverflowHandler,Float2IntRounder> InternalRangeCheckerQ ;
-
-    typedef is_same<UserRangeChecker,UseInternalRangeChecker> use_internal_RC ;
-
-    typedef mpl::identity<UserRangeChecker> UserRangeCheckerQ ;
-
-    typedef typename
-      mpl::eval_if<use_internal_RC,InternalRangeCheckerQ,UserRangeCheckerQ>::type
-        RangeChecker ;
-
-    typedef non_rounding_converter<Traits,RangeChecker,RawConverter>              NonRounding ;
-    typedef rounding_converter<Traits,RangeChecker,RawConverter,Float2IntRounder> Rounding ;
-
-    typedef mpl::identity<NonRounding> NonRoundingQ ;
-    typedef mpl::identity<Rounding>    RoundingQ    ;
-
-    typedef typename Traits::int_float_mixture int_float_mixture ;
-
-    typedef typename
-      for_int_float_mixture<int_float_mixture, NonRoundingQ, NonRoundingQ, RoundingQ, NonRoundingQ>::type
-        selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-  template< class Traits
-           ,class OverflowHandler
-           ,class Float2IntRounder
-           ,class RawConverter
-           ,class UserRangeChecker
-          >
-  struct get_converter_impl
-  {
-#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 ;
-    typedef OverflowHandler  OverflowHandler ;
-    typedef Float2IntRounder Float2IntRounder ;
-    typedef RawConverter     RawConverter ;
-    typedef UserRangeChecker UserRangeChecker ;
-#endif
-
-    typedef trivial_converter_impl<Traits> Trivial ;
-    typedef mpl::identity        <Trivial> TrivialQ ;
-
-    typedef get_non_trivial_converter< Traits
-                                      ,OverflowHandler
-                                      ,Float2IntRounder
-                                      ,RawConverter
-                                      ,UserRangeChecker
-                                     > NonTrivialQ ;
-
-    typedef typename Traits::trivial trivial ;
-
-    typedef typename mpl::eval_if<trivial,TrivialQ,NonTrivialQ>::type type ;
-  } ;
-
-} } } // namespace ndnboost::numeric::convdetail
-
-#endif
-
-
diff --git a/include/ndnboost/numeric/conversion/detail/int_float_mixture.hpp b/include/ndnboost/numeric/conversion/detail/int_float_mixture.hpp
deleted file mode 100644
index e91ac40..0000000
--- a/include/ndnboost/numeric/conversion/detail/int_float_mixture.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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"
-
-#include "ndnboost/numeric/conversion/int_float_mixture_enum.hpp"
-#include "ndnboost/numeric/conversion/detail/meta.hpp"
-
-#include "ndnboost/mpl/integral_c.hpp"
-
-namespace ndnboost { namespace numeric { namespace convdetail
-{
-  // Integral Constants for 'IntFloatMixture'
-  typedef mpl::integral_c<int_float_mixture_enum, integral_to_integral> int2int_c ;
-  typedef mpl::integral_c<int_float_mixture_enum, integral_to_float>    int2float_c ;
-  typedef mpl::integral_c<int_float_mixture_enum, float_to_integral>    float2int_c ;
-  typedef mpl::integral_c<int_float_mixture_enum, float_to_float>       float2float_c ;
-
-  // Metafunction:
-  //
-  //   get_int_float_mixture<T,S>::type
-  //
-  // Selects the appropriate Int-Float Mixture Integral Constant for the combination T,S.
-  //
-  template<class T,class S>
-  struct get_int_float_mixture
-  {
-    typedef mpl::bool_< ::std::numeric_limits<S>::is_integer > S_int ;
-    typedef mpl::bool_< ::std::numeric_limits<T>::is_integer > T_int ;
-
-    typedef typename
-      for_both<S_int, T_int, int2int_c, int2float_c, float2int_c, float2float_c>::type
-        type ;
-  } ;
-
-  // Metafunction:
-  //
-  //   for_int_float_mixture<Mixture,int_int,int_float,float_int,float_float>::type
-  //
-  // {Mixture} is one of the Integral Constants for Mixture, declared above.
-  // {int_int,int_float,float_int,float_float} are aribtrary types. (not metafunctions)
-  //
-  // According to the value of 'IntFloatMixture', selects the corresponding type.
-  //
-  template<class IntFloatMixture, class Int2Int, class Int2Float, class Float2Int, class Float2Float>
-  struct for_int_float_mixture
-  {
-    typedef typename
-      ct_switch4<IntFloatMixture
-                 ,int2int_c, int2float_c, float2int_c  // default
-                 ,Int2Int  , Int2Float  , Float2Int  , Float2Float
-                >::type
-        type ;
-  } ;
-
-} } } // namespace ndnboost::numeric::convdetail
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/include/ndnboost/numeric/conversion/detail/is_subranged.hpp b/include/ndnboost/numeric/conversion/detail/is_subranged.hpp
deleted file mode 100644
index 9af12c0..0000000
--- a/include/ndnboost/numeric/conversion/detail/is_subranged.hpp
+++ /dev/null
@@ -1,234 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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"
-
-#include "ndnboost/mpl/int.hpp"
-#include "ndnboost/mpl/multiplies.hpp"
-#include "ndnboost/mpl/less.hpp"
-#include "ndnboost/mpl/equal_to.hpp"
-
-#include "ndnboost/type_traits/is_same.hpp"
-
-#include "ndnboost/numeric/conversion/detail/meta.hpp"
-#include "ndnboost/numeric/conversion/detail/int_float_mixture.hpp"
-#include "ndnboost/numeric/conversion/detail/sign_mixture.hpp"
-#include "ndnboost/numeric/conversion/detail/udt_builtin_mixture.hpp"
-
-namespace ndnboost { namespace numeric { namespace convdetail
-{
-  //---------------------------------------------------------------
-  // Implementations of the compile time predicate "T is subranged"
-  //---------------------------------------------------------------
-
-    // for integral to integral conversions
-    template<class T,class S>
-    struct subranged_Sig2Unsig
-    {
-      // Signed to unsigned conversions are 'subranged' because of possible loose
-      // of negative values.
-      typedef mpl::true_ type ;
-    } ;
-
-    // for unsigned integral to signed integral conversions
-    template<class T,class S>
-    struct subranged_Unsig2Sig
-    {
-       // IMPORTANT NOTE:
-       //
-       // This code assumes that signed/unsigned integral values are represented
-       // such that:
-       //
-       //  numeric_limits<signed T>::digits + 1 == numeric_limits<unsigned T>::digits
-       //
-       // The '+1' is required since numeric_limits<>::digits gives 1 bit less for signed integral types.
-       //
-       // This fact is used by the following logic:
-       //
-       //  if ( (numeric_limits<T>::digits+1) < (2*numeric_limits<S>::digits) )
-       //    then the conversion is subranged.
-       //
-
-       typedef mpl::int_< ::std::numeric_limits<S>::digits > S_digits ;
-       typedef mpl::int_< ::std::numeric_limits<T>::digits > T_digits ;
-
-       // T is signed, so take digits+1
-       typedef typename T_digits::next u_T_digits ;
-
-       typedef mpl::int_<2> Two ;
-
-       typedef typename mpl::multiplies<S_digits,Two>::type S_digits_times_2 ;
-
-       typedef typename mpl::less<u_T_digits,S_digits_times_2>::type type ;
-    } ;
-
-    // for integral to integral conversions of the same sign.
-    template<class T,class S>
-    struct subranged_SameSign
-    {
-       // An integral conversion of the same sign is subranged if digits(T) < digits(S).
-
-       typedef mpl::int_< ::std::numeric_limits<S>::digits > S_digits ;
-       typedef mpl::int_< ::std::numeric_limits<T>::digits > T_digits ;
-
-       typedef typename mpl::less<T_digits,S_digits>::type type ;
-    } ;
-
-    // for integral to float conversions
-    template<class T,class S>
-    struct subranged_Int2Float
-    {
-      typedef mpl::false_ type ;
-    } ;
-
-    // for float to integral conversions
-    template<class T,class S>
-    struct subranged_Float2Int
-    {
-      typedef mpl::true_ type ;
-    } ;
-
-    // for float to float conversions
-    template<class T,class S>
-    struct subranged_Float2Float
-    {
-      // If both T and S are floats,
-      // compare exponent bits and if they match, mantisa bits.
-
-      typedef mpl::int_< ::std::numeric_limits<S>::digits > S_mantisa ;
-      typedef mpl::int_< ::std::numeric_limits<T>::digits > T_mantisa ;
-
-      typedef mpl::int_< ::std::numeric_limits<S>::max_exponent > S_exponent ;
-      typedef mpl::int_< ::std::numeric_limits<T>::max_exponent > T_exponent ;
-
-      typedef typename mpl::less<T_exponent,S_exponent>::type T_smaller_exponent ;
-
-      typedef typename mpl::equal_to<T_exponent,S_exponent>::type equal_exponents ;
-
-      typedef mpl::less<T_mantisa,S_mantisa> T_smaller_mantisa ;
-
-      typedef mpl::eval_if<equal_exponents,T_smaller_mantisa,mpl::false_> not_bigger_exponent_case ;
-
-      typedef typename
-        mpl::eval_if<T_smaller_exponent,mpl::true_,not_bigger_exponent_case>::type
-          type ;
-    } ;
-
-    // for Udt to built-in conversions
-    template<class T,class S>
-    struct subranged_Udt2BuiltIn
-    {
-      typedef mpl::true_ type ;
-    } ;
-
-    // for built-in to Udt conversions
-    template<class T,class S>
-    struct subranged_BuiltIn2Udt
-    {
-      typedef mpl::false_ type ;
-    } ;
-
-    // for Udt to Udt conversions
-    template<class T,class S>
-    struct subranged_Udt2Udt
-    {
-      typedef mpl::false_ type ;
-    } ;
-
-  //-------------------------------------------------------------------
-  // Selectors for the implementations of the subranged predicate
-  //-------------------------------------------------------------------
-
-    template<class T,class S>
-    struct get_subranged_Int2Int
-    {
-      typedef subranged_SameSign<T,S>  Sig2Sig     ;
-      typedef subranged_Sig2Unsig<T,S> Sig2Unsig   ;
-      typedef subranged_Unsig2Sig<T,S> Unsig2Sig   ;
-      typedef Sig2Sig                  Unsig2Unsig ;
-
-      typedef typename get_sign_mixture<T,S>::type sign_mixture ;
-
-      typedef typename
-        for_sign_mixture<sign_mixture, Sig2Sig, Sig2Unsig, Unsig2Sig, Unsig2Unsig>::type
-           type ;
-    } ;
-
-    template<class T,class S>
-    struct get_subranged_BuiltIn2BuiltIn
-    {
-      typedef get_subranged_Int2Int<T,S> Int2IntQ ;
-
-      typedef subranged_Int2Float  <T,S> Int2Float   ;
-      typedef subranged_Float2Int  <T,S> Float2Int   ;
-      typedef subranged_Float2Float<T,S> Float2Float ;
-
-      typedef mpl::identity<Int2Float  > Int2FloatQ   ;
-      typedef mpl::identity<Float2Int  > Float2IntQ   ;
-      typedef mpl::identity<Float2Float> Float2FloatQ ;
-
-      typedef typename get_int_float_mixture<T,S>::type int_float_mixture ;
-
-      typedef for_int_float_mixture<int_float_mixture, Int2IntQ, Int2FloatQ, Float2IntQ, Float2FloatQ> for_ ;
-
-      typedef typename for_::type selected ;
-
-      typedef typename selected::type type ;
-    } ;
-
-    template<class T,class S>
-    struct get_subranged
-    {
-      typedef get_subranged_BuiltIn2BuiltIn<T,S> BuiltIn2BuiltInQ ;
-
-      typedef subranged_BuiltIn2Udt<T,S> BuiltIn2Udt ;
-      typedef subranged_Udt2BuiltIn<T,S> Udt2BuiltIn ;
-      typedef subranged_Udt2Udt<T,S>     Udt2Udt ;
-
-      typedef mpl::identity<BuiltIn2Udt> BuiltIn2UdtQ ;
-      typedef mpl::identity<Udt2BuiltIn> Udt2BuiltInQ ;
-      typedef mpl::identity<Udt2Udt    > Udt2UdtQ     ;
-
-      typedef typename get_udt_builtin_mixture<T,S>::type udt_builtin_mixture ;
-      
-      typedef typename
-        for_udt_builtin_mixture<udt_builtin_mixture, BuiltIn2BuiltInQ, BuiltIn2UdtQ, Udt2BuiltInQ, Udt2UdtQ>::type
-          selected ;
-
-      typedef typename selected::type selected2 ;
- 
-      typedef typename selected2::type type ;
-    } ;
-
-
-  //-------------------------------------------------------------------
-  // Top level implementation selector.
-  //-------------------------------------------------------------------
-  template<class T, class S>
-  struct get_is_subranged
-  {
-    typedef get_subranged<T,S>         non_trivial_case ;
-    typedef mpl::identity<mpl::false_> trivial_case ;
-
-    typedef is_same<T,S> is_trivial ;
-   
-    typedef typename mpl::if_<is_trivial,trivial_case,non_trivial_case>::type selected ;
-    
-    typedef typename selected::type type ;
-  } ;
-
-} } } // namespace ndnboost::numeric::convdetail
-
-#endif
-
-
diff --git a/include/ndnboost/numeric/conversion/detail/meta.hpp b/include/ndnboost/numeric/conversion/detail/meta.hpp
deleted file mode 100644
index c87bbb8..0000000
--- a/include/ndnboost/numeric/conversion/detail/meta.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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"
-
-#include "ndnboost/mpl/if.hpp"
-#include "ndnboost/mpl/eval_if.hpp"
-#include "ndnboost/mpl/equal_to.hpp"
-#include "ndnboost/mpl/not.hpp"
-#include "ndnboost/mpl/and.hpp"
-#include "ndnboost/mpl/bool.hpp"
-#include "ndnboost/mpl/identity.hpp"
-
-namespace ndnboost { namespace numeric { namespace convdetail
-{
-   template< class T1, class T2>
-   struct equal_to
-   {
-   #if !defined(__BORLANDC__)
-   
-       enum { x = ( NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value == NDNBOOST_MPL_AUX_VALUE_WKND(T2)::value ) };
-           
-       NDNBOOST_STATIC_CONSTANT(bool, value = x);
-           
-       typedef mpl::bool_<value> type;
-       
-   #else
-   
-       NDNBOOST_STATIC_CONSTANT(bool, value = (
-             NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value 
-               == NDNBOOST_MPL_AUX_VALUE_WKND(T2)::value
-           ));
-           
-       typedef mpl::bool_<(
-             NDNBOOST_MPL_AUX_VALUE_WKND(T1)::value 
-               == NDNBOOST_MPL_AUX_VALUE_WKND(T2)::value
-           )> type;
-   #endif
-   };
-    
-// Metafunction:
-  //
-  //   ct_switch4<Value,Case0Val,Case1Val,Case2Val,Case0Type,Case1Type,Case2Type,DefaultType>::type
-  //
-  // {Value,Case(X)Val} are Integral Constants (such as: mpl::int_<>)
-  // {Case(X)Type,DefaultType} are arbitrary types. (not metafunctions)
-  //
-  // Returns Case(X)Type if Val==Case(X)Val; DefaultType otherwise.
-  //
-  template<class Value,
-           class Case0Val,
-           class Case1Val,
-           class Case2Val,
-           class Case0Type,
-           class Case1Type,
-           class Case2Type,
-           class DefaultType
-          >
-  struct ct_switch4
-  {
-    typedef mpl::identity<Case0Type> Case0TypeQ ;
-    typedef mpl::identity<Case1Type> Case1TypeQ ;
-
-    typedef equal_to<Value,Case0Val> is_case0 ;
-    typedef equal_to<Value,Case1Val> is_case1 ;
-    typedef equal_to<Value,Case2Val> is_case2 ;
-
-    typedef mpl::if_<is_case2,Case2Type,DefaultType> choose_2_3Q ;
-    typedef mpl::eval_if<is_case1,Case1TypeQ,choose_2_3Q> choose_1_2_3Q ;
-
-    typedef typename
-      mpl::eval_if<is_case0,Case0TypeQ,choose_1_2_3Q>::type
-        type ;
-  } ;
-
-
-
-
-  // Metafunction:
-  //
-  //   for_both<expr0,expr1,TT,TF,FT,FF>::type
-  //
-  // {exp0,expr1} are Boolean Integral Constants
-  // {TT,TF,FT,FF} are aribtrary types. (not metafunctions)
-  //
-  // According to the combined boolean value of 'expr0 && expr1', selects the corresponding type.
-  //
-  template<class expr0, class expr1, class TT, class TF, class FT, class FF>
-  struct for_both
-  {
-    typedef mpl::identity<TF> TF_Q ;
-    typedef mpl::identity<TT> TT_Q ;
-
-    typedef typename mpl::not_<expr0>::type not_expr0 ;
-    typedef typename mpl::not_<expr1>::type not_expr1 ;
-
-    typedef typename mpl::and_<expr0,expr1>::type     caseTT ;
-    typedef typename mpl::and_<expr0,not_expr1>::type caseTF ;
-    typedef typename mpl::and_<not_expr0,expr1>::type caseFT ;
-
-    typedef mpl::if_<caseFT,FT,FF>                    choose_FT_FF_Q ;
-    typedef mpl::eval_if<caseTF,TF_Q,choose_FT_FF_Q> choose_TF_FT_FF_Q ;
-
-    typedef typename mpl::eval_if<caseTT,TT_Q,choose_TF_FT_FF_Q>::type type ;
-  } ;
-
-} } } // namespace ndnboost::numeric::convdetail
-
-#endif
-
-
diff --git a/include/ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp b/include/ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp
deleted file mode 100644
index 96bd961..0000000
--- a/include/ndnboost/numeric/conversion/detail/numeric_cast_traits.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  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)
-//
-
-#if !defined(NDNBOOST_NUMERIC_CONVERSION_DONT_USE_PREPROCESSED_FILES)
-
-    #include <ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp>
-	
-	#if !defined(NDNBOOST_NO_LONG_LONG)
-        #include <ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp>
-	#endif
-	
-#else
-#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(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-        #pragma wave option(preserve: 2, line: 0, output: "preprocessed/numeric_cast_traits_common.hpp")
-    #endif
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  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)
-//
-    #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 NDNBOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES() \
-        (char)                                            \
-        (signed char)                                     \
-        (unsigned char)                                   \
-        (short)                                           \
-        (unsigned short)                                  \
-        (int)                                             \
-        (unsigned int)                                    \
-        (long)                                            \
-        (unsigned long)                                   \
-        (float)                                           \
-        (double)                                          \
-        (long double)                                     \
-    /***/
-	
-    #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 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(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-        #pragma wave option(output: null)
-    #endif   
-	
-	#if ( defined(__WAVE__) && defined(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES) ) || !defined(NDNBOOST_NO_LONG_LONG)
-	
-	    #undef NDNBOOST_NUMERIC_CONVERSION_SEQ_A
-	    #undef NDNBOOST_NUMERIC_CONVERSION_SEQ_B
-
-	    #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
-
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  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)
-//
-        #if defined(__WAVE__) && defined(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-            #pragma wave option(preserve: 1)
-        #endif
-
-namespace ndnboost { namespace numeric {
-
-    #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 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(NDNBOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-            #pragma wave option(output: null)
-        #endif   
-	
-	#endif
-		
-    #undef NDNBOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES
-	#undef NDNBOOST_NUMERIC_CONVERSION_SEQ_A
-	#undef NDNBOOST_NUMERIC_CONVERSION_SEQ_B
-    
-#elif NDNBOOST_PP_ITERATION_DEPTH() == 1
-
-    #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 NDNBOOST_PP_ITERATION_DEPTH() == 2
-
-    //! Generate default traits for the specified source and target.
-    #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
-        <
-            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<NDNBOOST_PP_SEQ_ELEM(NDNBOOST_NUMERIC_CONVERSION_B, NDNBOOST_NUMERIC_CONVERSION_SEQ_B())> rounding_policy;
-    };     
-
-    #undef NDNBOOST_NUMERIC_CONVERSION_A
-    #undef NDNBOOST_NUMERIC_CONVERSION_B
-
-#endif//! Depth 2.
-#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
deleted file mode 100644
index 4fc4cab..0000000
--- a/include/ndnboost/numeric/conversion/detail/old_numeric_cast.hpp
+++ /dev/null
@@ -1,339 +0,0 @@
-//  boost cast.hpp header file  ----------------------------------------------//
-
-//  (C) Copyright Kevlin Henney and Dave Abrahams 1999.
-//  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)
-
-//  See http://www.boost.org/libs/conversion for Documentation.
-
-//  Revision History
-//  23 JUN 05  Code extracted from /boost/cast.hpp into this new header.
-//             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 NDNBOOST_NO_LIMITS workarounds and included
-//             <ndnboost/limits.hpp> instead (the workaround did not
-//             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 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
-//             Review (Beman Dawes)
-//  19 Oct 00  Fix numeric_cast for floating-point types (Dave Abrahams)
-//  15 Jul 00  Suppress numeric_cast warnings for GCC, Borland and MSVC
-//             (Dave Abrahams)
-//  30 Jun 00  More MSVC6 wordarounds.  See comments below.  (Dave Abrahams)
-//  28 Jun 00  Removed implicit_cast<>.  See comment below. (Beman Dawes)
-//  27 Jun 00  More MSVC6 workarounds
-//  15 Jun 00  Add workarounds for MSVC6
-//   2 Feb 00  Remove bad_numeric_cast ";" syntax error (Doncho Angelov)
-//  26 Jan 00  Add missing throw() to bad_numeric_cast::what(0 (Adam Levar)
-//  29 Dec 99  Change using declarations so usages in other namespaces work
-//             correctly (Dave Abrahams)
-//  23 Sep 99  Change polymorphic_downcast assert to also detect M.I. errors
-//             as suggested Darin Adler and improved by Valentin Bonnard.
-//   2 Sep 99  Remove controversial asserts, simplify, rename.
-//  30 Aug 99  Move to cast.hpp, replace value_cast with numeric_cast,
-//             place in nested namespace.
-//   3 Aug 99  Initial version
-
-#ifndef NDNBOOST_OLD_NUMERIC_CAST_HPP
-#define NDNBOOST_OLD_NUMERIC_CAST_HPP
-
-# include <ndnboost/config.hpp>
-# include <cassert>
-# include <typeinfo>
-# include <ndnboost/type.hpp>
-# include <ndnboost/limits.hpp>
-# include <ndnboost/numeric/conversion/converter_policies.hpp>
-
-//  It has been demonstrated numerous times that MSVC 6.0 fails silently at link
-//  time if you use a template function which has template parameters that don't
-//  appear in the function's argument list.
-//
-//  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(NDNBOOST_MSVC) && NDNBOOST_MSVC < 1300
-#  define NDNBOOST_EXPLICIT_DEFAULT_TARGET , ::ndnboost::type<Target>* = 0
-# else
-#  define NDNBOOST_EXPLICIT_DEFAULT_TARGET
-# endif
-
-namespace ndnboost
-{
-  using numeric::bad_numeric_cast;
-
-//  LEGACY numeric_cast [only for some old broken compilers] --------------------------------------//
-
-//  Contributed by Kevlin Henney
-
-//  numeric_cast  ------------------------------------------------------------//
-
-#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 NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
-         {
-             return (std::numeric_limits<T>::min)() >= 0
-                     // unary minus causes integral promotion, thus the static_cast<>
-                     ? static_cast<T>(-(std::numeric_limits<T>::max)())
-                     : (std::numeric_limits<T>::min)();
-         };
-      };
-
-      // Move to namespace ndnboost in utility.hpp?
-      template <class T, bool specialized>
-      struct fixed_numeric_limits_base
-          : public if_true< std::numeric_limits<T>::is_signed >
-           ::NDNBOOST_NESTED_TEMPLATE then< signed_numeric_limits<T>,
-                            std::numeric_limits<T>
-                   >::type
-      {};
-
-      template <class T>
-      struct fixed_numeric_limits
-          : fixed_numeric_limits_base<T,(std::numeric_limits<T>::is_specialized)>
-      {};
-
-# 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>
-      {
-          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;
-#  else
-              return 9223372036854775807LL; // hope this is portable
-#  endif
-          }
-
-          static  ::ndnboost::long_long_type min NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
-          {
-#  ifdef LONGLONG_MIN
-              return LONGLONG_MIN;
-#  else
-               return -( 9223372036854775807LL )-1; // hope this is portable
-#  endif
-          }
-      };
-
-      template <>
-      struct fixed_numeric_limits_base< ::ndnboost::ulong_long_type, false>
-      {
-          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;
-#  else
-              return 0xffffffffffffffffULL; // hope this is portable
-#  endif
-          }
-
-          static  ::ndnboost::ulong_long_type min NDNBOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
-      };
-# endif
-    } // namespace detail
-
-// less_than_type_min -
-  //    x_is_signed should be numeric_limits<X>::is_signed
-  //    y_is_signed should be numeric_limits<Y>::is_signed
-  //    y_min should be numeric_limits<Y>::min()
-  //
-  //    check(x, y_min) returns true iff x < y_min without invoking comparisons
-  //    between signed and unsigned values.
-  //
-  //    "poor man's partial specialization" is in use here.
-    template <bool x_is_signed, bool y_is_signed>
-    struct less_than_type_min
-    {
-        template <class X, class Y>
-        static bool check(X x, Y y_min)
-            { return x < y_min; }
-    };
-
-    template <>
-    struct less_than_type_min<false, true>
-    {
-        template <class X, class Y>
-        static bool check(X, Y)
-            { return false; }
-    };
-
-    template <>
-    struct less_than_type_min<true, false>
-    {
-        template <class X, class Y>
-        static bool check(X x, Y)
-            { return x < 0; }
-    };
-
-  // greater_than_type_max -
-  //    same_sign should be:
-  //            numeric_limits<X>::is_signed == numeric_limits<Y>::is_signed
-  //    y_max should be numeric_limits<Y>::max()
-  //
-  //    check(x, y_max) returns true iff x > y_max without invoking comparisons
-  //    between signed and unsigned values.
-  //
-  //    "poor man's partial specialization" is in use here.
-    template <bool same_sign, bool x_is_signed>
-    struct greater_than_type_max;
-
-    template<>
-    struct greater_than_type_max<true, true>
-    {
-        template <class X, class Y>
-        static inline bool check(X x, Y y_max)
-            { return x > y_max; }
-    };
-
-    template <>
-    struct greater_than_type_max<false, true>
-    {
-        // What does the standard say about this? I think it's right, and it
-        // will work with every compiler I know of.
-        template <class X, class Y>
-        static inline bool check(X x, Y)
-            { return x >= 0 && static_cast<X>(static_cast<Y>(x)) != x; }
-
-# if defined(NDNBOOST_MSVC) && NDNBOOST_MSVC < 1300
-        // MSVC6 can't static_cast  unsigned __int64 -> floating types
-#  define NDNBOOST_UINT64_CAST(src_type)                                   \
-        static inline bool check(src_type x, unsigned __int64)          \
-        {                                                               \
-            if (x < 0) return false;                                    \
-            unsigned __int64 y = static_cast<unsigned __int64>(x);      \
-            bool odd = y & 0x1;                                         \
-            __int64 div2 = static_cast<__int64>(y >> 1);                \
-            return ((static_cast<src_type>(div2) * 2.0) + odd) != x;    \
-        }
-
-        NDNBOOST_UINT64_CAST(long double);
-        NDNBOOST_UINT64_CAST(double);
-        NDNBOOST_UINT64_CAST(float);
-#  undef NDNBOOST_UINT64_CAST
-# endif
-    };
-
-    template<>
-    struct greater_than_type_max<true, false>
-    {
-        template <class X, class Y>
-        static inline bool check(X x, Y y_max)
-            { return x > y_max; }
-    };
-
-    template <>
-    struct greater_than_type_max<false, false>
-    {
-        // What does the standard say about this? I think it's right, and it
-        // will work with every compiler I know of.
-        template <class X, class Y>
-        static inline bool check(X x, Y)
-            { return static_cast<X>(static_cast<Y>(x)) != x; }
-    };
-
-#else // use #pragma hacks if available
-
-  namespace detail
-  {
-# if NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable : 4018)
-#  pragma warning(disable : 4146)
-#elif defined(__BORLANDC__)
-#  pragma option push -w-8041
-# endif
-
-       // Move to namespace ndnboost in utility.hpp?
-       template <class T>
-       struct fixed_numeric_limits : public std::numeric_limits<T>
-       {
-           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 NDNBOOST_MSVC
-#  pragma warning(pop)
-#elif defined(__BORLANDC__)
-#  pragma option pop
-# endif
-  } // namespace detail
-
-#endif
-
-    template<typename Target, typename Source>
-    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(NDNBOOST_STRICT_CONFIG) \
-    || (!defined(__HP_aCC) || __HP_aCC > 33900) \
-         && (!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)
-        typedef bool argument_must_be_numeric[arg_traits::is_specialized];
-        typedef bool result_must_be_numeric[result_traits::is_specialized];
-
-        const bool arg_is_signed = arg_traits::is_signed;
-        const bool result_is_signed = result_traits::is_signed;
-        const bool same_sign = arg_is_signed == result_is_signed;
-
-        if (less_than_type_min<arg_is_signed, result_is_signed>::check(arg, (result_traits::min)())
-            || greater_than_type_max<same_sign, arg_is_signed>::check(arg, (result_traits::max)())
-            )
-
-#else // We need to use #pragma hacks if available
-
-# if NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable : 4018)
-#elif defined(__BORLANDC__)
-#pragma option push -w-8012
-# endif
-        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 NDNBOOST_MSVC
-#  pragma warning(pop)
-#elif defined(__BORLANDC__)
-#pragma option pop
-# endif
-#endif
-        {
-            throw bad_numeric_cast();
-        }
-        return static_cast<Target>(arg);
-    } // numeric_cast
-
-#  undef NDNBOOST_EXPLICIT_DEFAULT_TARGET
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_OLD_NUMERIC_CAST_HPP
diff --git a/include/ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp b/include/ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp
deleted file mode 100644
index 48eee6a..0000000
--- a/include/ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp
+++ /dev/null
@@ -1,1741 +0,0 @@
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  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)
-//
-	
-	
-	
-namespace ndnboost { namespace numeric {
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-}}
diff --git a/include/ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp b/include/ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp
deleted file mode 100644
index ef8d541..0000000
--- a/include/ndnboost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp
+++ /dev/null
@@ -1,347 +0,0 @@
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  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)
-//
-namespace ndnboost { namespace numeric {
-    
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            ndnboost::long_long_type
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            ndnboost::long_long_type
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            ndnboost::ulong_long_type
-          , ndnboost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            ndnboost::ulong_long_type
-          , ndnboost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<ndnboost::ulong_long_type> rounding_policy;
-    }; 
-}}
diff --git a/include/ndnboost/numeric/conversion/detail/sign_mixture.hpp b/include/ndnboost/numeric/conversion/detail/sign_mixture.hpp
deleted file mode 100644
index 1e90ee9..0000000
--- a/include/ndnboost/numeric/conversion/detail/sign_mixture.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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"
-
-#include "ndnboost/numeric/conversion/sign_mixture_enum.hpp"
-#include "ndnboost/numeric/conversion/detail/meta.hpp"
-
-#include "ndnboost/mpl/integral_c.hpp"
-
-namespace ndnboost { namespace numeric { namespace convdetail
-{
-  // Integral Constants for 'SignMixture'
-  typedef mpl::integral_c<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
-  typedef mpl::integral_c<sign_mixture_enum, signed_to_signed>     sig2sig_c ;
-  typedef mpl::integral_c<sign_mixture_enum, signed_to_unsigned>   sig2unsig_c ;
-  typedef mpl::integral_c<sign_mixture_enum, unsigned_to_signed>   unsig2sig_c ;
-
-  // Metafunction:
-  //
-  //   get_sign_mixture<T,S>::type
-  //
-  // Selects the appropriate SignMixture Integral Constant for the combination T,S.
-  //
-  template<class T,class S>
-  struct get_sign_mixture
-  {
-    typedef mpl::bool_< ::std::numeric_limits<S>::is_signed > S_signed ;
-    typedef mpl::bool_< ::std::numeric_limits<T>::is_signed > T_signed ;
-
-    typedef typename
-      for_both<S_signed, T_signed, sig2sig_c, sig2unsig_c, unsig2sig_c, unsig2unsig_c>::type
-        type ;
-  } ;
-
-  // Metafunction:
-  //
-  //   for_sign_mixture<SignMixture,Sig2Sig,Sig2Unsig,Unsig2Sig,Unsig2Unsig>::type
-  //
-  // {SignMixture} is one of the Integral Constants for SignMixture, declared above.
-  // {Sig2Sig,Sig2Unsig,Unsig2Sig,Unsig2Unsig} are aribtrary types. (not metafunctions)
-  //
-  // According to the value of 'SignMixture', selects the corresponding type.
-  //
-  template<class SignMixture, class Sig2Sig, class Sig2Unsig, class Unsig2Sig, class Unsig2Unsig>
-  struct for_sign_mixture
-  {
-    typedef typename
-      ct_switch4<SignMixture
-                 , sig2sig_c, sig2unsig_c, unsig2sig_c  // default
-                 , Sig2Sig  , Sig2Unsig  , Unsig2Sig  , Unsig2Unsig
-                >::type
-        type ;
-  } ;
-
-} } } // namespace ndnboost::numeric::convdetail
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/include/ndnboost/numeric/conversion/detail/udt_builtin_mixture.hpp b/include/ndnboost/numeric/conversion/detail/udt_builtin_mixture.hpp
deleted file mode 100644
index 33382ec..0000000
--- a/include/ndnboost/numeric/conversion/detail/udt_builtin_mixture.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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"
-
-#include "ndnboost/numeric/conversion/udt_builtin_mixture_enum.hpp"
-#include "ndnboost/numeric/conversion/detail/meta.hpp"
-
-#include "ndnboost/mpl/integral_c.hpp"
-
-namespace ndnboost { namespace numeric { namespace convdetail
-{
-  // Integral Constants for 'UdtMixture'
-  typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
-  typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_udt>     builtin2udt_c ;
-  typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_builtin>     udt2builtin_c ;
-  typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_udt>         udt2udt_c ;
-
-  // Metafunction:
-  //
-  //   for_udt_mixture<UdtMixture,BuiltIn2BuiltIn,BuiltIn2Udt,Udt2BuiltIn,Udt2Udt>::type
-  //
-  // {UdtMixture} is one of the Integral Constants for UdMixture, declared above.
-  // {BuiltIn2BuiltIn,BuiltIn2Udt,Udt2BuiltIn,Udt2Udt} are aribtrary types. (not metafunctions)
-  //
-  // According to the value of 'UdtMixture', selects the corresponding type.
-  //
-  template<class UdtMixture, class BuiltIn2BuiltIn, class BuiltIn2Udt, class Udt2BuiltIn, class Udt2Udt>
-  struct for_udt_builtin_mixture
-  {
-    typedef typename
-      ct_switch4<UdtMixture
-                 , builtin2builtin_c, builtin2udt_c, udt2builtin_c // default
-                 , BuiltIn2BuiltIn  , BuiltIn2Udt  , Udt2BuiltIn  , Udt2Udt
-                >::type
-        type ;
-  } ;
-
-  // Metafunction:
-  //
-  //   get_udt_mixture<T,S>::type
-  //
-  // Selects the appropriate UdtMixture Integral Constant for the combination T,S.
-  //
-  template<class T,class S>
-  struct get_udt_builtin_mixture
-  {
-    typedef is_arithmetic<S> S_builtin ;
-    typedef is_arithmetic<T> T_builtin ;
-
-    typedef typename
-      for_both<S_builtin, T_builtin, builtin2builtin_c, builtin2udt_c, udt2builtin_c, udt2udt_c>::type
-        type ;
-  } ;
-
-} } } // namespace ndnboost::numeric::convdetail
-
-#endif
-
-
diff --git a/include/ndnboost/numeric/conversion/int_float_mixture_enum.hpp b/include/ndnboost/numeric/conversion/int_float_mixture_enum.hpp
deleted file mode 100644
index 165cc55..0000000
--- a/include/ndnboost/numeric/conversion/int_float_mixture_enum.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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
-{
-  enum int_float_mixture_enum
-  {
-     integral_to_integral
-    ,integral_to_float
-    ,float_to_integral
-    ,float_to_float
-  } ;
-
-} } // namespace ndnboost::numeric
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/include/ndnboost/numeric/conversion/numeric_cast_traits.hpp b/include/ndnboost/numeric/conversion/numeric_cast_traits.hpp
deleted file mode 100644
index c49364b..0000000
--- a/include/ndnboost/numeric/conversion/numeric_cast_traits.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-//! Copyright (c) 2011
-//! Brandon Kohn
-//
-//  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 NDNBOOST_NUMERIC_CAST_TRAITS_HPP
-#define NDNBOOST_NUMERIC_CAST_TRAITS_HPP
-
-#include <ndnboost/numeric/conversion/converter_policies.hpp>
-
-namespace ndnboost { namespace numeric {
-
-    template <typename Target, typename Source, typename EnableIf = void>
-    struct numeric_cast_traits
-    {
-        typedef def_overflow_handler    overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<Source>           rounding_policy;
-    };
-
-}}//namespace ndnboost::numeric;
-
-#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 NDNBOOST_NUMERIC_CONVERSION_RELAX_BUILT_IN_CAST_TRAITS
-
-#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
deleted file mode 100644
index bd41df2..0000000
--- a/include/ndnboost/numeric/conversion/sign_mixture_enum.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#ifndef NDNBOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
-#define NDNBOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
-
-namespace ndnboost { namespace numeric
-{
-  enum sign_mixture_enum
-  {
-     unsigned_to_unsigned
-    ,signed_to_signed
-    ,signed_to_unsigned
-    ,unsigned_to_signed
-  } ;
-
-} } // namespace ndnboost::numeric
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/include/ndnboost/numeric/conversion/udt_builtin_mixture_enum.hpp b/include/ndnboost/numeric/conversion/udt_builtin_mixture_enum.hpp
deleted file mode 100644
index 7ba441c..0000000
--- a/include/ndnboost/numeric/conversion/udt_builtin_mixture_enum.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to 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)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola@hotmail.com
-// 
-#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
-{
-  enum udt_builtin_mixture_enum
-  {
-     builtin_to_builtin
-    ,builtin_to_udt
-    ,udt_to_builtin
-    ,udt_to_udt
-  } ;
-
-} } // namespace ndnboost::numeric
-
-#endif
-
diff --git a/include/ndnboost/operators.hpp b/include/ndnboost/operators.hpp
deleted file mode 100644
index b82a069..0000000
--- a/include/ndnboost/operators.hpp
+++ /dev/null
@@ -1,978 +0,0 @@
-//  Boost operators.hpp header file  ----------------------------------------//
-
-//  (C) Copyright David Abrahams, Jeremy Siek, Daryle Walker 1999-2001.
-//  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)
-
-//  See http://www.boost.org/libs/utility/operators.htm for documentation.
-
-//  Revision History
-//  16 Dec 10 Limit warning suppression for 4284 to older versions of VC++
-//            (Matthew Bradbury, fixes #4432)
-//  07 Aug 08 Added "euclidean" spelling. (Daniel Frey)
-//  03 Apr 08 Make sure "convertible to bool" is sufficient
-//            for T::operator<, etc. (Daniel Frey)
-//  24 May 07 Changed empty_base to depend on T, see
-//            http://svn.boost.org/trac/boost/ticket/979
-//  21 Oct 02 Modified implementation of operators to allow compilers with a
-//            correct named return value optimization (NRVO) to produce optimal
-//            code.  (Daniel Frey)
-//  02 Dec 01 Bug fixed in random_access_iteratable.  (Helmut Zeisel)
-//  28 Sep 01 Factored out iterator operator groups.  (Daryle Walker)
-//  27 Aug 01 'left' form for non commutative operators added;
-//            additional classes for groups of related operators added;
-//            workaround for empty base class optimization
-//            bug of GCC 3.0 (Helmut Zeisel)
-//  25 Jun 01 output_iterator_helper changes: removed default template 
-//            parameters, added support for self-proxying, additional 
-//            documentation and tests (Aleksey Gurtovoy)
-//  29 May 01 Added operator classes for << and >>.  Added input and output
-//            iterator helper classes.  Added classes to connect equality and
-//            relational operators.  Added classes for groups of related
-//            operators.  Reimplemented example operator and iterator helper
-//            classes in terms of the new groups.  (Daryle Walker, with help
-//            from Alexy Gurtovoy)
-//  11 Feb 01 Fixed bugs in the iterator helpers which prevented explicitly
-//            supplied arguments from actually being used (Dave Abrahams)
-//  04 Jul 00 Fixed NO_OPERATORS_IN_NAMESPACE bugs, major cleanup and
-//            refactoring of compiler workarounds, additional documentation
-//            (Alexy Gurtovoy and Mark Rodgers with some help and prompting from
-//            Dave Abrahams) 
-//  28 Jun 00 General cleanup and integration of bugfixes from Mark Rodgers and
-//            Jeremy Siek (Dave Abrahams)
-//  20 Jun 00 Changes to accommodate Borland C++Builder 4 and Borland C++ 5.5
-//            (Mark Rodgers)
-//  20 Jun 00 Minor fixes to the prior revision (Aleksey Gurtovoy)
-//  10 Jun 00 Support for the base class chaining technique was added
-//            (Aleksey Gurtovoy). See documentation and the comments below 
-//            for the details. 
-//  12 Dec 99 Initial version with iterator operators (Jeremy Siek)
-//  18 Nov 99 Change name "divideable" to "dividable", remove unnecessary
-//            specializations of dividable, subtractable, modable (Ed Brey) 
-//  17 Nov 99 Add comments (Beman Dawes)
-//            Remove unnecessary specialization of operators<> (Ed Brey)
-//  15 Nov 99 Fix less_than_comparable<T,U> second operand type for first two
-//            operators.(Beman Dawes)
-//  12 Nov 99 Add operators templates (Ed Brey)
-//  11 Nov 99 Add single template parameter version for compilers without
-//            partial specialization (Beman Dawes)
-//  10 Nov 99 Initial version
-
-// 10 Jun 00:
-// An additional optional template parameter was added to most of 
-// operator templates to support the base class chaining technique (see 
-// documentation for the details). Unfortunately, a straightforward
-// implementation of this change would have broken compatibility with the
-// previous version of the library by making it impossible to use the same
-// template name (e.g. 'addable') for both the 1- and 2-argument versions of
-// an operator template. This implementation solves the backward-compatibility
-// issue at the cost of some simplicity.
-//
-// One of the complications is an existence of special auxiliary class template
-// 'is_chained_base<>' (see 'detail' namespace below), which is used
-// to determine whether its template parameter is a library's operator template
-// or not. You have to specialize 'is_chained_base<>' for each new 
-// operator template you add to the library.
-//
-// However, most of the non-trivial implementation details are hidden behind 
-// several local macros defined below, and as soon as you understand them,
-// you understand the whole library implementation. 
-
-#ifndef NDNBOOST_OPERATORS_HPP
-#define NDNBOOST_OPERATORS_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/iterator.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#if defined(__sgi) && !defined(__GNUC__)
-#   pragma set woff 1234
-#endif
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1600)
-#   pragma warning( disable : 4284 ) // complaint about return type of 
-#endif                               // operator-> not begin a UDT
-
-namespace ndnboost {
-namespace detail {
-
-template <typename T> class empty_base {
-
-// Helmut Zeisel, empty base class optimization bug with GCC 3.0.0
-#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==0 && __GNU_PATCHLEVEL__==0
-  bool dummy; 
-#endif
-
-};
-
-} // namespace detail
-} // namespace ndnboost
-
-// In this section we supply the xxxx1 and xxxx2 forms of the operator
-// templates, which are explicitly targeted at the 1-type-argument and
-// 2-type-argument operator forms, respectively. Some compilers get confused
-// when inline friend functions are overloaded in namespaces other than the
-// global namespace. When NDNBOOST_NO_OPERATORS_IN_NAMESPACE is defined, all of
-// these templates must go in the global namespace.
-
-#ifndef NDNBOOST_NO_OPERATORS_IN_NAMESPACE
-namespace ndnboost
-{
-#endif
-
-//  Basic operator classes (contributed by Dave Abrahams) ------------------//
-
-//  Note that friend functions defined in a class are implicitly inline.
-//  See the C++ std, 11.4 [class.friend] paragraph 5
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct less_than_comparable2 : B
-{
-     friend bool operator<=(const T& x, const U& y) { return !static_cast<bool>(x > y); }
-     friend bool operator>=(const T& x, const U& y) { return !static_cast<bool>(x < y); }
-     friend bool operator>(const U& x, const T& y)  { return y < x; }
-     friend bool operator<(const U& x, const T& y)  { return y > x; }
-     friend bool operator<=(const U& x, const T& y) { return !static_cast<bool>(y < x); }
-     friend bool operator>=(const U& x, const T& y) { return !static_cast<bool>(y > x); }
-};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct less_than_comparable1 : B
-{
-     friend bool operator>(const T& x, const T& y)  { return y < x; }
-     friend bool operator<=(const T& x, const T& y) { return !static_cast<bool>(y < x); }
-     friend bool operator>=(const T& x, const T& y) { return !static_cast<bool>(x < y); }
-};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct equality_comparable2 : B
-{
-     friend bool operator==(const U& y, const T& x) { return x == y; }
-     friend bool operator!=(const U& y, const T& x) { return !static_cast<bool>(x == y); }
-     friend bool operator!=(const T& y, const U& x) { return !static_cast<bool>(y == x); }
-};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct equality_comparable1 : B
-{
-     friend bool operator!=(const T& x, const T& y) { return !static_cast<bool>(x == y); }
-};
-
-// A macro which produces "name_2left" from "name".
-#define NDNBOOST_OPERATOR2_LEFT(name) name##2##_##left
-
-//  NRVO-friendly implementation (contributed by Daniel Frey) ---------------//
-
-#if defined(NDNBOOST_HAS_NRVO) || defined(NDNBOOST_FORCE_SYMMETRIC_OPERATORS)
-
-// This is the optimal implementation for ISO/ANSI C++,
-// but it requires the compiler to implement the NRVO.
-// If the compiler has no NRVO, this is the best symmetric
-// implementation available.
-
-#define NDNBOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP )                         \
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >        \
-struct NAME##2 : B                                                            \
-{                                                                             \
-  friend T operator OP( const T& lhs, const U& rhs )                          \
-    { T nrv( lhs ); nrv OP##= rhs; return nrv; }                              \
-  friend T operator OP( const U& lhs, const T& rhs )                          \
-    { T nrv( rhs ); nrv OP##= lhs; return nrv; }                              \
-};                                                                            \
-                                                                              \
-template <class T, class B = ::ndnboost::detail::empty_base<T> >                 \
-struct NAME##1 : B                                                            \
-{                                                                             \
-  friend T operator OP( const T& lhs, const T& rhs )                          \
-    { T nrv( lhs ); nrv OP##= rhs; return nrv; }                              \
-};
-
-#define NDNBOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP )               \
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >  \
-struct NAME##2 : B                                                      \
-{                                                                       \
-  friend T operator OP( const T& lhs, const U& rhs )                    \
-    { T nrv( lhs ); nrv OP##= rhs; return nrv; }                        \
-};                                                                      \
-                                                                        \
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >  \
-struct NDNBOOST_OPERATOR2_LEFT(NAME) : B                                   \
-{                                                                       \
-  friend T operator OP( const U& lhs, const T& rhs )                    \
-    { T nrv( lhs ); nrv OP##= rhs; return nrv; }                        \
-};                                                                      \
-                                                                        \
-template <class T, class B = ::ndnboost::detail::empty_base<T> >           \
-struct NAME##1 : B                                                      \
-{                                                                       \
-  friend T operator OP( const T& lhs, const T& rhs )                    \
-    { T nrv( lhs ); nrv OP##= rhs; return nrv; }                        \
-};
-
-#else // defined(NDNBOOST_HAS_NRVO) || defined(NDNBOOST_FORCE_SYMMETRIC_OPERATORS)
-
-// For compilers without NRVO the following code is optimal, but not
-// symmetric!  Note that the implementation of
-// NDNBOOST_OPERATOR2_LEFT(NAME) only looks cool, but doesn't provide
-// optimization opportunities to the compiler :)
-
-#define NDNBOOST_BINARY_OPERATOR_COMMUTATIVE( NAME, OP )                   \
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >  \
-struct NAME##2 : B                                                      \
-{                                                                       \
-  friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \
-  friend T operator OP( const U& lhs, T rhs ) { return rhs OP##= lhs; } \
-};                                                                      \
-                                                                        \
-template <class T, class B = ::ndnboost::detail::empty_base<T> >           \
-struct NAME##1 : B                                                      \
-{                                                                       \
-  friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \
-};
-
-#define NDNBOOST_BINARY_OPERATOR_NON_COMMUTATIVE( NAME, OP )               \
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >  \
-struct NAME##2 : B                                                      \
-{                                                                       \
-  friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; } \
-};                                                                      \
-                                                                        \
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >  \
-struct NDNBOOST_OPERATOR2_LEFT(NAME) : B                                   \
-{                                                                       \
-  friend T operator OP( const U& lhs, const T& rhs )                    \
-    { return T( lhs ) OP##= rhs; }                                      \
-};                                                                      \
-                                                                        \
-template <class T, class B = ::ndnboost::detail::empty_base<T> >           \
-struct NAME##1 : B                                                      \
-{                                                                       \
-  friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; } \
-};
-
-#endif // defined(NDNBOOST_HAS_NRVO) || defined(NDNBOOST_FORCE_SYMMETRIC_OPERATORS)
-
-NDNBOOST_BINARY_OPERATOR_COMMUTATIVE( multipliable, * )
-NDNBOOST_BINARY_OPERATOR_COMMUTATIVE( addable, + )
-NDNBOOST_BINARY_OPERATOR_NON_COMMUTATIVE( subtractable, - )
-NDNBOOST_BINARY_OPERATOR_NON_COMMUTATIVE( dividable, / )
-NDNBOOST_BINARY_OPERATOR_NON_COMMUTATIVE( modable, % )
-NDNBOOST_BINARY_OPERATOR_COMMUTATIVE( xorable, ^ )
-NDNBOOST_BINARY_OPERATOR_COMMUTATIVE( andable, & )
-NDNBOOST_BINARY_OPERATOR_COMMUTATIVE( orable, | )
-
-#undef NDNBOOST_BINARY_OPERATOR_COMMUTATIVE
-#undef NDNBOOST_BINARY_OPERATOR_NON_COMMUTATIVE
-#undef NDNBOOST_OPERATOR2_LEFT
-
-//  incrementable and decrementable contributed by Jeremy Siek
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct incrementable : B
-{
-  friend T operator++(T& x, int)
-  {
-    incrementable_type nrv(x);
-    ++x;
-    return nrv;
-  }
-private: // The use of this typedef works around a Borland bug
-  typedef T incrementable_type;
-};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct decrementable : B
-{
-  friend T operator--(T& x, int)
-  {
-    decrementable_type nrv(x);
-    --x;
-    return nrv;
-  }
-private: // The use of this typedef works around a Borland bug
-  typedef T decrementable_type;
-};
-
-//  Iterator operator classes (contributed by Jeremy Siek) ------------------//
-
-template <class T, class P, class B = ::ndnboost::detail::empty_base<T> >
-struct dereferenceable : B
-{
-  P operator->() const
-  { 
-    return &*static_cast<const T&>(*this); 
-  }
-};
-
-template <class T, class I, class R, class B = ::ndnboost::detail::empty_base<T> >
-struct indexable : B
-{
-  R operator[](I n) const
-  {
-    return *(static_cast<const T&>(*this) + n);
-  }
-};
-
-//  More operator classes (contributed by Daryle Walker) --------------------//
-//  (NRVO-friendly implementation contributed by Daniel Frey) ---------------//
-
-#if defined(NDNBOOST_HAS_NRVO) || defined(NDNBOOST_FORCE_SYMMETRIC_OPERATORS)
-
-#define NDNBOOST_BINARY_OPERATOR( NAME, OP )                                     \
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >        \
-struct NAME##2 : B                                                            \
-{                                                                             \
-  friend T operator OP( const T& lhs, const U& rhs )                          \
-    { T nrv( lhs ); nrv OP##= rhs; return nrv; }                              \
-};                                                                            \
-                                                                              \
-template <class T, class B = ::ndnboost::detail::empty_base<T> >                 \
-struct NAME##1 : B                                                            \
-{                                                                             \
-  friend T operator OP( const T& lhs, const T& rhs )                          \
-    { T nrv( lhs ); nrv OP##= rhs; return nrv; }                              \
-};
-
-#else // defined(NDNBOOST_HAS_NRVO) || defined(NDNBOOST_FORCE_SYMMETRIC_OPERATORS)
-
-#define NDNBOOST_BINARY_OPERATOR( NAME, OP )                                     \
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >        \
-struct NAME##2 : B                                                            \
-{                                                                             \
-  friend T operator OP( T lhs, const U& rhs ) { return lhs OP##= rhs; }       \
-};                                                                            \
-                                                                              \
-template <class T, class B = ::ndnboost::detail::empty_base<T> >                 \
-struct NAME##1 : B                                                            \
-{                                                                             \
-  friend T operator OP( T lhs, const T& rhs ) { return lhs OP##= rhs; }       \
-};
-
-#endif // defined(NDNBOOST_HAS_NRVO) || defined(NDNBOOST_FORCE_SYMMETRIC_OPERATORS)
-
-NDNBOOST_BINARY_OPERATOR( left_shiftable, << )
-NDNBOOST_BINARY_OPERATOR( right_shiftable, >> )
-
-#undef NDNBOOST_BINARY_OPERATOR
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct equivalent2 : B
-{
-  friend bool operator==(const T& x, const U& y)
-  {
-    return !static_cast<bool>(x < y) && !static_cast<bool>(x > y);
-  }
-};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct equivalent1 : B
-{
-  friend bool operator==(const T&x, const T&y)
-  {
-    return !static_cast<bool>(x < y) && !static_cast<bool>(y < x);
-  }
-};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct partially_ordered2 : B
-{
-  friend bool operator<=(const T& x, const U& y)
-    { return static_cast<bool>(x < y) || static_cast<bool>(x == y); }
-  friend bool operator>=(const T& x, const U& y)
-    { return static_cast<bool>(x > y) || static_cast<bool>(x == y); }
-  friend bool operator>(const U& x, const T& y)
-    { return y < x; }
-  friend bool operator<(const U& x, const T& y)
-    { return y > x; }
-  friend bool operator<=(const U& x, const T& y)
-    { return static_cast<bool>(y > x) || static_cast<bool>(y == x); }
-  friend bool operator>=(const U& x, const T& y)
-    { return static_cast<bool>(y < x) || static_cast<bool>(y == x); }
-};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct partially_ordered1 : B
-{
-  friend bool operator>(const T& x, const T& y)
-    { return y < x; }
-  friend bool operator<=(const T& x, const T& y)
-    { return static_cast<bool>(x < y) || static_cast<bool>(x == y); }
-  friend bool operator>=(const T& x, const T& y)
-    { return static_cast<bool>(y < x) || static_cast<bool>(x == y); }
-};
-
-//  Combined operator classes (contributed by Daryle Walker) ----------------//
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct totally_ordered2
-    : less_than_comparable2<T, U
-    , equality_comparable2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct totally_ordered1
-    : less_than_comparable1<T
-    , equality_comparable1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct additive2
-    : addable2<T, U
-    , subtractable2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct additive1
-    : addable1<T
-    , subtractable1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct multiplicative2
-    : multipliable2<T, U
-    , dividable2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct multiplicative1
-    : multipliable1<T
-    , dividable1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct integer_multiplicative2
-    : multiplicative2<T, U
-    , modable2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct integer_multiplicative1
-    : multiplicative1<T
-    , modable1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct arithmetic2
-    : additive2<T, U
-    , multiplicative2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct arithmetic1
-    : additive1<T
-    , multiplicative1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct integer_arithmetic2
-    : additive2<T, U
-    , integer_multiplicative2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct integer_arithmetic1
-    : additive1<T
-    , integer_multiplicative1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct bitwise2
-    : xorable2<T, U
-    , andable2<T, U
-    , orable2<T, U, B
-      > > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct bitwise1
-    : xorable1<T
-    , andable1<T
-    , orable1<T, B
-      > > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct unit_steppable
-    : incrementable<T
-    , decrementable<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct shiftable2
-    : left_shiftable2<T, U
-    , right_shiftable2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct shiftable1
-    : left_shiftable1<T
-    , right_shiftable1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct ring_operators2
-    : additive2<T, U
-    , subtractable2_left<T, U
-    , multipliable2<T, U, B
-      > > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct ring_operators1
-    : additive1<T
-    , multipliable1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct ordered_ring_operators2
-    : ring_operators2<T, U
-    , totally_ordered2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct ordered_ring_operators1
-    : ring_operators1<T
-    , totally_ordered1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct field_operators2
-    : ring_operators2<T, U
-    , dividable2<T, U
-    , dividable2_left<T, U, B
-      > > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct field_operators1
-    : ring_operators1<T
-    , dividable1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct ordered_field_operators2
-    : field_operators2<T, U
-    , totally_ordered2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct ordered_field_operators1
-    : field_operators1<T
-    , totally_ordered1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct euclidian_ring_operators2
-    : ring_operators2<T, U
-    , dividable2<T, U
-    , dividable2_left<T, U
-    , modable2<T, U
-    , modable2_left<T, U, B
-      > > > > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct euclidian_ring_operators1
-    : ring_operators1<T
-    , dividable1<T
-    , modable1<T, B
-      > > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct ordered_euclidian_ring_operators2
-    : totally_ordered2<T, U
-    , euclidian_ring_operators2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct ordered_euclidian_ring_operators1
-    : totally_ordered1<T
-    , euclidian_ring_operators1<T, B
-      > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct euclidean_ring_operators2
-    : ring_operators2<T, U
-    , dividable2<T, U
-    , dividable2_left<T, U
-    , modable2<T, U
-    , modable2_left<T, U, B
-      > > > > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct euclidean_ring_operators1
-    : ring_operators1<T
-    , dividable1<T
-    , modable1<T, B
-      > > > {};
-
-template <class T, class U, class B = ::ndnboost::detail::empty_base<T> >
-struct ordered_euclidean_ring_operators2
-    : totally_ordered2<T, U
-    , euclidean_ring_operators2<T, U, B
-      > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct ordered_euclidean_ring_operators1
-    : totally_ordered1<T
-    , euclidean_ring_operators1<T, B
-      > > {};
-
-template <class T, class P, class B = ::ndnboost::detail::empty_base<T> >
-struct input_iteratable
-    : equality_comparable1<T
-    , incrementable<T
-    , dereferenceable<T, P, B
-      > > > {};
-
-template <class T, class B = ::ndnboost::detail::empty_base<T> >
-struct output_iteratable
-    : incrementable<T, B
-      > {};
-
-template <class T, class P, class B = ::ndnboost::detail::empty_base<T> >
-struct forward_iteratable
-    : input_iteratable<T, P, B
-      > {};
-
-template <class T, class P, class B = ::ndnboost::detail::empty_base<T> >
-struct bidirectional_iteratable
-    : forward_iteratable<T, P
-    , decrementable<T, B
-      > > {};
-
-//  To avoid repeated derivation from equality_comparable,
-//  which is an indirect base class of bidirectional_iterable,
-//  random_access_iteratable must not be derived from totally_ordered1
-//  but from less_than_comparable1 only. (Helmut Zeisel, 02-Dec-2001)
-template <class T, class P, class D, class R, class B = ::ndnboost::detail::empty_base<T> >
-struct random_access_iteratable
-    : bidirectional_iteratable<T, P
-    , less_than_comparable1<T
-    , additive2<T, D
-    , indexable<T, D, R, B
-      > > > > {};
-
-#ifndef NDNBOOST_NO_OPERATORS_IN_NAMESPACE
-} // namespace ndnboost
-#endif // NDNBOOST_NO_OPERATORS_IN_NAMESPACE
-
-
-// NDNBOOST_IMPORT_TEMPLATE1 .. NDNBOOST_IMPORT_TEMPLATE4 -
-//
-// When NDNBOOST_NO_OPERATORS_IN_NAMESPACE is defined we need a way to import an
-// operator template into the boost namespace. NDNBOOST_IMPORT_TEMPLATE1 is used
-// for one-argument forms of operator templates; NDNBOOST_IMPORT_TEMPLATE2 for
-// two-argument forms. Note that these macros expect to be invoked from within
-// boost.
-
-#ifndef NDNBOOST_NO_OPERATORS_IN_NAMESPACE
-
-  // The template is already in boost so we have nothing to do.
-# define NDNBOOST_IMPORT_TEMPLATE4(template_name)
-# define NDNBOOST_IMPORT_TEMPLATE3(template_name)
-# define NDNBOOST_IMPORT_TEMPLATE2(template_name)
-# define NDNBOOST_IMPORT_TEMPLATE1(template_name)
-
-#else // NDNBOOST_NO_OPERATORS_IN_NAMESPACE
-
-#  ifndef NDNBOOST_NO_USING_TEMPLATE
-
-     // Bring the names in with a using-declaration
-     // to avoid stressing the compiler.
-#    define NDNBOOST_IMPORT_TEMPLATE4(template_name) using ::template_name;
-#    define NDNBOOST_IMPORT_TEMPLATE3(template_name) using ::template_name;
-#    define NDNBOOST_IMPORT_TEMPLATE2(template_name) using ::template_name;
-#    define NDNBOOST_IMPORT_TEMPLATE1(template_name) using ::template_name;
-
-#  else
-
-     // Otherwise, because a Borland C++ 5.5 bug prevents a using declaration
-     // from working, we are forced to use inheritance for that compiler.
-#    define NDNBOOST_IMPORT_TEMPLATE4(template_name)                                             \
-     template <class T, class U, class V, class W, class B = ::ndnboost::detail::empty_base<T> > \
-     struct template_name : ::template_name<T, U, V, W, B> {};
-
-#    define NDNBOOST_IMPORT_TEMPLATE3(template_name)                                    \
-     template <class T, class U, class V, class B = ::ndnboost::detail::empty_base<T> > \
-     struct template_name : ::template_name<T, U, V, B> {};
-
-#    define NDNBOOST_IMPORT_TEMPLATE2(template_name)                           \
-     template <class T, class U, class B = ::ndnboost::detail::empty_base<T> > \
-     struct template_name : ::template_name<T, U, B> {};
-
-#    define NDNBOOST_IMPORT_TEMPLATE1(template_name)                  \
-     template <class T, class B = ::ndnboost::detail::empty_base<T> > \
-     struct template_name : ::template_name<T, B> {};
-
-#  endif // NDNBOOST_NO_USING_TEMPLATE
-
-#endif // NDNBOOST_NO_OPERATORS_IN_NAMESPACE
-
-//
-// Here's where we put it all together, defining the xxxx forms of the templates
-// in namespace ndnboost. We also define specializations of is_chained_base<> for
-// the xxxx, xxxx1, and xxxx2 templates, importing them into ndnboost:: as
-// necessary.
-//
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// is_chained_base<> - a traits class used to distinguish whether an operator
-// template argument is being used for base class chaining, or is specifying a
-// 2nd argument type.
-
-namespace ndnboost {
-// A type parameter is used instead of a plain bool because Borland's compiler
-// didn't cope well with the more obvious non-type template parameter.
-namespace detail {
-  struct true_t {};
-  struct false_t {};
-} // namespace detail
-
-// Unspecialized version assumes that most types are not being used for base
-// class chaining. We specialize for the operator templates defined in this
-// library.
-template<class T> struct is_chained_base {
-  typedef ::ndnboost::detail::false_t value;
-};
-
-} // namespace ndnboost
-
-// Import a 4-type-argument operator template into boost (if necessary) and
-// provide a specialization of 'is_chained_base<>' for it.
-# define NDNBOOST_OPERATOR_TEMPLATE4(template_name4)                     \
-  NDNBOOST_IMPORT_TEMPLATE4(template_name4)                              \
-  template<class T, class U, class V, class W, class B>               \
-  struct is_chained_base< ::ndnboost::template_name4<T, U, V, W, B> > {  \
-    typedef ::ndnboost::detail::true_t value;                            \
-  };
-
-// Import a 3-type-argument operator template into boost (if necessary) and
-// provide a specialization of 'is_chained_base<>' for it.
-# define NDNBOOST_OPERATOR_TEMPLATE3(template_name3)                     \
-  NDNBOOST_IMPORT_TEMPLATE3(template_name3)                              \
-  template<class T, class U, class V, class B>                        \
-  struct is_chained_base< ::ndnboost::template_name3<T, U, V, B> > {     \
-    typedef ::ndnboost::detail::true_t value;                            \
-  };
-
-// Import a 2-type-argument operator template into boost (if necessary) and
-// provide a specialization of 'is_chained_base<>' for it.
-# define NDNBOOST_OPERATOR_TEMPLATE2(template_name2)                  \
-  NDNBOOST_IMPORT_TEMPLATE2(template_name2)                           \
-  template<class T, class U, class B>                              \
-  struct is_chained_base< ::ndnboost::template_name2<T, U, B> > {     \
-    typedef ::ndnboost::detail::true_t value;                         \
-  };
-
-// Import a 1-type-argument operator template into boost (if necessary) and
-// provide a specialization of 'is_chained_base<>' for it.
-# define NDNBOOST_OPERATOR_TEMPLATE1(template_name1)                  \
-  NDNBOOST_IMPORT_TEMPLATE1(template_name1)                           \
-  template<class T, class B>                                       \
-  struct is_chained_base< ::ndnboost::template_name1<T, B> > {        \
-    typedef ::ndnboost::detail::true_t value;                         \
-  };
-
-// NDNBOOST_OPERATOR_TEMPLATE(template_name) defines template_name<> such that it
-// can be used for specifying both 1-argument and 2-argument forms. Requires the
-// existence of two previously defined class templates named '<template_name>1'
-// and '<template_name>2' which must implement the corresponding 1- and 2-
-// argument forms.
-//
-// The template type parameter O == is_chained_base<U>::value is used to
-// distinguish whether the 2nd argument to <template_name> is being used for
-// base class chaining from another boost operator template or is describing a
-// 2nd operand type. O == true_t only when U is actually an another operator
-// template from the library. Partial specialization is used to select an
-// implementation in terms of either '<template_name>1' or '<template_name>2'.
-//
-
-# define NDNBOOST_OPERATOR_TEMPLATE(template_name)                    \
-template <class T                                                  \
-         ,class U = T                                              \
-         ,class B = ::ndnboost::detail::empty_base<T>                 \
-         ,class O = typename is_chained_base<U>::value             \
-         >                                                         \
-struct template_name : template_name##2<T, U, B> {};               \
-                                                                   \
-template<class T, class U, class B>                                \
-struct template_name<T, U, B, ::ndnboost::detail::true_t>             \
-  : template_name##1<T, U> {};                                     \
-                                                                   \
-template <class T, class B>                                        \
-struct template_name<T, T, B, ::ndnboost::detail::false_t>            \
-  : template_name##1<T, B> {};                                     \
-                                                                   \
-template<class T, class U, class B, class O>                       \
-struct is_chained_base< ::ndnboost::template_name<T, U, B, O> > {     \
-  typedef ::ndnboost::detail::true_t value;                           \
-};                                                                 \
-                                                                   \
-NDNBOOST_OPERATOR_TEMPLATE2(template_name##2)                         \
-NDNBOOST_OPERATOR_TEMPLATE1(template_name##1)
-
-
-#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#  define NDNBOOST_OPERATOR_TEMPLATE4(template_name4) \
-        NDNBOOST_IMPORT_TEMPLATE4(template_name4)
-#  define NDNBOOST_OPERATOR_TEMPLATE3(template_name3) \
-        NDNBOOST_IMPORT_TEMPLATE3(template_name3)
-#  define NDNBOOST_OPERATOR_TEMPLATE2(template_name2) \
-        NDNBOOST_IMPORT_TEMPLATE2(template_name2)
-#  define NDNBOOST_OPERATOR_TEMPLATE1(template_name1) \
-        NDNBOOST_IMPORT_TEMPLATE1(template_name1)
-
-   // In this case we can only assume that template_name<> is equivalent to the
-   // more commonly needed template_name1<> form.
-#  define NDNBOOST_OPERATOR_TEMPLATE(template_name)                   \
-   template <class T, class B = ::ndnboost::detail::empty_base<T> >   \
-   struct template_name : template_name##1<T, B> {};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace ndnboost {
-    
-NDNBOOST_OPERATOR_TEMPLATE(less_than_comparable)
-NDNBOOST_OPERATOR_TEMPLATE(equality_comparable)
-NDNBOOST_OPERATOR_TEMPLATE(multipliable)
-NDNBOOST_OPERATOR_TEMPLATE(addable)
-NDNBOOST_OPERATOR_TEMPLATE(subtractable)
-NDNBOOST_OPERATOR_TEMPLATE2(subtractable2_left)
-NDNBOOST_OPERATOR_TEMPLATE(dividable)
-NDNBOOST_OPERATOR_TEMPLATE2(dividable2_left)
-NDNBOOST_OPERATOR_TEMPLATE(modable)
-NDNBOOST_OPERATOR_TEMPLATE2(modable2_left)
-NDNBOOST_OPERATOR_TEMPLATE(xorable)
-NDNBOOST_OPERATOR_TEMPLATE(andable)
-NDNBOOST_OPERATOR_TEMPLATE(orable)
-
-NDNBOOST_OPERATOR_TEMPLATE1(incrementable)
-NDNBOOST_OPERATOR_TEMPLATE1(decrementable)
-
-NDNBOOST_OPERATOR_TEMPLATE2(dereferenceable)
-NDNBOOST_OPERATOR_TEMPLATE3(indexable)
-
-NDNBOOST_OPERATOR_TEMPLATE(left_shiftable)
-NDNBOOST_OPERATOR_TEMPLATE(right_shiftable)
-NDNBOOST_OPERATOR_TEMPLATE(equivalent)
-NDNBOOST_OPERATOR_TEMPLATE(partially_ordered)
-
-NDNBOOST_OPERATOR_TEMPLATE(totally_ordered)
-NDNBOOST_OPERATOR_TEMPLATE(additive)
-NDNBOOST_OPERATOR_TEMPLATE(multiplicative)
-NDNBOOST_OPERATOR_TEMPLATE(integer_multiplicative)
-NDNBOOST_OPERATOR_TEMPLATE(arithmetic)
-NDNBOOST_OPERATOR_TEMPLATE(integer_arithmetic)
-NDNBOOST_OPERATOR_TEMPLATE(bitwise)
-NDNBOOST_OPERATOR_TEMPLATE1(unit_steppable)
-NDNBOOST_OPERATOR_TEMPLATE(shiftable)
-NDNBOOST_OPERATOR_TEMPLATE(ring_operators)
-NDNBOOST_OPERATOR_TEMPLATE(ordered_ring_operators)
-NDNBOOST_OPERATOR_TEMPLATE(field_operators)
-NDNBOOST_OPERATOR_TEMPLATE(ordered_field_operators)
-NDNBOOST_OPERATOR_TEMPLATE(euclidian_ring_operators)
-NDNBOOST_OPERATOR_TEMPLATE(ordered_euclidian_ring_operators)
-NDNBOOST_OPERATOR_TEMPLATE(euclidean_ring_operators)
-NDNBOOST_OPERATOR_TEMPLATE(ordered_euclidean_ring_operators)
-NDNBOOST_OPERATOR_TEMPLATE2(input_iteratable)
-NDNBOOST_OPERATOR_TEMPLATE1(output_iteratable)
-NDNBOOST_OPERATOR_TEMPLATE2(forward_iteratable)
-NDNBOOST_OPERATOR_TEMPLATE2(bidirectional_iteratable)
-NDNBOOST_OPERATOR_TEMPLATE4(random_access_iteratable)
-
-#undef NDNBOOST_OPERATOR_TEMPLATE
-#undef NDNBOOST_OPERATOR_TEMPLATE4
-#undef NDNBOOST_OPERATOR_TEMPLATE3
-#undef NDNBOOST_OPERATOR_TEMPLATE2
-#undef NDNBOOST_OPERATOR_TEMPLATE1
-#undef NDNBOOST_IMPORT_TEMPLATE1
-#undef NDNBOOST_IMPORT_TEMPLATE2
-#undef NDNBOOST_IMPORT_TEMPLATE3
-#undef NDNBOOST_IMPORT_TEMPLATE4
-
-// The following 'operators' classes can only be used portably if the derived class
-// declares ALL of the required member operators.
-template <class T, class U>
-struct operators2
-    : totally_ordered2<T,U
-    , integer_arithmetic2<T,U
-    , bitwise2<T,U
-      > > > {};
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <class T, class U = T>
-struct operators : operators2<T, U> {};
-
-template <class T> struct operators<T, T>
-#else
-template <class T> struct operators
-#endif
-    : totally_ordered<T
-    , integer_arithmetic<T
-    , bitwise<T
-    , unit_steppable<T
-      > > > > {};
-
-//  Iterator helper classes (contributed by Jeremy Siek) -------------------//
-//  (Input and output iterator helpers contributed by Daryle Walker) -------//
-//  (Changed to use combined operator classes by Daryle Walker) ------------//
-template <class T,
-          class V,
-          class D = std::ptrdiff_t,
-          class P = V const *,
-          class R = V const &>
-struct input_iterator_helper
-  : input_iteratable<T, P
-  , ndnboost::iterator<std::input_iterator_tag, V, D, P, R
-    > > {};
-
-template<class T>
-struct output_iterator_helper
-  : output_iteratable<T
-  , ndnboost::iterator<std::output_iterator_tag, void, void, void, void
-  > >
-{
-  T& operator*()  { return static_cast<T&>(*this); }
-  T& operator++() { return static_cast<T&>(*this); }
-};
-
-template <class T,
-          class V,
-          class D = std::ptrdiff_t,
-          class P = V*,
-          class R = V&>
-struct forward_iterator_helper
-  : forward_iteratable<T, P
-  , ndnboost::iterator<std::forward_iterator_tag, V, D, P, R
-    > > {};
-
-template <class T,
-          class V,
-          class D = std::ptrdiff_t,
-          class P = V*,
-          class R = V&>
-struct bidirectional_iterator_helper
-  : bidirectional_iteratable<T, P
-  , ndnboost::iterator<std::bidirectional_iterator_tag, V, D, P, R
-    > > {};
-
-template <class T,
-          class V, 
-          class D = std::ptrdiff_t,
-          class P = V*,
-          class R = V&>
-struct random_access_iterator_helper
-  : random_access_iteratable<T, P, D, R
-  , ndnboost::iterator<std::random_access_iterator_tag, V, D, P, R
-    > >
-{
-  friend D requires_difference_operator(const T& x, const T& y) {
-    return x - y;
-  }
-}; // random_access_iterator_helper
-
-} // namespace ndnboost
-
-#if defined(__sgi) && !defined(__GNUC__)
-#pragma reset woff 1234
-#endif
-
-#endif // NDNBOOST_OPERATORS_HPP
diff --git a/include/ndnboost/optional.hpp b/include/ndnboost/optional.hpp
deleted file mode 100644
index ef92639..0000000
--- a/include/ndnboost/optional.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to 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)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola@hotmail.com
-//
-#ifndef NDNBOOST_OPTIONAL_FLC_19NOV2002_HPP
-#define NDNBOOST_OPTIONAL_FLC_19NOV2002_HPP
-
-#include "ndnboost/optional/optional.hpp"
-
-#endif
-
diff --git a/include/ndnboost/optional/optional.hpp b/include/ndnboost/optional/optional.hpp
deleted file mode 100644
index 7a3db17..0000000
--- a/include/ndnboost/optional/optional.hpp
+++ /dev/null
@@ -1,991 +0,0 @@
-// Copyright (C) 2003, 2008 Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to 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)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola@hotmail.com
-//
-// Revisions:
-// 27 Apr 2008 (improved swap) Fernando Cacciola, Niels Dekker, Thorsten Ottosen
-//
-#ifndef NDNBOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
-#define NDNBOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
-
-#include <new>
-#include <algorithm>
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/type.hpp>
-#include <ndnboost/type_traits/alignment_of.hpp>
-#include <ndnboost/type_traits/has_nothrow_constructor.hpp>
-#include <ndnboost/type_traits/type_with_alignment.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-#include <ndnboost/type_traits/is_reference.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/not.hpp>
-#include <ndnboost/detail/reference_content.hpp>
-#include <ndnboost/none.hpp>
-#include <ndnboost/utility/swap.hpp>
-#include <ndnboost/utility/addressof.hpp>
-#include <ndnboost/utility/compare_pointees.hpp>
-#include <ndnboost/utility/in_place_factory.hpp>
-
-#include <ndnboost/optional/optional_fwd.hpp>
-
-#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:
-//     optional<T> opt ; opt = T(...);
-//   is compiled.
-//   However, optional's ctor is _explicit_ and the assignemt shouldn't compile.
-//   Therefore, for VC6.0 templated assignment is disabled.
-//
-#define NDNBOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
-#endif
-
-#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 NDNBOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
-#endif
-
-#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 NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-#endif
-
-#if NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x551)
-// BCB (5.5.1) cannot parse the nested template struct in an inplace factory.
-#define NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-#endif
-
-#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 NDNBOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) > 302 \
-    && !defined(__INTEL_COMPILER)
-// GCC since 3.3 has may_alias attribute that helps to alleviate optimizer issues with
-// 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 NDNBOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS
-#endif
-
-// Daniel Wallin discovered that bind/apply.hpp badly interacts with the apply<>
-// member template of a factory as used in the optional<> implementation.
-// He proposed this simple fix which is to move the call to apply<> outside
-// namespace ndnboost.
-namespace ndnboost_optional_detail
-{
-  template <class T, class Factory>
-  inline void construct(Factory const& factory, void* address)
-  {
-    factory.NDNBOOST_NESTED_TEMPLATE apply<T>(address);
-  }
-}
-
-
-namespace ndnboost {
-
-class in_place_factory_base ;
-class typed_in_place_factory_base ;
-
-// This forward is needed to refer to namespace scope swap from the member swap
-template<class T> void swap ( optional<T>& x, optional<T>& y );
-
-namespace optional_detail {
-
-// This local class is used instead of that in "aligned_storage.hpp"
-// because I've found the 'official' class to ICE BCB5.5
-// when some types are used with optional<>
-// (due to sizeof() passed down as a non-type template parameter)
-template <class T>
-class aligned_storage
-{
-    // 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(NDNBOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
-    __attribute__((may_alias))
-#endif
-    dummy_u
-    {
-        char data[ sizeof(T) ];
-        NDNBOOST_DEDUCED_TYPENAME type_with_alignment<
-          ::ndnboost::alignment_of<T>::value >::type aligner_;
-    } dummy_ ;
-
-  public:
-
-#if defined(NDNBOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
-    void const* address() const { return &dummy_; }
-    void      * address()       { return &dummy_; }
-#else
-    void const* address() const { return dummy_.data; }
-    void      * address()       { return dummy_.data; }
-#endif
-} ;
-
-template<class T>
-struct types_when_isnt_ref
-{
-  typedef T const& reference_const_type ;
-  typedef T &      reference_type ;
-  typedef T const* pointer_const_type ;
-  typedef T *      pointer_type ;
-  typedef T const& argument_type ;
-} ;
-template<class T>
-struct types_when_is_ref
-{
-  typedef NDNBOOST_DEDUCED_TYPENAME remove_reference<T>::type raw_type ;
-
-  typedef raw_type& reference_const_type ;
-  typedef raw_type& reference_type ;
-  typedef raw_type* pointer_const_type ;
-  typedef raw_type* pointer_type ;
-  typedef raw_type& argument_type ;
-} ;
-
-struct optional_tag {} ;
-
-template<class T>
-class optional_base : public optional_tag
-{
-  private :
-
-    typedef
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
-    NDNBOOST_DEDUCED_TYPENAME
-#endif
-    ::ndnboost::detail::make_reference_content<T>::type internal_type ;
-
-    typedef aligned_storage<internal_type> storage_type ;
-
-    typedef types_when_isnt_ref<T> types_when_not_ref ;
-    typedef types_when_is_ref<T>   types_when_ref   ;
-
-    typedef optional_base<T> this_type ;
-
-  protected :
-
-    typedef T value_type ;
-
-    typedef mpl::true_  is_reference_tag ;
-    typedef mpl::false_ is_not_reference_tag ;
-
-    typedef NDNBOOST_DEDUCED_TYPENAME is_reference<T>::type is_reference_predicate ;
-
-  public:
-    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 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
-    optional_base()
-      :
-      m_initialized(false) {}
-
-    // Creates an optional<T> uninitialized.
-    // No-throw
-    optional_base ( none_t )
-      :
-      m_initialized(false) {}
-
-    // Creates an optional<T> initialized with 'val'.
-    // Can throw if T::T(T const&) does
-    optional_base ( argument_type val )
-      :
-      m_initialized(false)
-    {
-      construct(val);
-    }
-
-    // Creates an optional<T> initialized with 'val' IFF cond is true, otherwise creates an uninitialzed optional<T>.
-    // Can throw if T::T(T const&) does
-    optional_base ( bool cond, argument_type val )
-      :
-      m_initialized(false)
-    {
-      if ( cond )
-        construct(val);
-    }
-
-    // Creates a deep copy of another optional<T>
-    // Can throw if T::T(T const&) does
-    optional_base ( optional_base const& rhs )
-      :
-      m_initialized(false)
-    {
-      if ( rhs.is_initialized() )
-        construct(rhs.get_impl());
-    }
-
-
-    // This is used for both converting and in-place constructions.
-    // Derived classes use the 'tag' to select the appropriate
-    // implementation (the correct 'construct()' overload)
-    template<class Expr>
-    explicit optional_base ( Expr const& expr, Expr const* tag )
-      :
-      m_initialized(false)
-    {
-      construct(expr,tag);
-    }
-
-
-
-    // No-throw (assuming T::~T() doesn't)
-    ~optional_base() { destroy() ; }
-
-    // Assigns from another optional<T> (deep-copies the rhs value)
-    void assign ( optional_base const& rhs )
-    {
-      if (is_initialized())
-      {
-        if ( rhs.is_initialized() )
-             assign_value(rhs.get_impl(), is_reference_predicate() );
-        else destroy();
-      }
-      else
-      {
-        if ( rhs.is_initialized() )
-          construct(rhs.get_impl());
-      }
-    }
-
-    // Assigns from another _convertible_ optional<U> (deep-copies the rhs value)
-    template<class U>
-    void assign ( optional<U> const& rhs )
-    {
-      if (is_initialized())
-      {
-        if ( rhs.is_initialized() )
-             assign_value(static_cast<value_type>(rhs.get()), is_reference_predicate() );
-        else destroy();
-      }
-      else
-      {
-        if ( rhs.is_initialized() )
-          construct(static_cast<value_type>(rhs.get()));
-      }
-    }
-
-    // Assigns from a T (deep-copies the rhs value)
-    void assign ( argument_type val )
-    {
-      if (is_initialized())
-           assign_value(val, is_reference_predicate() );
-      else construct(val);
-    }
-
-    // Assigns from "none", destroying the current value, if any, leaving this UNINITIALIZED
-    // No-throw (assuming T::~T() doesn't)
-    void assign ( none_t ) { destroy(); }
-
-#ifndef NDNBOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-    template<class Expr>
-    void assign_expr ( Expr const& expr, Expr const* tag )
-      {
-        if (is_initialized())
-             assign_expr_to_initialized(expr,tag);
-        else construct(expr,tag);
-      }
-#endif
-
-  public :
-
-    // Destroys the current value, if any, leaving this UNINITIALIZED
-    // No-throw (assuming T::~T() doesn't)
-    void reset() { destroy(); }
-
-    // Replaces the current value -if any- with 'val'
-    void reset ( argument_type val ) { assign(val); }
-
-    // Returns a pointer to the value if this is initialized, otherwise,
-    // returns NULL.
-    // No-throw
-    pointer_const_type get_ptr() const { return m_initialized ? get_ptr_impl() : 0 ; }
-    pointer_type       get_ptr()       { return m_initialized ? get_ptr_impl() : 0 ; }
-
-    bool is_initialized() const { return m_initialized ; }
-
-  protected :
-
-    void construct ( argument_type val )
-     {
-       new (m_storage.address()) internal_type(val) ;
-       m_initialized = true ;
-     }
-
-#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* )
-     {
-       NDNBOOST_STATIC_ASSERT ( ::ndnboost::mpl::not_<is_reference_predicate>::value ) ;
-       ndnboost_optional_detail::construct<value_type>(factory, m_storage.address());
-       m_initialized = true ;
-     }
-
-    // Constructs in-place using the given typed factory
-    template<class Expr>
-    void construct ( Expr const& factory, typed_in_place_factory_base const* )
-     {
-       NDNBOOST_STATIC_ASSERT ( ::ndnboost::mpl::not_<is_reference_predicate>::value ) ;
-       factory.apply(m_storage.address()) ;
-       m_initialized = true ;
-     }
-
-    template<class Expr>
-    void assign_expr_to_initialized ( Expr const& factory, in_place_factory_base const* tag )
-     {
-       destroy();
-       construct(factory,tag);
-     }
-
-    // Constructs in-place using the given typed factory
-    template<class Expr>
-    void assign_expr_to_initialized ( Expr const& factory, typed_in_place_factory_base const* tag )
-     {
-       destroy();
-       construct(factory,tag);
-     }
-#endif
-
-    // Constructs using any expression implicitely convertible to the single argument
-    // of a one-argument T constructor.
-    // Converting constructions of optional<T> from optional<U> uses this function with
-    // 'Expr' being of type 'U' and relying on a converting constructor of T from U.
-    template<class Expr>
-    void construct ( Expr const& expr, void const* )
-     {
-       new (m_storage.address()) internal_type(expr) ;
-       m_initialized = true ;
-     }
-
-    // Assigns using a form any expression implicitely convertible to the single argument
-    // of a T's assignment operator.
-    // Converting assignments of optional<T> from optional<U> uses this function with
-    // 'Expr' being of type 'U' and relying on a converting assignment of T from U.
-    template<class Expr>
-    void assign_expr_to_initialized ( Expr const& expr, void const* )
-     {
-       assign_value(expr, is_reference_predicate());
-     }
-
-#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
-    //   an arbitrary 'Expr' type)
-    //   This compiler incorrectly resolves the overload set and sinks optional<T> and optional<U>
-    //   to the 'Expr'-taking functions even though explicit overloads are present for them.
-    //   Thus, the following overload is needed to properly handle the case when the 'lhs'
-    //   is another optional.
-    //
-    // For VC<=70 compilers this workaround dosen't work becasue the comnpiler issues and error
-    // instead of choosing the wrong overload
-    //
-    // Notice that 'Expr' will be optional<T> or optional<U> (but not optional_base<..>)
-    template<class Expr>
-    void construct ( Expr const& expr, optional_tag const* )
-     {
-       if ( expr.is_initialized() )
-       {
-         // An exception can be thrown here.
-         // It it happens, THIS will be left uninitialized.
-         new (m_storage.address()) internal_type(expr.get()) ;
-         m_initialized = true ;
-       }
-     }
-#endif
-
-    void assign_value ( argument_type val, is_not_reference_tag ) { get_impl() = val; }
-    void assign_value ( argument_type val, is_reference_tag     ) { construct(val); }
-
-    void destroy()
-    {
-      if ( m_initialized )
-        destroy_impl(is_reference_predicate()) ;
-    }
-
-    unspecified_bool_type safe_bool() const { return m_initialized ? &this_type::is_initialized : 0 ; }
-
-    reference_const_type get_impl() const { return dereference(get_object(), is_reference_predicate() ) ; }
-    reference_type       get_impl()       { return dereference(get_object(), is_reference_predicate() ) ; }
-
-    pointer_const_type get_ptr_impl() const { return cast_ptr(get_object(), is_reference_predicate() ) ; }
-    pointer_type       get_ptr_impl()       { return cast_ptr(get_object(), is_reference_predicate() ) ; }
-
-  private :
-
-    // internal_type can be either T or reference_content<T>
-#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
-    {
-        union { void const* ap_pvoid; internal_type const* as_ptype; } caster = { m_storage.address() };
-        return caster.as_ptype;
-    }
-    internal_type *      get_object()
-    {
-        union { void* ap_pvoid; internal_type* as_ptype; } caster = { m_storage.address() };
-        return caster.as_ptype;
-    }
-#else
-    internal_type const* get_object() const { return static_cast<internal_type const*>(m_storage.address()); }
-    internal_type *      get_object()       { return static_cast<internal_type *>     (m_storage.address()); }
-#endif
-
-    // reference_content<T> lacks an implicit conversion to T&, so the following is needed to obtain a proper reference.
-    reference_const_type dereference( internal_type const* p, is_not_reference_tag ) const { return *p ; }
-    reference_type       dereference( internal_type*       p, is_not_reference_tag )       { return *p ; }
-    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 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 ; }
-#endif
-
-    void destroy_impl ( is_reference_tag     ) { m_initialized = false ; }
-
-    // If T is of reference type, trying to get a pointer to the held value must result in a compile-time error.
-    // Decent compilers should disallow conversions from reference_content<T>* to T*, but just in case,
-    // the following olverloads are used to filter out the case and guarantee an error in case of T being a reference.
-    pointer_const_type cast_ptr( internal_type const* p, is_not_reference_tag ) const { return p ; }
-    pointer_type       cast_ptr( internal_type *      p, is_not_reference_tag )       { return p ; }
-    pointer_const_type cast_ptr( internal_type const* p, is_reference_tag     ) const { return &p->get() ; }
-    pointer_type       cast_ptr( internal_type *      p, is_reference_tag     )       { return &p->get() ; }
-
-    bool m_initialized ;
-    storage_type m_storage ;
-} ;
-
-} // namespace optional_detail
-
-template<class T>
-class optional : public optional_detail::optional_base<T>
-{
-    typedef optional_detail::optional_base<T> base ;
-
-    typedef NDNBOOST_DEDUCED_TYPENAME base::unspecified_bool_type  unspecified_bool_type ;
-
-  public :
-
-    typedef optional<T> this_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
-    optional() : base() {}
-
-    // Creates an optional<T> uninitialized.
-    // No-throw
-    optional( none_t none_ ) : base(none_) {}
-
-    // Creates an optional<T> initialized with 'val'.
-    // Can throw if T::T(T const&) does
-    optional ( argument_type val ) : base(val) {}
-
-    // Creates an optional<T> initialized with 'val' IFF cond is true, otherwise creates an uninitialized optional.
-    // Can throw if T::T(T const&) does
-    optional ( bool cond, argument_type val ) : base(cond,val) {}
-
-#ifndef NDNBOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
-    // NOTE: MSVC needs templated versions first
-
-    // Creates a deep copy of another convertible optional<U>
-    // Requires a valid conversion from U to T.
-    // Can throw if T::T(U const&) does
-    template<class U>
-    explicit optional ( optional<U> const& rhs )
-      :
-      base()
-    {
-      if ( rhs.is_initialized() )
-        this->construct(rhs.get());
-    }
-#endif
-
-#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);
-    //  (c) Any expression implicitely convertible to the single type
-    //      of a one-argument T's constructor.
-    //  (d*) Weak compilers (BCB) might also resolved Expr as optional<T> and optional<U>
-    //       even though explicit overloads are present for these.
-    // Depending on the above some T ctor is called.
-    // Can throw is the resolved T ctor throws.
-    template<class Expr>
-    explicit optional ( Expr const& expr ) : base(expr,ndnboost::addressof(expr)) {}
-#endif
-
-    // Creates a deep copy of another optional<T>
-    // Can throw if T::T(T const&) does
-    optional ( optional const& rhs ) : base( static_cast<base const&>(rhs) ) {}
-
-   // No-throw (assuming T::~T() doesn't)
-    ~optional() {}
-
-#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>
-    optional& operator= ( Expr const& expr )
-      {
-        this->assign_expr(expr,ndnboost::addressof(expr));
-        return *this ;
-      }
-#endif
-
-
-#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
-    template<class U>
-    optional& operator= ( optional<U> const& rhs )
-      {
-        this->assign(rhs);
-        return *this ;
-      }
-#endif
-
-    // Assigns from another optional<T> (deep-copies the rhs value)
-    // Basic Guarantee: If T::T( T const& ) throws, this is left UNINITIALIZED
-    //  (NOTE: On BCB, this operator is not actually called and left is left UNMODIFIED in case of a throw)
-    optional& operator= ( optional const& rhs )
-      {
-        this->assign( static_cast<base const&>(rhs) ) ;
-        return *this ;
-      }
-
-    // Assigns from a T (deep-copies the rhs value)
-    // Basic Guarantee: If T::( T const& ) throws, this is left UNINITIALIZED
-    optional& operator= ( argument_type val )
-      {
-        this->assign( val ) ;
-        return *this ;
-      }
-
-    // Assigns from a "none"
-    // Which destroys the current value, if any, leaving this UNINITIALIZED
-    // No-throw (assuming T::~T() doesn't)
-    optional& operator= ( none_t none_ )
-      {
-        this->assign( none_ ) ;
-        return *this ;
-      }
-
-    void swap( optional & arg )
-      {
-        // allow for Koenig lookup
-        using ndnboost::swap;
-        swap(*this, arg);
-      }
-
-
-    // Returns a reference to the value if this is initialized, otherwise,
-    // the behaviour is UNDEFINED
-    // No-throw
-    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 ; }
-    reference_type       get_value_or ( reference_type       v )       { return this->is_initialized() ? get() : v ; }
-
-    // Returns a pointer to the value if this is initialized, otherwise,
-    // the behaviour is UNDEFINED
-    // No-throw
-    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
-    // No-throw
-    reference_const_type operator *() const { return this->get() ; }
-    reference_type       operator *()       { return this->get() ; }
-
-    // implicit conversion to "bool"
-    // No-throw
-    operator unspecified_bool_type() const { return this->safe_bool() ; }
-
-    // This is provided for those compilers which don't like the conversion to bool
-    // on some contexts.
-    bool operator!() const { return !this->is_initialized() ; }
-} ;
-
-// Returns optional<T>(v)
-template<class T>
-inline
-optional<T> make_optional ( T const& v  )
-{
-  return optional<T>(v);
-}
-
-// Returns optional<T>(cond,v)
-template<class T>
-inline
-optional<T> make_optional ( bool cond, T const& v )
-{
-  return optional<T>(cond,v);
-}
-
-// Returns a reference to the value if this is initialized, otherwise, the behaviour is UNDEFINED.
-// No-throw
-template<class T>
-inline
-NDNBOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
-get ( optional<T> const& opt )
-{
-  return opt.get() ;
-}
-
-template<class T>
-inline
-NDNBOOST_DEDUCED_TYPENAME optional<T>::reference_type
-get ( optional<T>& opt )
-{
-  return opt.get() ;
-}
-
-// Returns a pointer to the value if this is initialized, otherwise, returns NULL.
-// No-throw
-template<class T>
-inline
-NDNBOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
-get ( optional<T> const* opt )
-{
-  return opt->get_ptr() ;
-}
-
-template<class T>
-inline
-NDNBOOST_DEDUCED_TYPENAME optional<T>::pointer_type
-get ( optional<T>* opt )
-{
-  return opt->get_ptr() ;
-}
-
-// Returns a reference to the value if this is initialized, otherwise, the behaviour is UNDEFINED.
-// No-throw
-template<class T>
-inline
-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
-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) ;
-}
-
-// Returns a pointer to the value if this is initialized, otherwise, returns NULL.
-// No-throw
-template<class T>
-inline
-NDNBOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
-get_pointer ( optional<T> const& opt )
-{
-  return opt.get_ptr() ;
-}
-
-template<class T>
-inline
-NDNBOOST_DEDUCED_TYPENAME optional<T>::pointer_type
-get_pointer ( optional<T>& opt )
-{
-  return opt.get_ptr() ;
-}
-
-// optional's relational operators ( ==, !=, <, >, <=, >= ) have deep-semantics (compare values).
-// WARNING: This is UNLIKE pointers. Use equal_pointees()/less_pointess() in generic code instead.
-
-
-//
-// optional<T> vs optional<T> cases
-//
-
-template<class T>
-inline
-bool operator == ( optional<T> const& x, optional<T> const& y )
-{ return equal_pointees(x,y); }
-
-template<class T>
-inline
-bool operator < ( optional<T> const& x, optional<T> const& y )
-{ return less_pointees(x,y); }
-
-template<class T>
-inline
-bool operator != ( optional<T> const& x, optional<T> const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( optional<T> const& x, optional<T> const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( optional<T> const& x, optional<T> const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( optional<T> const& x, optional<T> const& y )
-{ return !( x < y ) ; }
-
-
-//
-// optional<T> vs T cases
-//
-template<class T>
-inline
-bool operator == ( optional<T> const& x, T const& y )
-{ return equal_pointees(x, optional<T>(y)); }
-
-template<class T>
-inline
-bool operator < ( optional<T> const& x, T const& y )
-{ return less_pointees(x, optional<T>(y)); }
-
-template<class T>
-inline
-bool operator != ( optional<T> const& x, T const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( optional<T> const& x, T const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( optional<T> const& x, T const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( optional<T> const& x, T const& y )
-{ return !( x < y ) ; }
-
-//
-// T vs optional<T> cases
-//
-
-template<class T>
-inline
-bool operator == ( T const& x, optional<T> const& y )
-{ return equal_pointees( optional<T>(x), y ); }
-
-template<class T>
-inline
-bool operator < ( T const& x, optional<T> const& y )
-{ return less_pointees( optional<T>(x), y ); }
-
-template<class T>
-inline
-bool operator != ( T const& x, optional<T> const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( T const& x, optional<T> const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( T const& x, optional<T> const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( T const& x, optional<T> const& y )
-{ return !( x < y ) ; }
-
-
-//
-// optional<T> vs none cases
-//
-
-template<class T>
-inline
-bool operator == ( optional<T> const& x, none_t )
-{ return equal_pointees(x, optional<T>() ); }
-
-template<class T>
-inline
-bool operator < ( optional<T> const& x, none_t )
-{ return less_pointees(x,optional<T>() ); }
-
-template<class T>
-inline
-bool operator != ( optional<T> const& x, none_t y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( optional<T> const& x, none_t y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( optional<T> const& x, none_t y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( optional<T> const& x, none_t y )
-{ return !( x < y ) ; }
-
-//
-// none vs optional<T> cases
-//
-
-template<class T>
-inline
-bool operator == ( none_t , optional<T> const& y )
-{ return equal_pointees(optional<T>() ,y); }
-
-template<class T>
-inline
-bool operator < ( none_t , optional<T> const& y )
-{ return less_pointees(optional<T>() ,y); }
-
-template<class T>
-inline
-bool operator != ( none_t x, optional<T> const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( none_t x, optional<T> const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( none_t x, optional<T> const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( none_t x, optional<T> const& y )
-{ return !( x < y ) ; }
-
-namespace optional_detail {
-
-template<bool use_default_constructor> struct swap_selector;
-
-template<>
-struct swap_selector<true>
-{
-    template<class T>
-    static void optional_swap ( optional<T>& x, optional<T>& y )
-    {
-        const bool hasX = !!x;
-        const bool hasY = !!y;
-
-        if ( !hasX && !hasY )
-            return;
-
-        if( !hasX )
-            x = ndnboost::in_place();
-        else if ( !hasY )
-            y = ndnboost::in_place();
-
-        // Boost.Utility.Swap will take care of ADL and workarounds for broken compilers
-        ndnboost::swap(x.get(),y.get());
-
-        if( !hasX )
-            y = ndnboost::none ;
-        else if( !hasY )
-            x = ndnboost::none ;
-    }
-};
-
-template<>
-struct swap_selector<false>
-{
-    template<class T>
-    static void optional_swap ( optional<T>& x, optional<T>& y )
-    {
-        const bool hasX = !!x;
-        const bool hasY = !!y;
-
-        if ( !hasX && hasY )
-        {
-            x = y.get();
-            y = ndnboost::none ;
-        }
-        else if ( hasX && !hasY )
-        {
-            y = x.get();
-            x = ndnboost::none ;
-        }
-        else if ( hasX && hasY )
-        {
-            // Boost.Utility.Swap will take care of ADL and workarounds for broken compilers
-            ndnboost::swap(x.get(),y.get());
-        }
-    }
-};
-
-} // namespace optional_detail
-
-template<class T>
-struct optional_swap_should_use_default_constructor : has_nothrow_default_constructor<T> {} ;
-
-template<class T> inline void swap ( optional<T>& x, optional<T>& y )
-{
-    optional_detail::swap_selector<optional_swap_should_use_default_constructor<T>::value>::optional_swap(x, y);
-}
-
-} // namespace ndnboost
-
-#endif
diff --git a/include/ndnboost/optional/optional_fwd.hpp b/include/ndnboost/optional/optional_fwd.hpp
deleted file mode 100644
index d5497a2..0000000
--- a/include/ndnboost/optional/optional_fwd.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2003, 2008 Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to 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)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola@hotmail.com
-//
-// Revisions:
-// 10 May 2008 (added swap related forward declaration) Niels Dekker
-// 
-#ifndef NDNBOOST_OPTIONAL_OPTIONAL_FWD_FLC_19NOV2002_HPP
-#define NDNBOOST_OPTIONAL_OPTIONAL_FWD_FLC_19NOV2002_HPP
-
-namespace ndnboost {
-
-template<class T> class optional ;
-
-template<class T> void swap ( optional<T>& , optional<T>& ) ;
-
-template<class T> struct optional_swap_should_use_default_constructor ;
-
-} // namespace ndnboost
-
-#endif
-
diff --git a/include/ndnboost/pending/integer_log2.hpp b/include/ndnboost/pending/integer_log2.hpp
deleted file mode 100644
index d8504db..0000000
--- a/include/ndnboost/pending/integer_log2.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-// -----------------------------------------------------------
-// integer_log2.hpp
-//
-//   Gives the integer part of the logarithm, in base 2, of a
-// given number. Behavior is undefined if the argument is <= 0.
-//
-//         Copyright (c) 2003-2004, 2008 Gennaro Prota
-//
-// 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 NDNBOOST_INTEGER_LOG2_HPP_GP_20030301
-#define NDNBOOST_INTEGER_LOG2_HPP_GP_20030301
-
-#include <assert.h>
-#ifdef __BORLANDC__
-#include <climits>
-#endif
-#include "ndnboost/limits.hpp"
-#include "ndnboost/config.hpp"
-
-
-namespace ndnboost {
- namespace detail {
-
-  template <typename T>
-  int integer_log2_impl(T x, int n) {
-
-      int result = 0;
-
-      while (x != 1) {
-
-          const T t = static_cast<T>(x >> n);
-          if (t) {
-              result += n;
-              x = t;
-          }
-          n /= 2;
-
-      }
-
-      return result;
-  }
-
-
-
-  // helper to find the maximum power of two
-  // less than p (more involved than necessary,
-  // to avoid PTS)
-  //
-  template <int p, int n>
-  struct max_pow2_less {
-
-      enum { c = 2*n < p };
-
-      NDNBOOST_STATIC_CONSTANT(int, value =
-          c ? (max_pow2_less< c*p, 2*c*n>::value) : n);
-
-  };
-
-  template <>
-  struct max_pow2_less<0, 0> {
-
-      NDNBOOST_STATIC_CONSTANT(int, value = 0);
-  };
-
-  // this template is here just for Borland :(
-  // we could simply rely on numeric_limits but sometimes
-  // Borland tries to use numeric_limits<const T>, because
-  // of its usual const-related problems in argument deduction
-  // - gps
-  template <typename T>
-  struct width {
-
-#ifdef __BORLANDC__
-      NDNBOOST_STATIC_CONSTANT(int, value = sizeof(T) * CHAR_BIT);
-#else
-      NDNBOOST_STATIC_CONSTANT(int, value = (std::numeric_limits<T>::digits));
-#endif
-
-  };
-
- } // detail
-
-
- // ---------
- // integer_log2
- // ---------------
- //
- template <typename T>
- int integer_log2(T x) {
-
-     assert(x > 0);
-
-     const int n = detail::max_pow2_less<
-                     detail::width<T> :: value, 4
-                   > :: value;
-
-     return detail::integer_log2_impl(x, n);
-
- }
-
-
-
-}
-
-
-
-#endif // include guard
diff --git a/include/ndnboost/pointee.hpp b/include/ndnboost/pointee.hpp
deleted file mode 100644
index c8c927d..0000000
--- a/include/ndnboost/pointee.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef POINTEE_NDNBOOST_DWA200415_HPP
-# define POINTEE_NDNBOOST_DWA200415_HPP
-
-//
-// Copyright David Abrahams 2004. Use, modification and distribution is
-// subject to 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)
-//
-// typename pointee<P>::type provides the pointee type of P.
-//
-// For example, it is T for T* and X for shared_ptr<X>.
-//
-// http://www.boost.org/libs/iterator/doc/pointee.html
-//
-
-# include <ndnboost/detail/is_incrementable.hpp>
-# include <ndnboost/iterator/iterator_traits.hpp>
-# include <ndnboost/type_traits/add_const.hpp>
-# include <ndnboost/type_traits/remove_cv.hpp>
-# include <ndnboost/mpl/if.hpp>
-# include <ndnboost/mpl/eval_if.hpp>
-
-namespace ndnboost { 
-
-namespace detail
-{
-  template <class P>
-  struct smart_ptr_pointee
-  {
-      typedef typename P::element_type type;
-  };
-
-  template <class Iterator>
-  struct iterator_pointee
-  {
-      typedef typename iterator_traits<Iterator>::value_type value_type;
-      
-      struct impl
-      {
-          template <class T>
-          static char test(T const&);
-          
-          static char (& test(value_type&) )[2];
-          
-          static Iterator& x;
-      };
-      
-      NDNBOOST_STATIC_CONSTANT(bool, is_constant = sizeof(impl::test(*impl::x)) == 1);
-      
-      typedef typename mpl::if_c<
-#  if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
-          ::ndnboost::detail::iterator_pointee<Iterator>::is_constant
-#  else
-          is_constant
-#  endif 
-        , typename add_const<value_type>::type
-        , value_type
-      >::type type;
-  };
-}
-
-template <class P>
-struct pointee
-  : mpl::eval_if<
-        detail::is_incrementable<P>
-      , detail::iterator_pointee<P>
-      , detail::smart_ptr_pointee<P>
-    >
-{
-};
-  
-} // namespace ndnboost
-
-#endif // POINTEE_NDNBOOST_DWA200415_HPP
diff --git a/include/ndnboost/pointer_to_other.hpp b/include/ndnboost/pointer_to_other.hpp
deleted file mode 100644
index ec6d610..0000000
--- a/include/ndnboost/pointer_to_other.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef NDNBOOST_POINTER_TO_OTHER_HPP_INCLUDED
-#define NDNBOOST_POINTER_TO_OTHER_HPP_INCLUDED
-
-//
-//  pointer_to_other.hpp
-//
-//  (C) Copyright Ion Gaztanaga 2005.
-//  Copyright (c) 2005 Peter Dimov.
-//
-//  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)
-//
-//  See http://www.boost.org/libs/smart_ptr/pointer_to_other.html
-//
-
-namespace ndnboost
-{
-
-// Defines the same pointer type (raw or smart) to another pointee type
-
-template<class T, class U>
-struct pointer_to_other;
-
-template<class T, class U, 
-         template<class> class Sp>
-struct pointer_to_other< Sp<T>, U >
-{
-   typedef Sp<U> type;
-};
-
-template<class T, class T2, class U, 
-         template<class, class> class Sp>
-struct pointer_to_other< Sp<T, T2>, U >
-{
-   typedef Sp<U, T2> type;
-};
-
-template<class T, class T2, class T3, class U, 
-         template<class, class, class> class Sp>
-struct pointer_to_other< Sp<T, T2, T3>, U >
-{
-   typedef Sp<U, T2, T3> type;
-};
-
-template<class T, class U>
-struct pointer_to_other< T*, U >
-{
-   typedef U* type;
-};
-
-} // namespace ndnboost
-
-#endif // #ifndef NDNBOOST_POINTER_TO_OTHER_HPP_INCLUDED
diff --git a/include/ndnboost/preprocessor/arithmetic/add.hpp b/include/ndnboost/preprocessor/arithmetic/add.hpp
deleted file mode 100644
index 474c0fb..0000000
--- a/include/ndnboost/preprocessor/arithmetic/add.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
-# define NDNBOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
-#
-# include <ndnboost/preprocessor/arithmetic/dec.hpp>
-# include <ndnboost/preprocessor/arithmetic/inc.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/control/while.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-#
-# /* NDNBOOST_PP_ADD */
-#
-# 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 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 NDNBOOST_PP_ADD_P(d, xy) NDNBOOST_PP_TUPLE_ELEM(2, 1, 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 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 NDNBOOST_PP_ADD_O_I(x, y) (NDNBOOST_PP_INC(x), NDNBOOST_PP_DEC(y))
-#
-# /* NDNBOOST_PP_ADD_D */
-#
-# 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 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
deleted file mode 100644
index 5e20c2d..0000000
--- a/include/ndnboost/preprocessor/arithmetic/dec.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP
-# define NDNBOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_DEC */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#    define NDNBOOST_PP_DEC(x) NDNBOOST_PP_DEC_I(x)
-# else
-#    define NDNBOOST_PP_DEC(x) NDNBOOST_PP_DEC_OO((x))
-#    define NDNBOOST_PP_DEC_OO(par) NDNBOOST_PP_DEC_I ## par
-# endif
-#
-# define NDNBOOST_PP_DEC_I(x) NDNBOOST_PP_DEC_ ## x
-#
-# 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
deleted file mode 100644
index 524e412..0000000
--- a/include/ndnboost/preprocessor/arithmetic/detail/div_base.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/comparison/less_equal.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/control/while.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-#
-# /* NDNBOOST_PP_DIV_BASE */
-#
-# 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 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 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 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 NDNBOOST_PP_DIV_BASE_P_I(d, r, x, y) NDNBOOST_PP_LESS_EQUAL_D(d, y, x)
-#
-# 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 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 NDNBOOST_PP_DIV_BASE_O_I(d, r, x, y) (NDNBOOST_PP_INC(r), NDNBOOST_PP_SUB_D(d, x, y), y)
-#
-# /* NDNBOOST_PP_DIV_BASE_D */
-#
-# 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 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
deleted file mode 100644
index 8878395..0000000
--- a/include/ndnboost/preprocessor/arithmetic/inc.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
-# define NDNBOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_INC */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#    define NDNBOOST_PP_INC(x) NDNBOOST_PP_INC_I(x)
-# else
-#    define NDNBOOST_PP_INC(x) NDNBOOST_PP_INC_OO((x))
-#    define NDNBOOST_PP_INC_OO(par) NDNBOOST_PP_INC_I ## par
-# endif
-#
-# define NDNBOOST_PP_INC_I(x) NDNBOOST_PP_INC_ ## x
-#
-# 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
deleted file mode 100644
index 9f5754d..0000000
--- a/include/ndnboost/preprocessor/arithmetic/mod.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_MOD */
-#
-# 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 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
-#
-# /* NDNBOOST_PP_MOD_D */
-#
-# 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 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
deleted file mode 100644
index 74331f2..0000000
--- a/include/ndnboost/preprocessor/arithmetic/sub.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_SUB */
-#
-# 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 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 NDNBOOST_PP_SUB_P(d, xy) NDNBOOST_PP_TUPLE_ELEM(2, 1, 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 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 NDNBOOST_PP_SUB_O_I(x, y) (NDNBOOST_PP_DEC(x), NDNBOOST_PP_DEC(y))
-#
-# /* NDNBOOST_PP_SUB_D */
-#
-# 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 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
deleted file mode 100644
index 5c8ee74..0000000
--- a/include/ndnboost/preprocessor/array/data.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ARRAY_DATA_HPP
-# define NDNBOOST_PREPROCESSOR_ARRAY_DATA_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-#
-# /* NDNBOOST_PP_ARRAY_DATA */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
-#    define NDNBOOST_PP_ARRAY_DATA(array) NDNBOOST_PP_TUPLE_ELEM(2, 1, array)
-# else
-#    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
deleted file mode 100644
index a6bba6c..0000000
--- a/include/ndnboost/preprocessor/array/elem.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_ARRAY_ELEM */
-#
-# 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 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
deleted file mode 100644
index dee91bd..0000000
--- a/include/ndnboost/preprocessor/array/size.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ARRAY_SIZE_HPP
-# define NDNBOOST_PREPROCESSOR_ARRAY_SIZE_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-#
-# /* NDNBOOST_PP_ARRAY_SIZE */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
-#    define NDNBOOST_PP_ARRAY_SIZE(array) NDNBOOST_PP_TUPLE_ELEM(2, 0, array)
-# else
-#    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
deleted file mode 100644
index b3ed9f6..0000000
--- a/include/ndnboost/preprocessor/cat.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_CAT_HPP
-# define NDNBOOST_PREPROCESSOR_CAT_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_CAT */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#    define NDNBOOST_PP_CAT(a, b) NDNBOOST_PP_CAT_I(a, b)
-# else
-#    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 ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
-#    define NDNBOOST_PP_CAT_I(a, b) a ## b
-# else
-#    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
deleted file mode 100644
index cabfbf1..0000000
--- a/include/ndnboost/preprocessor/comma_if.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_COMMA_IF_HPP
-# define NDNBOOST_PREPROCESSOR_COMMA_IF_HPP
-#
-# include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/comparison/less_equal.hpp b/include/ndnboost/preprocessor/comparison/less_equal.hpp
deleted file mode 100644
index 3c209c0..0000000
--- a/include/ndnboost/preprocessor/comparison/less_equal.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_LESS_EQUAL */
-#
-# 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 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
-#
-# /* NDNBOOST_PP_LESS_EQUAL_D */
-#
-# 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 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
deleted file mode 100644
index 6a59b4e..0000000
--- a/include/ndnboost/preprocessor/config/config.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002-2011.                             *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     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)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_CONFIG_CONFIG_HPP
-# define NDNBOOST_PREPROCESSOR_CONFIG_CONFIG_HPP
-#
-# /* NDNBOOST_PP_CONFIG_FLAGS */
-#
-# define NDNBOOST_PP_CONFIG_STRICT() 0x0001
-# define NDNBOOST_PP_CONFIG_IDEAL() 0x0002
-#
-# 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 NDNBOOST_PP_CONFIG_FLAGS
-#    if defined(__GCCXML__)
-#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
-#    elif defined(__WAVE__)
-#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
-#    elif defined(__MWERKS__) && __MWERKS__ >= 0x3200
-#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
-#    elif defined(__EDG__) || defined(__EDG_VERSION__)
-#        if defined(_MSC_VER) && __EDG_VERSION__ >= 308
-#            define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_MSVC())
-#        else
-#            define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_EDG() | NDNBOOST_PP_CONFIG_STRICT())
-#        endif
-#    elif defined(__MWERKS__)
-#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_MWCC())
-#    elif defined(__DMC__)
-#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_DMC())
-#    elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581
-#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
-#    elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
-#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_BCC())
-#    elif defined(_MSC_VER)
-#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_MSVC())
-#    else
-#        define NDNBOOST_PP_CONFIG_FLAGS() (NDNBOOST_PP_CONFIG_STRICT())
-#    endif
-# endif
-#
-# /* NDNBOOST_PP_CONFIG_EXTENDED_LINE_INFO */
-#
-# ifndef NDNBOOST_PP_CONFIG_EXTENDED_LINE_INFO
-#    define NDNBOOST_PP_CONFIG_EXTENDED_LINE_INFO 0
-# endif
-#
-# /* NDNBOOST_PP_CONFIG_ERRORS */
-#
-# ifndef NDNBOOST_PP_CONFIG_ERRORS
-#    ifdef NDEBUG
-#        define NDNBOOST_PP_CONFIG_ERRORS 0
-#    else
-#        define NDNBOOST_PP_CONFIG_ERRORS 1
-#    endif
-# endif
-#
-# /* NDNBOOST_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 NDNBOOST_PP_VARIADICS 0
-#    /* VC++ (C/C++) */
-#    elif defined _MSC_VER && _MSC_VER >= 1400 && !defined __EDG__
-#        if _MSC_VER >= 1400
-#            define NDNBOOST_PP_VARIADICS 1
-#            define NDNBOOST_PP_VARIADICS_MSVC 1
-#        else
-#            define NDNBOOST_PP_VARIADICS 0
-#        endif
-#    /* Wave (C/C++), GCC (C++) */
-#    elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__
-#        define NDNBOOST_PP_VARIADICS 1
-#    /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */
-#    elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
-#        define NDNBOOST_PP_VARIADICS 1
-#    else
-#        define NDNBOOST_PP_VARIADICS 0
-#    endif
-# 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 NDNBOOST_PP_VARIADICS_MSVC 1
-#    endif
-# else
-#    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
deleted file mode 100644
index 6c74cc0..0000000
--- a/include/ndnboost/preprocessor/control/deduce_d.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_DEDUCE_D */
-#
-# 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
deleted file mode 100644
index a766d9b..0000000
--- a/include/ndnboost/preprocessor/control/detail/dmc/while.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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
deleted file mode 100644
index ee1303f..0000000
--- a/include/ndnboost/preprocessor/control/detail/edg/while.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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
deleted file mode 100644
index bac9861..0000000
--- a/include/ndnboost/preprocessor/control/detail/msvc/while.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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
deleted file mode 100644
index a1e9ee1..0000000
--- a/include/ndnboost/preprocessor/control/detail/while.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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
deleted file mode 100644
index b51a326..0000000
--- a/include/ndnboost/preprocessor/control/expr_if.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_EXPR_IF */
-#
-# 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 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
deleted file mode 100644
index 0fa4aea..0000000
--- a/include/ndnboost/preprocessor/control/expr_iif.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
-# define NDNBOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_EXPR_IIF */
-#
-# 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 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 NDNBOOST_PP_EXPR_IIF_I(bit, expr) NDNBOOST_PP_EXPR_IIF_ ## bit(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
deleted file mode 100644
index 2b2f1c7..0000000
--- a/include/ndnboost/preprocessor/control/if.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_IF */
-#
-# 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 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
deleted file mode 100644
index 5cc6f22..0000000
--- a/include/ndnboost/preprocessor/control/iif.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_CONTROL_IIF_HPP
-# define NDNBOOST_PREPROCESSOR_CONTROL_IIF_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# 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 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 ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
-#    define NDNBOOST_PP_IIF_I(bit, t, f) NDNBOOST_PP_IIF_ ## bit(t, f)
-# else
-#    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 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
deleted file mode 100644
index a53c398..0000000
--- a/include/ndnboost/preprocessor/control/while.hpp
+++ /dev/null
@@ -1,312 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_CONTROL_WHILE_HPP
-# define NDNBOOST_PREPROCESSOR_CONTROL_WHILE_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/debug/error.hpp>
-# include <ndnboost/preprocessor/detail/auto_rec.hpp>
-# include <ndnboost/preprocessor/list/fold_left.hpp>
-# include <ndnboost/preprocessor/list/fold_right.hpp>
-# include <ndnboost/preprocessor/logical/bitand.hpp>
-#
-# /* NDNBOOST_PP_WHILE */
-#
-# if 0
-#    define NDNBOOST_PP_WHILE(pred, op, state)
-# endif
-#
-# define NDNBOOST_PP_WHILE NDNBOOST_PP_CAT(NDNBOOST_PP_WHILE_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256))
-#
-# 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 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 NDNBOOST_PP_WHILE_F(d, _) 0
-#
-# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
-#    include <ndnboost/preprocessor/control/detail/edg/while.hpp>
-# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
-#    include <ndnboost/preprocessor/control/detail/msvc/while.hpp>
-# 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 NDNBOOST_PP_WHILE_257(p, o, s) NDNBOOST_PP_ERROR(0x0001)
-#
-# define NDNBOOST_PP_WHILE_CHECK_NDNBOOST_PP_NIL 1
-#
-# 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
deleted file mode 100644
index 69f1358..0000000
--- a/include/ndnboost/preprocessor/debug/error.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_DEBUG_ERROR_HPP
-# define NDNBOOST_PREPROCESSOR_DEBUG_ERROR_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_ERROR */
-#
-# if NDNBOOST_PP_CONFIG_ERRORS
-#    define NDNBOOST_PP_ERROR(code) NDNBOOST_PP_CAT(NDNBOOST_PP_ERROR_, code)
-# endif
-#
-# 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
deleted file mode 100644
index 148e739..0000000
--- a/include/ndnboost/preprocessor/dec.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_DEC_HPP
-# define NDNBOOST_PREPROCESSOR_DEC_HPP
-#
-# include <ndnboost/preprocessor/arithmetic/dec.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/detail/auto_rec.hpp b/include/ndnboost/preprocessor/detail/auto_rec.hpp
deleted file mode 100644
index 0bf4ace..0000000
--- a/include/ndnboost/preprocessor/detail/auto_rec.hpp
+++ /dev/null
@@ -1,293 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# if NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_DMC()
-#     include <ndnboost/preprocessor/detail/dmc/auto_rec.hpp>
-# else
-#
-# ifndef NDNBOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-# define NDNBOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-#
-# include <ndnboost/preprocessor/control/iif.hpp>
-#
-# /* NDNBOOST_PP_AUTO_REC */
-#
-# define NDNBOOST_PP_AUTO_REC(pred, n) NDNBOOST_PP_NODE_ENTRY_ ## n(pred)
-#
-# 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 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
deleted file mode 100644
index 8a08e3e..0000000
--- a/include/ndnboost/preprocessor/detail/check.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_DETAIL_CHECK_HPP
-# define NDNBOOST_PREPROCESSOR_DETAIL_CHECK_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_CHECK */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#    define NDNBOOST_PP_CHECK(x, type) NDNBOOST_PP_CHECK_D(x, type)
-# else
-#    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 ~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 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 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
deleted file mode 100644
index 1f2e6b5..0000000
--- a/include/ndnboost/preprocessor/detail/dmc/auto_rec.hpp
+++ /dev/null
@@ -1,286 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-# define NDNBOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-#
-# include <ndnboost/preprocessor/control/iif.hpp>
-#
-# /* NDNBOOST_PP_AUTO_REC */
-#
-# define NDNBOOST_PP_AUTO_REC(pred, n) NDNBOOST_PP_NODE_ENTRY_ ## n(pred)
-#
-# 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 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
deleted file mode 100644
index c08777f..0000000
--- a/include/ndnboost/preprocessor/detail/is_binary.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_IS_BINARY */
-#
-# 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 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 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
deleted file mode 100644
index e1aaf59..0000000
--- a/include/ndnboost/preprocessor/detail/is_unary.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_IS_UNARY */
-#
-# 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 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 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
deleted file mode 100644
index bdb9ada..0000000
--- a/include/ndnboost/preprocessor/empty.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_EMPTY_HPP
-# define NDNBOOST_PREPROCESSOR_EMPTY_HPP
-#
-# include <ndnboost/preprocessor/facilities/empty.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/enum.hpp b/include/ndnboost/preprocessor/enum.hpp
deleted file mode 100644
index 0ddb8a0..0000000
--- a/include/ndnboost/preprocessor/enum.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ENUM_HPP
-# define NDNBOOST_PREPROCESSOR_ENUM_HPP
-#
-# include <ndnboost/preprocessor/repetition/enum.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/enum_params.hpp b/include/ndnboost/preprocessor/enum_params.hpp
deleted file mode 100644
index f11f6df..0000000
--- a/include/ndnboost/preprocessor/enum_params.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ENUM_PARAMS_HPP
-# define NDNBOOST_PREPROCESSOR_ENUM_PARAMS_HPP
-#
-# include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/enum_params_with_a_default.hpp b/include/ndnboost/preprocessor/enum_params_with_a_default.hpp
deleted file mode 100644
index ed80fbc..0000000
--- a/include/ndnboost/preprocessor/enum_params_with_a_default.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/enum_shifted_params.hpp b/include/ndnboost/preprocessor/enum_shifted_params.hpp
deleted file mode 100644
index 497a22a..0000000
--- a/include/ndnboost/preprocessor/enum_shifted_params.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
-# define NDNBOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
-#
-# include <ndnboost/preprocessor/repetition/enum_shifted_params.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/expr_if.hpp b/include/ndnboost/preprocessor/expr_if.hpp
deleted file mode 100644
index 0bd3027..0000000
--- a/include/ndnboost/preprocessor/expr_if.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_EXPR_IF_HPP
-# define NDNBOOST_PREPROCESSOR_EXPR_IF_HPP
-#
-# include <ndnboost/preprocessor/control/expr_if.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/facilities/empty.hpp b/include/ndnboost/preprocessor/facilities/empty.hpp
deleted file mode 100644
index e3fd3ea..0000000
--- a/include/ndnboost/preprocessor/facilities/empty.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP
-# define NDNBOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP
-#
-# /* NDNBOOST_PP_EMPTY */
-#
-# define NDNBOOST_PP_EMPTY()
-#
-# endif
diff --git a/include/ndnboost/preprocessor/facilities/identity.hpp b/include/ndnboost/preprocessor/facilities/identity.hpp
deleted file mode 100644
index 6e14af4..0000000
--- a/include/ndnboost/preprocessor/facilities/identity.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP
-# define NDNBOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP
-#
-# include <ndnboost/preprocessor/facilities/empty.hpp>
-#
-# /* NDNBOOST_PP_IDENTITY */
-#
-# 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
deleted file mode 100644
index 8a22566..0000000
--- a/include/ndnboost/preprocessor/facilities/intercept.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
-# define NDNBOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
-#
-# /* NDNBOOST_PP_INTERCEPT */
-#
-# define NDNBOOST_PP_INTERCEPT NDNBOOST_PP_INTERCEPT_
-#
-# 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
deleted file mode 100644
index 769eedd..0000000
--- a/include/ndnboost/preprocessor/facilities/overload.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2011.                                  *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     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)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
-# define NDNBOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/variadic/size.hpp>
-#
-# /* NDNBOOST_PP_OVERLOAD */
-#
-# 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
deleted file mode 100644
index e06bd58..0000000
--- a/include/ndnboost/preprocessor/identity.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_IDENTITY_HPP
-# define NDNBOOST_PREPROCESSOR_IDENTITY_HPP
-#
-# include <ndnboost/preprocessor/facilities/identity.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/if.hpp b/include/ndnboost/preprocessor/if.hpp
deleted file mode 100644
index 8a44ed0..0000000
--- a/include/ndnboost/preprocessor/if.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_IF_HPP
-# define NDNBOOST_PREPROCESSOR_IF_HPP
-#
-# include <ndnboost/preprocessor/control/if.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/inc.hpp b/include/ndnboost/preprocessor/inc.hpp
deleted file mode 100644
index c45b668..0000000
--- a/include/ndnboost/preprocessor/inc.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_INC_HPP
-# define NDNBOOST_PREPROCESSOR_INC_HPP
-#
-# include <ndnboost/preprocessor/arithmetic/inc.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/iterate.hpp b/include/ndnboost/preprocessor/iterate.hpp
deleted file mode 100644
index 10b2f37..0000000
--- a/include/ndnboost/preprocessor/iterate.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ITERATE_HPP
-# define NDNBOOST_PREPROCESSOR_ITERATE_HPP
-#
-# include <ndnboost/preprocessor/iteration/iterate.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp b/include/ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp
deleted file mode 100644
index 4d7166e..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_START_1
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index 379b2dd..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower2.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_START_2
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index b4e3453..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower3.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_START_3
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index 4ecd799..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower4.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_START_4
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index 120c539..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/lower5.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_START_5
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index a8547fd..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper1.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_FINISH_1
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index 5d82aaf..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper2.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_FINISH_2
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index b285717..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper3.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_FINISH_3
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index b8610c0..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper4.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_FINISH_4
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index d787c7f..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/bounds/upper5.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_ITERATION_FINISH_5
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index 738172c..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/finish.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_LOCAL_FE
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index dd29460..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward1.hpp
+++ /dev/null
@@ -1,1342 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(NDNBOOST_PP_ITERATION_LIMITS)
-#    if !defined(NDNBOOST_PP_FILENAME_1)
-#        error NDNBOOST_PP_ERROR:  depth #1 filename is not defined
-#    endif
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/lower1.hpp>
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper1.hpp>
-#    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 NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_1)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper1.hpp>
-#    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 NDNBOOST_PP_ITERATION_FLAGS_1() 0
-#    endif
-# else
-#    error NDNBOOST_PP_ERROR:  depth #1 iteration boundaries or filename not defined
-# endif
-#
-# undef NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 1
-#
-# define NDNBOOST_PP_IS_ITERATING 1
-#
-# if (NDNBOOST_PP_ITERATION_START_1) > (NDNBOOST_PP_ITERATION_FINISH_1)
-#    include <ndnboost/preprocessor/iteration/detail/iter/reverse1.hpp>
-# else
-#    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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 NDNBOOST_PP_IS_ITERATING
-#
-# undef NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 0
-#
-# undef NDNBOOST_PP_ITERATION_START_1
-# undef NDNBOOST_PP_ITERATION_FINISH_1
-# undef NDNBOOST_PP_FILENAME_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
deleted file mode 100644
index 09a2d9c..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward2.hpp
+++ /dev/null
@@ -1,1338 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(NDNBOOST_PP_ITERATION_LIMITS)
-#    if !defined(NDNBOOST_PP_FILENAME_2)
-#        error NDNBOOST_PP_ERROR:  depth #2 filename is not defined
-#    endif
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/lower2.hpp>
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper2.hpp>
-#    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 NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_2)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper2.hpp>
-#    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 NDNBOOST_PP_ITERATION_FLAGS_2() 0
-#    endif
-# else
-#    error NDNBOOST_PP_ERROR:  depth #2 iteration boundaries or filename not defined
-# endif
-#
-# undef NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 2
-#
-# if (NDNBOOST_PP_ITERATION_START_2) > (NDNBOOST_PP_ITERATION_FINISH_2)
-#    include <ndnboost/preprocessor/iteration/detail/iter/reverse2.hpp>
-# else
-#    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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 1
-#
-# undef NDNBOOST_PP_ITERATION_START_2
-# undef NDNBOOST_PP_ITERATION_FINISH_2
-# undef NDNBOOST_PP_FILENAME_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
deleted file mode 100644
index ed79e18..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward3.hpp
+++ /dev/null
@@ -1,1338 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(NDNBOOST_PP_ITERATION_LIMITS)
-#    if !defined(NDNBOOST_PP_FILENAME_3)
-#        error NDNBOOST_PP_ERROR:  depth #3 filename is not defined
-#    endif
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/lower3.hpp>
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper3.hpp>
-#    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 NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_3)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper3.hpp>
-#    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 NDNBOOST_PP_ITERATION_FLAGS_3() 0
-#    endif
-# else
-#    error NDNBOOST_PP_ERROR:  depth #3 iteration boundaries or filename not defined
-# endif
-#
-# undef NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 3
-#
-# if (NDNBOOST_PP_ITERATION_START_3) > (NDNBOOST_PP_ITERATION_FINISH_3)
-#    include <ndnboost/preprocessor/iteration/detail/iter/reverse3.hpp>
-# else
-#    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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 2
-#
-# undef NDNBOOST_PP_ITERATION_START_3
-# undef NDNBOOST_PP_ITERATION_FINISH_3
-# undef NDNBOOST_PP_FILENAME_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
deleted file mode 100644
index 4bc2152..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward4.hpp
+++ /dev/null
@@ -1,1338 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(NDNBOOST_PP_ITERATION_LIMITS)
-#    if !defined(NDNBOOST_PP_FILENAME_4)
-#        error NDNBOOST_PP_ERROR:  depth #4 filename is not defined
-#    endif
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/lower4.hpp>
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper4.hpp>
-#    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 NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_4)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper4.hpp>
-#    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 NDNBOOST_PP_ITERATION_FLAGS_4() 0
-#    endif
-# else
-#    error NDNBOOST_PP_ERROR:  depth #4 iteration boundaries or filename not defined
-# endif
-#
-# undef NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 4
-#
-# if (NDNBOOST_PP_ITERATION_START_4) > (NDNBOOST_PP_ITERATION_FINISH_4)
-#    include <ndnboost/preprocessor/iteration/detail/iter/reverse4.hpp>
-# else
-#    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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 3
-#
-# undef NDNBOOST_PP_ITERATION_START_4
-# undef NDNBOOST_PP_ITERATION_FINISH_4
-# undef NDNBOOST_PP_FILENAME_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
deleted file mode 100644
index e9febb1..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/forward5.hpp
+++ /dev/null
@@ -1,1338 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(NDNBOOST_PP_ITERATION_LIMITS)
-#    if !defined(NDNBOOST_PP_FILENAME_5)
-#        error NDNBOOST_PP_ERROR:  depth #5 filename is not defined
-#    endif
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/lower5.hpp>
-#    define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_ITERATION_LIMITS)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper5.hpp>
-#    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 NDNBOOST_PP_VALUE NDNBOOST_PP_ARRAY_ELEM(1, NDNBOOST_PP_ITERATION_PARAMS_5)
-#    include <ndnboost/preprocessor/iteration/detail/bounds/upper5.hpp>
-#    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 NDNBOOST_PP_ITERATION_FLAGS_5() 0
-#    endif
-# else
-#    error NDNBOOST_PP_ERROR:  depth #5 iteration boundaries or filename not defined
-# endif
-#
-# undef NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 5
-#
-# if (NDNBOOST_PP_ITERATION_START_5) > (NDNBOOST_PP_ITERATION_FINISH_5)
-#    include <ndnboost/preprocessor/iteration/detail/iter/reverse5.hpp>
-# else
-#    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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 NDNBOOST_PP_ITERATION_DEPTH
-# define NDNBOOST_PP_ITERATION_DEPTH() 4
-#
-# undef NDNBOOST_PP_ITERATION_START_5
-# undef NDNBOOST_PP_ITERATION_FINISH_5
-# undef NDNBOOST_PP_FILENAME_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
deleted file mode 100644
index bb01af1..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse1.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 56cc6b9..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse2.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 03810a4..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse3.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index e9e7736..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse4.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 53bebd7..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/iter/reverse5.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 1ec14a2..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/local.hpp
+++ /dev/null
@@ -1,812 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 ~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 NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 0, NDNBOOST_PP_LOCAL_LIMITS)
-#        include <ndnboost/preprocessor/iteration/detail/start.hpp>
-#        define NDNBOOST_PP_VALUE NDNBOOST_PP_TUPLE_ELEM(2, 1, NDNBOOST_PP_LOCAL_LIMITS)
-#        include <ndnboost/preprocessor/iteration/detail/finish.hpp>
-#        define NDNBOOST_PP_LOCAL_S NDNBOOST_PP_LOCAL_SE()
-#        define NDNBOOST_PP_LOCAL_F NDNBOOST_PP_LOCAL_FE()
-#    endif
-# endif
-#
-# if (NDNBOOST_PP_LOCAL_S) > (NDNBOOST_PP_LOCAL_F)
-#    include <ndnboost/preprocessor/iteration/detail/rlocal.hpp>
-# else
-#    if NDNBOOST_PP_LOCAL_C(0)
-        NDNBOOST_PP_LOCAL_MACRO(0)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(1)
-        NDNBOOST_PP_LOCAL_MACRO(1)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(2)
-        NDNBOOST_PP_LOCAL_MACRO(2)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(3)
-        NDNBOOST_PP_LOCAL_MACRO(3)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(4)
-        NDNBOOST_PP_LOCAL_MACRO(4)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(5)
-        NDNBOOST_PP_LOCAL_MACRO(5)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(6)
-        NDNBOOST_PP_LOCAL_MACRO(6)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(7)
-        NDNBOOST_PP_LOCAL_MACRO(7)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(8)
-        NDNBOOST_PP_LOCAL_MACRO(8)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(9)
-        NDNBOOST_PP_LOCAL_MACRO(9)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(10)
-        NDNBOOST_PP_LOCAL_MACRO(10)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(11)
-        NDNBOOST_PP_LOCAL_MACRO(11)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(12)
-        NDNBOOST_PP_LOCAL_MACRO(12)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(13)
-        NDNBOOST_PP_LOCAL_MACRO(13)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(14)
-        NDNBOOST_PP_LOCAL_MACRO(14)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(15)
-        NDNBOOST_PP_LOCAL_MACRO(15)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(16)
-        NDNBOOST_PP_LOCAL_MACRO(16)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(17)
-        NDNBOOST_PP_LOCAL_MACRO(17)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(18)
-        NDNBOOST_PP_LOCAL_MACRO(18)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(19)
-        NDNBOOST_PP_LOCAL_MACRO(19)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(20)
-        NDNBOOST_PP_LOCAL_MACRO(20)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(21)
-        NDNBOOST_PP_LOCAL_MACRO(21)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(22)
-        NDNBOOST_PP_LOCAL_MACRO(22)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(23)
-        NDNBOOST_PP_LOCAL_MACRO(23)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(24)
-        NDNBOOST_PP_LOCAL_MACRO(24)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(25)
-        NDNBOOST_PP_LOCAL_MACRO(25)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(26)
-        NDNBOOST_PP_LOCAL_MACRO(26)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(27)
-        NDNBOOST_PP_LOCAL_MACRO(27)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(28)
-        NDNBOOST_PP_LOCAL_MACRO(28)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(29)
-        NDNBOOST_PP_LOCAL_MACRO(29)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(30)
-        NDNBOOST_PP_LOCAL_MACRO(30)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(31)
-        NDNBOOST_PP_LOCAL_MACRO(31)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(32)
-        NDNBOOST_PP_LOCAL_MACRO(32)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(33)
-        NDNBOOST_PP_LOCAL_MACRO(33)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(34)
-        NDNBOOST_PP_LOCAL_MACRO(34)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(35)
-        NDNBOOST_PP_LOCAL_MACRO(35)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(36)
-        NDNBOOST_PP_LOCAL_MACRO(36)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(37)
-        NDNBOOST_PP_LOCAL_MACRO(37)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(38)
-        NDNBOOST_PP_LOCAL_MACRO(38)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(39)
-        NDNBOOST_PP_LOCAL_MACRO(39)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(40)
-        NDNBOOST_PP_LOCAL_MACRO(40)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(41)
-        NDNBOOST_PP_LOCAL_MACRO(41)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(42)
-        NDNBOOST_PP_LOCAL_MACRO(42)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(43)
-        NDNBOOST_PP_LOCAL_MACRO(43)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(44)
-        NDNBOOST_PP_LOCAL_MACRO(44)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(45)
-        NDNBOOST_PP_LOCAL_MACRO(45)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(46)
-        NDNBOOST_PP_LOCAL_MACRO(46)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(47)
-        NDNBOOST_PP_LOCAL_MACRO(47)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(48)
-        NDNBOOST_PP_LOCAL_MACRO(48)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(49)
-        NDNBOOST_PP_LOCAL_MACRO(49)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(50)
-        NDNBOOST_PP_LOCAL_MACRO(50)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(51)
-        NDNBOOST_PP_LOCAL_MACRO(51)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(52)
-        NDNBOOST_PP_LOCAL_MACRO(52)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(53)
-        NDNBOOST_PP_LOCAL_MACRO(53)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(54)
-        NDNBOOST_PP_LOCAL_MACRO(54)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(55)
-        NDNBOOST_PP_LOCAL_MACRO(55)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(56)
-        NDNBOOST_PP_LOCAL_MACRO(56)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(57)
-        NDNBOOST_PP_LOCAL_MACRO(57)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(58)
-        NDNBOOST_PP_LOCAL_MACRO(58)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(59)
-        NDNBOOST_PP_LOCAL_MACRO(59)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(60)
-        NDNBOOST_PP_LOCAL_MACRO(60)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(61)
-        NDNBOOST_PP_LOCAL_MACRO(61)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(62)
-        NDNBOOST_PP_LOCAL_MACRO(62)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(63)
-        NDNBOOST_PP_LOCAL_MACRO(63)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(64)
-        NDNBOOST_PP_LOCAL_MACRO(64)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(65)
-        NDNBOOST_PP_LOCAL_MACRO(65)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(66)
-        NDNBOOST_PP_LOCAL_MACRO(66)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(67)
-        NDNBOOST_PP_LOCAL_MACRO(67)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(68)
-        NDNBOOST_PP_LOCAL_MACRO(68)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(69)
-        NDNBOOST_PP_LOCAL_MACRO(69)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(70)
-        NDNBOOST_PP_LOCAL_MACRO(70)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(71)
-        NDNBOOST_PP_LOCAL_MACRO(71)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(72)
-        NDNBOOST_PP_LOCAL_MACRO(72)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(73)
-        NDNBOOST_PP_LOCAL_MACRO(73)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(74)
-        NDNBOOST_PP_LOCAL_MACRO(74)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(75)
-        NDNBOOST_PP_LOCAL_MACRO(75)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(76)
-        NDNBOOST_PP_LOCAL_MACRO(76)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(77)
-        NDNBOOST_PP_LOCAL_MACRO(77)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(78)
-        NDNBOOST_PP_LOCAL_MACRO(78)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(79)
-        NDNBOOST_PP_LOCAL_MACRO(79)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(80)
-        NDNBOOST_PP_LOCAL_MACRO(80)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(81)
-        NDNBOOST_PP_LOCAL_MACRO(81)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(82)
-        NDNBOOST_PP_LOCAL_MACRO(82)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(83)
-        NDNBOOST_PP_LOCAL_MACRO(83)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(84)
-        NDNBOOST_PP_LOCAL_MACRO(84)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(85)
-        NDNBOOST_PP_LOCAL_MACRO(85)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(86)
-        NDNBOOST_PP_LOCAL_MACRO(86)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(87)
-        NDNBOOST_PP_LOCAL_MACRO(87)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(88)
-        NDNBOOST_PP_LOCAL_MACRO(88)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(89)
-        NDNBOOST_PP_LOCAL_MACRO(89)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(90)
-        NDNBOOST_PP_LOCAL_MACRO(90)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(91)
-        NDNBOOST_PP_LOCAL_MACRO(91)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(92)
-        NDNBOOST_PP_LOCAL_MACRO(92)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(93)
-        NDNBOOST_PP_LOCAL_MACRO(93)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(94)
-        NDNBOOST_PP_LOCAL_MACRO(94)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(95)
-        NDNBOOST_PP_LOCAL_MACRO(95)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(96)
-        NDNBOOST_PP_LOCAL_MACRO(96)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(97)
-        NDNBOOST_PP_LOCAL_MACRO(97)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(98)
-        NDNBOOST_PP_LOCAL_MACRO(98)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(99)
-        NDNBOOST_PP_LOCAL_MACRO(99)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(100)
-        NDNBOOST_PP_LOCAL_MACRO(100)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(101)
-        NDNBOOST_PP_LOCAL_MACRO(101)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(102)
-        NDNBOOST_PP_LOCAL_MACRO(102)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(103)
-        NDNBOOST_PP_LOCAL_MACRO(103)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(104)
-        NDNBOOST_PP_LOCAL_MACRO(104)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(105)
-        NDNBOOST_PP_LOCAL_MACRO(105)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(106)
-        NDNBOOST_PP_LOCAL_MACRO(106)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(107)
-        NDNBOOST_PP_LOCAL_MACRO(107)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(108)
-        NDNBOOST_PP_LOCAL_MACRO(108)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(109)
-        NDNBOOST_PP_LOCAL_MACRO(109)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(110)
-        NDNBOOST_PP_LOCAL_MACRO(110)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(111)
-        NDNBOOST_PP_LOCAL_MACRO(111)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(112)
-        NDNBOOST_PP_LOCAL_MACRO(112)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(113)
-        NDNBOOST_PP_LOCAL_MACRO(113)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(114)
-        NDNBOOST_PP_LOCAL_MACRO(114)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(115)
-        NDNBOOST_PP_LOCAL_MACRO(115)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(116)
-        NDNBOOST_PP_LOCAL_MACRO(116)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(117)
-        NDNBOOST_PP_LOCAL_MACRO(117)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(118)
-        NDNBOOST_PP_LOCAL_MACRO(118)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(119)
-        NDNBOOST_PP_LOCAL_MACRO(119)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(120)
-        NDNBOOST_PP_LOCAL_MACRO(120)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(121)
-        NDNBOOST_PP_LOCAL_MACRO(121)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(122)
-        NDNBOOST_PP_LOCAL_MACRO(122)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(123)
-        NDNBOOST_PP_LOCAL_MACRO(123)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(124)
-        NDNBOOST_PP_LOCAL_MACRO(124)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(125)
-        NDNBOOST_PP_LOCAL_MACRO(125)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(126)
-        NDNBOOST_PP_LOCAL_MACRO(126)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(127)
-        NDNBOOST_PP_LOCAL_MACRO(127)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(128)
-        NDNBOOST_PP_LOCAL_MACRO(128)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(129)
-        NDNBOOST_PP_LOCAL_MACRO(129)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(130)
-        NDNBOOST_PP_LOCAL_MACRO(130)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(131)
-        NDNBOOST_PP_LOCAL_MACRO(131)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(132)
-        NDNBOOST_PP_LOCAL_MACRO(132)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(133)
-        NDNBOOST_PP_LOCAL_MACRO(133)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(134)
-        NDNBOOST_PP_LOCAL_MACRO(134)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(135)
-        NDNBOOST_PP_LOCAL_MACRO(135)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(136)
-        NDNBOOST_PP_LOCAL_MACRO(136)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(137)
-        NDNBOOST_PP_LOCAL_MACRO(137)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(138)
-        NDNBOOST_PP_LOCAL_MACRO(138)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(139)
-        NDNBOOST_PP_LOCAL_MACRO(139)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(140)
-        NDNBOOST_PP_LOCAL_MACRO(140)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(141)
-        NDNBOOST_PP_LOCAL_MACRO(141)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(142)
-        NDNBOOST_PP_LOCAL_MACRO(142)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(143)
-        NDNBOOST_PP_LOCAL_MACRO(143)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(144)
-        NDNBOOST_PP_LOCAL_MACRO(144)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(145)
-        NDNBOOST_PP_LOCAL_MACRO(145)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(146)
-        NDNBOOST_PP_LOCAL_MACRO(146)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(147)
-        NDNBOOST_PP_LOCAL_MACRO(147)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(148)
-        NDNBOOST_PP_LOCAL_MACRO(148)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(149)
-        NDNBOOST_PP_LOCAL_MACRO(149)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(150)
-        NDNBOOST_PP_LOCAL_MACRO(150)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(151)
-        NDNBOOST_PP_LOCAL_MACRO(151)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(152)
-        NDNBOOST_PP_LOCAL_MACRO(152)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(153)
-        NDNBOOST_PP_LOCAL_MACRO(153)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(154)
-        NDNBOOST_PP_LOCAL_MACRO(154)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(155)
-        NDNBOOST_PP_LOCAL_MACRO(155)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(156)
-        NDNBOOST_PP_LOCAL_MACRO(156)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(157)
-        NDNBOOST_PP_LOCAL_MACRO(157)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(158)
-        NDNBOOST_PP_LOCAL_MACRO(158)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(159)
-        NDNBOOST_PP_LOCAL_MACRO(159)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(160)
-        NDNBOOST_PP_LOCAL_MACRO(160)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(161)
-        NDNBOOST_PP_LOCAL_MACRO(161)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(162)
-        NDNBOOST_PP_LOCAL_MACRO(162)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(163)
-        NDNBOOST_PP_LOCAL_MACRO(163)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(164)
-        NDNBOOST_PP_LOCAL_MACRO(164)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(165)
-        NDNBOOST_PP_LOCAL_MACRO(165)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(166)
-        NDNBOOST_PP_LOCAL_MACRO(166)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(167)
-        NDNBOOST_PP_LOCAL_MACRO(167)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(168)
-        NDNBOOST_PP_LOCAL_MACRO(168)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(169)
-        NDNBOOST_PP_LOCAL_MACRO(169)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(170)
-        NDNBOOST_PP_LOCAL_MACRO(170)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(171)
-        NDNBOOST_PP_LOCAL_MACRO(171)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(172)
-        NDNBOOST_PP_LOCAL_MACRO(172)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(173)
-        NDNBOOST_PP_LOCAL_MACRO(173)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(174)
-        NDNBOOST_PP_LOCAL_MACRO(174)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(175)
-        NDNBOOST_PP_LOCAL_MACRO(175)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(176)
-        NDNBOOST_PP_LOCAL_MACRO(176)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(177)
-        NDNBOOST_PP_LOCAL_MACRO(177)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(178)
-        NDNBOOST_PP_LOCAL_MACRO(178)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(179)
-        NDNBOOST_PP_LOCAL_MACRO(179)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(180)
-        NDNBOOST_PP_LOCAL_MACRO(180)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(181)
-        NDNBOOST_PP_LOCAL_MACRO(181)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(182)
-        NDNBOOST_PP_LOCAL_MACRO(182)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(183)
-        NDNBOOST_PP_LOCAL_MACRO(183)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(184)
-        NDNBOOST_PP_LOCAL_MACRO(184)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(185)
-        NDNBOOST_PP_LOCAL_MACRO(185)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(186)
-        NDNBOOST_PP_LOCAL_MACRO(186)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(187)
-        NDNBOOST_PP_LOCAL_MACRO(187)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(188)
-        NDNBOOST_PP_LOCAL_MACRO(188)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(189)
-        NDNBOOST_PP_LOCAL_MACRO(189)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(190)
-        NDNBOOST_PP_LOCAL_MACRO(190)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(191)
-        NDNBOOST_PP_LOCAL_MACRO(191)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(192)
-        NDNBOOST_PP_LOCAL_MACRO(192)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(193)
-        NDNBOOST_PP_LOCAL_MACRO(193)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(194)
-        NDNBOOST_PP_LOCAL_MACRO(194)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(195)
-        NDNBOOST_PP_LOCAL_MACRO(195)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(196)
-        NDNBOOST_PP_LOCAL_MACRO(196)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(197)
-        NDNBOOST_PP_LOCAL_MACRO(197)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(198)
-        NDNBOOST_PP_LOCAL_MACRO(198)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(199)
-        NDNBOOST_PP_LOCAL_MACRO(199)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(200)
-        NDNBOOST_PP_LOCAL_MACRO(200)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(201)
-        NDNBOOST_PP_LOCAL_MACRO(201)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(202)
-        NDNBOOST_PP_LOCAL_MACRO(202)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(203)
-        NDNBOOST_PP_LOCAL_MACRO(203)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(204)
-        NDNBOOST_PP_LOCAL_MACRO(204)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(205)
-        NDNBOOST_PP_LOCAL_MACRO(205)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(206)
-        NDNBOOST_PP_LOCAL_MACRO(206)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(207)
-        NDNBOOST_PP_LOCAL_MACRO(207)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(208)
-        NDNBOOST_PP_LOCAL_MACRO(208)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(209)
-        NDNBOOST_PP_LOCAL_MACRO(209)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(210)
-        NDNBOOST_PP_LOCAL_MACRO(210)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(211)
-        NDNBOOST_PP_LOCAL_MACRO(211)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(212)
-        NDNBOOST_PP_LOCAL_MACRO(212)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(213)
-        NDNBOOST_PP_LOCAL_MACRO(213)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(214)
-        NDNBOOST_PP_LOCAL_MACRO(214)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(215)
-        NDNBOOST_PP_LOCAL_MACRO(215)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(216)
-        NDNBOOST_PP_LOCAL_MACRO(216)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(217)
-        NDNBOOST_PP_LOCAL_MACRO(217)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(218)
-        NDNBOOST_PP_LOCAL_MACRO(218)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(219)
-        NDNBOOST_PP_LOCAL_MACRO(219)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(220)
-        NDNBOOST_PP_LOCAL_MACRO(220)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(221)
-        NDNBOOST_PP_LOCAL_MACRO(221)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(222)
-        NDNBOOST_PP_LOCAL_MACRO(222)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(223)
-        NDNBOOST_PP_LOCAL_MACRO(223)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(224)
-        NDNBOOST_PP_LOCAL_MACRO(224)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(225)
-        NDNBOOST_PP_LOCAL_MACRO(225)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(226)
-        NDNBOOST_PP_LOCAL_MACRO(226)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(227)
-        NDNBOOST_PP_LOCAL_MACRO(227)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(228)
-        NDNBOOST_PP_LOCAL_MACRO(228)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(229)
-        NDNBOOST_PP_LOCAL_MACRO(229)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(230)
-        NDNBOOST_PP_LOCAL_MACRO(230)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(231)
-        NDNBOOST_PP_LOCAL_MACRO(231)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(232)
-        NDNBOOST_PP_LOCAL_MACRO(232)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(233)
-        NDNBOOST_PP_LOCAL_MACRO(233)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(234)
-        NDNBOOST_PP_LOCAL_MACRO(234)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(235)
-        NDNBOOST_PP_LOCAL_MACRO(235)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(236)
-        NDNBOOST_PP_LOCAL_MACRO(236)
-#    endif
-
-#    if NDNBOOST_PP_LOCAL_C(237)
-        NDNBOOST_PP_LOCAL_MACRO(237)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(238)
-        NDNBOOST_PP_LOCAL_MACRO(238)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(239)
-        NDNBOOST_PP_LOCAL_MACRO(239)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(240)
-        NDNBOOST_PP_LOCAL_MACRO(240)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(241)
-        NDNBOOST_PP_LOCAL_MACRO(241)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(242)
-        NDNBOOST_PP_LOCAL_MACRO(242)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(243)
-        NDNBOOST_PP_LOCAL_MACRO(243)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(244)
-        NDNBOOST_PP_LOCAL_MACRO(244)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(245)
-        NDNBOOST_PP_LOCAL_MACRO(245)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(246)
-        NDNBOOST_PP_LOCAL_MACRO(246)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(247)
-        NDNBOOST_PP_LOCAL_MACRO(247)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(248)
-        NDNBOOST_PP_LOCAL_MACRO(248)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(249)
-        NDNBOOST_PP_LOCAL_MACRO(249)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(250)
-        NDNBOOST_PP_LOCAL_MACRO(250)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(251)
-        NDNBOOST_PP_LOCAL_MACRO(251)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(252)
-        NDNBOOST_PP_LOCAL_MACRO(252)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(253)
-        NDNBOOST_PP_LOCAL_MACRO(253)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(254)
-        NDNBOOST_PP_LOCAL_MACRO(254)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(255)
-        NDNBOOST_PP_LOCAL_MACRO(255)
-#    endif
-#    if NDNBOOST_PP_LOCAL_C(256)
-        NDNBOOST_PP_LOCAL_MACRO(256)
-#    endif
-# endif
-#
-# undef NDNBOOST_PP_LOCAL_LIMITS
-#
-# undef NDNBOOST_PP_LOCAL_S
-# undef NDNBOOST_PP_LOCAL_F
-#
-# undef NDNBOOST_PP_LOCAL_MACRO
diff --git a/include/ndnboost/preprocessor/iteration/detail/rlocal.hpp b/include/ndnboost/preprocessor/iteration/detail/rlocal.hpp
deleted file mode 100644
index ad601a7..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/rlocal.hpp
+++ /dev/null
@@ -1,782 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if NDNBOOST_PP_LOCAL_R(256)
-    NDNBOOST_PP_LOCAL_MACRO(256)
-# endif
-# if NDNBOOST_PP_LOCAL_R(255)
-    NDNBOOST_PP_LOCAL_MACRO(255)
-# endif
-# if NDNBOOST_PP_LOCAL_R(254)
-    NDNBOOST_PP_LOCAL_MACRO(254)
-# endif
-# if NDNBOOST_PP_LOCAL_R(253)
-    NDNBOOST_PP_LOCAL_MACRO(253)
-# endif
-# if NDNBOOST_PP_LOCAL_R(252)
-    NDNBOOST_PP_LOCAL_MACRO(252)
-# endif
-# if NDNBOOST_PP_LOCAL_R(251)
-    NDNBOOST_PP_LOCAL_MACRO(251)
-# endif
-# if NDNBOOST_PP_LOCAL_R(250)
-    NDNBOOST_PP_LOCAL_MACRO(250)
-# endif
-# if NDNBOOST_PP_LOCAL_R(249)
-    NDNBOOST_PP_LOCAL_MACRO(249)
-# endif
-# if NDNBOOST_PP_LOCAL_R(248)
-    NDNBOOST_PP_LOCAL_MACRO(248)
-# endif
-# if NDNBOOST_PP_LOCAL_R(247)
-    NDNBOOST_PP_LOCAL_MACRO(247)
-# endif
-# if NDNBOOST_PP_LOCAL_R(246)
-    NDNBOOST_PP_LOCAL_MACRO(246)
-# endif
-# if NDNBOOST_PP_LOCAL_R(245)
-    NDNBOOST_PP_LOCAL_MACRO(245)
-# endif
-# if NDNBOOST_PP_LOCAL_R(244)
-    NDNBOOST_PP_LOCAL_MACRO(244)
-# endif
-# if NDNBOOST_PP_LOCAL_R(243)
-    NDNBOOST_PP_LOCAL_MACRO(243)
-# endif
-# if NDNBOOST_PP_LOCAL_R(242)
-    NDNBOOST_PP_LOCAL_MACRO(242)
-# endif
-# if NDNBOOST_PP_LOCAL_R(241)
-    NDNBOOST_PP_LOCAL_MACRO(241)
-# endif
-# if NDNBOOST_PP_LOCAL_R(240)
-    NDNBOOST_PP_LOCAL_MACRO(240)
-# endif
-# if NDNBOOST_PP_LOCAL_R(239)
-    NDNBOOST_PP_LOCAL_MACRO(239)
-# endif
-# if NDNBOOST_PP_LOCAL_R(238)
-    NDNBOOST_PP_LOCAL_MACRO(238)
-# endif
-# if NDNBOOST_PP_LOCAL_R(237)
-    NDNBOOST_PP_LOCAL_MACRO(237)
-# endif
-# if NDNBOOST_PP_LOCAL_R(236)
-    NDNBOOST_PP_LOCAL_MACRO(236)
-# endif
-# if NDNBOOST_PP_LOCAL_R(235)
-    NDNBOOST_PP_LOCAL_MACRO(235)
-# endif
-# if NDNBOOST_PP_LOCAL_R(234)
-    NDNBOOST_PP_LOCAL_MACRO(234)
-# endif
-# if NDNBOOST_PP_LOCAL_R(233)
-    NDNBOOST_PP_LOCAL_MACRO(233)
-# endif
-# if NDNBOOST_PP_LOCAL_R(232)
-    NDNBOOST_PP_LOCAL_MACRO(232)
-# endif
-# if NDNBOOST_PP_LOCAL_R(231)
-    NDNBOOST_PP_LOCAL_MACRO(231)
-# endif
-# if NDNBOOST_PP_LOCAL_R(230)
-    NDNBOOST_PP_LOCAL_MACRO(230)
-# endif
-# if NDNBOOST_PP_LOCAL_R(229)
-    NDNBOOST_PP_LOCAL_MACRO(229)
-# endif
-# if NDNBOOST_PP_LOCAL_R(228)
-    NDNBOOST_PP_LOCAL_MACRO(228)
-# endif
-# if NDNBOOST_PP_LOCAL_R(227)
-    NDNBOOST_PP_LOCAL_MACRO(227)
-# endif
-# if NDNBOOST_PP_LOCAL_R(226)
-    NDNBOOST_PP_LOCAL_MACRO(226)
-# endif
-# if NDNBOOST_PP_LOCAL_R(225)
-    NDNBOOST_PP_LOCAL_MACRO(225)
-# endif
-# if NDNBOOST_PP_LOCAL_R(224)
-    NDNBOOST_PP_LOCAL_MACRO(224)
-# endif
-# if NDNBOOST_PP_LOCAL_R(223)
-    NDNBOOST_PP_LOCAL_MACRO(223)
-# endif
-# if NDNBOOST_PP_LOCAL_R(222)
-    NDNBOOST_PP_LOCAL_MACRO(222)
-# endif
-# if NDNBOOST_PP_LOCAL_R(221)
-    NDNBOOST_PP_LOCAL_MACRO(221)
-# endif
-# if NDNBOOST_PP_LOCAL_R(220)
-    NDNBOOST_PP_LOCAL_MACRO(220)
-# endif
-# if NDNBOOST_PP_LOCAL_R(219)
-    NDNBOOST_PP_LOCAL_MACRO(219)
-# endif
-# if NDNBOOST_PP_LOCAL_R(218)
-    NDNBOOST_PP_LOCAL_MACRO(218)
-# endif
-# if NDNBOOST_PP_LOCAL_R(217)
-    NDNBOOST_PP_LOCAL_MACRO(217)
-# endif
-# if NDNBOOST_PP_LOCAL_R(216)
-    NDNBOOST_PP_LOCAL_MACRO(216)
-# endif
-# if NDNBOOST_PP_LOCAL_R(215)
-    NDNBOOST_PP_LOCAL_MACRO(215)
-# endif
-# if NDNBOOST_PP_LOCAL_R(214)
-    NDNBOOST_PP_LOCAL_MACRO(214)
-# endif
-# if NDNBOOST_PP_LOCAL_R(213)
-    NDNBOOST_PP_LOCAL_MACRO(213)
-# endif
-# if NDNBOOST_PP_LOCAL_R(212)
-    NDNBOOST_PP_LOCAL_MACRO(212)
-# endif
-# if NDNBOOST_PP_LOCAL_R(211)
-    NDNBOOST_PP_LOCAL_MACRO(211)
-# endif
-# if NDNBOOST_PP_LOCAL_R(210)
-    NDNBOOST_PP_LOCAL_MACRO(210)
-# endif
-# if NDNBOOST_PP_LOCAL_R(209)
-    NDNBOOST_PP_LOCAL_MACRO(209)
-# endif
-# if NDNBOOST_PP_LOCAL_R(208)
-    NDNBOOST_PP_LOCAL_MACRO(208)
-# endif
-# if NDNBOOST_PP_LOCAL_R(207)
-    NDNBOOST_PP_LOCAL_MACRO(207)
-# endif
-# if NDNBOOST_PP_LOCAL_R(206)
-    NDNBOOST_PP_LOCAL_MACRO(206)
-# endif
-# if NDNBOOST_PP_LOCAL_R(205)
-    NDNBOOST_PP_LOCAL_MACRO(205)
-# endif
-# if NDNBOOST_PP_LOCAL_R(204)
-    NDNBOOST_PP_LOCAL_MACRO(204)
-# endif
-# if NDNBOOST_PP_LOCAL_R(203)
-    NDNBOOST_PP_LOCAL_MACRO(203)
-# endif
-# if NDNBOOST_PP_LOCAL_R(202)
-    NDNBOOST_PP_LOCAL_MACRO(202)
-# endif
-# if NDNBOOST_PP_LOCAL_R(201)
-    NDNBOOST_PP_LOCAL_MACRO(201)
-# endif
-# if NDNBOOST_PP_LOCAL_R(200)
-    NDNBOOST_PP_LOCAL_MACRO(200)
-# endif
-# if NDNBOOST_PP_LOCAL_R(199)
-    NDNBOOST_PP_LOCAL_MACRO(199)
-# endif
-# if NDNBOOST_PP_LOCAL_R(198)
-    NDNBOOST_PP_LOCAL_MACRO(198)
-# endif
-# if NDNBOOST_PP_LOCAL_R(197)
-    NDNBOOST_PP_LOCAL_MACRO(197)
-# endif
-# if NDNBOOST_PP_LOCAL_R(196)
-    NDNBOOST_PP_LOCAL_MACRO(196)
-# endif
-# if NDNBOOST_PP_LOCAL_R(195)
-    NDNBOOST_PP_LOCAL_MACRO(195)
-# endif
-# if NDNBOOST_PP_LOCAL_R(194)
-    NDNBOOST_PP_LOCAL_MACRO(194)
-# endif
-# if NDNBOOST_PP_LOCAL_R(193)
-    NDNBOOST_PP_LOCAL_MACRO(193)
-# endif
-# if NDNBOOST_PP_LOCAL_R(192)
-    NDNBOOST_PP_LOCAL_MACRO(192)
-# endif
-# if NDNBOOST_PP_LOCAL_R(191)
-    NDNBOOST_PP_LOCAL_MACRO(191)
-# endif
-# if NDNBOOST_PP_LOCAL_R(190)
-    NDNBOOST_PP_LOCAL_MACRO(190)
-# endif
-# if NDNBOOST_PP_LOCAL_R(189)
-    NDNBOOST_PP_LOCAL_MACRO(189)
-# endif
-# if NDNBOOST_PP_LOCAL_R(188)
-    NDNBOOST_PP_LOCAL_MACRO(188)
-# endif
-# if NDNBOOST_PP_LOCAL_R(187)
-    NDNBOOST_PP_LOCAL_MACRO(187)
-# endif
-# if NDNBOOST_PP_LOCAL_R(186)
-    NDNBOOST_PP_LOCAL_MACRO(186)
-# endif
-# if NDNBOOST_PP_LOCAL_R(185)
-    NDNBOOST_PP_LOCAL_MACRO(185)
-# endif
-# if NDNBOOST_PP_LOCAL_R(184)
-    NDNBOOST_PP_LOCAL_MACRO(184)
-# endif
-# if NDNBOOST_PP_LOCAL_R(183)
-    NDNBOOST_PP_LOCAL_MACRO(183)
-# endif
-# if NDNBOOST_PP_LOCAL_R(182)
-    NDNBOOST_PP_LOCAL_MACRO(182)
-# endif
-# if NDNBOOST_PP_LOCAL_R(181)
-    NDNBOOST_PP_LOCAL_MACRO(181)
-# endif
-# if NDNBOOST_PP_LOCAL_R(180)
-    NDNBOOST_PP_LOCAL_MACRO(180)
-# endif
-# if NDNBOOST_PP_LOCAL_R(179)
-    NDNBOOST_PP_LOCAL_MACRO(179)
-# endif
-# if NDNBOOST_PP_LOCAL_R(178)
-    NDNBOOST_PP_LOCAL_MACRO(178)
-# endif
-# if NDNBOOST_PP_LOCAL_R(177)
-    NDNBOOST_PP_LOCAL_MACRO(177)
-# endif
-# if NDNBOOST_PP_LOCAL_R(176)
-    NDNBOOST_PP_LOCAL_MACRO(176)
-# endif
-# if NDNBOOST_PP_LOCAL_R(175)
-    NDNBOOST_PP_LOCAL_MACRO(175)
-# endif
-# if NDNBOOST_PP_LOCAL_R(174)
-    NDNBOOST_PP_LOCAL_MACRO(174)
-# endif
-# if NDNBOOST_PP_LOCAL_R(173)
-    NDNBOOST_PP_LOCAL_MACRO(173)
-# endif
-# if NDNBOOST_PP_LOCAL_R(172)
-    NDNBOOST_PP_LOCAL_MACRO(172)
-# endif
-# if NDNBOOST_PP_LOCAL_R(171)
-    NDNBOOST_PP_LOCAL_MACRO(171)
-# endif
-# if NDNBOOST_PP_LOCAL_R(170)
-    NDNBOOST_PP_LOCAL_MACRO(170)
-# endif
-# if NDNBOOST_PP_LOCAL_R(169)
-    NDNBOOST_PP_LOCAL_MACRO(169)
-# endif
-# if NDNBOOST_PP_LOCAL_R(168)
-    NDNBOOST_PP_LOCAL_MACRO(168)
-# endif
-# if NDNBOOST_PP_LOCAL_R(167)
-    NDNBOOST_PP_LOCAL_MACRO(167)
-# endif
-# if NDNBOOST_PP_LOCAL_R(166)
-    NDNBOOST_PP_LOCAL_MACRO(166)
-# endif
-# if NDNBOOST_PP_LOCAL_R(165)
-    NDNBOOST_PP_LOCAL_MACRO(165)
-# endif
-# if NDNBOOST_PP_LOCAL_R(164)
-    NDNBOOST_PP_LOCAL_MACRO(164)
-# endif
-# if NDNBOOST_PP_LOCAL_R(163)
-    NDNBOOST_PP_LOCAL_MACRO(163)
-# endif
-# if NDNBOOST_PP_LOCAL_R(162)
-    NDNBOOST_PP_LOCAL_MACRO(162)
-# endif
-# if NDNBOOST_PP_LOCAL_R(161)
-    NDNBOOST_PP_LOCAL_MACRO(161)
-# endif
-# if NDNBOOST_PP_LOCAL_R(160)
-    NDNBOOST_PP_LOCAL_MACRO(160)
-# endif
-# if NDNBOOST_PP_LOCAL_R(159)
-    NDNBOOST_PP_LOCAL_MACRO(159)
-# endif
-# if NDNBOOST_PP_LOCAL_R(158)
-    NDNBOOST_PP_LOCAL_MACRO(158)
-# endif
-# if NDNBOOST_PP_LOCAL_R(157)
-    NDNBOOST_PP_LOCAL_MACRO(157)
-# endif
-# if NDNBOOST_PP_LOCAL_R(156)
-    NDNBOOST_PP_LOCAL_MACRO(156)
-# endif
-# if NDNBOOST_PP_LOCAL_R(155)
-    NDNBOOST_PP_LOCAL_MACRO(155)
-# endif
-# if NDNBOOST_PP_LOCAL_R(154)
-    NDNBOOST_PP_LOCAL_MACRO(154)
-# endif
-# if NDNBOOST_PP_LOCAL_R(153)
-    NDNBOOST_PP_LOCAL_MACRO(153)
-# endif
-# if NDNBOOST_PP_LOCAL_R(152)
-    NDNBOOST_PP_LOCAL_MACRO(152)
-# endif
-# if NDNBOOST_PP_LOCAL_R(151)
-    NDNBOOST_PP_LOCAL_MACRO(151)
-# endif
-# if NDNBOOST_PP_LOCAL_R(150)
-    NDNBOOST_PP_LOCAL_MACRO(150)
-# endif
-# if NDNBOOST_PP_LOCAL_R(149)
-    NDNBOOST_PP_LOCAL_MACRO(149)
-# endif
-# if NDNBOOST_PP_LOCAL_R(148)
-    NDNBOOST_PP_LOCAL_MACRO(148)
-# endif
-# if NDNBOOST_PP_LOCAL_R(147)
-    NDNBOOST_PP_LOCAL_MACRO(147)
-# endif
-# if NDNBOOST_PP_LOCAL_R(146)
-    NDNBOOST_PP_LOCAL_MACRO(146)
-# endif
-# if NDNBOOST_PP_LOCAL_R(145)
-    NDNBOOST_PP_LOCAL_MACRO(145)
-# endif
-# if NDNBOOST_PP_LOCAL_R(144)
-    NDNBOOST_PP_LOCAL_MACRO(144)
-# endif
-# if NDNBOOST_PP_LOCAL_R(143)
-    NDNBOOST_PP_LOCAL_MACRO(143)
-# endif
-# if NDNBOOST_PP_LOCAL_R(142)
-    NDNBOOST_PP_LOCAL_MACRO(142)
-# endif
-# if NDNBOOST_PP_LOCAL_R(141)
-    NDNBOOST_PP_LOCAL_MACRO(141)
-# endif
-# if NDNBOOST_PP_LOCAL_R(140)
-    NDNBOOST_PP_LOCAL_MACRO(140)
-# endif
-# if NDNBOOST_PP_LOCAL_R(139)
-    NDNBOOST_PP_LOCAL_MACRO(139)
-# endif
-# if NDNBOOST_PP_LOCAL_R(138)
-    NDNBOOST_PP_LOCAL_MACRO(138)
-# endif
-# if NDNBOOST_PP_LOCAL_R(137)
-    NDNBOOST_PP_LOCAL_MACRO(137)
-# endif
-# if NDNBOOST_PP_LOCAL_R(136)
-    NDNBOOST_PP_LOCAL_MACRO(136)
-# endif
-# if NDNBOOST_PP_LOCAL_R(135)
-    NDNBOOST_PP_LOCAL_MACRO(135)
-# endif
-# if NDNBOOST_PP_LOCAL_R(134)
-    NDNBOOST_PP_LOCAL_MACRO(134)
-# endif
-# if NDNBOOST_PP_LOCAL_R(133)
-    NDNBOOST_PP_LOCAL_MACRO(133)
-# endif
-# if NDNBOOST_PP_LOCAL_R(132)
-    NDNBOOST_PP_LOCAL_MACRO(132)
-# endif
-# if NDNBOOST_PP_LOCAL_R(131)
-    NDNBOOST_PP_LOCAL_MACRO(131)
-# endif
-# if NDNBOOST_PP_LOCAL_R(130)
-    NDNBOOST_PP_LOCAL_MACRO(130)
-# endif
-# if NDNBOOST_PP_LOCAL_R(129)
-    NDNBOOST_PP_LOCAL_MACRO(129)
-# endif
-# if NDNBOOST_PP_LOCAL_R(128)
-    NDNBOOST_PP_LOCAL_MACRO(128)
-# endif
-# if NDNBOOST_PP_LOCAL_R(127)
-    NDNBOOST_PP_LOCAL_MACRO(127)
-# endif
-# if NDNBOOST_PP_LOCAL_R(126)
-    NDNBOOST_PP_LOCAL_MACRO(126)
-# endif
-# if NDNBOOST_PP_LOCAL_R(125)
-    NDNBOOST_PP_LOCAL_MACRO(125)
-# endif
-# if NDNBOOST_PP_LOCAL_R(124)
-    NDNBOOST_PP_LOCAL_MACRO(124)
-# endif
-# if NDNBOOST_PP_LOCAL_R(123)
-    NDNBOOST_PP_LOCAL_MACRO(123)
-# endif
-# if NDNBOOST_PP_LOCAL_R(122)
-    NDNBOOST_PP_LOCAL_MACRO(122)
-# endif
-# if NDNBOOST_PP_LOCAL_R(121)
-    NDNBOOST_PP_LOCAL_MACRO(121)
-# endif
-# if NDNBOOST_PP_LOCAL_R(120)
-    NDNBOOST_PP_LOCAL_MACRO(120)
-# endif
-# if NDNBOOST_PP_LOCAL_R(119)
-    NDNBOOST_PP_LOCAL_MACRO(119)
-# endif
-# if NDNBOOST_PP_LOCAL_R(118)
-    NDNBOOST_PP_LOCAL_MACRO(118)
-# endif
-# if NDNBOOST_PP_LOCAL_R(117)
-    NDNBOOST_PP_LOCAL_MACRO(117)
-# endif
-# if NDNBOOST_PP_LOCAL_R(116)
-    NDNBOOST_PP_LOCAL_MACRO(116)
-# endif
-# if NDNBOOST_PP_LOCAL_R(115)
-    NDNBOOST_PP_LOCAL_MACRO(115)
-# endif
-# if NDNBOOST_PP_LOCAL_R(114)
-    NDNBOOST_PP_LOCAL_MACRO(114)
-# endif
-# if NDNBOOST_PP_LOCAL_R(113)
-    NDNBOOST_PP_LOCAL_MACRO(113)
-# endif
-# if NDNBOOST_PP_LOCAL_R(112)
-    NDNBOOST_PP_LOCAL_MACRO(112)
-# endif
-# if NDNBOOST_PP_LOCAL_R(111)
-    NDNBOOST_PP_LOCAL_MACRO(111)
-# endif
-# if NDNBOOST_PP_LOCAL_R(110)
-    NDNBOOST_PP_LOCAL_MACRO(110)
-# endif
-# if NDNBOOST_PP_LOCAL_R(109)
-    NDNBOOST_PP_LOCAL_MACRO(109)
-# endif
-# if NDNBOOST_PP_LOCAL_R(108)
-    NDNBOOST_PP_LOCAL_MACRO(108)
-# endif
-# if NDNBOOST_PP_LOCAL_R(107)
-    NDNBOOST_PP_LOCAL_MACRO(107)
-# endif
-# if NDNBOOST_PP_LOCAL_R(106)
-    NDNBOOST_PP_LOCAL_MACRO(106)
-# endif
-# if NDNBOOST_PP_LOCAL_R(105)
-    NDNBOOST_PP_LOCAL_MACRO(105)
-# endif
-# if NDNBOOST_PP_LOCAL_R(104)
-    NDNBOOST_PP_LOCAL_MACRO(104)
-# endif
-# if NDNBOOST_PP_LOCAL_R(103)
-    NDNBOOST_PP_LOCAL_MACRO(103)
-# endif
-# if NDNBOOST_PP_LOCAL_R(102)
-    NDNBOOST_PP_LOCAL_MACRO(102)
-# endif
-# if NDNBOOST_PP_LOCAL_R(101)
-    NDNBOOST_PP_LOCAL_MACRO(101)
-# endif
-# if NDNBOOST_PP_LOCAL_R(100)
-    NDNBOOST_PP_LOCAL_MACRO(100)
-# endif
-# if NDNBOOST_PP_LOCAL_R(99)
-    NDNBOOST_PP_LOCAL_MACRO(99)
-# endif
-# if NDNBOOST_PP_LOCAL_R(98)
-    NDNBOOST_PP_LOCAL_MACRO(98)
-# endif
-# if NDNBOOST_PP_LOCAL_R(97)
-    NDNBOOST_PP_LOCAL_MACRO(97)
-# endif
-# if NDNBOOST_PP_LOCAL_R(96)
-    NDNBOOST_PP_LOCAL_MACRO(96)
-# endif
-# if NDNBOOST_PP_LOCAL_R(95)
-    NDNBOOST_PP_LOCAL_MACRO(95)
-# endif
-# if NDNBOOST_PP_LOCAL_R(94)
-    NDNBOOST_PP_LOCAL_MACRO(94)
-# endif
-# if NDNBOOST_PP_LOCAL_R(93)
-    NDNBOOST_PP_LOCAL_MACRO(93)
-# endif
-# if NDNBOOST_PP_LOCAL_R(92)
-    NDNBOOST_PP_LOCAL_MACRO(92)
-# endif
-# if NDNBOOST_PP_LOCAL_R(91)
-    NDNBOOST_PP_LOCAL_MACRO(91)
-# endif
-# if NDNBOOST_PP_LOCAL_R(90)
-    NDNBOOST_PP_LOCAL_MACRO(90)
-# endif
-# if NDNBOOST_PP_LOCAL_R(89)
-    NDNBOOST_PP_LOCAL_MACRO(89)
-# endif
-# if NDNBOOST_PP_LOCAL_R(88)
-    NDNBOOST_PP_LOCAL_MACRO(88)
-# endif
-# if NDNBOOST_PP_LOCAL_R(87)
-    NDNBOOST_PP_LOCAL_MACRO(87)
-# endif
-# if NDNBOOST_PP_LOCAL_R(86)
-    NDNBOOST_PP_LOCAL_MACRO(86)
-# endif
-# if NDNBOOST_PP_LOCAL_R(85)
-    NDNBOOST_PP_LOCAL_MACRO(85)
-# endif
-# if NDNBOOST_PP_LOCAL_R(84)
-    NDNBOOST_PP_LOCAL_MACRO(84)
-# endif
-# if NDNBOOST_PP_LOCAL_R(83)
-    NDNBOOST_PP_LOCAL_MACRO(83)
-# endif
-# if NDNBOOST_PP_LOCAL_R(82)
-    NDNBOOST_PP_LOCAL_MACRO(82)
-# endif
-# if NDNBOOST_PP_LOCAL_R(81)
-    NDNBOOST_PP_LOCAL_MACRO(81)
-# endif
-# if NDNBOOST_PP_LOCAL_R(80)
-    NDNBOOST_PP_LOCAL_MACRO(80)
-# endif
-# if NDNBOOST_PP_LOCAL_R(79)
-    NDNBOOST_PP_LOCAL_MACRO(79)
-# endif
-# if NDNBOOST_PP_LOCAL_R(78)
-    NDNBOOST_PP_LOCAL_MACRO(78)
-# endif
-# if NDNBOOST_PP_LOCAL_R(77)
-    NDNBOOST_PP_LOCAL_MACRO(77)
-# endif
-# if NDNBOOST_PP_LOCAL_R(76)
-    NDNBOOST_PP_LOCAL_MACRO(76)
-# endif
-# if NDNBOOST_PP_LOCAL_R(75)
-    NDNBOOST_PP_LOCAL_MACRO(75)
-# endif
-# if NDNBOOST_PP_LOCAL_R(74)
-    NDNBOOST_PP_LOCAL_MACRO(74)
-# endif
-# if NDNBOOST_PP_LOCAL_R(73)
-    NDNBOOST_PP_LOCAL_MACRO(73)
-# endif
-# if NDNBOOST_PP_LOCAL_R(72)
-    NDNBOOST_PP_LOCAL_MACRO(72)
-# endif
-# if NDNBOOST_PP_LOCAL_R(71)
-    NDNBOOST_PP_LOCAL_MACRO(71)
-# endif
-# if NDNBOOST_PP_LOCAL_R(70)
-    NDNBOOST_PP_LOCAL_MACRO(70)
-# endif
-# if NDNBOOST_PP_LOCAL_R(69)
-    NDNBOOST_PP_LOCAL_MACRO(69)
-# endif
-# if NDNBOOST_PP_LOCAL_R(68)
-    NDNBOOST_PP_LOCAL_MACRO(68)
-# endif
-# if NDNBOOST_PP_LOCAL_R(67)
-    NDNBOOST_PP_LOCAL_MACRO(67)
-# endif
-# if NDNBOOST_PP_LOCAL_R(66)
-    NDNBOOST_PP_LOCAL_MACRO(66)
-# endif
-# if NDNBOOST_PP_LOCAL_R(65)
-    NDNBOOST_PP_LOCAL_MACRO(65)
-# endif
-# if NDNBOOST_PP_LOCAL_R(64)
-    NDNBOOST_PP_LOCAL_MACRO(64)
-# endif
-# if NDNBOOST_PP_LOCAL_R(63)
-    NDNBOOST_PP_LOCAL_MACRO(63)
-# endif
-# if NDNBOOST_PP_LOCAL_R(62)
-    NDNBOOST_PP_LOCAL_MACRO(62)
-# endif
-# if NDNBOOST_PP_LOCAL_R(61)
-    NDNBOOST_PP_LOCAL_MACRO(61)
-# endif
-# if NDNBOOST_PP_LOCAL_R(60)
-    NDNBOOST_PP_LOCAL_MACRO(60)
-# endif
-# if NDNBOOST_PP_LOCAL_R(59)
-    NDNBOOST_PP_LOCAL_MACRO(59)
-# endif
-# if NDNBOOST_PP_LOCAL_R(58)
-    NDNBOOST_PP_LOCAL_MACRO(58)
-# endif
-# if NDNBOOST_PP_LOCAL_R(57)
-    NDNBOOST_PP_LOCAL_MACRO(57)
-# endif
-# if NDNBOOST_PP_LOCAL_R(56)
-    NDNBOOST_PP_LOCAL_MACRO(56)
-# endif
-# if NDNBOOST_PP_LOCAL_R(55)
-    NDNBOOST_PP_LOCAL_MACRO(55)
-# endif
-# if NDNBOOST_PP_LOCAL_R(54)
-    NDNBOOST_PP_LOCAL_MACRO(54)
-# endif
-# if NDNBOOST_PP_LOCAL_R(53)
-    NDNBOOST_PP_LOCAL_MACRO(53)
-# endif
-# if NDNBOOST_PP_LOCAL_R(52)
-    NDNBOOST_PP_LOCAL_MACRO(52)
-# endif
-# if NDNBOOST_PP_LOCAL_R(51)
-    NDNBOOST_PP_LOCAL_MACRO(51)
-# endif
-# if NDNBOOST_PP_LOCAL_R(50)
-    NDNBOOST_PP_LOCAL_MACRO(50)
-# endif
-# if NDNBOOST_PP_LOCAL_R(49)
-    NDNBOOST_PP_LOCAL_MACRO(49)
-# endif
-# if NDNBOOST_PP_LOCAL_R(48)
-    NDNBOOST_PP_LOCAL_MACRO(48)
-# endif
-# if NDNBOOST_PP_LOCAL_R(47)
-    NDNBOOST_PP_LOCAL_MACRO(47)
-# endif
-# if NDNBOOST_PP_LOCAL_R(46)
-    NDNBOOST_PP_LOCAL_MACRO(46)
-# endif
-# if NDNBOOST_PP_LOCAL_R(45)
-    NDNBOOST_PP_LOCAL_MACRO(45)
-# endif
-# if NDNBOOST_PP_LOCAL_R(44)
-    NDNBOOST_PP_LOCAL_MACRO(44)
-# endif
-# if NDNBOOST_PP_LOCAL_R(43)
-    NDNBOOST_PP_LOCAL_MACRO(43)
-# endif
-# if NDNBOOST_PP_LOCAL_R(42)
-    NDNBOOST_PP_LOCAL_MACRO(42)
-# endif
-# if NDNBOOST_PP_LOCAL_R(41)
-    NDNBOOST_PP_LOCAL_MACRO(41)
-# endif
-# if NDNBOOST_PP_LOCAL_R(40)
-    NDNBOOST_PP_LOCAL_MACRO(40)
-# endif
-# if NDNBOOST_PP_LOCAL_R(39)
-    NDNBOOST_PP_LOCAL_MACRO(39)
-# endif
-# if NDNBOOST_PP_LOCAL_R(38)
-    NDNBOOST_PP_LOCAL_MACRO(38)
-# endif
-# if NDNBOOST_PP_LOCAL_R(37)
-    NDNBOOST_PP_LOCAL_MACRO(37)
-# endif
-# if NDNBOOST_PP_LOCAL_R(36)
-    NDNBOOST_PP_LOCAL_MACRO(36)
-# endif
-# if NDNBOOST_PP_LOCAL_R(35)
-    NDNBOOST_PP_LOCAL_MACRO(35)
-# endif
-# if NDNBOOST_PP_LOCAL_R(34)
-    NDNBOOST_PP_LOCAL_MACRO(34)
-# endif
-# if NDNBOOST_PP_LOCAL_R(33)
-    NDNBOOST_PP_LOCAL_MACRO(33)
-# endif
-# if NDNBOOST_PP_LOCAL_R(32)
-    NDNBOOST_PP_LOCAL_MACRO(32)
-# endif
-# if NDNBOOST_PP_LOCAL_R(31)
-    NDNBOOST_PP_LOCAL_MACRO(31)
-# endif
-# if NDNBOOST_PP_LOCAL_R(30)
-    NDNBOOST_PP_LOCAL_MACRO(30)
-# endif
-# if NDNBOOST_PP_LOCAL_R(29)
-    NDNBOOST_PP_LOCAL_MACRO(29)
-# endif
-# if NDNBOOST_PP_LOCAL_R(28)
-    NDNBOOST_PP_LOCAL_MACRO(28)
-# endif
-# if NDNBOOST_PP_LOCAL_R(27)
-    NDNBOOST_PP_LOCAL_MACRO(27)
-# endif
-# if NDNBOOST_PP_LOCAL_R(26)
-    NDNBOOST_PP_LOCAL_MACRO(26)
-# endif
-# if NDNBOOST_PP_LOCAL_R(25)
-    NDNBOOST_PP_LOCAL_MACRO(25)
-# endif
-# if NDNBOOST_PP_LOCAL_R(24)
-    NDNBOOST_PP_LOCAL_MACRO(24)
-# endif
-# if NDNBOOST_PP_LOCAL_R(23)
-    NDNBOOST_PP_LOCAL_MACRO(23)
-# endif
-# if NDNBOOST_PP_LOCAL_R(22)
-    NDNBOOST_PP_LOCAL_MACRO(22)
-# endif
-# if NDNBOOST_PP_LOCAL_R(21)
-    NDNBOOST_PP_LOCAL_MACRO(21)
-# endif
-# if NDNBOOST_PP_LOCAL_R(20)
-    NDNBOOST_PP_LOCAL_MACRO(20)
-# endif
-# if NDNBOOST_PP_LOCAL_R(19)
-    NDNBOOST_PP_LOCAL_MACRO(19)
-# endif
-# if NDNBOOST_PP_LOCAL_R(18)
-    NDNBOOST_PP_LOCAL_MACRO(18)
-# endif
-# if NDNBOOST_PP_LOCAL_R(17)
-    NDNBOOST_PP_LOCAL_MACRO(17)
-# endif
-# if NDNBOOST_PP_LOCAL_R(16)
-    NDNBOOST_PP_LOCAL_MACRO(16)
-# endif
-# if NDNBOOST_PP_LOCAL_R(15)
-    NDNBOOST_PP_LOCAL_MACRO(15)
-# endif
-# if NDNBOOST_PP_LOCAL_R(14)
-    NDNBOOST_PP_LOCAL_MACRO(14)
-# endif
-# if NDNBOOST_PP_LOCAL_R(13)
-    NDNBOOST_PP_LOCAL_MACRO(13)
-# endif
-# if NDNBOOST_PP_LOCAL_R(12)
-    NDNBOOST_PP_LOCAL_MACRO(12)
-# endif
-# if NDNBOOST_PP_LOCAL_R(11)
-    NDNBOOST_PP_LOCAL_MACRO(11)
-# endif
-# if NDNBOOST_PP_LOCAL_R(10)
-    NDNBOOST_PP_LOCAL_MACRO(10)
-# endif
-# if NDNBOOST_PP_LOCAL_R(9)
-    NDNBOOST_PP_LOCAL_MACRO(9)
-# endif
-# if NDNBOOST_PP_LOCAL_R(8)
-    NDNBOOST_PP_LOCAL_MACRO(8)
-# endif
-# if NDNBOOST_PP_LOCAL_R(7)
-    NDNBOOST_PP_LOCAL_MACRO(7)
-# endif
-# if NDNBOOST_PP_LOCAL_R(6)
-    NDNBOOST_PP_LOCAL_MACRO(6)
-# endif
-# if NDNBOOST_PP_LOCAL_R(5)
-    NDNBOOST_PP_LOCAL_MACRO(5)
-# endif
-# if NDNBOOST_PP_LOCAL_R(4)
-    NDNBOOST_PP_LOCAL_MACRO(4)
-# endif
-# if NDNBOOST_PP_LOCAL_R(3)
-    NDNBOOST_PP_LOCAL_MACRO(3)
-# endif
-# if NDNBOOST_PP_LOCAL_R(2)
-    NDNBOOST_PP_LOCAL_MACRO(2)
-# endif
-# if NDNBOOST_PP_LOCAL_R(1)
-    NDNBOOST_PP_LOCAL_MACRO(1)
-# endif
-# 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
deleted file mode 100644
index e840c99..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/self.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if !defined(NDNBOOST_PP_INDIRECT_SELF)
-#    error NDNBOOST_PP_ERROR:  no indirect file to include
-# endif
-#
-# define NDNBOOST_PP_IS_SELFISH 1
-#
-# include NDNBOOST_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
deleted file mode 100644
index 1faf032..0000000
--- a/include/ndnboost/preprocessor/iteration/detail/start.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_LOCAL_SE
-#
-# 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 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 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 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 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 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
deleted file mode 100644
index 06e1941..0000000
--- a/include/ndnboost/preprocessor/iteration/iterate.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
-# define NDNBOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
-#
-# include <ndnboost/preprocessor/arithmetic/dec.hpp>
-# include <ndnboost/preprocessor/arithmetic/inc.hpp>
-# include <ndnboost/preprocessor/array/elem.hpp>
-# include <ndnboost/preprocessor/array/size.hpp>
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/slot/slot.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-#
-# /* NDNBOOST_PP_ITERATION_DEPTH */
-#
-# define NDNBOOST_PP_ITERATION_DEPTH() 0
-#
-# /* NDNBOOST_PP_ITERATION */
-#
-# define NDNBOOST_PP_ITERATION() NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_, NDNBOOST_PP_ITERATION_DEPTH())
-#
-# /* NDNBOOST_PP_ITERATION_START && NDNBOOST_PP_ITERATION_FINISH */
-#
-# 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())
-#
-# /* NDNBOOST_PP_ITERATION_FLAGS */
-#
-# define NDNBOOST_PP_ITERATION_FLAGS() (NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_FLAGS_, NDNBOOST_PP_ITERATION_DEPTH())())
-#
-# /* NDNBOOST_PP_FRAME_ITERATION */
-#
-# define NDNBOOST_PP_FRAME_ITERATION(i) NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_, i)
-#
-# /* NDNBOOST_PP_FRAME_START && NDNBOOST_PP_FRAME_FINISH */
-#
-# 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)
-#
-# /* NDNBOOST_PP_FRAME_FLAGS */
-#
-# define NDNBOOST_PP_FRAME_FLAGS(i) (NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATION_FLAGS_, i)())
-#
-# /* NDNBOOST_PP_RELATIVE_ITERATION */
-#
-# define NDNBOOST_PP_RELATIVE_ITERATION(i) NDNBOOST_PP_CAT(NDNBOOST_PP_RELATIVE_, i)(NDNBOOST_PP_ITERATION_)
-#
-# 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())))))
-#
-# /* NDNBOOST_PP_RELATIVE_START && NDNBOOST_PP_RELATIVE_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_)
-#
-# /* NDNBOOST_PP_RELATIVE_FLAGS */
-#
-# define NDNBOOST_PP_RELATIVE_FLAGS(i) (NDNBOOST_PP_CAT(NDNBOOST_PP_RELATIVE_, i)(NDNBOOST_PP_ITERATION_FLAGS_)())
-#
-# /* NDNBOOST_PP_ITERATE */
-#
-# define NDNBOOST_PP_ITERATE() NDNBOOST_PP_CAT(NDNBOOST_PP_ITERATE_, NDNBOOST_PP_INC(NDNBOOST_PP_ITERATION_DEPTH()))
-#
-# 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
deleted file mode 100644
index 8aac8af..0000000
--- a/include/ndnboost/preprocessor/iteration/local.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_LOCAL_ITERATE */
-#
-# define NDNBOOST_PP_LOCAL_ITERATE() <ndnboost/preprocessor/iteration/detail/local.hpp>
-#
-# 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
deleted file mode 100644
index 1512f8e..0000000
--- a/include/ndnboost/preprocessor/iteration/self.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_ITERATION_SELF_HPP
-# define NDNBOOST_PREPROCESSOR_ITERATION_SELF_HPP
-#
-# /* NDNBOOST_PP_INCLUDE_SELF */
-#
-# 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
deleted file mode 100644
index 072541c..0000000
--- a/include/ndnboost/preprocessor/list/adt.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  *
-#  * See http://www.boost.org for most recent version.
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# 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>
-#
-# /* NDNBOOST_PP_LIST_CONS */
-#
-# define NDNBOOST_PP_LIST_CONS(head, tail) (head, tail)
-#
-# /* NDNBOOST_PP_LIST_NIL */
-#
-# define NDNBOOST_PP_LIST_NIL NDNBOOST_PP_NIL
-#
-# /* NDNBOOST_PP_LIST_FIRST */
-#
-# define NDNBOOST_PP_LIST_FIRST(list) NDNBOOST_PP_LIST_FIRST_D(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 NDNBOOST_PP_LIST_FIRST_D(list) NDNBOOST_PP_LIST_FIRST_I ## list
-# endif
-#
-# define NDNBOOST_PP_LIST_FIRST_I(head, tail) head
-#
-# /* NDNBOOST_PP_LIST_REST */
-#
-# define NDNBOOST_PP_LIST_REST(list) NDNBOOST_PP_LIST_REST_D(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 NDNBOOST_PP_LIST_REST_D(list) NDNBOOST_PP_LIST_REST_I ## list
-# endif
-#
-# define NDNBOOST_PP_LIST_REST_I(head, tail) tail
-#
-# /* NDNBOOST_PP_LIST_IS_CONS */
-#
-# 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 NDNBOOST_PP_LIST_IS_CONS(list) NDNBOOST_PP_IS_BINARY(list)
-# endif
-#
-# /* NDNBOOST_PP_LIST_IS_NIL */
-#
-# 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 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
deleted file mode 100644
index 14f018a..0000000
--- a/include/ndnboost/preprocessor/list/append.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_LIST_APPEND */
-#
-# 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 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 NDNBOOST_PP_LIST_APPEND_O(d, s, x) (x, s)
-#
-# /* NDNBOOST_PP_LIST_APPEND_D */
-#
-# 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 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
deleted file mode 100644
index 34088b2..0000000
--- a/include/ndnboost/preprocessor/list/detail/dmc/fold_left.hpp
+++ /dev/null
@@ -1,279 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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
deleted file mode 100644
index 0356186..0000000
--- a/include/ndnboost/preprocessor/list/detail/edg/fold_left.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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
deleted file mode 100644
index 96776af..0000000
--- a/include/ndnboost/preprocessor/list/detail/edg/fold_right.hpp
+++ /dev/null
@@ -1,794 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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 NDNBOOST_PP_LIST_FOLD_RIGHT_CHECK_NDNBOOST_PP_NIL 1
-#
-# 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
deleted file mode 100644
index e2980fd..0000000
--- a/include/ndnboost/preprocessor/list/detail/fold_left.hpp
+++ /dev/null
@@ -1,279 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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
deleted file mode 100644
index 2a1f045..0000000
--- a/include/ndnboost/preprocessor/list/detail/fold_right.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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
deleted file mode 100644
index da6d3b6..0000000
--- a/include/ndnboost/preprocessor/list/fold_left.hpp
+++ /dev/null
@@ -1,303 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_LIST_FOLD_LEFT */
-#
-# if 0
-#    define NDNBOOST_PP_LIST_FOLD_LEFT(op, state, list)
-# endif
-#
-# define NDNBOOST_PP_LIST_FOLD_LEFT NDNBOOST_PP_CAT(NDNBOOST_PP_LIST_FOLD_LEFT_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256))
-#
-# define NDNBOOST_PP_LIST_FOLD_LEFT_257(o, s, l) NDNBOOST_PP_ERROR(0x0004)
-#
-# 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 NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
-#    include <ndnboost/preprocessor/list/detail/edg/fold_left.hpp>
-# 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 NDNBOOST_PP_LIST_FOLD_LEFT_CHECK_NDNBOOST_PP_NIL 1
-#
-# 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
deleted file mode 100644
index fd85597..0000000
--- a/include/ndnboost/preprocessor/list/fold_right.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/debug/error.hpp>
-# include <ndnboost/preprocessor/detail/auto_rec.hpp>
-#
-# if 0
-#    define NDNBOOST_PP_LIST_FOLD_RIGHT(op, state, list)
-# endif
-#
-# define NDNBOOST_PP_LIST_FOLD_RIGHT NDNBOOST_PP_CAT(NDNBOOST_PP_LIST_FOLD_RIGHT_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_WHILE_P, 256))
-#
-# define NDNBOOST_PP_LIST_FOLD_RIGHT_257(o, s, l) NDNBOOST_PP_ERROR(0x0004)
-#
-# 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 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>
-# endif
-#
-# endif
diff --git a/include/ndnboost/preprocessor/list/for_each_i.hpp b/include/ndnboost/preprocessor/list/for_each_i.hpp
deleted file mode 100644
index b0ea43e..0000000
--- a/include/ndnboost/preprocessor/list/for_each_i.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/list/adt.hpp>
-# include <ndnboost/preprocessor/repetition/for.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-#
-# /* NDNBOOST_PP_LIST_FOR_EACH_I */
-#
-# 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 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 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 NDNBOOST_PP_LIST_FOR_EACH_I_P(r, x) NDNBOOST_PP_LIST_IS_CONS(NDNBOOST_PP_TUPLE_ELEM(4, 2, x))
-# endif
-#
-# 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 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 ~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 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 NDNBOOST_PP_LIST_FOR_EACH_I_M_D(r, m, d, l, i) m(r, d, i, NDNBOOST_PP_LIST_FIRST(l))
-#
-# /* NDNBOOST_PP_LIST_FOR_EACH_I_R */
-#
-# 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 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
deleted file mode 100644
index bf1eab5..0000000
--- a/include/ndnboost/preprocessor/list/reverse.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_LIST_REVERSE */
-#
-# 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 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 NDNBOOST_PP_LIST_REVERSE_O(d, s, x) (x, s)
-#
-# /* NDNBOOST_PP_LIST_REVERSE_D */
-#
-# 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 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
deleted file mode 100644
index 52d564e..0000000
--- a/include/ndnboost/preprocessor/list/transform.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_LIST_TRANSFORM */
-#
-# 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 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 ~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 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 NDNBOOST_PP_LIST_TRANSFORM_O_D(d, op, data, res, elem) (op, data, (op(d, data, elem), res))
-#
-# /* NDNBOOST_PP_LIST_TRANSFORM_D */
-#
-# 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 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
deleted file mode 100644
index 45329cd..0000000
--- a/include/ndnboost/preprocessor/logical/and.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_AND */
-#
-# 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 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
deleted file mode 100644
index 9879f11..0000000
--- a/include/ndnboost/preprocessor/logical/bitand.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_BITAND_HPP
-# define NDNBOOST_PREPROCESSOR_LOGICAL_BITAND_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_BITAND */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#    define NDNBOOST_PP_BITAND(x, y) NDNBOOST_PP_BITAND_I(x, y)
-# else
-#    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 ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
-#    define NDNBOOST_PP_BITAND_I(x, y) NDNBOOST_PP_BITAND_ ## x ## y
-# else
-#    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 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
deleted file mode 100644
index f84ad59..0000000
--- a/include/ndnboost/preprocessor/logical/bitor.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
-# define NDNBOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_BITOR */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#    define NDNBOOST_PP_BITOR(x, y) NDNBOOST_PP_BITOR_I(x, y)
-# else
-#    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 ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
-#    define NDNBOOST_PP_BITOR_I(x, y) NDNBOOST_PP_BITOR_ ## x ## y
-# else
-#    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 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
deleted file mode 100644
index bd45dd4..0000000
--- a/include/ndnboost/preprocessor/logical/bool.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
-# define NDNBOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_BOOL */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#    define NDNBOOST_PP_BOOL(x) NDNBOOST_PP_BOOL_I(x)
-# else
-#    define NDNBOOST_PP_BOOL(x) NDNBOOST_PP_BOOL_OO((x))
-#    define NDNBOOST_PP_BOOL_OO(par) NDNBOOST_PP_BOOL_I ## par
-# endif
-#
-# define NDNBOOST_PP_BOOL_I(x) NDNBOOST_PP_BOOL_ ## x
-#
-# 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
deleted file mode 100644
index e6b4c6c..0000000
--- a/include/ndnboost/preprocessor/logical/compl.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_LOGICAL_COMPL_HPP
-# define NDNBOOST_PREPROCESSOR_LOGICAL_COMPL_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_COMPL */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#    define NDNBOOST_PP_COMPL(x) NDNBOOST_PP_COMPL_I(x)
-# else
-#    define NDNBOOST_PP_COMPL(x) NDNBOOST_PP_COMPL_OO((x))
-#    define NDNBOOST_PP_COMPL_OO(par) NDNBOOST_PP_COMPL_I ## par
-# endif
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
-#    define NDNBOOST_PP_COMPL_I(x) NDNBOOST_PP_COMPL_ ## x
-# else
-#    define NDNBOOST_PP_COMPL_I(x) NDNBOOST_PP_COMPL_ID(NDNBOOST_PP_COMPL_ ## x)
-#    define NDNBOOST_PP_COMPL_ID(id) id
-# endif
-#
-# 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
deleted file mode 100644
index fc9210e..0000000
--- a/include/ndnboost/preprocessor/logical/not.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_NOT */
-#
-# if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
-#    define NDNBOOST_PP_NOT(x) NDNBOOST_PP_COMPL(NDNBOOST_PP_BOOL(x))
-# else
-#    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
deleted file mode 100644
index 7639ef3..0000000
--- a/include/ndnboost/preprocessor/logical/or.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_OR */
-#
-# 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 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
deleted file mode 100644
index ec1a334..0000000
--- a/include/ndnboost/preprocessor/punctuation/comma.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP
-# define NDNBOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP
-#
-# /* NDNBOOST_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
deleted file mode 100644
index 685b0ba..0000000
--- a/include/ndnboost/preprocessor/punctuation/comma_if.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_COMMA_IF */
-#
-# 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 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
deleted file mode 100644
index 7033fec..0000000
--- a/include/ndnboost/preprocessor/punctuation/paren.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
-# define NDNBOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
-#
-# /* NDNBOOST_PP_LPAREN */
-#
-# define NDNBOOST_PP_LPAREN() (
-#
-# /* NDNBOOST_PP_RPAREN */
-#
-# define NDNBOOST_PP_RPAREN() )
-#
-# endif
diff --git a/include/ndnboost/preprocessor/repeat.hpp b/include/ndnboost/preprocessor/repeat.hpp
deleted file mode 100644
index d438cba..0000000
--- a/include/ndnboost/preprocessor/repeat.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_REPEAT_HPP
-# define NDNBOOST_PREPROCESSOR_REPEAT_HPP
-#
-# include <ndnboost/preprocessor/repetition/repeat.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/repeat_2nd.hpp b/include/ndnboost/preprocessor/repeat_2nd.hpp
deleted file mode 100644
index 7503b9c..0000000
--- a/include/ndnboost/preprocessor/repeat_2nd.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_REPEAT_2ND_HPP
-# define NDNBOOST_PREPROCESSOR_REPEAT_2ND_HPP
-#
-# include <ndnboost/preprocessor/repetition/repeat.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/repeat_from_to.hpp b/include/ndnboost/preprocessor/repeat_from_to.hpp
deleted file mode 100644
index 59c8a56..0000000
--- a/include/ndnboost/preprocessor/repeat_from_to.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP
-# define NDNBOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP
-#
-# include <ndnboost/preprocessor/repetition/repeat_from_to.hpp>
-#
-# endif
diff --git a/include/ndnboost/preprocessor/repetition/detail/dmc/for.hpp b/include/ndnboost/preprocessor/repetition/detail/dmc/for.hpp
deleted file mode 100644
index c830675..0000000
--- a/include/ndnboost/preprocessor/repetition/detail/dmc/for.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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
deleted file mode 100644
index 9175032..0000000
--- a/include/ndnboost/preprocessor/repetition/detail/edg/for.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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
deleted file mode 100644
index 5ef3759..0000000
--- a/include/ndnboost/preprocessor/repetition/detail/for.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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 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
deleted file mode 100644
index cdefb69..0000000
--- a/include/ndnboost/preprocessor/repetition/detail/msvc/for.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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 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
deleted file mode 100644
index 335cb1c..0000000
--- a/include/ndnboost/preprocessor/repetition/enum.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_REPETITION_ENUM_HPP
-# define NDNBOOST_PREPROCESSOR_REPETITION_ENUM_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/debug/error.hpp>
-# include <ndnboost/preprocessor/detail/auto_rec.hpp>
-# include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-# include <ndnboost/preprocessor/repetition/repeat.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-#
-# /* NDNBOOST_PP_ENUM */
-#
-# if 0
-#    define NDNBOOST_PP_ENUM(count, macro, data)
-# endif
-#
-# define NDNBOOST_PP_ENUM NDNBOOST_PP_CAT(NDNBOOST_PP_ENUM_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_REPEAT_P, 4))
-#
-# 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 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 NDNBOOST_PP_ENUM_4(c, m, d) NDNBOOST_PP_ERROR(0x0003)
-#
-# 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 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 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
deleted file mode 100644
index 308426f..0000000
--- a/include/ndnboost/preprocessor/repetition/enum_binary_params.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-# include <ndnboost/preprocessor/repetition/repeat.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-#
-# /* NDNBOOST_PP_ENUM_BINARY_PARAMS */
-#
-# 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 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 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 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 ~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 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
-#
-# /* NDNBOOST_PP_ENUM_BINARY_PARAMS_Z */
-#
-# 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 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
deleted file mode 100644
index 3dd7677..0000000
--- a/include/ndnboost/preprocessor/repetition/enum_params.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_ENUM_PARAMS */
-#
-# 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 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 NDNBOOST_PP_ENUM_PARAMS_M(z, n, param) NDNBOOST_PP_COMMA_IF(n) param ## n
-#
-# /* NDNBOOST_PP_ENUM_PARAMS_Z */
-#
-# 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 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
deleted file mode 100644
index effd377..0000000
--- a/include/ndnboost/preprocessor/repetition/enum_params_with_a_default.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */
-#
-# 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
deleted file mode 100644
index b81af02..0000000
--- a/include/ndnboost/preprocessor/repetition/enum_shifted_params.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-# include <ndnboost/preprocessor/repetition/repeat.hpp>
-#
-# /* NDNBOOST_PP_ENUM_SHIFTED_PARAMS */
-#
-# 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 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 NDNBOOST_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) NDNBOOST_PP_COMMA_IF(n) NDNBOOST_PP_CAT(param, NDNBOOST_PP_INC(n))
-#
-# /* NDNBOOST_PP_ENUM_SHIFTED_PARAMS_Z */
-#
-# 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 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
deleted file mode 100644
index fb6c523..0000000
--- a/include/ndnboost/preprocessor/repetition/enum_trailing.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/debug/error.hpp>
-# include <ndnboost/preprocessor/detail/auto_rec.hpp>
-# include <ndnboost/preprocessor/repetition/repeat.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-#
-# /* NDNBOOST_PP_ENUM_TRAILING */
-#
-# if 0
-#    define NDNBOOST_PP_ENUM_TRAILING(count, macro, data)
-# endif
-#
-# define NDNBOOST_PP_ENUM_TRAILING NDNBOOST_PP_CAT(NDNBOOST_PP_ENUM_TRAILING_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_REPEAT_P, 4))
-#
-# 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 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 NDNBOOST_PP_ENUM_TRAILING_4(c, m, d) NDNBOOST_PP_ERROR(0x0003)
-#
-# 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 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 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
deleted file mode 100644
index da9cd7a..0000000
--- a/include/ndnboost/preprocessor/repetition/enum_trailing_params.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_ENUM_TRAILING_PARAMS */
-#
-# 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 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 NDNBOOST_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n
-#
-# /* NDNBOOST_PP_ENUM_TRAILING_PARAMS_Z */
-#
-# 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 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
deleted file mode 100644
index 87adf3e..0000000
--- a/include/ndnboost/preprocessor/repetition/for.hpp
+++ /dev/null
@@ -1,306 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_FOR */
-#
-# if 0
-#    define NDNBOOST_PP_FOR(state, pred, op, macro)
-# endif
-#
-# define NDNBOOST_PP_FOR NDNBOOST_PP_CAT(NDNBOOST_PP_FOR_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_FOR_P, 256))
-#
-# 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 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 NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_EDG()
-#    include <ndnboost/preprocessor/repetition/detail/edg/for.hpp>
-# elif NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MSVC()
-#    include <ndnboost/preprocessor/repetition/detail/msvc/for.hpp>
-# 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 NDNBOOST_PP_FOR_257(s, p, o, m) NDNBOOST_PP_ERROR(0x0002)
-#
-# define NDNBOOST_PP_FOR_CHECK_NDNBOOST_PP_NIL 1
-#
-# 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
deleted file mode 100644
index e5c4adc..0000000
--- a/include/ndnboost/preprocessor/repetition/repeat.hpp
+++ /dev/null
@@ -1,825 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_REPETITION_REPEAT_HPP
-# define NDNBOOST_PREPROCESSOR_REPETITION_REPEAT_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/debug/error.hpp>
-# include <ndnboost/preprocessor/detail/auto_rec.hpp>
-# include <ndnboost/preprocessor/tuple/eat.hpp>
-#
-# /* NDNBOOST_PP_REPEAT */
-#
-# if 0
-#    define NDNBOOST_PP_REPEAT(count, macro, data)
-# endif
-#
-# define NDNBOOST_PP_REPEAT NDNBOOST_PP_CAT(NDNBOOST_PP_REPEAT_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_REPEAT_P, 4))
-#
-# 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 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 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 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 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 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 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 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
deleted file mode 100644
index 194c5b0..0000000
--- a/include/ndnboost/preprocessor/repetition/repeat_from_to.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/control/while.hpp>
-# include <ndnboost/preprocessor/debug/error.hpp>
-# include <ndnboost/preprocessor/detail/auto_rec.hpp>
-# include <ndnboost/preprocessor/repetition/repeat.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-#
-# /* NDNBOOST_PP_REPEAT_FROM_TO */
-#
-# if 0
-#    define NDNBOOST_PP_REPEAT_FROM_TO(first, last, macro, data)
-# endif
-#
-# define NDNBOOST_PP_REPEAT_FROM_TO NDNBOOST_PP_CAT(NDNBOOST_PP_REPEAT_FROM_TO_, NDNBOOST_PP_AUTO_REC(NDNBOOST_PP_REPEAT_P, 4))
-#
-# 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 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
-#
-# /* NDNBOOST_PP_REPEAT_FROM_TO_D */
-#
-# if 0
-#    define NDNBOOST_PP_REPEAT_FROM_TO_D(d, first, last, macro, data)
-# endif
-#
-# 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 ~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 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 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 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 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 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
deleted file mode 100644
index 1e689b1..0000000
--- a/include/ndnboost/preprocessor/seq/cat.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_SEQ_CAT_HPP
-# define NDNBOOST_PREPROCESSOR_SEQ_CAT_HPP
-#
-# include <ndnboost/preprocessor/arithmetic/dec.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/control/if.hpp>
-# include <ndnboost/preprocessor/seq/fold_left.hpp>
-# include <ndnboost/preprocessor/seq/seq.hpp>
-# include <ndnboost/preprocessor/seq/size.hpp>
-# include <ndnboost/preprocessor/tuple/eat.hpp>
-#
-# /* NDNBOOST_PP_SEQ_CAT */
-#
-# 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 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 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
-#
-# /* NDNBOOST_PP_SEQ_CAT_S */
-#
-# 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 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
deleted file mode 100644
index 8e833ad..0000000
--- a/include/ndnboost/preprocessor/seq/detail/split.hpp
+++ /dev/null
@@ -1,284 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
-# define NDNBOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_SEQ_SPLIT */
-#
-# define NDNBOOST_PP_SEQ_SPLIT(n, seq) NDNBOOST_PP_SEQ_SPLIT_D(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 NDNBOOST_PP_SEQ_SPLIT_D(n, seq) (NDNBOOST_PP_SEQ_SPLIT_ ## n ## seq)
-# endif
-#
-# 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
deleted file mode 100644
index 4be16cc..0000000
--- a/include/ndnboost/preprocessor/seq/elem.hpp
+++ /dev/null
@@ -1,304 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_SEQ_ELEM */
-#
-# 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 NDNBOOST_PP_SEQ_ELEM(i, seq) NDNBOOST_PP_SEQ_ELEM_I((i, seq))
-# endif
-#
-# 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 NDNBOOST_PP_SEQ_ELEM_I(i, seq) NDNBOOST_PP_SEQ_ELEM_II(NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_ELEM_ ## i, seq))
-#    else
-#        define NDNBOOST_PP_SEQ_ELEM_I(i, seq) NDNBOOST_PP_SEQ_ELEM_II(NDNBOOST_PP_SEQ_ELEM_ ## i seq)
-#    endif
-#    define NDNBOOST_PP_SEQ_ELEM_II(im) NDNBOOST_PP_SEQ_ELEM_III(im)
-#    define NDNBOOST_PP_SEQ_ELEM_III(x, _) x
-# endif
-#
-# 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
deleted file mode 100644
index 8526af8..0000000
--- a/include/ndnboost/preprocessor/seq/enum.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_SEQ_ENUM */
-#
-# 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 NDNBOOST_PP_SEQ_ENUM(seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_ENUM_, NDNBOOST_PP_SEQ_SIZE(seq)) seq
-# endif
-#
-# 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
deleted file mode 100644
index adb4de7..0000000
--- a/include/ndnboost/preprocessor/seq/first_n.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/seq/detail/split.hpp>
-# include <ndnboost/preprocessor/tuple/eat.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-#
-# /* NDNBOOST_PP_SEQ_FIRST_N */
-#
-# 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 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
deleted file mode 100644
index f232936..0000000
--- a/include/ndnboost/preprocessor/seq/fold_left.hpp
+++ /dev/null
@@ -1,1070 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/control/if.hpp>
-# include <ndnboost/preprocessor/debug/error.hpp>
-# include <ndnboost/preprocessor/detail/auto_rec.hpp>
-# include <ndnboost/preprocessor/seq/seq.hpp>
-# include <ndnboost/preprocessor/seq/size.hpp>
-#
-# /* NDNBOOST_PP_SEQ_FOLD_LEFT */
-#
-# if 0
-#    define NDNBOOST_PP_SEQ_FOLD_LEFT(op, state, seq) ...
-# endif
-#
-# 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 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 NDNBOOST_PP_SEQ_FOLD_LEFT_CHECK_NDNBOOST_PP_NIL 1
-#
-# 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 NDNBOOST_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st
-#
-# 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 ~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 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
deleted file mode 100644
index 24df067..0000000
--- a/include/ndnboost/preprocessor/seq/for_each.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/repetition/for.hpp>
-# include <ndnboost/preprocessor/seq/seq.hpp>
-# include <ndnboost/preprocessor/seq/size.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-#
-# /* NDNBOOST_PP_SEQ_FOR_EACH */
-#
-# 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 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 NDNBOOST_PP_SEQ_FOR_EACH_P(r, x) NDNBOOST_PP_DEC(NDNBOOST_PP_SEQ_SIZE(NDNBOOST_PP_TUPLE_ELEM(3, 2, 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 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 NDNBOOST_PP_SEQ_FOR_EACH_O_I(macro, data, seq) (macro, data, NDNBOOST_PP_SEQ_TAIL(seq))
-#
-# 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 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 NDNBOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq) macro(r, data, NDNBOOST_PP_SEQ_HEAD(seq))
-#
-# /* NDNBOOST_PP_SEQ_FOR_EACH_R */
-#
-# 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 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
deleted file mode 100644
index cc1b812..0000000
--- a/include/ndnboost/preprocessor/seq/for_each_i.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/repetition/for.hpp>
-# include <ndnboost/preprocessor/seq/seq.hpp>
-# include <ndnboost/preprocessor/seq/size.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-#
-# /* NDNBOOST_PP_SEQ_FOR_EACH_I */
-#
-# 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 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 NDNBOOST_PP_SEQ_FOR_EACH_I_P(r, x) NDNBOOST_PP_DEC(NDNBOOST_PP_SEQ_SIZE(NDNBOOST_PP_TUPLE_ELEM(4, 2, 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 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 NDNBOOST_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i) (macro, data, NDNBOOST_PP_SEQ_TAIL(seq), NDNBOOST_PP_INC(i))
-#
-# 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 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 NDNBOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i) macro(r, data, i, NDNBOOST_PP_SEQ_HEAD(seq))
-#
-# /* NDNBOOST_PP_SEQ_FOR_EACH_I_R */
-#
-# 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 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
deleted file mode 100644
index 9350ed3..0000000
--- a/include/ndnboost/preprocessor/seq/rest_n.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/facilities/empty.hpp>
-# include <ndnboost/preprocessor/seq/detail/split.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-#
-# /* NDNBOOST_PP_SEQ_REST_N */
-#
-# 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 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
deleted file mode 100644
index 3c06fe9..0000000
--- a/include/ndnboost/preprocessor/seq/seq.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_SEQ_SEQ_HPP
-# define NDNBOOST_PREPROCESSOR_SEQ_SEQ_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/seq/elem.hpp>
-#
-# /* NDNBOOST_PP_SEQ_HEAD */
-#
-# define NDNBOOST_PP_SEQ_HEAD(seq) NDNBOOST_PP_SEQ_ELEM(0, seq)
-#
-# /* NDNBOOST_PP_SEQ_TAIL */
-#
-# 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 NDNBOOST_PP_SEQ_TAIL(seq) NDNBOOST_PP_SEQ_TAIL_I seq
-# endif
-#
-# define NDNBOOST_PP_SEQ_TAIL_I(x)
-#
-# /* NDNBOOST_PP_SEQ_NIL */
-#
-# define NDNBOOST_PP_SEQ_NIL(x) (x)
-#
-# endif
diff --git a/include/ndnboost/preprocessor/seq/size.hpp b/include/ndnboost/preprocessor/seq/size.hpp
deleted file mode 100644
index 4834c0d..0000000
--- a/include/ndnboost/preprocessor/seq/size.hpp
+++ /dev/null
@@ -1,547 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_SEQ_SIZE_HPP
-# define NDNBOOST_PREPROCESSOR_SEQ_SIZE_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# 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 NDNBOOST_PP_SEQ_SIZE(seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_SIZE_, NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_SIZE_0, seq))
-# else
-#    define NDNBOOST_PP_SEQ_SIZE(seq) NDNBOOST_PP_CAT(NDNBOOST_PP_SEQ_SIZE_, NDNBOOST_PP_SEQ_SIZE_0 seq)
-# endif
-#
-# 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 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
deleted file mode 100644
index a14ee66..0000000
--- a/include/ndnboost/preprocessor/seq/subseq.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_SEQ_SUBSEQ */
-#
-# 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 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
deleted file mode 100644
index 304eb52..0000000
--- a/include/ndnboost/preprocessor/seq/transform.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-# include <ndnboost/preprocessor/seq/seq.hpp>
-# include <ndnboost/preprocessor/tuple/elem.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-#
-# /* NDNBOOST_PP_SEQ_TRANSFORM */
-#
-# 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 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 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 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 NDNBOOST_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem)))
-#
-# /* NDNBOOST_PP_SEQ_TRANSFORM_S */
-#
-# 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 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
deleted file mode 100644
index 428e478..0000000
--- a/include/ndnboost/preprocessor/slot/detail/counter.hpp
+++ /dev/null
@@ -1,269 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2005.                                  *
-#  *     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)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# define NDNBOOST_PP_VALUE NDNBOOST_PP_COUNTER + 1
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_COUNTER
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 0584971..0000000
--- a/include/ndnboost/preprocessor/slot/detail/def.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
-# define NDNBOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
-#
-# /* NDNBOOST_PP_SLOT_OFFSET_x */
-#
-# 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
-#
-# /* NDNBOOST_PP_SLOT_CC_x */
-#
-# 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 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
deleted file mode 100644
index e78d3b0..0000000
--- a/include/ndnboost/preprocessor/slot/detail/shared.hpp
+++ /dev/null
@@ -1,247 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PP_VALUE
-#    error NDNBOOST_PP_ERROR:  NDNBOOST_PP_VALUE is not defined
-# endif
-#
-# 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 (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 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 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 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 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 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 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 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 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 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 NDNBOOST_PP_VALUE
diff --git a/include/ndnboost/preprocessor/slot/detail/slot1.hpp b/include/ndnboost/preprocessor/slot/detail/slot1.hpp
deleted file mode 100644
index de72726..0000000
--- a/include/ndnboost/preprocessor/slot/detail/slot1.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_SLOT_1
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 849997d..0000000
--- a/include/ndnboost/preprocessor/slot/detail/slot2.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_SLOT_2
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index a03503f..0000000
--- a/include/ndnboost/preprocessor/slot/detail/slot3.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_SLOT_3
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 78017a2..0000000
--- a/include/ndnboost/preprocessor/slot/detail/slot4.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_SLOT_4
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index a098459..0000000
--- a/include/ndnboost/preprocessor/slot/detail/slot5.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <ndnboost/preprocessor/slot/detail/shared.hpp>
-#
-# undef NDNBOOST_PP_SLOT_5
-#
-# 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 76622bc..0000000
--- a/include/ndnboost/preprocessor/slot/slot.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     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)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_SLOT_SLOT_HPP
-# define NDNBOOST_PREPROCESSOR_SLOT_SLOT_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/slot/detail/def.hpp>
-#
-# /* NDNBOOST_PP_ASSIGN_SLOT */
-#
-# define NDNBOOST_PP_ASSIGN_SLOT(i) NDNBOOST_PP_CAT(NDNBOOST_PP_ASSIGN_SLOT_, i)
-#
-# 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>
-#
-# /* NDNBOOST_PP_SLOT */
-#
-# 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
deleted file mode 100644
index b9b4a6a..0000000
--- a/include/ndnboost/preprocessor/stringize.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_STRINGIZE_HPP
-# define NDNBOOST_PREPROCESSOR_STRINGIZE_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_STRINGIZE */
-#
-# 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 NDNBOOST_PP_STRINGIZE(text) NDNBOOST_PP_STRINGIZE_I(text)
-# endif
-#
-# define NDNBOOST_PP_STRINGIZE_I(text) #text
-#
-# endif
diff --git a/include/ndnboost/preprocessor/tuple/eat.hpp b/include/ndnboost/preprocessor/tuple/eat.hpp
deleted file mode 100644
index 9104649..0000000
--- a/include/ndnboost/preprocessor/tuple/eat.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002-2011) */
-# /* Revised by Edward Diener (2011) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_TUPLE_EAT_HPP
-# define NDNBOOST_PREPROCESSOR_TUPLE_EAT_HPP
-#
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_EAT */
-#
-# if NDNBOOST_PP_VARIADICS
-#    define NDNBOOST_PP_EAT(...)
-# else
-#    define NDNBOOST_PP_EAT(x)
-# endif
-#
-# /* NDNBOOST_PP_TUPLE_EAT */
-#
-# if NDNBOOST_PP_VARIADICS
-#    define NDNBOOST_PP_TUPLE_EAT(size) NDNBOOST_PP_EAT
-# else
-#    if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#        define NDNBOOST_PP_TUPLE_EAT(size) NDNBOOST_PP_TUPLE_EAT_I(size)
-#    else
-#        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 NDNBOOST_PP_TUPLE_EAT_I(size) NDNBOOST_PP_TUPLE_EAT_ ## size
-# endif
-# 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
deleted file mode 100644
index 90555f7..0000000
--- a/include/ndnboost/preprocessor/tuple/elem.hpp
+++ /dev/null
@@ -1,191 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002-2011) */
-# /* Revised by Edward Diener (2011) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_TUPLE_ELEM_HPP
-# define NDNBOOST_PREPROCESSOR_TUPLE_ELEM_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-# include <ndnboost/preprocessor/facilities/overload.hpp>
-# include <ndnboost/preprocessor/tuple/rem.hpp>
-# include <ndnboost/preprocessor/variadic/elem.hpp>
-#
-# 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 NDNBOOST_PP_TUPLE_ELEM(...) NDNBOOST_PP_OVERLOAD(NDNBOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__)(__VA_ARGS__)
-#    endif
-#    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 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 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 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 NDNBOOST_PP_TUPLE_ELEM_1_0(a) a
-#
-# define NDNBOOST_PP_TUPLE_ELEM_2_0(a, b) a
-# define NDNBOOST_PP_TUPLE_ELEM_2_1(a, b) b
-#
-# 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
deleted file mode 100644
index 486e05d..0000000
--- a/include/ndnboost/preprocessor/tuple/rem.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002-2011.                             *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     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)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_REM */
-#
-# if NDNBOOST_PP_VARIADICS
-#    define NDNBOOST_PP_REM(...) __VA_ARGS__
-# else
-#    define NDNBOOST_PP_REM(x) x
-# endif
-#
-# /* NDNBOOST_PP_TUPLE_REM */
-#
-# if NDNBOOST_PP_VARIADICS
-#    define NDNBOOST_PP_TUPLE_REM(size) NDNBOOST_PP_REM
-# else
-#    if ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#        define NDNBOOST_PP_TUPLE_REM(size) NDNBOOST_PP_TUPLE_REM_I(size)
-#    else
-#        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 NDNBOOST_PP_TUPLE_REM_I(size) NDNBOOST_PP_TUPLE_REM_ ## size
-# endif
-# 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
-#
-# /* NDNBOOST_PP_TUPLE_REM_CTOR */
-#
-# 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 NDNBOOST_PP_TUPLE_REM_CTOR(...) NDNBOOST_PP_OVERLOAD(NDNBOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__)(__VA_ARGS__)
-#    endif
-#    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 ~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 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 ~NDNBOOST_PP_CONFIG_FLAGS() & NDNBOOST_PP_CONFIG_MWCC()
-#        define NDNBOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple
-#    else
-#        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
-#
-# endif
diff --git a/include/ndnboost/preprocessor/tuple/to_list.hpp b/include/ndnboost/preprocessor/tuple/to_list.hpp
deleted file mode 100644
index 7322dc4..0000000
--- a/include/ndnboost/preprocessor/tuple/to_list.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * 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)
-#  */
-#
-# /* Revised by Paul Mensonides (2002-2011) */
-# /* Revised by Edward Diener (2011) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# 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>
-#
-# /* NDNBOOST_PP_TUPLE_TO_LIST */
-#
-# 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 NDNBOOST_PP_TUPLE_TO_LIST(...) NDNBOOST_PP_OVERLOAD(NDNBOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__)(__VA_ARGS__)
-#    endif
-#    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 ~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 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 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 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
deleted file mode 100644
index cc72ecb..0000000
--- a/include/ndnboost/preprocessor/variadic/elem.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     (C) Copyright Paul Mensonides 2011.                                  *
-#  *     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)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
-# define NDNBOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_VARIADIC_ELEM */
-#
-# 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 NDNBOOST_PP_VARIADIC_ELEM(n, ...) NDNBOOST_PP_CAT(NDNBOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,)
-#    endif
-#    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
deleted file mode 100644
index 4034a1c..0000000
--- a/include/ndnboost/preprocessor/variadic/size.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     (C) Copyright Paul Mensonides 2011.                                  *
-#  *     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)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef NDNBOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
-# define NDNBOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
-#
-# include <ndnboost/preprocessor/cat.hpp>
-# include <ndnboost/preprocessor/config/config.hpp>
-#
-# /* NDNBOOST_PP_VARIADIC_SIZE */
-#
-# 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 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 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
deleted file mode 100644
index 3f5e9ed..0000000
--- a/include/ndnboost/progress.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-//  boost progress.hpp header file  ------------------------------------------//
-
-//  Copyright Beman Dawes 1994-99.  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)
-
-//  See http://www.boost.org/libs/timer for documentation.
-
-//  Revision History
-//   1 Dec 01  Add leading progress display strings (suggested by Toon Knapen)
-//  20 May 01  Introduce several static_casts<> to eliminate warning messages
-//             (Fixed by Beman, reported by Herve Bronnimann)
-//  12 Jan 01  Change to inline implementation to allow use without library
-//             builds. See docs for more rationale. (Beman Dawes) 
-//  22 Jul 99  Name changed to .hpp
-//  16 Jul 99  Second beta
-//   6 Jul 99  Initial boost version
-
-#ifndef NDNBOOST_PROGRESS_HPP
-#define NDNBOOST_PROGRESS_HPP
-
-#include <ndnboost/timer.hpp>
-#include <ndnboost/utility.hpp>  // for noncopyable
-#include <ndnboost/cstdint.hpp>  // for uintmax_t
-#include <iostream>           // for ostream, cout, etc
-#include <string>             // for string
-
-namespace ndnboost {
-
-//  progress_timer  ----------------------------------------------------------//
-
-//  A progress_timer behaves like a timer except that the destructor displays
-//  an elapsed time message at an appropriate place in an appropriate form.
-
-class progress_timer : public timer, private noncopyable
-{
-  
- public:
-  explicit progress_timer( std::ostream & os = std::cout )
-     // os is hint; implementation may ignore, particularly in embedded systems
-     : m_os(os) {}
-  ~progress_timer()
-  {
-  //  A) Throwing an exception from a destructor is a Bad Thing.
-  //  B) The progress_timer destructor does output which may throw.
-  //  C) A progress_timer is usually not critical to the application.
-  //  Therefore, wrap the I/O in a try block, catch and ignore all exceptions.
-    try
-    {
-      // use istream instead of ios_base to workaround GNU problem (Greg Chicares)
-      std::istream::fmtflags old_flags = m_os.setf( std::istream::fixed,
-                                                   std::istream::floatfield );
-      std::streamsize old_prec = m_os.precision( 2 );
-      m_os << elapsed() << " s\n" // "s" is System International d'Unites std
-                        << std::endl;
-      m_os.flags( old_flags );
-      m_os.precision( old_prec );
-    }
-
-    catch (...) {} // eat any exceptions
-  } // ~progress_timer
-
- private:
-  std::ostream & m_os;
-};
-
-
-//  progress_display  --------------------------------------------------------//
-
-//  progress_display displays an appropriate indication of 
-//  progress at an appropriate place in an appropriate form.
-
-// NOTE: (Jan 12, 2001) Tried to change unsigned long to ndnboost::uintmax_t, but
-// found some compilers couldn't handle the required conversion to double.
-// Reverted to unsigned long until the compilers catch up. 
-
-class progress_display : private noncopyable
-{
- public:
-  explicit progress_display( unsigned long expected_count,
-                             std::ostream & os = std::cout,
-                             const std::string & s1 = "\n", //leading strings
-                             const std::string & s2 = "",
-                             const std::string & s3 = "" )
-   // os is hint; implementation may ignore, particularly in embedded systems
-   : m_os(os), m_s1(s1), m_s2(s2), m_s3(s3) { restart(expected_count); }
-
-  void           restart( unsigned long expected_count )
-  //  Effects: display appropriate scale
-  //  Postconditions: count()==0, expected_count()==expected_count
-  {
-    _count = _next_tic_count = _tic = 0;
-    _expected_count = expected_count;
-
-    m_os << m_s1 << "0%   10   20   30   40   50   60   70   80   90   100%\n"
-         << m_s2 << "|----|----|----|----|----|----|----|----|----|----|"
-         << std::endl  // endl implies flush, which ensures display
-         << m_s3;
-    if ( !_expected_count ) _expected_count = 1;  // prevent divide by zero
-  } // restart
-
-  unsigned long  operator+=( unsigned long increment )
-  //  Effects: Display appropriate progress tic if needed.
-  //  Postconditions: count()== original count() + increment
-  //  Returns: count().
-  {
-    if ( (_count += increment) >= _next_tic_count ) { display_tic(); }
-    return _count;
-  }
-
-  unsigned long  operator++()           { return operator+=( 1 ); }
-  unsigned long  count() const          { return _count; }
-  unsigned long  expected_count() const { return _expected_count; }
-
-  private:
-  std::ostream &     m_os;  // may not be present in all imps
-  const std::string  m_s1;  // string is more general, safer than 
-  const std::string  m_s2;  //  const char *, and efficiency or size are
-  const std::string  m_s3;  //  not issues
-
-  unsigned long _count, _expected_count, _next_tic_count;
-  unsigned int  _tic;
-  void display_tic()
-  {
-    // use of floating point ensures that both large and small counts
-    // work correctly.  static_cast<>() is also used several places
-    // to suppress spurious compiler warnings. 
-    unsigned int tics_needed =
-      static_cast<unsigned int>(
-        (static_cast<double>(_count)/_expected_count)*50.0 );
-    do { m_os << '*' << std::flush; } while ( ++_tic < tics_needed );
-    _next_tic_count = 
-      static_cast<unsigned long>((_tic/50.0)*_expected_count);
-    if ( _count == _expected_count ) {
-      if ( _tic < 51 ) m_os << '*';
-      m_os << std::endl;
-      }
-  } // display_tic
-};
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_PROGRESS_HPP
diff --git a/include/ndnboost/random/detail/config.hpp b/include/ndnboost/random/detail/config.hpp
deleted file mode 100644
index 0d7f7bb..0000000
--- a/include/ndnboost/random/detail/config.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/* boost random/detail/config.hpp header file
- *
- * Copyright Steven Watanabe 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: config.hpp 52492 2009-04-19 14:55:57Z steven_watanabe $
- */
-
-#include <ndnboost/config.hpp>
-
-#if (defined(NDNBOOST_NO_OPERATORS_IN_NAMESPACE) || defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)) \
-    && !defined(NDNBOOST_MSVC)
-    #define NDNBOOST_RANDOM_NO_STREAM_OPERATORS
-#endif
diff --git a/include/ndnboost/random/detail/const_mod.hpp b/include/ndnboost/random/detail/const_mod.hpp
deleted file mode 100644
index 20277f2..0000000
--- a/include/ndnboost/random/detail/const_mod.hpp
+++ /dev/null
@@ -1,216 +0,0 @@
-/* boost random/detail/const_mod.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: const_mod.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef NDNBOOST_RANDOM_CONST_MOD_HPP
-#define NDNBOOST_RANDOM_CONST_MOD_HPP
-
-#include <ndnboost/assert.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/integer_traits.hpp>
-#include <ndnboost/type_traits/make_unsigned.hpp>
-#include <ndnboost/random/detail/large_arithmetic.hpp>
-
-#include <ndnboost/random/detail/disable_warnings.hpp>
-
-namespace ndnboost {
-namespace random {
-
-template<class IntType, IntType m>
-class const_mod
-{
-public:
-  static IntType apply(IntType x)
-  {
-    if(((unsigned_m() - 1) & unsigned_m()) == 0)
-      return (unsigned_type(x)) & (unsigned_m() - 1);
-    else {
-      IntType supress_warnings = (m == 0);
-      NDNBOOST_ASSERT(supress_warnings == 0);
-      return x % (m + supress_warnings);
-    }
-  }
-
-  static IntType add(IntType x, IntType c)
-  {
-    if(((unsigned_m() - 1) & unsigned_m()) == 0)
-      return (unsigned_type(x) + unsigned_type(c)) & (unsigned_m() - 1);
-    else if(c == 0)
-      return x;
-    else if(x < m - c)
-      return x + c;
-    else
-      return x - (m - c);
-  }
-
-  static IntType mult(IntType a, IntType x)
-  {
-    if(((unsigned_m() - 1) & unsigned_m()) == 0)
-      return unsigned_type(a) * unsigned_type(x) & (unsigned_m() - 1);
-    else if(a == 0)
-      return 0;
-    else if(a == 1)
-      return x;
-    else if(m <= traits::const_max/a)      // i.e. a*m <= max
-      return mult_small(a, x);
-    else if(traits::is_signed && (m%a < m/a))
-      return mult_schrage(a, x);
-    else
-      return mult_general(a, x);
-  }
-
-  static IntType mult_add(IntType a, IntType x, IntType c)
-  {
-    if(((unsigned_m() - 1) & unsigned_m()) == 0)
-      return (unsigned_type(a) * unsigned_type(x) + unsigned_type(c)) & (unsigned_m() - 1);
-    else if(a == 0)
-      return c;
-    else if(m <= (traits::const_max-c)/a) {  // i.e. a*m+c <= max
-      IntType supress_warnings = (m == 0);
-      NDNBOOST_ASSERT(supress_warnings == 0);
-      return (a*x+c) % (m + supress_warnings);
-    } else
-      return add(mult(a, x), c);
-  }
-
-  static IntType pow(IntType a, ndnboost::uintmax_t exponent)
-  {
-      IntType result = 1;
-      while(exponent != 0) {
-          if(exponent % 2 == 1) {
-              result = mult(result, a);
-          }
-          a = mult(a, a);
-          exponent /= 2;
-      }
-      return result;
-  }
-
-  static IntType invert(IntType x)
-  { return x == 0 ? 0 : (m == 0? invert_euclidian0(x) : invert_euclidian(x)); }
-
-private:
-  typedef integer_traits<IntType> traits;
-  typedef typename make_unsigned<IntType>::type unsigned_type;
-
-  const_mod();      // don't instantiate
-
-  static IntType mult_small(IntType a, IntType x)
-  {
-    IntType supress_warnings = (m == 0);
-    NDNBOOST_ASSERT(supress_warnings == 0);
-    return a*x % (m + supress_warnings);
-  }
-
-  static IntType mult_schrage(IntType a, IntType value)
-  {
-    const IntType q = m / a;
-    const IntType r = m % a;
-
-    NDNBOOST_ASSERT(r < q);        // check that overflow cannot happen
-
-    return sub(a*(value%q), r*(value/q));
-  }
-
-  static IntType mult_general(IntType a, IntType b)
-  {
-    IntType suppress_warnings = (m == 0);
-    NDNBOOST_ASSERT(suppress_warnings == 0);
-    IntType modulus = m + suppress_warnings;
-    NDNBOOST_ASSERT(modulus == m);
-    if(::ndnboost::uintmax_t(modulus) <=
-        (::std::numeric_limits< ::ndnboost::uintmax_t>::max)() / modulus)
-    {
-      return static_cast<IntType>(ndnboost::uintmax_t(a) * b % modulus);
-    } else {
-      return static_cast<IntType>(detail::mulmod(a, b, modulus));
-    }
-  }
-
-  static IntType sub(IntType a, IntType b)
-  {
-    if(a < b)
-      return m - (b - a);
-    else
-      return a - b;
-  }
-
-  static unsigned_type unsigned_m()
-  {
-      if(m == 0) {
-          return unsigned_type((std::numeric_limits<IntType>::max)()) + 1;
-      } else {
-          return unsigned_type(m);
-      }
-  }
-
-  // invert c in the finite field (mod m) (m must be prime)
-  static IntType invert_euclidian(IntType c)
-  {
-    // we are interested in the gcd factor for c, because this is our inverse
-    NDNBOOST_ASSERT(c > 0);
-    IntType l1 = 0;
-    IntType l2 = 1;
-    IntType n = c;
-    IntType p = m;
-    for(;;) {
-      IntType q = p / n;
-      l1 += q * l2;
-      p -= q * n;
-      if(p == 0)
-        return l2;
-      IntType q2 = n / p;
-      l2 += q2 * l1;
-      n -= q2 * p;
-      if(n == 0)
-        return m - l1;
-    }
-  }
-
-  // invert c in the finite field (mod m) (c must be relatively prime to m)
-  static IntType invert_euclidian0(IntType c)
-  {
-    // we are interested in the gcd factor for c, because this is our inverse
-    NDNBOOST_ASSERT(c > 0);
-    if(c == 1) return 1;
-    IntType l1 = 0;
-    IntType l2 = 1;
-    IntType n = c;
-    IntType p = m;
-    IntType max = (std::numeric_limits<IntType>::max)();
-    IntType q = max / n;
-    NDNBOOST_ASSERT(max % n != n - 1 && "c must be relatively prime to m.");
-    l1 += q * l2;
-    p = max - q * n + 1;
-    for(;;) {
-      if(p == 0)
-        return l2;
-      IntType q2 = n / p;
-      l2 += q2 * l1;
-      n -= q2 * p;
-      if(n == 0)
-        return m - l1;
-      q = p / n;
-      l1 += q * l2;
-      p -= q * n;
-    }
-  }
-};
-
-} // namespace random
-} // namespace ndnboost
-
-#include <ndnboost/random/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_RANDOM_CONST_MOD_HPP
diff --git a/include/ndnboost/random/detail/disable_warnings.hpp b/include/ndnboost/random/detail/disable_warnings.hpp
deleted file mode 100644
index 4f707d0..0000000
--- a/include/ndnboost/random/detail/disable_warnings.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/* boost random/detail/disable_warnings.hpp header file
- *
- * Copyright Steven Watanabe 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: disable_warnings.hpp 60755 2010-03-22 00:45:06Z steven_watanabe $
- *
- */
-
-// No #include guard.  This header is intended to be included multiple times.
-
-#include <ndnboost/config.hpp>
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4512)
-#pragma warning(disable:4127)
-#pragma warning(disable:4724)
-#endif
diff --git a/include/ndnboost/random/detail/enable_warnings.hpp b/include/ndnboost/random/detail/enable_warnings.hpp
deleted file mode 100644
index 68535e2..0000000
--- a/include/ndnboost/random/detail/enable_warnings.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/* boost random/detail/enable_warnings.hpp header file
- *
- * Copyright Steven Watanabe 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: enable_warnings.hpp 58649 2010-01-02 21:23:17Z steven_watanabe $
- *
- */
-
-// No #include guard.  This header is intended to be included multiple times.
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
diff --git a/include/ndnboost/random/detail/generator_bits.hpp b/include/ndnboost/random/detail/generator_bits.hpp
deleted file mode 100644
index 94d49d6..0000000
--- a/include/ndnboost/random/detail/generator_bits.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-/* boost random/detail/generator_bits.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: generator_bits.hpp 72951 2011-07-07 04:57:37Z steven_watanabe $
- *
- */
-
-#ifndef NDNBOOST_RANDOM_DETAIL_GENERATOR_BITS_HPP
-#define NDNBOOST_RANDOM_DETAIL_GENERATOR_BITS_HPP
-
-#include <ndnboost/limits.hpp>
-
-namespace ndnboost {
-namespace random {
-namespace detail {
-
-// This is a temporary measure that retains backwards
-// compatibility.
-template<class URNG>
-struct generator_bits {
-    static std::size_t value() {
-        return std::numeric_limits<typename URNG::result_type>::digits;
-    }
-};
-
-} // namespace detail
-} // namespace random
-} // namespace ndnboost
-
-#endif // NDNBOOST_RANDOM_DETAIL_GENERATOR_BITS_HPP
diff --git a/include/ndnboost/random/detail/integer_log2.hpp b/include/ndnboost/random/detail/integer_log2.hpp
deleted file mode 100644
index f7429af..0000000
--- a/include/ndnboost/random/detail/integer_log2.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/* boost random/detail/integer_log2.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: integer_log2.hpp 83381 2013-03-09 22:55:05Z eric_niebler $
- *
- */
-
-#ifndef NDNBOOST_RANDOM_DETAIL_INTEGER_LOG2_HPP
-#define NDNBOOST_RANDOM_DETAIL_INTEGER_LOG2_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/pending/integer_log2.hpp>
-
-namespace ndnboost {
-namespace random {
-namespace detail {
-
-#if !defined(NDNBOOST_NO_CXX11_CONSTEXPR)
-#define NDNBOOST_RANDOM_DETAIL_CONSTEXPR constexpr
-#elif defined(NDNBOOST_MSVC)
-#define NDNBOOST_RANDOM_DETAIL_CONSTEXPR __forceinline
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define NDNBOOST_RANDOM_DETAIL_CONSTEXPR inline __attribute__((const)) __attribute__((always_inline))
-#else
-#define NDNBOOST_RANDOM_DETAIL_CONSTEXPR inline
-#endif
-
-template<int Shift>
-struct integer_log2_impl
-{
-#if defined(NDNBOOST_NO_CXX11_CONSTEXPR)
-    template<class T>
-    NDNBOOST_RANDOM_DETAIL_CONSTEXPR static int apply(T t, int accum)
-    {
-        int update = ((t >> Shift) != 0) * Shift;
-        return integer_log2_impl<Shift / 2>::apply(t >> update, accum + update);
-    }
-#else
-    template<class T>
-    NDNBOOST_RANDOM_DETAIL_CONSTEXPR static int apply2(T t, int accum, int update)
-    {
-        return integer_log2_impl<Shift / 2>::apply(t >> update, accum + update);
-    }
-
-    template<class T>
-    NDNBOOST_RANDOM_DETAIL_CONSTEXPR static int apply(T t, int accum)
-    {
-        return apply2(t, accum, ((t >> Shift) != 0) * Shift);
-    }
-#endif
-};
-
-template<>
-struct integer_log2_impl<1>
-{
-    template<class T>
-    NDNBOOST_RANDOM_DETAIL_CONSTEXPR static int apply(T t, int accum)
-    {
-        return int(t >> 1) + accum;
-    }
-};
-
-template<class T>
-NDNBOOST_RANDOM_DETAIL_CONSTEXPR int integer_log2(T t)
-{
-    return integer_log2_impl<
-        ::ndnboost::detail::max_pow2_less<
-            ::std::numeric_limits<T>::digits, 4
-        >::value
-    >::apply(t, 0);
-}
-
-} // namespace detail
-} // namespace random
-} // namespace ndnboost
-
-#endif // NDNBOOST_RANDOM_DETAIL_INTEGER_LOG2_HPP
diff --git a/include/ndnboost/random/detail/large_arithmetic.hpp b/include/ndnboost/random/detail/large_arithmetic.hpp
deleted file mode 100644
index c9c6434..0000000
--- a/include/ndnboost/random/detail/large_arithmetic.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/* boost random/detail/large_arithmetic.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: large_arithmetic.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef NDNBOOST_RANDOM_DETAIL_LARGE_ARITHMETIC_HPP
-#define NDNBOOST_RANDOM_DETAIL_LARGE_ARITHMETIC_HPP
-
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/integer.hpp>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/random/detail/integer_log2.hpp>
-
-#include <ndnboost/random/detail/disable_warnings.hpp>
-
-namespace ndnboost {
-namespace random {
-namespace detail {
-
-struct div_t {
-    ndnboost::uintmax_t quotient;
-    ndnboost::uintmax_t remainder;
-};
-
-inline div_t muldivmod(ndnboost::uintmax_t a, ndnboost::uintmax_t b, ndnboost::uintmax_t m)
-{
-    static const int bits =
-        ::std::numeric_limits< ::ndnboost::uintmax_t>::digits / 2;
-    static const ::ndnboost::uintmax_t mask = (::ndnboost::uintmax_t(1) << bits) - 1;
-    typedef ::ndnboost::uint_t<bits>::fast digit_t;
-
-    int shift = std::numeric_limits< ::ndnboost::uintmax_t>::digits - 1
-        - detail::integer_log2(m);
-
-    a <<= shift;
-    m <<= shift;
-
-    digit_t product[4] = { 0, 0, 0, 0 };
-    digit_t a_[2] = { digit_t(a & mask), digit_t((a >> bits) & mask) };
-    digit_t b_[2] = { digit_t(b & mask), digit_t((b >> bits) & mask) };
-    digit_t m_[2] = { digit_t(m & mask), digit_t((m >> bits) & mask) };
-
-    // multiply a * b
-    for(int i = 0; i < 2; ++i) {
-        digit_t carry = 0;
-        for(int j = 0; j < 2; ++j) {
-            ::ndnboost::uint64_t temp = ::ndnboost::uintmax_t(a_[i]) * b_[j] +
-                carry + product[i + j];
-            product[i + j] = digit_t(temp & mask);
-            carry = digit_t(temp >> bits);
-        }
-        if(carry != 0) {
-            product[i + 2] += carry;
-        }
-    }
-
-    digit_t quotient[2];
-
-    if(m == 0) {
-        div_t result = {
-            ((::ndnboost::uintmax_t(product[3]) << bits) | product[2]),
-            ((::ndnboost::uintmax_t(product[1]) << bits) | product[0]) >> shift,
-        };
-        return result;
-    }
-
-    // divide product / m
-    for(int i = 3; i >= 2; --i) {
-        ::ndnboost::uintmax_t temp =
-            ::ndnboost::uintmax_t(product[i]) << bits | product[i - 1];
-
-        digit_t q = digit_t((product[i] == m_[1]) ? mask : temp / m_[1]);
-
-        ::ndnboost::uintmax_t rem =
-            ((temp - ::ndnboost::uintmax_t(q) * m_[1]) << bits) + product[i - 2];
-
-        ::ndnboost::uintmax_t diff = m_[0] * ::ndnboost::uintmax_t(q);
-
-        int error = 0;
-        if(diff > rem) {
-            if(diff - rem > m) {
-                error = 2;
-            } else {
-                error = 1;
-            }
-        }
-        q -= error;
-        rem = rem + error * m - diff;
-
-        quotient[i - 2] = q;
-        product[i] = 0;
-        product[i-1] = (rem >> bits) & mask;
-        product[i-2] = rem & mask;
-    }
-
-    div_t result = {
-        ((::ndnboost::uintmax_t(quotient[1]) << bits) | quotient[0]),
-        ((::ndnboost::uintmax_t(product[1]) << bits) | product[0]) >> shift,
-    };
-    return result;
-}
-
-inline ndnboost::uintmax_t muldiv(ndnboost::uintmax_t a, ndnboost::uintmax_t b, ndnboost::uintmax_t m)
-{ return detail::muldivmod(a, b, m).quotient; }
-
-inline ndnboost::uintmax_t mulmod(ndnboost::uintmax_t a, ndnboost::uintmax_t b, ndnboost::uintmax_t m)
-{ return detail::muldivmod(a, b, m).remainder; }
-
-} // namespace detail
-} // namespace random
-} // namespace ndnboost
-
-#include <ndnboost/random/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_RANDOM_DETAIL_LARGE_ARITHMETIC_HPP
diff --git a/include/ndnboost/random/detail/operators.hpp b/include/ndnboost/random/detail/operators.hpp
deleted file mode 100644
index 4df4881..0000000
--- a/include/ndnboost/random/detail/operators.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/* boost random/detail/operators.hpp header file
- *
- * Copyright Steven Watanabe 2010-2011
- * 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: operators.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef NDNBOOST_RANDOM_DETAIL_OPERATORS_HPP
-#define NDNBOOST_RANDOM_DETAIL_OPERATORS_HPP
-
-#include <ndnboost/random/detail/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1310)   \
-    || NDNBOOST_WORKAROUND(__SUNPRO_CC, NDNBOOST_TESTED_AT(0x5100))
-
-#define NDNBOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, T, t)                  \
-    template<class CharT, class Traits>                                 \
-    friend std::basic_ostream<CharT,Traits>&                            \
-    operator<<(std::basic_ostream<CharT,Traits>& os, const T& t) {      \
-        t.print(os, t);                                                 \
-        return os;                                                      \
-    }                                                                   \
-    template<class CharT, class Traits>                                 \
-    static std::basic_ostream<CharT,Traits>&                            \
-    print(std::basic_ostream<CharT,Traits>& os, const T& t)
-
-#define NDNBOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, T, t)                  \
-    template<class CharT, class Traits>                                 \
-    friend std::basic_istream<CharT,Traits>&                            \
-    operator>>(std::basic_istream<CharT,Traits>& is, T& t) {            \
-        t.read(is, t);                                                  \
-        return is;                                                      \
-    }                                                                   \
-    template<class CharT, class Traits>                                 \
-    static std::basic_istream<CharT,Traits>&                            \
-    read(std::basic_istream<CharT,Traits>& is, T& t)
-
-#endif
-
-#if defined(__BORLANDC__)
-
-#define NDNBOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(T, lhs, rhs)              \
-    bool operator==(const T& rhs) const                                 \
-    { return T::is_equal(*this, rhs); }                                 \
-    static bool is_equal(const T& lhs, const T& rhs)
-
-#define NDNBOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(T)                      \
-    bool operator!=(const T& rhs) const                                 \
-    { return !T::is_equal(*this, rhs); }
-
-#endif
-
-#ifndef NDNBOOST_RANDOM_DETAIL_OSTREAM_OPERATOR
-#define NDNBOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, T, t)                  \
-    template<class CharT, class Traits>                                 \
-    friend std::basic_ostream<CharT,Traits>&                            \
-    operator<<(std::basic_ostream<CharT,Traits>& os, const T& t)
-#endif
-
-#ifndef NDNBOOST_RANDOM_DETAIL_ISTREAM_OPERATOR
-#define NDNBOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, T, t)                  \
-    template<class CharT, class Traits>                                 \
-    friend std::basic_istream<CharT,Traits>&                            \
-    operator>>(std::basic_istream<CharT,Traits>& is, T& t)
-#endif
-
-#ifndef NDNBOOST_RANDOM_DETAIL_EQUALITY_OPERATOR
-#define NDNBOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(T, lhs, rhs)              \
-    friend bool operator==(const T& lhs, const T& rhs)
-#endif
-
-#ifndef NDNBOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR
-#define NDNBOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(T)                      \
-    friend bool operator!=(const T& lhs, const T& rhs)                  \
-    { return !(lhs == rhs); }
-#endif
-
-#endif
diff --git a/include/ndnboost/random/detail/ptr_helper.hpp b/include/ndnboost/random/detail/ptr_helper.hpp
deleted file mode 100644
index c07a88a..0000000
--- a/include/ndnboost/random/detail/ptr_helper.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/* boost random/detail/ptr_helper.hpp header file
- *
- * Copyright Jens Maurer 2002
- * 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: ptr_helper.hpp 24096 2004-07-27 03:43:34Z dgregor $
- *
- */
-
-#ifndef NDNBOOST_RANDOM_DETAIL_PTR_HELPER_HPP
-#define NDNBOOST_RANDOM_DETAIL_PTR_HELPER_HPP
-
-#include <ndnboost/config.hpp>
-
-
-namespace ndnboost {
-namespace random {
-namespace detail {
-
-// type_traits could help here, but I don't want to depend on type_traits.
-template<class T>
-struct ptr_helper
-{
-  typedef T value_type;
-  typedef T& reference_type;
-  typedef const T& rvalue_type;
-  static reference_type ref(T& r) { return r; }
-  static const T& ref(const T& r) { return r; }
-};
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template<class T>
-struct ptr_helper<T&>
-{
-  typedef T value_type;
-  typedef T& reference_type;
-  typedef T& rvalue_type;
-  static reference_type ref(T& r) { return r; }
-  static const T& ref(const T& r) { return r; }
-};
-
-template<class T>
-struct ptr_helper<T*>
-{
-  typedef T value_type;
-  typedef T& reference_type;
-  typedef T* rvalue_type;
-  static reference_type ref(T * p) { return *p; }
-  static const T& ref(const T * p) { return *p; }
-};
-#endif
-
-} // namespace detail
-} // namespace random
-} // namespace ndnboost
-
-//
-// NDNBOOST_RANDOM_PTR_HELPER_SPEC --
-//
-//  Helper macro for broken compilers defines specializations of
-//  ptr_helper.
-//
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# define NDNBOOST_RANDOM_PTR_HELPER_SPEC(T)                \
-namespace ndnboost { namespace random { namespace detail { \
-template<>                                              \
-struct ptr_helper<T&>                                   \
-{                                                       \
-  typedef T value_type;                                 \
-  typedef T& reference_type;                            \
-  typedef T& rvalue_type;                               \
-  static reference_type ref(T& r) { return r; }         \
-  static const T& ref(const T& r) { return r; }         \
-};                                                      \
-                                                        \
-template<>                                              \
-struct ptr_helper<T*>                                   \
-{                                                       \
-  typedef T value_type;                                 \
-  typedef T& reference_type;                            \
-  typedef T* rvalue_type;                               \
-  static reference_type ref(T * p) { return *p; }       \
-  static const T& ref(const T * p) { return *p; }       \
-};                                                      \
-}}}
-#else
-# define NDNBOOST_RANDOM_PTR_HELPER_SPEC(T)
-#endif 
-
-#endif // NDNBOOST_RANDOM_DETAIL_PTR_HELPER_HPP
diff --git a/include/ndnboost/random/detail/seed.hpp b/include/ndnboost/random/detail/seed.hpp
deleted file mode 100644
index 7f5ac2b..0000000
--- a/include/ndnboost/random/detail/seed.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-/* boost random/detail/seed.hpp header file
- *
- * Copyright Steven Watanabe 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: seed.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef NDNBOOST_RANDOM_DETAIL_SEED_HPP
-#define NDNBOOST_RANDOM_DETAIL_SEED_HPP
-
-#include <ndnboost/config.hpp>
-
-// Sun seems to have trouble with the use of SFINAE for the
-// templated constructor.  So does Borland.
-#if !defined(NDNBOOST_NO_SFINAE) && !defined(__SUNPRO_CC) && !defined(__BORLANDC__)
-
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/type_traits/is_arithmetic.hpp>
-
-namespace ndnboost {
-namespace random {
-namespace detail {
-
-template<class T>
-struct disable_seed : ndnboost::disable_if<ndnboost::is_arithmetic<T> > {};
-
-template<class Engine, class T>
-struct disable_constructor : disable_seed<T> {};
-
-template<class Engine>
-struct disable_constructor<Engine, Engine> {};
-
-#define NDNBOOST_RANDOM_DETAIL_GENERATOR_CONSTRUCTOR(Self, Generator, gen) \
-    template<class Generator>                                           \
-    explicit Self(Generator& gen, typename ::ndnboost::random::detail::disable_constructor<Self, Generator>::type* = 0)
-
-#define NDNBOOST_RANDOM_DETAIL_GENERATOR_SEED(Self, Generator, gen)    \
-    template<class Generator>                                       \
-    void seed(Generator& gen, typename ::ndnboost::random::detail::disable_seed<Generator>::type* = 0)
-
-#define NDNBOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(Self, SeedSeq, seq)    \
-    template<class SeedSeq>                                             \
-    explicit Self(SeedSeq& seq, typename ::ndnboost::random::detail::disable_constructor<Self, SeedSeq>::type* = 0)
-
-#define NDNBOOST_RANDOM_DETAIL_SEED_SEQ_SEED(Self, SeedSeq, seq)   \
-    template<class SeedSeq>                                     \
-    void seed(SeedSeq& seq, typename ::ndnboost::random::detail::disable_seed<SeedSeq>::type* = 0)
-
-#define NDNBOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(Self, T, x)  \
-    explicit Self(const T& x)
-
-#define NDNBOOST_RANDOM_DETAIL_ARITHMETIC_SEED(Self, T, x) \
-    void seed(const T& x)
-}
-}
-}
-
-#else
-
-#include <ndnboost/type_traits/is_arithmetic.hpp>
-#include <ndnboost/mpl/bool.hpp>
-
-#define NDNBOOST_RANDOM_DETAIL_GENERATOR_CONSTRUCTOR(Self, Generator, gen) \
-    Self(Self& other) { *this = other; }                                \
-    Self(const Self& other) { *this = other; }                          \
-    template<class Generator>                                           \
-    explicit Self(Generator& gen) {                                     \
-        boost_random_constructor_impl(gen, ::ndnboost::is_arithmetic<Generator>());\
-    }                                                                   \
-    template<class Generator>                                           \
-    void boost_random_constructor_impl(Generator& gen, ::ndnboost::mpl::false_)
-
-#define NDNBOOST_RANDOM_DETAIL_GENERATOR_SEED(Self, Generator, gen)    \
-    template<class Generator>                                       \
-    void seed(Generator& gen) {                                     \
-        boost_random_seed_impl(gen, ::ndnboost::is_arithmetic<Generator>());\
-    }\
-    template<class Generator>\
-    void boost_random_seed_impl(Generator& gen, ::ndnboost::mpl::false_)
-
-#define NDNBOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(Self, SeedSeq, seq)    \
-    Self(Self& other) { *this = other; }                                \
-    Self(const Self& other) { *this = other; }                          \
-    template<class SeedSeq>                                             \
-    explicit Self(SeedSeq& seq) {                                       \
-        boost_random_constructor_impl(seq, ::ndnboost::is_arithmetic<SeedSeq>());\
-    }                                                                   \
-    template<class SeedSeq>                                             \
-    void boost_random_constructor_impl(SeedSeq& seq, ::ndnboost::mpl::false_)
-
-#define NDNBOOST_RANDOM_DETAIL_SEED_SEQ_SEED(Self, SeedSeq, seq)           \
-    template<class SeedSeq>                                             \
-    void seed(SeedSeq& seq) {                                           \
-        boost_random_seed_impl(seq, ::ndnboost::is_arithmetic<SeedSeq>()); \
-    }                                                                   \
-    template<class SeedSeq>                                             \
-    void boost_random_seed_impl(SeedSeq& seq, ::ndnboost::mpl::false_)
-
-#define NDNBOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(Self, T, x)  \
-    explicit Self(const T& x) { boost_random_constructor_impl(x, ::ndnboost::mpl::true_()); }\
-    void boost_random_constructor_impl(const T& x, ::ndnboost::mpl::true_)
-
-#define NDNBOOST_RANDOM_DETAIL_ARITHMETIC_SEED(Self, T, x) \
-    void seed(const T& x) { boost_random_seed_impl(x, ::ndnboost::mpl::true_()); }\
-    void boost_random_seed_impl(const T& x, ::ndnboost::mpl::true_)
-
-#endif
-
-#endif
diff --git a/include/ndnboost/random/detail/seed_impl.hpp b/include/ndnboost/random/detail/seed_impl.hpp
deleted file mode 100644
index 7184edc..0000000
--- a/include/ndnboost/random/detail/seed_impl.hpp
+++ /dev/null
@@ -1,397 +0,0 @@
-/* boost random/detail/seed.hpp header file
- *
- * Copyright Steven Watanabe 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: seed_impl.hpp 72951 2011-07-07 04:57:37Z steven_watanabe $
- */
-
-#ifndef NDNBOOST_RANDOM_DETAIL_SEED_IMPL_HPP
-#define NDNBOOST_RANDOM_DETAIL_SEED_IMPL_HPP
-
-#include <stdexcept>
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/config/no_tr1/cmath.hpp>
-#include <ndnboost/integer/integer_mask.hpp>
-#include <ndnboost/integer/static_log2.hpp>
-#include <ndnboost/type_traits/is_signed.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/type_traits/make_unsigned.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/int.hpp>
-#include <ndnboost/random/detail/const_mod.hpp>
-#include <ndnboost/random/detail/integer_log2.hpp>
-#include <ndnboost/random/detail/signed_unsigned_tools.hpp>
-#include <ndnboost/random/detail/generator_bits.hpp>
-
-#include <ndnboost/random/detail/disable_warnings.hpp>
-
-namespace ndnboost {
-namespace random {
-namespace detail {
-
-// finds the seed type of an engine, given its
-// result_type.  If the result_type is integral
-// the seed type is the same.  If the result_type
-// is floating point, the seed type is uint32_t
-template<class T>
-struct seed_type
-{
-    typedef typename ndnboost::mpl::if_<ndnboost::is_integral<T>,
-        T,
-        ndnboost::uint32_t
-    >::type type;
-};
-
-template<int N>
-struct const_pow_impl
-{
-    template<class T>
-    static T call(T arg, int n, T result)
-    {
-        return const_pow_impl<N / 2>::call(arg * arg, n / 2,
-            n%2 == 0? result : result * arg);
-    }
-};
-
-template<>
-struct const_pow_impl<0>
-{
-    template<class T>
-    static T call(T, int, T result)
-    {
-        return result;
-    }
-};
-
-// requires N is an upper bound on n
-template<int N, class T>
-inline T const_pow(T arg, int n) { return const_pow_impl<N>::call(arg, n, T(1)); }
-
-template<class T>
-inline T pow2(int n)
-{
-    typedef unsigned int_type;
-    const int max_bits = std::numeric_limits<int_type>::digits;
-    T multiplier = T(int_type(1) << (max_bits - 1)) * 2;
-    return (int_type(1) << (n % max_bits)) *
-        const_pow<std::numeric_limits<T>::digits / max_bits>(multiplier, n / max_bits);
-}
-
-template<class Engine, class Iter>
-void generate_from_real(Engine& eng, Iter begin, Iter end)
-{
-    using std::fmod;
-    typedef typename Engine::result_type RealType;
-    const int Bits = detail::generator_bits<Engine>::value();
-    int remaining_bits = 0;
-    ndnboost::uint_least32_t saved_bits = 0;
-    RealType multiplier = pow2<RealType>( Bits);
-    RealType mult32 = RealType(4294967296.0); // 2^32
-    while(true) {
-        RealType val = eng() * multiplier;
-        int available_bits = Bits;
-        // Make sure the compiler can optimize this out
-        // if it isn't possible.
-        if(Bits < 32 && available_bits < 32 - remaining_bits) {
-            saved_bits |= ndnboost::uint_least32_t(val) << remaining_bits;
-            remaining_bits += Bits;
-        } else {
-            // If Bits < 32, then remaining_bits != 0, since
-            // if remaining_bits == 0, available_bits < 32 - 0,
-            // and we won't get here to begin with.
-            if(Bits < 32 || remaining_bits != 0) {
-                ndnboost::uint_least32_t divisor =
-                    (ndnboost::uint_least32_t(1) << (32 - remaining_bits));
-                ndnboost::uint_least32_t extra_bits = ndnboost::uint_least32_t(fmod(val, mult32)) & (divisor - 1);
-                val = val / divisor;
-                *begin++ = saved_bits | (extra_bits << remaining_bits);
-                if(begin == end) return;
-                available_bits -= 32 - remaining_bits;
-                remaining_bits = 0;
-            }
-            // If Bits < 32 we should never enter this loop
-            if(Bits >= 32) {
-                for(; available_bits >= 32; available_bits -= 32) {
-                    ndnboost::uint_least32_t word = ndnboost::uint_least32_t(fmod(val, mult32));
-                    val /= mult32;
-                    *begin++ = word;
-                    if(begin == end) return;
-                }
-            }
-            remaining_bits = available_bits;
-            saved_bits = static_cast<ndnboost::uint_least32_t>(val);
-        }
-    }
-}
-
-template<class Engine, class Iter>
-void generate_from_int(Engine& eng, Iter begin, Iter end)
-{
-    typedef typename Engine::result_type IntType;
-    typedef typename ndnboost::make_unsigned<IntType>::type unsigned_type;
-    int remaining_bits = 0;
-    ndnboost::uint_least32_t saved_bits = 0;
-    unsigned_type range = ndnboost::random::detail::subtract<IntType>()((eng.max)(), (eng.min)());
-
-    int bits =
-        (range == (std::numeric_limits<unsigned_type>::max)()) ?
-            std::numeric_limits<unsigned_type>::digits :
-            detail::integer_log2(range + 1);
-
-    {
-        int discarded_bits = detail::integer_log2(bits);
-        unsigned_type excess = (range + 1) >> (bits - discarded_bits);
-        if(excess != 0) {
-            int extra_bits = detail::integer_log2((excess - 1) ^ excess);
-            bits = bits - discarded_bits + extra_bits;
-        }
-    }
-
-    unsigned_type mask = (static_cast<unsigned_type>(2) << (bits - 1)) - 1;
-    unsigned_type limit = ((range + 1) & ~mask) - 1;
-
-    while(true) {
-        unsigned_type val;
-        do {
-            val = ndnboost::random::detail::subtract<IntType>()(eng(), (eng.min)());
-        } while(limit != range && val > limit);
-        val &= mask;
-        int available_bits = bits;
-        if(available_bits == 32) {
-            *begin++ = static_cast<ndnboost::uint_least32_t>(val) & 0xFFFFFFFFu;
-            if(begin == end) return;
-        } else if(available_bits % 32 == 0) {
-            for(int i = 0; i < available_bits / 32; ++i) {
-                ndnboost::uint_least32_t word = ndnboost::uint_least32_t(val) & 0xFFFFFFFFu;
-                int supress_warning = (bits >= 32);
-                NDNBOOST_ASSERT(supress_warning == 1);
-                val >>= (32 * supress_warning);
-                *begin++ = word;
-                if(begin == end) return;
-            }
-        } else if(bits < 32 && available_bits < 32 - remaining_bits) {
-            saved_bits |= ndnboost::uint_least32_t(val) << remaining_bits;
-            remaining_bits += bits;
-        } else {
-            if(bits < 32 || remaining_bits != 0) {
-                ndnboost::uint_least32_t extra_bits = ndnboost::uint_least32_t(val) & ((ndnboost::uint_least32_t(1) << (32 - remaining_bits)) - 1);
-                val >>= 32 - remaining_bits;
-                *begin++ = saved_bits | (extra_bits << remaining_bits);
-                if(begin == end) return;
-                available_bits -= 32 - remaining_bits;
-                remaining_bits = 0;
-            }
-            if(bits >= 32) {
-                for(; available_bits >= 32; available_bits -= 32) {
-                    ndnboost::uint_least32_t word = ndnboost::uint_least32_t(val) & 0xFFFFFFFFu;
-                    int supress_warning = (bits >= 32);
-                    NDNBOOST_ASSERT(supress_warning == 1);
-                    val >>= (32 * supress_warning);
-                    *begin++ = word;
-                    if(begin == end) return;
-                }
-            }
-            remaining_bits = available_bits;
-            saved_bits = static_cast<ndnboost::uint_least32_t>(val);
-        }
-    }
-}
-
-template<class Engine, class Iter>
-void generate_impl(Engine& eng, Iter first, Iter last, ndnboost::mpl::true_)
-{
-    return detail::generate_from_int(eng, first, last);
-}
-
-template<class Engine, class Iter>
-void generate_impl(Engine& eng, Iter first, Iter last, ndnboost::mpl::false_)
-{
-    return detail::generate_from_real(eng, first, last);
-}
-
-template<class Engine, class Iter>
-void generate(Engine& eng, Iter first, Iter last)
-{
-    return detail::generate_impl(eng, first, last, ndnboost::is_integral<typename Engine::result_type>());
-}
-
-
-
-template<class IntType, IntType m, class SeedSeq>
-IntType seed_one_int(SeedSeq& seq)
-{
-    static const int log = ::ndnboost::mpl::if_c<(m == 0),
-        ::ndnboost::mpl::int_<(::std::numeric_limits<IntType>::digits)>,
-        ::ndnboost::static_log2<m> >::type::value;
-    static const int k =
-        (log + ((~(static_cast<IntType>(2) << (log - 1)) & m)? 32 : 31)) / 32;
-    ::ndnboost::uint_least32_t array[log / 32 + 4];
-    seq.generate(&array[0], &array[0] + k + 3);
-    IntType s = 0;
-    for(int j = 0; j < k; ++j) {
-        IntType digit = const_mod<IntType, m>::apply(IntType(array[j+3]));
-        IntType mult = IntType(1) << 32*j;
-        s = const_mod<IntType, m>::mult_add(mult, digit, s);
-    }
-    return s;
-}
-
-template<class IntType, IntType m, class Iter>
-IntType get_one_int(Iter& first, Iter last)
-{
-    static const int log = ::ndnboost::mpl::if_c<(m == 0),
-        ::ndnboost::mpl::int_<(::std::numeric_limits<IntType>::digits)>,
-        ::ndnboost::static_log2<m> >::type::value;
-    static const int k =
-        (log + ((~(static_cast<IntType>(2) << (log - 1)) & m)? 32 : 31)) / 32;
-    IntType s = 0;
-    for(int j = 0; j < k; ++j) {
-        if(first == last) {
-            throw ::std::invalid_argument("Not enough elements in call to seed.");
-        }
-        IntType digit = const_mod<IntType, m>::apply(IntType(*first++));
-        IntType mult = IntType(1) << 32*j;
-        s = const_mod<IntType, m>::mult_add(mult, digit, s);
-    }
-    return s;
-}
-
-// TODO: work in-place whenever possible
-template<int w, std::size_t n, class SeedSeq, class UIntType>
-void seed_array_int_impl(SeedSeq& seq, UIntType (&x)[n])
-{
-    ndnboost::uint_least32_t storage[((w+31)/32) * n];
-    seq.generate(&storage[0], &storage[0] + ((w+31)/32) * n);
-    for(std::size_t j = 0; j < n; j++) {
-        UIntType val = 0;
-        for(std::size_t k = 0; k < (w+31)/32; ++k) {
-            val += static_cast<UIntType>(storage[(w+31)/32*j + k]) << 32*k;
-        }
-        x[j] = val & ::ndnboost::low_bits_mask_t<w>::sig_bits;
-    }
-}
-
-template<int w, std::size_t n, class SeedSeq, class IntType>
-inline void seed_array_int_impl(SeedSeq& seq, IntType (&x)[n], ndnboost::mpl::true_)
-{
-    typedef typename ndnboost::make_unsigned<IntType>::type unsigned_array[n];
-    seed_array_int_impl<w>(seq, reinterpret_cast<unsigned_array&>(x));
-}
-
-template<int w, std::size_t n, class SeedSeq, class IntType>
-inline void seed_array_int_impl(SeedSeq& seq, IntType (&x)[n], ndnboost::mpl::false_)
-{
-    seed_array_int_impl<w>(seq, x);
-}
-
-template<int w, std::size_t n, class SeedSeq, class IntType>
-inline void seed_array_int(SeedSeq& seq, IntType (&x)[n])
-{
-    seed_array_int_impl<w>(seq, x, ndnboost::is_signed<IntType>());
-}
-
-template<int w, std::size_t n, class Iter, class UIntType>
-void fill_array_int_impl(Iter& first, Iter last, UIntType (&x)[n])
-{
-    for(std::size_t j = 0; j < n; j++) {
-        UIntType val = 0;
-        for(std::size_t k = 0; k < (w+31)/32; ++k) {
-            if(first == last) {
-                throw std::invalid_argument("Not enough elements in call to seed.");
-            }
-            val += static_cast<UIntType>(*first++) << 32*k;
-        }
-        x[j] = val & ::ndnboost::low_bits_mask_t<w>::sig_bits;
-    }
-}
-
-template<int w, std::size_t n, class Iter, class IntType>
-inline void fill_array_int_impl(Iter& first, Iter last, IntType (&x)[n], ndnboost::mpl::true_)
-{
-    typedef typename ndnboost::make_unsigned<IntType>::type unsigned_array[n];
-    fill_array_int_impl<w>(first, last, reinterpret_cast<unsigned_array&>(x));
-}
-
-template<int w, std::size_t n, class Iter, class IntType>
-inline void fill_array_int_impl(Iter& first, Iter last, IntType (&x)[n], ndnboost::mpl::false_)
-{
-    fill_array_int_impl<w>(first, last, x);
-}
-
-template<int w, std::size_t n, class Iter, class IntType>
-inline void fill_array_int(Iter& first, Iter last, IntType (&x)[n])
-{
-    fill_array_int_impl<w>(first, last, x, ndnboost::is_signed<IntType>());
-}
-
-template<int w, std::size_t n, class RealType>
-void seed_array_real_impl(const ndnboost::uint_least32_t* storage, RealType (&x)[n])
-{
-    ndnboost::uint_least32_t mask = ~((~ndnboost::uint_least32_t(0)) << (w%32));
-    RealType two32 = 4294967296.0;
-    const RealType divisor = RealType(1)/detail::pow2<RealType>(w);
-    unsigned int j;
-    for(j = 0; j < n; ++j) {
-        RealType val = RealType(0);
-        RealType mult = divisor;
-        for(int k = 0; k < w/32; ++k) {
-            val += *storage++ * mult;
-            mult *= two32;
-        }
-        if(mask != 0) {
-            val += (*storage++ & mask) * mult;
-        }
-        NDNBOOST_ASSERT(val >= 0);
-        NDNBOOST_ASSERT(val < 1);
-        x[j] = val;
-    }
-}
-
-template<int w, std::size_t n, class SeedSeq, class RealType>
-void seed_array_real(SeedSeq& seq, RealType (&x)[n])
-{
-    using std::pow;
-    ndnboost::uint_least32_t storage[((w+31)/32) * n];
-    seq.generate(&storage[0], &storage[0] + ((w+31)/32) * n);
-    seed_array_real_impl<w>(storage, x);
-}
-
-template<int w, std::size_t n, class Iter, class RealType>
-void fill_array_real(Iter& first, Iter last, RealType (&x)[n])
-{
-    ndnboost::uint_least32_t mask = ~((~ndnboost::uint_least32_t(0)) << (w%32));
-    RealType two32 = 4294967296.0;
-    const RealType divisor = RealType(1)/detail::pow2<RealType>(w);
-    unsigned int j;
-    for(j = 0; j < n; ++j) {
-        RealType val = RealType(0);
-        RealType mult = divisor;
-        for(int k = 0; k < w/32; ++k, ++first) {
-            if(first == last) throw std::invalid_argument("Not enough elements in call to seed.");
-            val += *first * mult;
-            mult *= two32;
-        }
-        if(mask != 0) {
-            if(first == last) throw std::invalid_argument("Not enough elements in call to seed.");
-            val += (*first & mask) * mult;
-            ++first;
-        }
-        NDNBOOST_ASSERT(val >= 0);
-        NDNBOOST_ASSERT(val < 1);
-        x[j] = val;
-    }
-}
-
-}
-}
-}
-
-#include <ndnboost/random/detail/enable_warnings.hpp>
-
-#endif
diff --git a/include/ndnboost/random/detail/signed_unsigned_tools.hpp b/include/ndnboost/random/detail/signed_unsigned_tools.hpp
deleted file mode 100644
index 8fcb1b6..0000000
--- a/include/ndnboost/random/detail/signed_unsigned_tools.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/* boost random/detail/signed_unsigned_tools.hpp header file
- *
- * Copyright Jens Maurer 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- */
-
-#ifndef NDNBOOST_RANDOM_DETAIL_SIGNED_UNSIGNED_TOOLS
-#define NDNBOOST_RANDOM_DETAIL_SIGNED_UNSIGNED_TOOLS
-
-#include <ndnboost/limits.hpp>
-#include <ndnboost/config.hpp>
-#include <ndnboost/type_traits/make_unsigned.hpp>
-
-namespace ndnboost {
-namespace random {
-namespace detail {
-
-
-/*
- * Compute x - y, we know that x >= y, return an unsigned value.
- */
-
-template<class T, bool sgn = std::numeric_limits<T>::is_signed>
-struct subtract { };
-
-template<class T>
-struct subtract<T, /* signed */ false>
-{
-  typedef T result_type;
-  result_type operator()(T x, T y) { return x - y; }
-};
-
-template<class T>
-struct subtract<T, /* signed */ true>
-{
-  typedef typename make_unsigned<T>::type result_type;
-  result_type operator()(T x, T y)
-  {
-    if (y >= 0)   // because x >= y, it follows that x >= 0, too
-      return result_type(x) - result_type(y);
-    if (x >= 0)   // y < 0
-      // avoid the nasty two's complement case for y == min()
-      return result_type(x) + result_type(-(y+1)) + 1;
-    // both x and y are negative: no signed overflow
-    return result_type(x - y);
-  }
-};
-
-/*
- * Compute x + y, x is unsigned, result fits in type of "y".
- */
-
-template<class T1, class T2, bool sgn = std::numeric_limits<T2>::is_signed>
-struct add { };
-
-template<class T1, class T2>
-struct add<T1, T2, /* signed */ false>
-{
-  typedef T2 result_type;
-  result_type operator()(T1 x, T2 y) { return T2(x) + y; }
-};
-
-template<class T1, class T2>
-struct add<T1, T2, /* signed */ true>
-{
-  typedef T2 result_type;
-  result_type operator()(T1 x, T2 y)
-  {
-    if (y >= 0)
-      return T2(x) + y;
-    // y < 0
-    if (x > T1(-(y+1)))  // result >= 0 after subtraction
-      // avoid the nasty two's complement edge case for y == min()
-      return T2(x - T1(-(y+1)) - 1);
-    // abs(x) < abs(y), thus T2 able to represent x
-    return T2(x) + y;
-  }
-};
-
-} // namespace detail
-} // namespace random
-} // namespace ndnboost
-
-#endif // NDNBOOST_RANDOM_DETAIL_SIGNED_UNSIGNED_TOOLS
-
diff --git a/include/ndnboost/random/linear_congruential.hpp b/include/ndnboost/random/linear_congruential.hpp
deleted file mode 100644
index b4c69d8..0000000
--- a/include/ndnboost/random/linear_congruential.hpp
+++ /dev/null
@@ -1,466 +0,0 @@
-/* boost random/linear_congruential.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: linear_congruential.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef NDNBOOST_RANDOM_LINEAR_CONGRUENTIAL_HPP
-#define NDNBOOST_RANDOM_LINEAR_CONGRUENTIAL_HPP
-
-#include <iostream>
-#include <stdexcept>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/config.hpp>
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/integer/static_log2.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/type_traits/is_arithmetic.hpp>
-#include <ndnboost/random/detail/config.hpp>
-#include <ndnboost/random/detail/const_mod.hpp>
-#include <ndnboost/random/detail/seed.hpp>
-#include <ndnboost/random/detail/seed_impl.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#include <ndnboost/random/detail/disable_warnings.hpp>
-
-namespace ndnboost {
-namespace random {
-
-/**
- * Instantiations of class template linear_congruential_engine model a
- * \pseudo_random_number_generator. Linear congruential pseudo-random
- * number generators are described in:
- *
- *  @blockquote
- *  "Mathematical methods in large-scale computing units", D. H. Lehmer,
- *  Proc. 2nd Symposium on Large-Scale Digital Calculating Machines,
- *  Harvard University Press, 1951, pp. 141-146
- *  @endblockquote
- *
- * Let x(n) denote the sequence of numbers returned by some pseudo-random
- * number generator. Then for the linear congruential generator,
- * x(n+1) := (a * x(n) + c) mod m. Parameters for the generator are
- * x(0), a, c, m. The template parameter IntType shall denote an integral
- * type. It must be large enough to hold values a, c, and m. The template
- * parameters a and c must be smaller than m.
- *
- * Note: The quality of the generator crucially depends on the choice of
- * the parameters. User code should use one of the sensibly parameterized
- * generators such as minstd_rand instead.
- */
-template<class IntType, IntType a, IntType c, IntType m>
-class linear_congruential_engine
-{
-public:
-    typedef IntType result_type;
-
-    // Required for old Boost.Random concept
-    NDNBOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-
-    NDNBOOST_STATIC_CONSTANT(IntType, multiplier = a);
-    NDNBOOST_STATIC_CONSTANT(IntType, increment = c);
-    NDNBOOST_STATIC_CONSTANT(IntType, modulus = m);
-    NDNBOOST_STATIC_CONSTANT(IntType, default_seed = 1);
-    
-    NDNBOOST_STATIC_ASSERT(std::numeric_limits<IntType>::is_integer);
-    NDNBOOST_STATIC_ASSERT(m == 0 || a < m);
-    NDNBOOST_STATIC_ASSERT(m == 0 || c < m);
-    
-    /**
-     * Constructs a @c linear_congruential_engine, using the default seed
-     */
-    linear_congruential_engine() { seed(); }
-
-    /**
-     * Constructs a @c linear_congruential_engine, seeding it with @c x0.
-     */
-    NDNBOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(linear_congruential_engine,
-                                               IntType, x0)
-    { seed(x0); }
-    
-    /**
-     * Constructs a @c linear_congruential_engine, seeding it with values
-     * produced by a call to @c seq.generate().
-     */
-    NDNBOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(linear_congruential_engine,
-                                             SeedSeq, seq)
-    { seed(seq); }
-
-    /**
-     * Constructs a @c linear_congruential_engine  and seeds it
-     * with values taken from the itrator range [first, last)
-     * and adjusts first to point to the element after the last one
-     * used.  If there are not enough elements, throws @c std::invalid_argument.
-     *
-     * first and last must be input iterators.
-     */
-    template<class It>
-    linear_congruential_engine(It& first, It last)
-    {
-        seed(first, last);
-    }
-
-    // compiler-generated copy constructor and assignment operator are fine
-
-    /**
-     * Calls seed(default_seed)
-     */
-    void seed() { seed(default_seed); }
-
-    /**
-     * If c mod m is zero and x0 mod m is zero, changes the current value of
-     * the generator to 1. Otherwise, changes it to x0 mod m. If c is zero,
-     * distinct seeds in the range [1,m) will leave the generator in distinct
-     * states. If c is not zero, the range is [0,m).
-     */
-    NDNBOOST_RANDOM_DETAIL_ARITHMETIC_SEED(linear_congruential_engine, IntType, x0)
-    {
-        // wrap _x if it doesn't fit in the destination
-        if(modulus == 0) {
-            _x = x0;
-        } else {
-            _x = x0 % modulus;
-        }
-        // handle negative seeds
-        if(_x <= 0 && _x != 0) {
-            _x += modulus;
-        }
-        // adjust to the correct range
-        if(increment == 0 && _x == 0) {
-            _x = 1;
-        }
-        NDNBOOST_ASSERT(_x >= (min)());
-        NDNBOOST_ASSERT(_x <= (max)());
-    }
-
-    /**
-     * Seeds a @c linear_congruential_engine using values from a SeedSeq.
-     */
-    NDNBOOST_RANDOM_DETAIL_SEED_SEQ_SEED(linear_congruential_engine, SeedSeq, seq)
-    { seed(detail::seed_one_int<IntType, m>(seq)); }
-
-    /**
-     * seeds a @c linear_congruential_engine with values taken
-     * from the itrator range [first, last) and adjusts @c first to
-     * point to the element after the last one used.  If there are
-     * not enough elements, throws @c std::invalid_argument.
-     *
-     * @c first and @c last must be input iterators.
-     */
-    template<class It>
-    void seed(It& first, It last)
-    { seed(detail::get_one_int<IntType, m>(first, last)); }
-
-    /**
-     * Returns the smallest value that the @c linear_congruential_engine
-     * can produce.
-     */
-    static result_type min NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return c == 0 ? 1 : 0; }
-    /**
-     * Returns the largest value that the @c linear_congruential_engine
-     * can produce.
-     */
-    static result_type max NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return modulus-1; }
-
-    /** Returns the next value of the @c linear_congruential_engine. */
-    IntType operator()()
-    {
-        _x = const_mod<IntType, m>::mult_add(a, _x, c);
-        return _x;
-    }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(ndnboost::uintmax_t z)
-    {
-        typedef const_mod<IntType, m> mod_type;
-        IntType b_inv = mod_type::invert(a-1);
-        IntType b_gcd = mod_type::mult(a-1, b_inv);
-        if(b_gcd == 1) {
-            IntType a_z = mod_type::pow(a, z);
-            _x = mod_type::mult_add(a_z, _x, 
-                mod_type::mult(mod_type::mult(c, b_inv), a_z - 1));
-        } else {
-            // compute (a^z - 1)*c % (b_gcd * m) / (b / b_gcd) * inv(b / b_gcd)
-            // we're storing the intermediate result / b_gcd
-            IntType a_zm1_over_gcd = 0;
-            IntType a_km1_over_gcd = (a - 1) / b_gcd;
-            ndnboost::uintmax_t exponent = z;
-            while(exponent != 0) {
-                if(exponent % 2 == 1) {
-                    a_zm1_over_gcd =
-                        mod_type::mult_add(
-                            b_gcd,
-                            mod_type::mult(a_zm1_over_gcd, a_km1_over_gcd),
-                            mod_type::add(a_zm1_over_gcd, a_km1_over_gcd));
-                }
-                a_km1_over_gcd = mod_type::mult_add(
-                    b_gcd,
-                    mod_type::mult(a_km1_over_gcd, a_km1_over_gcd),
-                    mod_type::add(a_km1_over_gcd, a_km1_over_gcd));
-                exponent /= 2;
-            }
-            
-            IntType a_z = mod_type::mult_add(b_gcd, a_zm1_over_gcd, 1);
-            IntType num = mod_type::mult(c, a_zm1_over_gcd);
-            b_inv = mod_type::invert((a-1)/b_gcd);
-            _x = mod_type::mult_add(a_z, _x, mod_type::mult(b_inv, num));
-        }
-    }
-
-    friend bool operator==(const linear_congruential_engine& x,
-                           const linear_congruential_engine& y)
-    { return x._x == y._x; }
-    friend bool operator!=(const linear_congruential_engine& x,
-                           const linear_congruential_engine& y)
-    { return !(x == y); }
-    
-#if !defined(NDNBOOST_RANDOM_NO_STREAM_OPERATORS)
-    /** Writes a @c linear_congruential_engine to a @c std::ostream. */
-    template<class CharT, class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os,
-               const linear_congruential_engine& lcg)
-    {
-        return os << lcg._x;
-    }
-
-    /** Reads a @c linear_congruential_engine from a @c std::istream. */
-    template<class CharT, class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is,
-               linear_congruential_engine& lcg)
-    {
-        lcg.read(is);
-        return is;
-    }
-#endif
-
-private:
-
-    /// \cond show_private
-
-    template<class CharT, class Traits>
-    void read(std::basic_istream<CharT, Traits>& is) {
-        IntType x;
-        if(is >> x) {
-            if(x >= (min)() && x <= (max)()) {
-                _x = x;
-            } else {
-                is.setstate(std::ios_base::failbit);
-            }
-        }
-    }
-
-    /// \endcond
-
-    IntType _x;
-};
-
-#ifndef NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class IntType, IntType a, IntType c, IntType m>
-const bool linear_congruential_engine<IntType, a, c, m>::has_fixed_range;
-template<class IntType, IntType a, IntType c, IntType m>
-const IntType linear_congruential_engine<IntType,a,c,m>::multiplier;
-template<class IntType, IntType a, IntType c, IntType m>
-const IntType linear_congruential_engine<IntType,a,c,m>::increment;
-template<class IntType, IntType a, IntType c, IntType m>
-const IntType linear_congruential_engine<IntType,a,c,m>::modulus;
-template<class IntType, IntType a, IntType c, IntType m>
-const IntType linear_congruential_engine<IntType,a,c,m>::default_seed;
-#endif
-
-/// \cond show_deprecated
-
-// provided for backwards compatibility
-template<class IntType, IntType a, IntType c, IntType m, IntType val = 0>
-class linear_congruential : public linear_congruential_engine<IntType, a, c, m>
-{
-    typedef linear_congruential_engine<IntType, a, c, m> base_type;
-public:
-    linear_congruential(IntType x0 = 1) : base_type(x0) {}
-    template<class It>
-    linear_congruential(It& first, It last) : base_type(first, last) {}
-};
-
-/// \endcond
-
-/**
- * The specialization \minstd_rand0 was originally suggested in
- *
- *  @blockquote
- *  A pseudo-random number generator for the System/360, P.A. Lewis,
- *  A.S. Goodman, J.M. Miller, IBM Systems Journal, Vol. 8, No. 2,
- *  1969, pp. 136-146
- *  @endblockquote
- *
- * It is examined more closely together with \minstd_rand in
- *
- *  @blockquote
- *  "Random Number Generators: Good ones are hard to find",
- *  Stephen K. Park and Keith W. Miller, Communications of
- *  the ACM, Vol. 31, No. 10, October 1988, pp. 1192-1201 
- *  @endblockquote
- */
-typedef linear_congruential_engine<uint32_t, 16807, 0, 2147483647> minstd_rand0;
-
-/** The specialization \minstd_rand was suggested in
- *
- *  @blockquote
- *  "Random Number Generators: Good ones are hard to find",
- *  Stephen K. Park and Keith W. Miller, Communications of
- *  the ACM, Vol. 31, No. 10, October 1988, pp. 1192-1201
- *  @endblockquote
- */
-typedef linear_congruential_engine<uint32_t, 48271, 0, 2147483647> minstd_rand;
-
-
-#if !defined(NDNBOOST_NO_INT64_T) && !defined(NDNBOOST_NO_INTEGRAL_INT64_T)
-/**
- * Class @c rand48 models a \pseudo_random_number_generator. It uses
- * the linear congruential algorithm with the parameters a = 0x5DEECE66D,
- * c = 0xB, m = 2**48. It delivers identical results to the @c lrand48()
- * function available on some systems (assuming lcong48 has not been called).
- *
- * It is only available on systems where @c uint64_t is provided as an
- * integral type, so that for example static in-class constants and/or
- * enum definitions with large @c uint64_t numbers work.
- */
-class rand48 
-{
-public:
-    typedef ndnboost::uint32_t result_type;
-
-    NDNBOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    /**
-     * Returns the smallest value that the generator can produce
-     */
-    static uint32_t min NDNBOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
-    /**
-     * Returns the largest value that the generator can produce
-     */
-    static uint32_t max NDNBOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return 0x7FFFFFFF; }
-  
-    /** Seeds the generator with the default seed. */
-    rand48() : lcf(cnv(static_cast<uint32_t>(1))) {}
-    /**
-     * Constructs a \rand48 generator with x(0) := (x0 << 16) | 0x330e.
-     */
-    NDNBOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(rand48, result_type, x0)
-    { seed(x0); }
-    /**
-     * Seeds the generator with values produced by @c seq.generate().
-     */
-    NDNBOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(rand48, SeedSeq, seq)
-    { seed(seq); }
-    /**
-     * Seeds the generator using values from an iterator range,
-     * and updates first to point one past the last value consumed.
-     */
-    template<class It> rand48(It& first, It last) : lcf(first, last) { }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Seeds the generator with the default seed. */
-    void seed() { seed(static_cast<uint32_t>(1)); }
-    /**
-     * Changes the current value x(n) of the generator to (x0 << 16) | 0x330e.
-     */
-    NDNBOOST_RANDOM_DETAIL_ARITHMETIC_SEED(rand48, result_type, x0)
-    { lcf.seed(cnv(x0)); }
-    /**
-     * Seeds the generator using values from an iterator range,
-     * and updates first to point one past the last value consumed.
-     */
-    template<class It> void seed(It& first, It last) { lcf.seed(first,last); }
-    /**
-     * Seeds the generator with values produced by @c seq.generate().
-     */
-    NDNBOOST_RANDOM_DETAIL_SEED_SEQ_SEED(rand48, SeedSeq, seq)
-    { lcf.seed(seq); }
-
-    /**  Returns the next value of the generator. */
-    uint32_t operator()() { return static_cast<uint32_t>(lcf() >> 17); }
-    
-    /** Advances the state of the generator by @c z. */
-    void discard(ndnboost::uintmax_t z) { lcf.discard(z); }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    {
-        for(; first != last; ++first) {
-            *first = (*this)();
-        }
-    }
-
-#ifndef NDNBOOST_RANDOM_NO_STREAM_OPERATORS
-    /**  Writes a @c rand48 to a @c std::ostream. */
-    template<class CharT,class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os, const rand48& r)
-    { os << r.lcf; return os; }
-
-    /** Reads a @c rand48 from a @c std::istream. */
-    template<class CharT,class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is, rand48& r)
-    { is >> r.lcf; return is; }
-#endif
-
-    /**
-     * Returns true if the two generators will produce identical
-     * sequences of values.
-     */
-    friend bool operator==(const rand48& x, const rand48& y)
-    { return x.lcf == y.lcf; }
-    /**
-     * Returns true if the two generators will produce different
-     * sequences of values.
-     */
-    friend bool operator!=(const rand48& x, const rand48& y)
-    { return !(x == y); }
-private:
-    /// \cond show_private
-    typedef random::linear_congruential_engine<uint64_t,
-        // xxxxULL is not portable
-        uint64_t(0xDEECE66DUL) | (uint64_t(0x5) << 32),
-        0xB, uint64_t(1)<<48> lcf_t;
-    lcf_t lcf;
-
-    static ndnboost::uint64_t cnv(ndnboost::uint32_t x)
-    { return (static_cast<uint64_t>(x) << 16) | 0x330e; }
-    /// \endcond
-};
-#endif /* !NDNBOOST_NO_INT64_T && !NDNBOOST_NO_INTEGRAL_INT64_T */
-
-} // namespace random
-
-using random::minstd_rand0;
-using random::minstd_rand;
-using random::rand48;
-
-} // namespace ndnboost
-
-#include <ndnboost/random/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_RANDOM_LINEAR_CONGRUENTIAL_HPP
diff --git a/include/ndnboost/random/uniform_01.hpp b/include/ndnboost/random/uniform_01.hpp
deleted file mode 100644
index 1a14110..0000000
--- a/include/ndnboost/random/uniform_01.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-/* boost random/uniform_01.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_01.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef NDNBOOST_RANDOM_UNIFORM_01_HPP
-#define NDNBOOST_RANDOM_UNIFORM_01_HPP
-
-#include <iostream>
-#include <ndnboost/config.hpp>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/random/detail/config.hpp>
-#include <ndnboost/random/detail/ptr_helper.hpp>
-
-#include <ndnboost/random/detail/disable_warnings.hpp>
-
-namespace ndnboost {
-namespace random {
-
-#ifdef NDNBOOST_RANDOM_DOXYGEN
-
-/**
- * The distribution function uniform_01 models a \random_distribution.
- * On each invocation, it returns a random floating-point value
- * uniformly distributed in the range [0..1).
- *
- * The template parameter RealType shall denote a float-like value type
- * with support for binary operators +, -, and /.
- *
- * Note: The current implementation is buggy, because it may not fill
- * all of the mantissa with random bits. I'm unsure how to fill a
- * (to-be-invented) @c ndnboost::bigfloat class with random bits efficiently.
- * It's probably time for a traits class.
- */
-template<class RealType = double>
-class uniform_01
-{
-public:
-  typedef RealType input_type;
-  typedef RealType result_type;
-  result_type min NDNBOOST_PREVENT_MACRO_SUBSTITUTION () const;
-  result_type max NDNBOOST_PREVENT_MACRO_SUBSTITUTION () const;
-  void reset();
-
-  template<class Engine>
-  result_type operator()(Engine& eng);
-
-#ifndef NDNBOOST_RANDOM_NO_STREAM_OPERATORS
-  template<class CharT, class Traits>
-  friend std::basic_ostream<CharT,Traits>&
-  operator<<(std::basic_ostream<CharT,Traits>& os, const new_uniform_01&)
-  {
-    return os;
-  }
-
-  template<class CharT, class Traits>
-  friend std::basic_istream<CharT,Traits>&
-  operator>>(std::basic_istream<CharT,Traits>& is, new_uniform_01&)
-  {
-    return is;
-  }
-#endif
-};
-
-#else
-
-namespace detail {
-
-template<class RealType>
-class new_uniform_01
-{
-public:
-  typedef RealType input_type;
-  typedef RealType result_type;
-  // compiler-generated copy ctor and copy assignment are fine
-  result_type min NDNBOOST_PREVENT_MACRO_SUBSTITUTION () const { return result_type(0); }
-  result_type max NDNBOOST_PREVENT_MACRO_SUBSTITUTION () const { return result_type(1); }
-  void reset() { }
-
-  template<class Engine>
-  result_type operator()(Engine& eng) {
-    for (;;) {
-      typedef typename Engine::result_type base_result;
-      result_type factor = result_type(1) /
-              (result_type((eng.max)()-(eng.min)()) +
-               result_type(std::numeric_limits<base_result>::is_integer ? 1 : 0));
-      result_type result = result_type(eng() - (eng.min)()) * factor;
-      if (result < result_type(1))
-        return result;
-    }
-  }
-
-#ifndef NDNBOOST_RANDOM_NO_STREAM_OPERATORS
-  template<class CharT, class Traits>
-  friend std::basic_ostream<CharT,Traits>&
-  operator<<(std::basic_ostream<CharT,Traits>& os, const new_uniform_01&)
-  {
-    return os;
-  }
-
-  template<class CharT, class Traits>
-  friend std::basic_istream<CharT,Traits>&
-  operator>>(std::basic_istream<CharT,Traits>& is, new_uniform_01&)
-  {
-    return is;
-  }
-#endif
-};
-
-template<class UniformRandomNumberGenerator, class RealType>
-class backward_compatible_uniform_01
-{
-  typedef ndnboost::random::detail::ptr_helper<UniformRandomNumberGenerator> traits;
-public:
-  typedef UniformRandomNumberGenerator base_type;
-  typedef RealType result_type;
-
-  NDNBOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-
-#if !defined(NDNBOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) && !(defined(NDNBOOST_MSVC) && NDNBOOST_MSVC <= 1300)
-  NDNBOOST_STATIC_ASSERT(!std::numeric_limits<RealType>::is_integer);
-#endif
-
-  explicit backward_compatible_uniform_01(typename traits::rvalue_type rng)
-    : _rng(rng),
-      _factor(result_type(1) /
-              (result_type((base().max)()-(base().min)()) +
-               result_type(std::numeric_limits<base_result>::is_integer ? 1 : 0)))
-  {
-  }
-  // compiler-generated copy ctor and copy assignment are fine
-
-  result_type min NDNBOOST_PREVENT_MACRO_SUBSTITUTION () const { return result_type(0); }
-  result_type max NDNBOOST_PREVENT_MACRO_SUBSTITUTION () const { return result_type(1); }
-  typename traits::value_type& base() { return traits::ref(_rng); }
-  const typename traits::value_type& base() const { return traits::ref(_rng); }
-  void reset() { }
-
-  result_type operator()() {
-    for (;;) {
-      result_type result = result_type(base()() - (base().min)()) * _factor;
-      if (result < result_type(1))
-        return result;
-    }
-  }
-
-#if !defined(NDNBOOST_NO_OPERATORS_IN_NAMESPACE) && !defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)
-  template<class CharT, class Traits>
-  friend std::basic_ostream<CharT,Traits>&
-  operator<<(std::basic_ostream<CharT,Traits>& os, const backward_compatible_uniform_01& u)
-  {
-    os << u._rng;
-    return os;
-  }
-
-  template<class CharT, class Traits>
-  friend std::basic_istream<CharT,Traits>&
-  operator>>(std::basic_istream<CharT,Traits>& is, backward_compatible_uniform_01& u)
-  {
-    is >> u._rng;
-    return is;
-  }
-#endif
-
-private:
-  typedef typename traits::value_type::result_type base_result;
-  UniformRandomNumberGenerator _rng;
-  result_type _factor;
-};
-
-#ifndef NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class UniformRandomNumberGenerator, class RealType>
-const bool backward_compatible_uniform_01<UniformRandomNumberGenerator, RealType>::has_fixed_range;
-#endif
-
-template<class UniformRandomNumberGenerator>
-struct select_uniform_01
-{
-  template<class RealType>
-  struct apply
-  {
-    typedef backward_compatible_uniform_01<UniformRandomNumberGenerator, RealType> type;
-  };
-};
-
-template<>
-struct select_uniform_01<float>
-{
-  template<class RealType>
-  struct apply
-  {
-    typedef new_uniform_01<float> type;
-  };
-};
-
-template<>
-struct select_uniform_01<double>
-{
-  template<class RealType>
-  struct apply
-  {
-    typedef new_uniform_01<double> type;
-  };
-};
-
-template<>
-struct select_uniform_01<long double>
-{
-  template<class RealType>
-  struct apply
-  {
-    typedef new_uniform_01<long double> type;
-  };
-};
-
-}
-
-// Because it is so commonly used: uniform distribution on the real [0..1)
-// range.  This allows for specializations to avoid a costly int -> float
-// conversion plus float multiplication
-template<class UniformRandomNumberGenerator = double, class RealType = double>
-class uniform_01
-  : public detail::select_uniform_01<UniformRandomNumberGenerator>::NDNBOOST_NESTED_TEMPLATE apply<RealType>::type
-{
-  typedef typename detail::select_uniform_01<UniformRandomNumberGenerator>::NDNBOOST_NESTED_TEMPLATE apply<RealType>::type impl_type;
-  typedef ndnboost::random::detail::ptr_helper<UniformRandomNumberGenerator> traits;
-public:
-
-  uniform_01() {}
-
-  explicit uniform_01(typename traits::rvalue_type rng)
-    : impl_type(rng)
-  {
-  }
-
-#if !defined(NDNBOOST_NO_OPERATORS_IN_NAMESPACE) && !defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)
-  template<class CharT, class Traits>
-  friend std::basic_ostream<CharT,Traits>&
-  operator<<(std::basic_ostream<CharT,Traits>& os, const uniform_01& u)
-  {
-    os << static_cast<const impl_type&>(u);
-    return os;
-  }
-
-  template<class CharT, class Traits>
-  friend std::basic_istream<CharT,Traits>&
-  operator>>(std::basic_istream<CharT,Traits>& is, uniform_01& u)
-  {
-    is >> static_cast<impl_type&>(u);
-    return is;
-  }
-#endif
-};
-
-#endif
-
-} // namespace random
-
-using random::uniform_01;
-
-} // namespace ndnboost
-
-#include <ndnboost/random/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_RANDOM_UNIFORM_01_HPP
diff --git a/include/ndnboost/random/uniform_smallint.hpp b/include/ndnboost/random/uniform_smallint.hpp
deleted file mode 100644
index 190e100..0000000
--- a/include/ndnboost/random/uniform_smallint.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-/* boost random/uniform_smallint.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * 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)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_smallint.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-04-08  added min<max assertion (N. Becker)
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef NDNBOOST_RANDOM_UNIFORM_SMALLINT_HPP
-#define NDNBOOST_RANDOM_UNIFORM_SMALLINT_HPP
-
-#include <istream>
-#include <iosfwd>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/config.hpp>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/random/detail/config.hpp>
-#include <ndnboost/random/detail/operators.hpp>
-#include <ndnboost/random/detail/signed_unsigned_tools.hpp>
-#include <ndnboost/random/uniform_01.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost {
-namespace random {
-
-// uniform integer distribution on a small range [min, max]
-
-/**
- * The distribution function uniform_smallint models a \random_distribution.
- * On each invocation, it returns a random integer value uniformly distributed
- * in the set of integer numbers {min, min+1, min+2, ..., max}. It assumes
- * that the desired range (max-min+1) is small compared to the range of the
- * underlying source of random numbers and thus makes no attempt to limit
- * quantization errors.
- *
- * Let \f$r_{\mathtt{out}} = (\mbox{max}-\mbox{min}+1)\f$ the desired range of
- * integer numbers, and
- * let \f$r_{\mathtt{base}}\f$ be the range of the underlying source of random
- * numbers. Then, for the uniform distribution, the theoretical probability
- * for any number i in the range \f$r_{\mathtt{out}}\f$ will be
- * \f$\displaystyle p_{\mathtt{out}}(i) = \frac{1}{r_{\mathtt{out}}}\f$.
- * Likewise, assume a uniform distribution on \f$r_{\mathtt{base}}\f$ for
- * the underlying source of random numbers, i.e.
- * \f$\displaystyle p_{\mathtt{base}}(i) = \frac{1}{r_{\mathtt{base}}}\f$.
- * Let \f$p_{\mathtt{out\_s}}(i)\f$ denote the random
- * distribution generated by @c uniform_smallint. Then the sum over all
- * i in \f$r_{\mathtt{out}}\f$ of
- * \f$\displaystyle
- * \left(\frac{p_{\mathtt{out\_s}}(i)}{p_{\mathtt{out}}(i)} - 1\right)^2\f$
- * shall not exceed
- * \f$\displaystyle \frac{r_{\mathtt{out}}}{r_{\mathtt{base}}^2}
- * (r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})
- * (r_{\mathtt{out}} - r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})\f$.
- *
- * The template parameter IntType shall denote an integer-like value type.
- *
- * @xmlnote
- * The property above is the square sum of the relative differences
- * in probabilities between the desired uniform distribution
- * \f$p_{\mathtt{out}}(i)\f$ and the generated distribution
- * \f$p_{\mathtt{out\_s}}(i)\f$.
- * The property can be fulfilled with the calculation
- * \f$(\mbox{base\_rng} \mbox{ mod } r_{\mathtt{out}})\f$, as follows:
- * Let \f$r = r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}}\f$.
- * The base distribution on \f$r_{\mathtt{base}}\f$ is folded onto the
- * range \f$r_{\mathtt{out}}\f$. The numbers i < r have assigned
- * \f$\displaystyle
- * \left\lfloor\frac{r_{\mathtt{base}}}{r_{\mathtt{out}}}\right\rfloor+1\f$
- * numbers of the base distribution, the rest has only \f$\displaystyle
- * \left\lfloor\frac{r_{\mathtt{base}}}{r_{\mathtt{out}}}\right\rfloor\f$.
- * Therefore,
- * \f$\displaystyle p_{\mathtt{out\_s}}(i) =
- * \left(\left\lfloor\frac{r_{\mathtt{base}}}
- * {r_{\mathtt{out}}}\right\rfloor+1\right) /
- * r_{\mathtt{base}}\f$ for i < r and \f$\displaystyle p_{\mathtt{out\_s}}(i) =
- * \left\lfloor\frac{r_{\mathtt{base}}}
- * {r_{\mathtt{out}}}\right\rfloor/r_{\mathtt{base}}\f$ otherwise.
- * Substituting this in the
- * above sum formula leads to the desired result.
- * @endxmlnote
- *
- * Note: The upper bound for
- * \f$(r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})
- * (r_{\mathtt{out}} - r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})\f$ is
- * \f$\displaystyle \frac{r_{\mathtt{out}}^2}{4}\f$.  Regarding the upper bound
- * for the square sum of the relative quantization error of
- * \f$\displaystyle \frac{r_\mathtt{out}^3}{4r_{\mathtt{base}}^2}\f$, it
- * seems wise to either choose \f$r_{\mathtt{base}}\f$ so that
- * \f$r_{\mathtt{base}} > 10r_{\mathtt{out}}^2\f$ or ensure that
- * \f$r_{\mathtt{base}}\f$ is
- * divisible by \f$r_{\mathtt{out}}\f$.
- */
-template<class IntType = int>
-class uniform_smallint
-{
-public:
-    typedef IntType input_type;
-    typedef IntType result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef uniform_smallint distribution_type;
-
-        /** constructs the parameters of a @c uniform_smallint distribution. */
-        param_type(IntType min_arg = 0, IntType max_arg = 9)
-          : _min(min_arg), _max(max_arg)
-        {
-            NDNBOOST_ASSERT(_min <= _max);
-        }
-
-        /** Returns the minimum value. */
-        IntType a() const { return _min; }
-        /** Returns the maximum value. */
-        IntType b() const { return _max; }
-        
-
-        /** Writes the parameters to a @c std::ostream. */
-        NDNBOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._min << " " << parm._max;
-            return os;
-        }
-    
-        /** Reads the parameters from a @c std::istream. */
-        NDNBOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            is >> parm._min >> std::ws >> parm._max;
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        NDNBOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._min == rhs._min && lhs._max == rhs._max; }
-
-        /** Returns true if the two sets of parameters are different. */
-        NDNBOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        IntType _min;
-        IntType _max;
-    };
-
-    /**
-     * Constructs a @c uniform_smallint. @c min and @c max are the
-     * lower and upper bounds of the output range, respectively.
-     */
-    explicit uniform_smallint(IntType min_arg = 0, IntType max_arg = 9)
-      : _min(min_arg), _max(max_arg) {}
-
-    /**
-     * Constructs a @c uniform_smallint from its parameters.
-     */
-    explicit uniform_smallint(const param_type& parm)
-      : _min(parm.a()), _max(parm.b()) {}
-
-    /** Returns the minimum value of the distribution. */
-    result_type a() const { return _min; }
-    /** Returns the maximum value of the distribution. */
-    result_type b() const { return _max; }
-    /** Returns the minimum value of the distribution. */
-    result_type min NDNBOOST_PREVENT_MACRO_SUBSTITUTION () const { return _min; }
-    /** Returns the maximum value of the distribution. */
-    result_type max NDNBOOST_PREVENT_MACRO_SUBSTITUTION () const { return _max; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_min, _max); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _min = parm.a();
-        _max = parm.b();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /** Returns a value uniformly distributed in the range [min(), max()]. */
-    template<class Engine>
-    result_type operator()(Engine& eng) const
-    {
-        typedef typename Engine::result_type base_result;
-        return generate(eng, ndnboost::is_integral<base_result>());
-    }
-
-    /** Returns a value uniformly distributed in the range [param.a(), param.b()]. */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm) const
-    { return uniform_smallint(parm)(eng); }
-
-    /** Writes the distribution to a @c std::ostream. */
-    NDNBOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, uniform_smallint, ud)
-    {
-        os << ud._min << " " << ud._max;
-        return os;
-    }
-    
-    /** Reads the distribution from a @c std::istream. */
-    NDNBOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, uniform_smallint, ud)
-    {
-        is >> ud._min >> std::ws >> ud._max;
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will produce identical
-     * sequences of values given equal generators.
-     */
-    NDNBOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(uniform_smallint, lhs, rhs)
-    { return lhs._min == rhs._min && lhs._max == rhs._max; }
-    
-    /**
-     * Returns true if the two distributions may produce different
-     * sequences of values given equal generators.
-     */
-    NDNBOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(uniform_smallint)
-
-private:
-    
-    // \cond show_private
-    template<class Engine>
-    result_type generate(Engine& eng, ndnboost::mpl::true_) const
-    {
-        // equivalent to (eng() - eng.min()) % (_max - _min + 1) + _min,
-        // but guarantees no overflow.
-        typedef typename Engine::result_type base_result;
-        typedef typename ndnboost::make_unsigned<base_result>::type base_unsigned;
-        typedef typename ndnboost::make_unsigned<result_type>::type range_type;
-        range_type range = random::detail::subtract<result_type>()(_max, _min);
-        base_unsigned base_range =
-            random::detail::subtract<result_type>()((eng.max)(), (eng.min)());
-        base_unsigned val =
-            random::detail::subtract<base_result>()(eng(), (eng.min)());
-        if(range >= base_range) {
-            return ndnboost::random::detail::add<range_type, result_type>()(
-                static_cast<range_type>(val), _min);
-        } else {
-            base_unsigned modulus = static_cast<base_unsigned>(range) + 1;
-            return ndnboost::random::detail::add<range_type, result_type>()(
-                static_cast<range_type>(val % modulus), _min);
-        }
-    }
-    
-    template<class Engine>
-    result_type generate(Engine& eng, ndnboost::mpl::false_) const
-    {
-        typedef typename Engine::result_type base_result;
-        typedef typename ndnboost::make_unsigned<result_type>::type range_type;
-        range_type range = random::detail::subtract<result_type>()(_max, _min);
-        base_result val = ndnboost::uniform_01<base_result>()(eng);
-        // what is the worst that can possibly happen here?
-        // base_result may not be able to represent all the values in [0, range]
-        // exactly.  If this happens, it will cause round off error and we
-        // won't be able to produce all the values in the range.  We don't
-        // care about this because the user has already told us not to by
-        // using uniform_smallint.  However, we do need to be careful
-        // to clamp the result, or floating point rounding can produce
-        // an out of range result.
-        range_type offset = static_cast<range_type>(val * (static_cast<base_result>(range) + 1));
-        if(offset > range) return _max;
-        return ndnboost::random::detail::add<range_type, result_type>()(offset , _min);
-    }
-    // \endcond
-
-    result_type _min;
-    result_type _max;
-};
-
-} // namespace random
-
-using random::uniform_smallint;
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_RANDOM_UNIFORM_SMALLINT_HPP
diff --git a/include/ndnboost/range/algorithm/equal.hpp b/include/ndnboost/range/algorithm/equal.hpp
deleted file mode 100644
index 7091035..0000000
--- a/include/ndnboost/range/algorithm/equal.hpp
+++ /dev/null
@@ -1,198 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Neil Groves 2009.
-//  Use, modification and distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-#ifndef NDNBOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED
-#define NDNBOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/range/concepts.hpp>
-#include <iterator>
-
-namespace ndnboost
-{
-    namespace range_detail
-    {
-        // An implementation of equality comparison that is optimized for iterator
-        // traversal categories less than RandomAccessTraversal.
-        template< class SinglePassTraversalReadableIterator1,
-                  class SinglePassTraversalReadableIterator2,
-                  class IteratorCategoryTag1,
-                  class IteratorCategoryTag2 >
-        inline bool equal_impl( SinglePassTraversalReadableIterator1 first1,
-                                SinglePassTraversalReadableIterator1 last1,
-                                SinglePassTraversalReadableIterator2 first2,
-                                SinglePassTraversalReadableIterator2 last2,
-                                IteratorCategoryTag1,
-                                IteratorCategoryTag2 )
-        {
-            while (true)
-            {
-                // If we have reached the end of the left range then this is
-                // the end of the loop. They are equal if and only if we have
-                // simultaneously reached the end of the right range.
-                if (first1 == last1)
-                    return first2 == last2;
-
-                // If we have reached the end of the right range at this line
-                // it indicates that the right range is shorter than the left
-                // and hence the result is false.
-                if (first2 == last2)
-                    return false;
-
-                // continue looping if and only if the values are equal
-                if (*first1 != *first2)
-                    break;
-
-                ++first1;
-                ++first2;
-            }
-
-            // Reaching this line in the algorithm indicates that a value
-            // inequality has been detected.
-            return false;
-        }
-
-        template< class SinglePassTraversalReadableIterator1,
-                  class SinglePassTraversalReadableIterator2,
-                  class IteratorCategoryTag1,
-                  class IteratorCategoryTag2,
-                  class BinaryPredicate >
-        inline bool equal_impl( SinglePassTraversalReadableIterator1 first1,
-                                SinglePassTraversalReadableIterator1 last1,
-                                SinglePassTraversalReadableIterator2 first2,
-                                SinglePassTraversalReadableIterator2 last2,
-                                BinaryPredicate                      pred,
-                                IteratorCategoryTag1,
-                                IteratorCategoryTag2 )
-        {
-            while (true)
-            {
-                // If we have reached the end of the left range then this is
-                // the end of the loop. They are equal if and only if we have
-                // simultaneously reached the end of the right range.
-                if (first1 == last1)
-                    return first2 == last2;
-
-                // If we have reached the end of the right range at this line
-                // it indicates that the right range is shorter than the left
-                // and hence the result is false.
-                if (first2 == last2)
-                    return false;
-
-                // continue looping if and only if the values are equal
-                if (!pred(*first1, *first2))
-                    break;
-
-                ++first1;
-                ++first2;
-            }
-
-            // Reaching this line in the algorithm indicates that a value
-            // inequality has been detected.
-            return false;
-        }
-
-        // An implementation of equality comparison that is optimized for
-        // random access iterators.
-        template< class RandomAccessTraversalReadableIterator1,
-                  class RandomAccessTraversalReadableIterator2 >
-        inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1,
-                                RandomAccessTraversalReadableIterator1 last1,
-                                RandomAccessTraversalReadableIterator2 first2,
-                                RandomAccessTraversalReadableIterator2 last2,
-                                std::random_access_iterator_tag,
-                                std::random_access_iterator_tag )
-        {
-            return ((last1 - first1) == (last2 - first2))
-                && std::equal(first1, last1, first2);
-        }
-
-        template< class RandomAccessTraversalReadableIterator1,
-                  class RandomAccessTraversalReadableIterator2,
-                  class BinaryPredicate >
-        inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1,
-                                RandomAccessTraversalReadableIterator1 last1,
-                                RandomAccessTraversalReadableIterator2 first2,
-                                RandomAccessTraversalReadableIterator2 last2,
-                                BinaryPredicate                        pred )
-        {
-            return ((last1 - first1) == (last2 - first2))
-                && std::equal(first1, last1, first2, pred);
-        }
-
-        template< class SinglePassTraversalReadableIterator1,
-                  class SinglePassTraversalReadableIterator2 >
-        inline bool equal( SinglePassTraversalReadableIterator1 first1,
-                           SinglePassTraversalReadableIterator1 last1,
-                           SinglePassTraversalReadableIterator2 first2,
-                           SinglePassTraversalReadableIterator2 last2 )
-        {
-            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);
-        }
-
-        template< class SinglePassTraversalReadableIterator1,
-                  class SinglePassTraversalReadableIterator2,
-                  class BinaryPredicate >
-        inline bool equal( SinglePassTraversalReadableIterator1 first1,
-                           SinglePassTraversalReadableIterator1 last1,
-                           SinglePassTraversalReadableIterator2 first2,
-                           SinglePassTraversalReadableIterator2 last2,
-                           BinaryPredicate                      pred )
-        {
-            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);
-        }
-
-    } // namespace range_detail
-
-    namespace range
-    {
-
-        /// \brief template function equal
-        ///
-        /// range-based version of the equal std algorithm
-        ///
-        /// \pre SinglePassRange1 is a model of the SinglePassRangeConcept
-        /// \pre SinglePassRange2 is a model of the SinglePassRangeConcept
-        /// \pre BinaryPredicate is a model of the BinaryPredicateConcept
-        template< class SinglePassRange1, class SinglePassRange2 >
-        inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2 )
-        {
-            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),
-                ::ndnboost::begin(rng2), ::ndnboost::end(rng2) );
-        }
-
-        /// \overload
-        template< class SinglePassRange1, class SinglePassRange2, class BinaryPredicate >
-        inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2,
-                           BinaryPredicate pred )
-        {
-            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),
-                ::ndnboost::begin(rng2), ::ndnboost::end(rng2),
-                pred);
-        }
-
-    } // namespace range
-    using ::ndnboost::range::equal;
-} // namespace ndnboost
-
-#endif // include guard
diff --git a/include/ndnboost/range/as_literal.hpp b/include/ndnboost/range/as_literal.hpp
deleted file mode 100644
index 997ed2e..0000000
--- a/include/ndnboost/range/as_literal.hpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2006. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_AS_LITERAL_HPP
-#define NDNBOOST_RANGE_AS_LITERAL_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#include <ndnboost/range/detail/as_literal.hpp>
-#else
-
-#include <ndnboost/range/iterator_range.hpp>
-#include <ndnboost/range/detail/str_types.hpp>
-
-#include <ndnboost/detail/workaround.hpp>
-
-#include <cstring>
-#ifndef NDNBOOST_NO_CWCHAR
-#include <cwchar>
-#endif
-
-namespace ndnboost
-{
-    namespace range_detail
-    {
-        inline std::size_t length( const char* s )
-        {
-            return strlen( s );
-        }
-
-#ifndef NDNBOOST_NO_CWCHAR
-        inline std::size_t length( const wchar_t* s )
-        {
-            return wcslen( s );
-        }
-#endif
-
-        //
-        // Remark: the compiler cannot choose between T* and T[sz]
-        // overloads, so we must put the T* internal to the
-        // unconstrained version.
-        //
-
-        inline bool is_char_ptr( char* )
-        {
-            return true;
-        }
-
-        inline bool is_char_ptr( const char* )
-        {
-            return true;
-        }
-
-#ifndef NDNBOOST_NO_CWCHAR
-        inline bool is_char_ptr( wchar_t* )
-        {
-            return true;
-        }
-
-        inline bool is_char_ptr( const wchar_t* )
-        {
-            return true;
-        }
-#endif
-
-        template< class T >
-        inline long is_char_ptr( const T& /* r */ )
-        {
-            return 0L;
-        }
-
-        template< class T >
-        inline iterator_range<T*>
-        make_range( T* const r, bool )
-        {
-            return iterator_range<T*>( r, r + length(r) );
-        }
-
-        template< class T >
-        inline iterator_range<NDNBOOST_DEDUCED_TYPENAME range_iterator<T>::type>
-        make_range( T& r, long )
-        {
-            return ndnboost::make_iterator_range( r );
-        }
-
-    }
-
-    template< class Range >
-    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<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) );
-    }
-
-    template< class Char, std::size_t sz >
-    inline iterator_range<Char*> as_literal( Char (&arr)[sz] )
-    {
-        return range_detail::make_range( arr, range_detail::is_char_ptr(arr) );
-    }
-
-    template< class Char, std::size_t sz >
-    inline iterator_range<const Char*> as_literal( const Char (&arr)[sz] )
-    {
-        return range_detail::make_range( arr, range_detail::is_char_ptr(arr) );
-    }
-}
-
-#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-#endif
diff --git a/include/ndnboost/range/begin.hpp b/include/ndnboost/range/begin.hpp
deleted file mode 100644
index 5001f35..0000000
--- a/include/ndnboost/range/begin.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_BEGIN_HPP
-#define NDNBOOST_RANGE_BEGIN_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-
-#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#include <ndnboost/range/detail/begin.hpp>
-#else
-
-#include <ndnboost/range/iterator.hpp>
-
-namespace ndnboost
-{
-
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-namespace range_detail
-{
-#endif
-
-    //////////////////////////////////////////////////////////////////////
-    // primary template
-    //////////////////////////////////////////////////////////////////////
-
-    template< typename C >
-    inline NDNBOOST_DEDUCED_TYPENAME range_iterator<C>::type
-    range_begin( C& c )
-    {
-        //
-        // If you get a compile-error here, it is most likely because
-        // you have not implemented range_begin() properly in
-        // the namespace of C
-        //
-        return c.begin();
-    }
-
-    //////////////////////////////////////////////////////////////////////
-    // pair
-    //////////////////////////////////////////////////////////////////////
-
-    template< typename Iterator >
-    inline Iterator range_begin( const std::pair<Iterator,Iterator>& p )
-    {
-        return p.first;
-    }
-
-    template< typename Iterator >
-    inline Iterator range_begin( std::pair<Iterator,Iterator>& p )
-    {
-        return p.first;
-    }
-
-    //////////////////////////////////////////////////////////////////////
-    // array
-    //////////////////////////////////////////////////////////////////////
-
-    //
-    // May this be discarded? Or is it needed for bad compilers?
-    //
-    template< typename T, std::size_t sz >
-    inline const T* range_begin( const T (&a)[sz] )
-    {
-        return a;
-    }
-
-    template< typename T, std::size_t sz >
-    inline T* range_begin( T (&a)[sz] )
-    {
-        return a;
-    }
-
-
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-} // namespace 'range_detail'
-#endif
-
-// Use a ADL namespace barrier to avoid ambiguity with other unqualified
-// calls. This is particularly important with C++0x encouraging
-// unqualified calls to begin/end.
-namespace range_adl_barrier
-{
-
-template< class T >
-inline NDNBOOST_DEDUCED_TYPENAME range_iterator<T>::type begin( T& r )
-{
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-    using namespace range_detail;
-#endif
-    return range_begin( r );
-}
-
-template< class T >
-inline NDNBOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
-{
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-    using namespace range_detail;
-#endif
-    return range_begin( r );
-}
-
-    } // namespace range_adl_barrier
-} // namespace ndnboost
-
-#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-namespace ndnboost
-{
-    namespace range_adl_barrier
-    {
-        template< class T >
-        inline NDNBOOST_DEDUCED_TYPENAME range_iterator<const T>::type
-        const_begin( const T& r )
-        {
-            return ndnboost::range_adl_barrier::begin( r );
-        }
-    } // namespace range_adl_barrier
-
-    using namespace range_adl_barrier;
-} // namespace ndnboost
-
-#endif
-
diff --git a/include/ndnboost/range/concepts.hpp b/include/ndnboost/range/concepts.hpp
deleted file mode 100644
index c990c16..0000000
--- a/include/ndnboost/range/concepts.hpp
+++ /dev/null
@@ -1,366 +0,0 @@
-// Boost.Range library concept checks
-//
-//  Copyright Neil Groves 2009. Use, modification and distribution
-//  are subject to 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)
-//
-//  Copyright Daniel Walker 2006. Use, modification and distribution
-//  are subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_CONCEPTS_HPP
-#define NDNBOOST_RANGE_CONCEPTS_HPP
-
-#include <ndnboost/concept_check.hpp>
-#include <ndnboost/iterator/iterator_concepts.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/iterator.hpp>
-#include <ndnboost/range/value_type.hpp>
-#include <ndnboost/range/detail/misc_concept.hpp>
-
-/*!
- * \file
- * \brief Concept checks for the Boost Range library.
- *
- * The structures in this file may be used in conjunction with the
- * Boost Concept Check library to insure that the type of a function
- * parameter is compatible with a range concept. If not, a meaningful
- * compile time error is generated. Checks are provided for the range
- * concepts related to iterator traversal categories. For example, the
- * following line checks that the type T models the ForwardRange
- * concept.
- *
- * \code
- * NDNBOOST_CONCEPT_ASSERT((ForwardRangeConcept<T>));
- * \endcode
- *
- * A different concept check is required to ensure writeable value
- * access. For example to check for a ForwardRange that can be written
- * to, the following code is required.
- *
- * \code
- * NDNBOOST_CONCEPT_ASSERT((WriteableForwardRangeConcept<T>));
- * \endcode
- *
- * \see http://www.boost.org/libs/range/doc/range.html for details
- * about range concepts.
- * \see http://www.boost.org/libs/iterator/doc/iterator_concepts.html
- * for details about iterator concepts.
- * \see http://www.boost.org/libs/concept_check/concept_check.htm for
- * details about concept checks.
- */
-
-namespace ndnboost {
-
-    namespace range_detail {
-
-#ifndef NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
-
-// List broken compiler versions here:
-    #ifdef __GNUC__
-        // GNUC 4.2 has strange issues correctly detecting compliance with the Concepts
-        // 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 NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
-        #endif
-    #endif
-
-    #ifdef __BORLANDC__
-        #define NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
-    #endif
-
-    #ifdef __PATHCC__
-        #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 NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        #define NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT 1
-    #endif
-
-#endif
-
-#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
-    #define NDNBOOST_RANGE_CONCEPT_ASSERT( x ) NDNBOOST_CONCEPT_ASSERT( x )
-#else
-    #define NDNBOOST_RANGE_CONCEPT_ASSERT( x )
-#endif
-
-        // Rationale for the inclusion of redefined iterator concept
-        // classes:
-        //
-        // The Range algorithms often do not require that the iterators are
-        // Assignable or default constructable, but the correct standard
-        // conformant iterators do require the iterators to be a model of the
-        // Assignable concept.
-        // Iterators that contains a functor that is not assignable therefore
-        // are not correct models of the standard iterator concepts,
-        // despite being adequate for most algorithms. An example of this
-        // use case is the combination of the ndnboost::adaptors::filtered
-        // class with a ndnboost::lambda::bind generated functor.
-        // Ultimately modeling the range concepts using composition
-        // with the Boost.Iterator concepts would render the library
-        // incompatible with many common Boost.Lambda expressions.
-        template<class Iterator>
-        struct IncrementableIteratorConcept : CopyConstructible<Iterator>
-        {
-#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
-            typedef NDNBOOST_DEDUCED_TYPENAME iterator_traversal<Iterator>::type traversal_category;
-
-            NDNBOOST_RANGE_CONCEPT_ASSERT((
-                Convertible<
-                    traversal_category,
-                    incrementable_traversal_tag
-                >));
-
-            NDNBOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
-            {
-                ++i;
-                (void)i++;
-            }
-        private:
-            Iterator i;
-#endif
-        };
-
-        template<class Iterator>
-        struct SinglePassIteratorConcept
-            : IncrementableIteratorConcept<Iterator>
-            , EqualityComparable<Iterator>
-        {
-#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
-            NDNBOOST_RANGE_CONCEPT_ASSERT((
-                Convertible<
-                    NDNBOOST_DEDUCED_TYPENAME SinglePassIteratorConcept::traversal_category,
-                    single_pass_traversal_tag
-                >));
-
-            NDNBOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
-            {
-                Iterator i2(++i);
-                ndnboost::ignore_unused_variable_warning(i2);
-
-                // deliberately we are loose with the postfix version for the single pass
-                // iterator due to the commonly poor adherence to the specification means that
-                // many algorithms would be unusable, whereas actually without the check they
-                // work
-                (void)(i++);
-
-                NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference r1(*i);
-                ndnboost::ignore_unused_variable_warning(r1);
-
-                NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference r2(*(++i));
-                ndnboost::ignore_unused_variable_warning(r2);
-            }
-        private:
-            Iterator i;
-#endif
-        };
-
-        template<class Iterator>
-        struct ForwardIteratorConcept
-            : SinglePassIteratorConcept<Iterator>
-            , DefaultConstructible<Iterator>
-        {
-#if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
-            typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::difference_type difference_type;
-
-            NDNBOOST_MPL_ASSERT((is_integral<difference_type>));
-            NDNBOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);
-
-            NDNBOOST_RANGE_CONCEPT_ASSERT((
-                Convertible<
-                    NDNBOOST_DEDUCED_TYPENAME ForwardIteratorConcept::traversal_category,
-                    forward_traversal_tag
-                >));
-
-            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
-                // for a proxy, we can sensibly require that the dereference result
-                // is convertible to reference.
-                Iterator i2(i++);
-                ndnboost::ignore_unused_variable_warning(i2);
-                NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::iterator_traits<Iterator>::reference r(*(i++));
-                ndnboost::ignore_unused_variable_warning(r);
-            }
-        private:
-            Iterator i;
-#endif
-         };
-
-         template<class Iterator>
-         struct BidirectionalIteratorConcept
-             : ForwardIteratorConcept<Iterator>
-         {
- #if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
-             NDNBOOST_RANGE_CONCEPT_ASSERT((
-                 Convertible<
-                     NDNBOOST_DEDUCED_TYPENAME BidirectionalIteratorConcept::traversal_category,
-                     bidirectional_traversal_tag
-                 >));
-
-             NDNBOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
-             {
-                 --i;
-                 (void)i--;
-             }
-         private:
-             Iterator i;
- #endif
-         };
-
-         template<class Iterator>
-         struct RandomAccessIteratorConcept
-             : BidirectionalIteratorConcept<Iterator>
-         {
- #if NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
-             NDNBOOST_RANGE_CONCEPT_ASSERT((
-                 Convertible<
-                     NDNBOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::traversal_category,
-                     random_access_traversal_tag
-                 >));
-
-             NDNBOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
-             {
-                 i += n;
-                 i = i + n;
-                 i = n + i;
-                 i -= n;
-                 i = i - n;
-                 n = i - j;
-             }
-         private:
-             NDNBOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::difference_type n;
-             Iterator i;
-             Iterator j;
- #endif
-         };
-
-    } // namespace range_detail
-
-    //! Check if a type T models the SinglePassRange range concept.
-    template<class T>
-    struct SinglePassRangeConcept
-    {
-#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;
-
-         NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept<iterator>));
-         NDNBOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept<const_iterator>));
-
-         NDNBOOST_CONCEPT_USAGE(SinglePassRangeConcept)
-         {
-            // This has been modified from assigning to this->i
-            // (where i was a member variable) to improve
-            // compatibility with Boost.Lambda
-            iterator i1 = ndnboost::begin(*m_range);
-            iterator i2 = ndnboost::end(*m_range);
-
-            ignore_unused_variable_warning(i1);
-            ignore_unused_variable_warning(i2);
-
-            const_constraints(*m_range);
-        }
-
-    private:
-        void const_constraints(const T& const_range)
-        {
-            const_iterator ci1 = ndnboost::begin(const_range);
-            const_iterator ci2 = ndnboost::end(const_range);
-
-            ignore_unused_variable_warning(ci1);
-            ignore_unused_variable_warning(ci2);
-        }
-
-       // Rationale:
-       // The type of m_range is T* rather than T because it allows
-       // T to be an abstract class. The other obvious alternative of
-       // T& produces a warning on some compilers.
-       T* m_range;
-#endif
-    };
-
-    //! Check if a type T models the ForwardRange range concept.
-    template<class T>
-    struct ForwardRangeConcept : SinglePassRangeConcept<T>
-    {
-#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 NDNBOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        typedef NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type iterator;
-
-        NDNBOOST_CONCEPT_USAGE(WriteableRangeConcept)
-        {
-            *i = v;
-        }
-    private:
-        iterator i;
-        NDNBOOST_DEDUCED_TYPENAME range_value<Range>::type v;
-#endif
-    };
-
-    //! Check if a type T models the WriteableForwardRange range concept.
-    template<class T>
-    struct WriteableForwardRangeConcept
-        : ForwardRangeConcept<T>
-        , WriteableRangeConcept<T>
-    {
-    };
-
-    //! Check if a type T models the BidirectionalRange range concept.
-    template<class T>
-    struct BidirectionalRangeConcept : ForwardRangeConcept<T>
-    {
-#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
-    };
-
-    //! Check if a type T models the WriteableBidirectionalRange range concept.
-    template<class T>
-    struct WriteableBidirectionalRangeConcept
-        : BidirectionalRangeConcept<T>
-        , WriteableRangeConcept<T>
-    {
-    };
-
-    //! Check if a type T models the RandomAccessRange range concept.
-    template<class T>
-    struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
-    {
-#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
-    };
-
-    //! Check if a type T models the WriteableRandomAccessRange range concept.
-    template<class T>
-    struct WriteableRandomAccessRangeConcept
-        : RandomAccessRangeConcept<T>
-        , WriteableRangeConcept<T>
-    {
-    };
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_RANGE_CONCEPTS_HPP
diff --git a/include/ndnboost/range/config.hpp b/include/ndnboost/range/config.hpp
deleted file mode 100644
index b372d6a..0000000
--- a/include/ndnboost/range/config.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_CONFIG_HPP
-#define NDNBOOST_RANGE_CONFIG_HPP
-
-#include <ndnboost/detail/workaround.hpp>
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>
-
-#ifdef NDNBOOST_RANGE_DEDUCED_TYPENAME
-#error "macro already defined!"
-#endif
-
-#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
-# define NDNBOOST_RANGE_DEDUCED_TYPENAME typename
-#else
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300) && !defined(_MSC_EXTENSIONS)
-#  define NDNBOOST_RANGE_DEDUCED_TYPENAME typename
-# else
-#  define NDNBOOST_RANGE_DEDUCED_TYPENAME NDNBOOST_DEDUCED_TYPENAME
-# endif
-#endif
-
-#ifdef NDNBOOST_RANGE_NO_ARRAY_SUPPORT
-#error "macro already defined!"
-#endif
-
-#if NDNBOOST_WORKAROUND( NDNBOOST_MSVC, < 1300 ) || NDNBOOST_WORKAROUND( __MWERKS__, <= 0x3003 )
-#define NDNBOOST_RANGE_NO_ARRAY_SUPPORT 1
-#endif
-
-#ifdef NDNBOOST_RANGE_NO_ARRAY_SUPPORT
-#define NDNBOOST_RANGE_ARRAY_REF() (boost_range_array)
-#define NDNBOOST_RANGE_NO_STATIC_ASSERT
-#else
-#define NDNBOOST_RANGE_ARRAY_REF() (&boost_range_array)
-#endif
-
-
-
-#endif
-
diff --git a/include/ndnboost/range/const_iterator.hpp b/include/ndnboost/range/const_iterator.hpp
deleted file mode 100644
index 61ed3e8..0000000
--- a/include/ndnboost/range/const_iterator.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_CONST_ITERATOR_HPP
-#define NDNBOOST_RANGE_CONST_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <ndnboost/range/detail/const_iterator.hpp>
-#else
-
-#include <ndnboost/range/detail/extract_optional_type.hpp>
-#include <ndnboost/type_traits/remove_const.hpp>
-#include <cstddef>
-#include <utility>
-
-namespace ndnboost
-{
-    //////////////////////////////////////////////////////////////////////////
-    // default
-    //////////////////////////////////////////////////////////////////////////
-    
-    namespace range_detail {
-        NDNBOOST_RANGE_EXTRACT_OPTIONAL_TYPE( const_iterator )
-    }
-
-    template< typename C >
-    struct range_const_iterator : range_detail::extract_const_iterator<C>
-    {};
-    
-    //////////////////////////////////////////////////////////////////////////
-    // pair
-    //////////////////////////////////////////////////////////////////////////
-
-    template< typename Iterator >
-    struct range_const_iterator< std::pair<Iterator,Iterator> >
-    {
-        typedef Iterator type;
-    };
-    
-    //////////////////////////////////////////////////////////////////////////
-    // array
-    //////////////////////////////////////////////////////////////////////////
-
-    template< typename T, std::size_t sz >
-    struct range_const_iterator< T[sz] >
-    {
-        typedef const T* type;
-    };
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 223ae18..0000000
--- a/include/ndnboost/range/detail/as_literal.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2006. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_DETAIL_AS_LITERAL_HPP
-#define NDNBOOST_RANGE_DETAIL_AS_LITERAL_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/detail/detail_str.hpp>
-#include <ndnboost/range/iterator_range.hpp>
-
-namespace ndnboost
-{
-    template< class Range >
-    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),
-                                             ::ndnboost::range_detail::str_end(r) );
-    }
-
-}
-
-#endif
diff --git a/include/ndnboost/range/detail/begin.hpp b/include/ndnboost/range/detail/begin.hpp
deleted file mode 100644
index f2b5e59..0000000
--- a/include/ndnboost/range/detail/begin.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_DETAIL_BEGIN_HPP
-#define NDNBOOST_RANGE_DETAIL_BEGIN_HPP
-
-#include <ndnboost/config.hpp> // NDNBOOST_MSVC
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/range/iterator.hpp>
-#include <ndnboost/range/detail/common.hpp>
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-# include <ndnboost/range/value_type.hpp>
-#endif
-
-namespace ndnboost
-{
-
-    namespace range_detail
-    {
-        template< typename T >
-        struct range_begin;
-
-        //////////////////////////////////////////////////////////////////////
-        // default
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_begin<std_container_>
-        {
-            template< typename C >
-            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type fun( C& c )
-            {
-                return c.begin();
-            };
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_begin<std_pair_>
-        {
-            template< typename P >
-            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type fun( const P& p )
-            {
-                return p.first;
-            }
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // array
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_begin<array_>
-        {
-        #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-            template< typename T, std::size_t sz >
-            static T* fun( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
-            {
-                return boost_range_array;
-            }
-        #else
-            template<typename T>
-            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_value<T>::type* fun(T& t)
-            {
-                return t;
-            }
-        #endif
-        };
-
-    } // namespace 'range_detail'
-
-    namespace range_adl_barrier
-    {
-        template< typename C >
-        inline NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
-        begin( C& c )
-        {
-            return range_detail::range_begin< NDNBOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
-        }
-    }
-} // namespace 'boost'
-
-
-#endif
diff --git a/include/ndnboost/range/detail/common.hpp b/include/ndnboost/range/detail/common.hpp
deleted file mode 100644
index 6eff9db..0000000
--- a/include/ndnboost/range/detail/common.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_DETAIL_COMMON_HPP
-#define NDNBOOST_RANGE_DETAIL_COMMON_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-#include <ndnboost/range/detail/sfinae.hpp>
-#include <ndnboost/type_traits/is_void.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/int.hpp>
-#include <cstddef>
-
-//////////////////////////////////////////////////////////////////////////////
-// missing partial specialization  workaround.
-//////////////////////////////////////////////////////////////////////////////
-
-namespace ndnboost 
-{
-    namespace range_detail 
-    {        
-        // 1 = std containers
-        // 2 = std::pair
-        // 3 = const std::pair
-        // 4 = array
-        // 5 = const array
-        // 6 = char array
-        // 7 = wchar_t array
-        // 8 = char*
-        // 9 = const char*
-        // 10 = whar_t*
-        // 11 = const wchar_t*
-        // 12 = string
-        
-        typedef mpl::int_<1>::type    std_container_;
-        typedef mpl::int_<2>::type    std_pair_;
-        typedef mpl::int_<3>::type    const_std_pair_;
-        typedef mpl::int_<4>::type    array_;
-        typedef mpl::int_<5>::type    const_array_;
-        typedef mpl::int_<6>::type    char_array_;
-        typedef mpl::int_<7>::type    wchar_t_array_;
-        typedef mpl::int_<8>::type    char_ptr_;
-        typedef mpl::int_<9>::type    const_char_ptr_;
-        typedef mpl::int_<10>::type   wchar_t_ptr_;
-        typedef mpl::int_<11>::type   const_wchar_t_ptr_;
-        typedef mpl::int_<12>::type   string_;
-        
-        template< typename C >
-        struct range_helper
-        {
-            static C* c;
-            static C  ptr;
-
-            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 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 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 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 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 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 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 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 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 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 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' 
-    }
-}
-        
-#endif
-
diff --git a/include/ndnboost/range/detail/const_iterator.hpp b/include/ndnboost/range/detail/const_iterator.hpp
deleted file mode 100644
index eb75292..0000000
--- a/include/ndnboost/range/detail/const_iterator.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#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>
-
-//////////////////////////////////////////////////////////////////////////////
-// missing partial specialization  workaround.
-//////////////////////////////////////////////////////////////////////////////
-
-namespace ndnboost 
-{
-    namespace range_detail 
-    {      
-        template< typename T >
-        struct range_const_iterator_;
-
-        template<>
-        struct range_const_iterator_<std_container_>
-        {
-            template< typename C >
-            struct pts
-            {
-                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME C::const_iterator type;
-            };
-        };
-
-        template<>
-        struct range_const_iterator_<std_pair_>
-        {
-            template< typename P >
-            struct pts
-            {
-                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
-            };
-        };
-
-
-        template<>
-        struct range_const_iterator_<array_>
-        { 
-            template< typename T >
-            struct pts
-            {
-                typedef const NDNBOOST_RANGE_DEDUCED_TYPENAME 
-                    remove_extent<T>::type* type;
-            };
-        };
-    } 
-    
-    template< typename C >
-    class range_const_iterator
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
-    public:
-        typedef NDNBOOST_DEDUCED_TYPENAME range_detail::range_const_iterator_<c_type>::NDNBOOST_NESTED_TEMPLATE pts<C>::type type; 
-    };
-
-}
-
-#endif
diff --git a/include/ndnboost/range/detail/detail_str.hpp b/include/ndnboost/range/detail/detail_str.hpp
deleted file mode 100644
index cad0754..0000000
--- a/include/ndnboost/range/detail/detail_str.hpp
+++ /dev/null
@@ -1,376 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_DETAIL_DETAIL_STR_HPP
-#define NDNBOOST_RANGE_DETAIL_DETAIL_STR_HPP
-
-#include <ndnboost/config.hpp> // NDNBOOST_MSVC
-#include <ndnboost/range/iterator.hpp>
-
-namespace ndnboost 
-{
-    
-    namespace range_detail
-    {
-        //
-        // iterator
-        //
-        
-        template<>
-        struct range_iterator_<char_array_>
-        { 
-            template< typename T >
-            struct pts
-            {
-                 typedef NDNBOOST_RANGE_DEDUCED_TYPENAME 
-                    remove_extent<T>::type* type;
-            };
-        };
-
-        template<>
-        struct range_iterator_<char_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef char* type; 
-            };         
-        };
-
-        template<>
-        struct range_iterator_<const_char_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef const char* type;
-            };         
-        };
-
-        template<>
-        struct range_iterator_<wchar_t_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef wchar_t* type; 
-            };         
-        };
-
-        template<>
-        struct range_iterator_<const_wchar_t_ptr_>
-        {
-             template< typename S >
-             struct pts
-             {
-                 typedef const wchar_t* type; 
-             };         
-        };
-
-
-        //
-        // const iterator
-        //
-
-        template<>
-        struct range_const_iterator_<char_array_>
-        { 
-            template< typename T >
-            struct pts
-            {
-                typedef const NDNBOOST_RANGE_DEDUCED_TYPENAME 
-                    remove_extent<T>::type* type;
-            };
-        };
-
-        template<>
-        struct range_const_iterator_<char_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef const char* type; 
-            };         
-        };
-
-        template<>
-        struct range_const_iterator_<const_char_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef const char* type; 
-            };         
-        };
-
-        template<>
-        struct range_const_iterator_<wchar_t_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef const wchar_t* type; 
-            };         
-        };
-
-        template<>
-        struct range_const_iterator_<const_wchar_t_ptr_>
-        {
-             template< typename S >
-             struct pts
-             {
-                 typedef const wchar_t* type; 
-             };         
-        };
-    }
-}
-
-#include <ndnboost/range/detail/begin.hpp>
-#include <ndnboost/range/detail/end.hpp>
-#include <ndnboost/range/detail/size_type.hpp>
-#include <ndnboost/range/detail/value_type.hpp>
-#include <ndnboost/range/detail/common.hpp>
-
-namespace ndnboost 
-{
-    
-    namespace range_detail
-    {
-        //
-        // str_begin()
-        //
-        template<>
-        struct range_begin<char_ptr_>
-        {
-            static char* fun( char* s )
-            {
-                return s;
-            }
-        };
-
-        template<>
-        struct range_begin<const_char_ptr_>
-        {
-            static const char* fun( const char* s )
-            {
-                return s;
-            }
-        };
-        
-        template<>
-        struct range_begin<wchar_t_ptr_>
-        {
-            
-            static wchar_t* fun( wchar_t* s )
-            {
-                return s;
-            }
-        };
-
-        template<>
-        struct range_begin<const_wchar_t_ptr_>
-        {
-            static const wchar_t* fun( const wchar_t* s )
-            {
-                return s;
-            }
-        };
-        
-        template< typename C >
-        inline NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type 
-        str_begin( C& c )
-        {
-            return range_detail::range_begin< NDNBOOST_RANGE_DEDUCED_TYPENAME 
-                range_detail::range<C>::type >::fun( c );
-        }
-
-        //
-        // str_end()
-        //
-
-        template<>
-        struct range_end<char_array_>
-        {
-            template< typename T, std::size_t sz >
-            static T* fun( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
-            {
-                return ndnboost::range_detail::array_end( boost_range_array );
-            }
-        };
-        
-        template<>
-        struct range_end<wchar_t_array_>
-        {
-            template< typename T, std::size_t sz >
-            static T* fun( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
-            {
-                return ndnboost::range_detail::array_end( boost_range_array );
-            }
-        };
-        
-        template<>
-        struct range_end<char_ptr_>
-        {
-            static char* fun( char* s )
-            {
-                return ndnboost::range_detail::str_end( s );
-            }
-        };
-
-        template<>
-        struct range_end<const_char_ptr_>
-        {
-            static const char* fun( const char* s )
-            {
-                return ndnboost::range_detail::str_end( s );
-            }
-        };
-
-        template<>
-        struct range_end<wchar_t_ptr_>
-        {
-            static wchar_t* fun( wchar_t* s )
-            {
-                return ndnboost::range_detail::str_end( s );
-            }
-        };
-
-
-        template<>
-        struct range_end<const_wchar_t_ptr_>
-        {
-            static const wchar_t* fun( const wchar_t* s )
-            {
-                return ndnboost::range_detail::str_end( s );
-            }
-        };
-
-        template< typename C >
-        inline NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type 
-        str_end( C& c )
-        {
-            return range_detail::range_end< NDNBOOST_RANGE_DEDUCED_TYPENAME 
-                range_detail::range<C>::type >::fun( c );
-        }
-
-        //
-        // size_type
-        //
-
-        template<>
-        struct range_size_type_<char_array_>
-        { 
-            template< typename A >
-            struct pts
-            {
-                typedef std::size_t type;
-            };
-        };
-
-        template<>
-        struct range_size_type_<char_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef std::size_t type;
-            };         
-        };
-        
-        template<>
-        struct range_size_type_<const_char_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef std::size_t type;
-            };         
-        };
-        
-        template<>
-        struct range_size_type_<wchar_t_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef std::size_t type;
-            };         
-        };
-        
-        template<>
-        struct range_size_type_<const_wchar_t_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef std::size_t type;
-            };         
-        };  
-
-        //
-        // value_type
-        //
-        
-        template<>
-        struct range_value_type_<char_array_>
-        { 
-            template< typename T >
-            struct pts
-            {
-                typedef char type;
-            };
-        };
-
-        template<>
-        struct range_value_type_<char_ptr_>
-        {
-             template< typename S >
-             struct pts
-             {
-                 typedef char type; 
-             };         
-        };
-        
-        template<>
-        struct range_value_type_<const_char_ptr_>
-        {
-             template< typename S >
-             struct pts
-             {
-                 typedef const char type;
-             };         
-        };
-        
-        template<>
-        struct range_value_type_<wchar_t_ptr_>
-        {
-             template< typename S >
-             struct pts
-             {
-                 typedef wchar_t type;
-             };         
-        };
-        
-        template<>
-        struct range_value_type_<const_wchar_t_ptr_>
-        {
-            template< typename S >
-            struct pts
-            {
-                typedef const wchar_t type;
-            };         
-        };
-
-    } // namespace 'range_detail'
-
-} // namespace 'boost'
-
-
-#endif
diff --git a/include/ndnboost/range/detail/end.hpp b/include/ndnboost/range/detail/end.hpp
deleted file mode 100644
index 87f848c..0000000
--- a/include/ndnboost/range/detail/end.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_DETAIL_END_HPP
-#define NDNBOOST_RANGE_DETAIL_END_HPP
-
-#include <ndnboost/config.hpp> // NDNBOOST_MSVC
-#include <ndnboost/detail/workaround.hpp>
-
-#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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-#  include <ndnboost/range/detail/remove_extent.hpp>
-# endif
-
-namespace ndnboost
-{
-    namespace range_detail
-    {
-        template< typename T >
-        struct range_end;
-
-        //////////////////////////////////////////////////////////////////////
-        // default
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_end<std_container_>
-        {
-            template< typename C >
-            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
-            fun( C& c )
-            {
-                return c.end();
-            };
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_end<std_pair_>
-        {
-            template< typename P >
-            static NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type
-            fun( const P& p )
-            {
-                return p.second;
-            }
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // array
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_end<array_>
-        {
-        #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-            template< typename T, std::size_t sz >
-            static T* fun( T NDNBOOST_RANGE_ARRAY_REF()[sz] )
-            {
-                return ndnboost::range_detail::array_end( boost_range_array );
-            }
-        #else
-            template<typename T>
-            static NDNBOOST_RANGE_DEDUCED_TYPENAME remove_extent<T>::type* fun(T& t)
-            {
-                return t + remove_extent<T>::size;
-            }
-        #endif
-        };
-
-    } // namespace 'range_detail'
-
-    namespace range_adl_barrier
-    {
-        template< typename C >
-        inline NDNBOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
-        end( C& c )
-        {
-            return range_detail::range_end< NDNBOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
-        }
-    } // namespace range_adl_barrier
-
-} // namespace 'boost'
-
-# endif // VC6
-#endif
diff --git a/include/ndnboost/range/detail/extract_optional_type.hpp b/include/ndnboost/range/detail/extract_optional_type.hpp
deleted file mode 100644
index 86a47b5..0000000
--- a/include/ndnboost/range/detail/extract_optional_type.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Arno Schoedl & Neil Groves 2009.
-//  Use, modification and distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-#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
-#endif
-
-#include <ndnboost/config.hpp>
-
-#ifdef NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
-
-#define NDNBOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef )                         \
-    template< typename C >                                                     \
-    struct extract_ ## a_typedef                                               \
-    {                                                                          \
-        typedef NDNBOOST_DEDUCED_TYPENAME C::a_typedef type;                      \
-    };
-
-#else
-
-namespace ndnboost {
-    namespace range_detail {
-        template< typename T > struct exists { typedef void type; };
-    }
-}
-
-// 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 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                                            \
-    , NDNBOOST_DEDUCED_TYPENAME ndnboost::range_detail::exists< NDNBOOST_DEDUCED_TYPENAME C::a_typedef >::type \
-    > {                                                                        \
-        typedef NDNBOOST_DEDUCED_TYPENAME C::a_typedef type;                      \
-    };
-
-#endif
-
-#endif // include guard
diff --git a/include/ndnboost/range/detail/implementation_help.hpp b/include/ndnboost/range/detail/implementation_help.hpp
deleted file mode 100644
index f310b44..0000000
--- a/include/ndnboost/range/detail/implementation_help.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#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>
-#include <ndnboost/type_traits/is_same.hpp>
-#include <cstddef>
-#include <string.h>
-
-#ifndef NDNBOOST_NO_CWCHAR
-#include <wchar.h>
-#endif
-
-namespace ndnboost
-{
-    namespace range_detail
-    {
-        template <typename T>
-        inline void boost_range_silence_warning( const T& ) { }
-
-        /////////////////////////////////////////////////////////////////////
-        // end() help
-        /////////////////////////////////////////////////////////////////////
-
-        inline const char* str_end( const char* s, const char* )
-        {
-            return s + strlen( s );
-        }
-
-#ifndef NDNBOOST_NO_CWCHAR
-        inline const wchar_t* str_end( const wchar_t* s, const wchar_t* )
-        {
-            return s + wcslen( s );
-        }
-#else
-        inline const wchar_t* str_end( const wchar_t* s, const wchar_t* )
-        {
-            if( s == 0 || s[0] == 0 )
-                return s;
-            while( *++s != 0 )
-                ;
-            return s;
-        }
-#endif
-
-        template< class Char >
-        inline Char* str_end( Char* s )
-        {
-            return const_cast<Char*>( str_end( s, s ) );
-        }
-
-        template< class T, std::size_t 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 NDNBOOST_RANGE_ARRAY_REF()[sz] )
-        {
-            return boost_range_array + sz;
-        }
-
-        /////////////////////////////////////////////////////////////////////
-        // size() help
-        /////////////////////////////////////////////////////////////////////
-
-        template< class Char >
-        inline std::size_t str_size( const Char* const& s )
-        {
-            return str_end( s ) - s;
-        }
-
-        template< class T, std::size_t 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 NDNBOOST_RANGE_ARRAY_REF()[sz] )
-        {
-            boost_range_silence_warning( boost_range_array );
-            return sz;
-        }
-
-    } // namespace 'range_detail'
-
-} // namespace 'boost'
-
-
-#endif
diff --git a/include/ndnboost/range/detail/iterator.hpp b/include/ndnboost/range/detail/iterator.hpp
deleted file mode 100644
index 947b83e..0000000
--- a/include/ndnboost/range/detail/iterator.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#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>
-
-#include <ndnboost/static_assert.hpp>
-
-//////////////////////////////////////////////////////////////////////////////
-// missing partial specialization  workaround.
-//////////////////////////////////////////////////////////////////////////////
-
-namespace ndnboost 
-{
-    namespace range_detail 
-    {        
-        template< typename T >
-        struct range_iterator_ {
-            template< typename C >
-            struct pts
-            {
-                typedef int type;
-            };
-        };
-
-        template<>
-        struct range_iterator_<std_container_>
-        {
-            template< typename C >
-            struct pts
-            {
-                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME C::iterator type;
-            };
-        };
-
-        template<>
-        struct range_iterator_<std_pair_>
-        {
-            template< typename P >
-            struct pts
-            {
-                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
-            };
-        };
-
-        template<>
-        struct range_iterator_<array_>
-        { 
-            template< typename T >
-            struct pts
-            {
-                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME 
-                    remove_extent<T>::type* type;
-            };
-        };
-        
-    } 
-
-    template< typename C >
-    class range_mutable_iterator
-    {
-        typedef NDNBOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
-    public:
-        typedef typename range_detail::range_iterator_<c_type>::NDNBOOST_NESTED_TEMPLATE pts<C>::type type; 
-    };
-}
-
-#endif
diff --git a/include/ndnboost/range/detail/misc_concept.hpp b/include/ndnboost/range/detail/misc_concept.hpp
deleted file mode 100644
index b50de38..0000000
--- a/include/ndnboost/range/detail/misc_concept.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// Boost.Range library concept checks
-//
-//  Copyright Neil Groves 2009. Use, modification and distribution
-//  are subject to 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 NDNBOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED
-#define NDNBOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED
-
-#include <ndnboost/concept_check.hpp>
-
-namespace ndnboost
-{
-    namespace range_detail
-    {
-        template<typename T1, typename T2>
-        class SameTypeConcept
-        {
-        public:
-            NDNBOOST_CONCEPT_USAGE(SameTypeConcept)
-            {
-                same_type(a,b);
-            }
-        private:
-            template<typename T> void same_type(T,T) {}
-            T1 a;
-            T2 b;
-        };
-    }
-}
-
-#endif // include guard
diff --git a/include/ndnboost/range/detail/remove_extent.hpp b/include/ndnboost/range/detail/remove_extent.hpp
deleted file mode 100644
index dee0e34..0000000
--- a/include/ndnboost/range/detail/remove_extent.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Jonathan Turkanis 2005. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-
-#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>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-
-namespace ndnboost 
-{
-    namespace range_detail
-    {
-        
-        template< typename Case1 = mpl::true_,
-                  typename Type1 = mpl::void_,
-                  typename Case2 = mpl::true_,
-                  typename Type2 = mpl::void_,
-                  typename Case3 = mpl::true_,
-                  typename Type3 = mpl::void_,
-                  typename Case4 = mpl::true_,
-                  typename Type4 = mpl::void_,
-                  typename Case5 = mpl::true_,
-                  typename Type5 = mpl::void_,
-                  typename Case6 = mpl::true_,
-                  typename Type6 = mpl::void_,
-                  typename Case7 = mpl::true_,
-                  typename Type7 = mpl::void_,
-                  typename Case8 = mpl::true_,
-                  typename Type8 = mpl::void_,
-                  typename Case9 = mpl::true_,
-                  typename Type9 = mpl::void_,
-                  typename Case10 = mpl::true_,
-                  typename Type10 = mpl::void_,
-                  typename Case11 = mpl::true_,
-                  typename Type11 = mpl::void_,
-                  typename Case12 = mpl::true_,
-                  typename Type12 = mpl::void_,
-                  typename Case13 = mpl::true_,
-                  typename Type13 = mpl::void_,
-                  typename Case14 = mpl::true_,
-                  typename Type14 = mpl::void_,
-                  typename Case15 = mpl::true_,
-                  typename Type15 = mpl::void_,
-                  typename Case16 = mpl::true_,
-                  typename Type16 = mpl::void_,
-                  typename Case17 = mpl::true_,
-                  typename Type17 = mpl::void_,
-                  typename Case18 = mpl::true_,
-                  typename Type18 = mpl::void_,
-                  typename Case19 = mpl::true_,
-                  typename Type19 = mpl::void_,
-                  typename Case20 = mpl::true_,
-                  typename Type20 = mpl::void_>
-        struct select {
-            typedef typename
-                    mpl::eval_if<
-                        Case1, mpl::identity<Type1>, mpl::eval_if<
-                        Case2, mpl::identity<Type2>, mpl::eval_if<
-                        Case3, mpl::identity<Type3>, mpl::eval_if<
-                        Case4, mpl::identity<Type4>, mpl::eval_if<
-                        Case5, mpl::identity<Type5>, mpl::eval_if<
-                        Case6, mpl::identity<Type6>, mpl::eval_if<
-                        Case7, mpl::identity<Type7>, mpl::eval_if<
-                        Case8, mpl::identity<Type8>, mpl::eval_if<
-                        Case9, mpl::identity<Type9>, mpl::if_<
-                        Case10, Type10, mpl::void_ > > > > > > > > >
-                    >::type result1;
-            typedef typename
-                    mpl::eval_if<
-                        Case11, mpl::identity<Type11>, mpl::eval_if<
-                        Case12, mpl::identity<Type12>, mpl::eval_if<
-                        Case13, mpl::identity<Type13>, mpl::eval_if<
-                        Case14, mpl::identity<Type14>, mpl::eval_if<
-                        Case15, mpl::identity<Type15>, mpl::eval_if<
-                        Case16, mpl::identity<Type16>, mpl::eval_if<
-                        Case17, mpl::identity<Type17>, mpl::eval_if<
-                        Case18, mpl::identity<Type18>, mpl::eval_if<
-                        Case19, mpl::identity<Type19>, mpl::if_<
-                        Case20, Type20, mpl::void_ > > > > > > > > >
-                    > result2;
-            typedef typename    
-                    mpl::eval_if<
-                        is_same<result1, mpl::void_>,
-                        result2,
-                        mpl::identity<result1>
-                    >::type type;
-        };
-
-        template<typename T>
-        struct remove_extent {
-            static T* ar;
-            NDNBOOST_STATIC_CONSTANT(std::size_t, size = sizeof(*ar) / sizeof((*ar)[0]));
-
-            typedef typename
-                    select<
-                        is_same<T, bool[size]>,                  bool,
-                        is_same<T, char[size]>,                  char,
-                        is_same<T, signed char[size]>,           signed char,
-                        is_same<T, unsigned char[size]>,         unsigned char,
-                    #ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
-                        is_same<T, wchar_t[size]>,               wchar_t,
-                    #endif
-                        is_same<T, short[size]>,                 short,
-                        is_same<T, unsigned short[size]>,        unsigned short,
-                        is_same<T, int[size]>,                   int,
-                        is_same<T, unsigned int[size]>,          unsigned int,
-                        is_same<T, long[size]>,                  long,
-                        is_same<T, unsigned long[size]>,         unsigned long,
-                        is_same<T, float[size]>,                 float,
-                        is_same<T, double[size]>,                double,
-                        is_same<T, long double[size]>,           long double
-                    >::type result1;
-            typedef typename
-                    select<
-                        is_same<T, const bool[size]>,            const bool,
-                        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 NDNBOOST_NO_INTRINSIC_WCHAR_T
-                        is_same<T, const wchar_t[size]>,         const wchar_t,
-                    #endif
-                        is_same<T, const short[size]>,           const short,
-                        is_same<T, const unsigned short[size]>,  const unsigned short,
-                        is_same<T, const int[size]>,             const int,
-                        is_same<T, const unsigned int[size]>,    const unsigned int,
-                        is_same<T, const long[size]>,            const long,
-                        is_same<T, const unsigned long[size]>,   const unsigned long,
-                        is_same<T, const float[size]>,           const float,
-                        is_same<T, const double[size]>,          const double,
-                        is_same<T, const long double[size]>,     const long double
-                    > result2;
-            typedef typename
-                    mpl::eval_if<
-                        is_same<result1, mpl::void_>,
-                        result2,
-                        mpl::identity<result1>
-                    >::type type;
-        };
-
-    } // namespace 'range_detail'
-
-} // namespace 'boost'
-
-
-#endif
diff --git a/include/ndnboost/range/detail/safe_bool.hpp b/include/ndnboost/range/detail/safe_bool.hpp
deleted file mode 100644
index c5a0731..0000000
--- a/include/ndnboost/range/detail/safe_bool.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  This header intentionally has no include guards.
-//
-//  Copyright (c) 2010 Neil Groves
-//  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
-//
-// This code utilises the experience gained during the evolution of
-// <ndnboost/smart_ptr/operator_bool.hpp>
-#ifndef NDNBOOST_RANGE_SAFE_BOOL_INCLUDED_HPP
-#define NDNBOOST_RANGE_SAFE_BOOL_INCLUDED_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/range/config.hpp>
-
-namespace ndnboost
-{
-    namespace range_detail
-    {
-
-template<class DataMemberPtr>
-class safe_bool
-{
-public:
-    typedef safe_bool this_type;
-
-#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)
-    {
-        return x;
-    }
-#elif defined(_MANAGED)
-    static void unspecified_bool(this_type***)
-    {
-    }
-    typedef void(*unspecified_bool_type)(this_type***);
-    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr)
-    {
-        return x ? unspecified_bool : 0;
-    }
-#elif \
-    ( defined(__MWERKS__) && NDNBOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
-    ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \
-    ( defined(__SUNPRO_CC) && NDNBOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )
-
-    typedef bool (this_type::*unspecified_bool_type)() const;
-
-    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr)
-    {
-        return x ? &this_type::detail_safe_bool_member_fn : 0;
-    }
-private:
-    bool detail_safe_bool_member_fn() const { return false; }
-#else
-    typedef DataMemberPtr unspecified_bool_type;
-    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr p)
-    {
-        return x ? p : 0;
-    }
-#endif
-private:
-    safe_bool();
-    safe_bool(const safe_bool&);
-    void operator=(const safe_bool&);
-    ~safe_bool();
-};
-
-    } // namespace range_detail
-} // namespace ndnboost
-
-#endif // include guard
diff --git a/include/ndnboost/range/detail/sfinae.hpp b/include/ndnboost/range/detail/sfinae.hpp
deleted file mode 100644
index 1ad1c23..0000000
--- a/include/ndnboost/range/detail/sfinae.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_DETAIL_SFINAE_HPP
-#define NDNBOOST_RANGE_DETAIL_SFINAE_HPP
-
-#include <ndnboost/range/config.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-#include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#include <utility>
-
-
-namespace ndnboost 
-{
-    namespace range_detail
-    {          
-        using type_traits::yes_type;
-        using type_traits::no_type;
-
-        //////////////////////////////////////////////////////////////////////
-        // string
-        //////////////////////////////////////////////////////////////////////
-        
-        yes_type is_string_impl( const char* const );
-        yes_type is_string_impl( const wchar_t* const );
-        no_type  is_string_impl( ... );
-        
-        template< std::size_t 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 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 NDNBOOST_RANGE_ARRAY_REF()[sz] );
-        template< std::size_t 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 );
-        no_type  is_char_ptr_impl( ... );
-        
-        yes_type is_const_char_ptr_impl( const char* const );
-        no_type  is_const_char_ptr_impl( ... );
-
-        yes_type is_wchar_t_ptr_impl( wchar_t* const );
-        no_type  is_wchar_t_ptr_impl( ... );
-        
-        yes_type is_const_wchar_t_ptr_impl( const wchar_t* const );
-        no_type  is_const_wchar_t_ptr_impl( ... );
-        
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-
-        template< typename Iterator >
-        yes_type is_pair_impl( const std::pair<Iterator,Iterator>* );
-        no_type  is_pair_impl( ... );
-
-        //////////////////////////////////////////////////////////////////////
-        // tags
-        //////////////////////////////////////////////////////////////////////
-
-        struct char_or_wchar_t_array_tag {};
-        
-    } // namespace 'range_detail'
-    
-} // namespace 'boost'
-
-#endif
diff --git a/include/ndnboost/range/detail/size_type.hpp b/include/ndnboost/range/detail/size_type.hpp
deleted file mode 100644
index 1444d06..0000000
--- a/include/ndnboost/range/detail/size_type.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_DETAIL_SIZE_TYPE_HPP
-#define NDNBOOST_RANGE_DETAIL_SIZE_TYPE_HPP
-
-#include <ndnboost/range/detail/common.hpp>
-
-//////////////////////////////////////////////////////////////////////////////
-// missing partial specialization  workaround.
-//////////////////////////////////////////////////////////////////////////////
-
-namespace ndnboost
-{
-    namespace range_detail
-    {
-        template< typename T >
-        struct range_size_type_
-        {
-            template< typename C >
-            struct pts
-            {
-                typedef std::size_t type;
-            };
-        };
-
-        template<>
-        struct range_size_type_<std_container_>
-        {
-            template< typename C >
-            struct pts
-            {
-                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME C::size_type type;
-            };
-        };
-    }
-
-    template< typename C >
-    class range_size
-    {
-        typedef typename range_detail::range<C>::type c_type;
-    public:
-        typedef typename range_detail::range_size_type_<c_type>::NDNBOOST_NESTED_TEMPLATE pts<C>::type type;
-    };
-}
-
-#endif
-
diff --git a/include/ndnboost/range/detail/str_types.hpp b/include/ndnboost/range/detail/str_types.hpp
deleted file mode 100644
index 57ed311..0000000
--- a/include/ndnboost/range/detail/str_types.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2006. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#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>
-
-namespace ndnboost
-{
-    template< class T >
-    struct range_mutable_iterator<T*>
-    {
-        typedef T* type;
-    };
-
-    template< class T >
-    struct range_const_iterator<T*>
-    {
-        typedef const T* type;
-    };
-
-    template< class T >
-    struct range_size<T*>
-    {
-       typedef std::size_t type;
-    };    
-}
-
-#endif
diff --git a/include/ndnboost/range/detail/value_type.hpp b/include/ndnboost/range/detail/value_type.hpp
deleted file mode 100644
index 0febe4f..0000000
--- a/include/ndnboost/range/detail/value_type.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#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>
-#include <ndnboost/iterator/iterator_traits.hpp>
-
-//////////////////////////////////////////////////////////////////////////////
-// missing partial specialization  workaround.
-//////////////////////////////////////////////////////////////////////////////
-
-namespace ndnboost 
-{
-    namespace range_detail 
-    {        
-        template< typename T >
-        struct range_value_type_;
-
-        template<>
-        struct range_value_type_<std_container_>
-        {
-            template< typename C >
-            struct pts
-            {
-                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME C::value_type type;
-            };
-        };
-
-        template<>
-        struct range_value_type_<std_pair_>
-        {
-            template< typename P >
-            struct pts
-            {
-                typedef NDNBOOST_RANGE_DEDUCED_TYPENAME ndnboost::iterator_value< NDNBOOST_RANGE_DEDUCED_TYPENAME P::first_type >::type type;
-            };
-        };
-
-        template<>
-        struct range_value_type_<array_>
-        { 
-            template< typename T >
-            struct pts
-            {
-                typedef NDNBOOST_DEDUCED_TYPENAME remove_extent<T>::type type;
-            };
-        };
-        
-    } 
-    
-    template< typename C >
-    class range_value
-    {
-        typedef NDNBOOST_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
-    public:
-        typedef NDNBOOST_DEDUCED_TYPENAME range_detail::range_value_type_<c_type>::NDNBOOST_NESTED_TEMPLATE pts<C>::type type; 
-    };
-
-}
-
-#endif
-
diff --git a/include/ndnboost/range/detail/vc6/end.hpp b/include/ndnboost/range/detail/vc6/end.hpp
deleted file mode 100644
index ed9a1b0..0000000
--- a/include/ndnboost/range/detail/vc6/end.hpp
+++ /dev/null
@@ -1,170 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#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>
-#include <ndnboost/range/result_iterator.hpp>
-#include <ndnboost/range/detail/common.hpp>
-#include <ndnboost/range/detail/remove_extent.hpp>
-
-namespace ndnboost 
-{
-    namespace range_detail
-    {
-        template< typename T >
-        struct range_end;
-
-        //////////////////////////////////////////////////////////////////////
-        // default
-        //////////////////////////////////////////////////////////////////////
-        
-        template<>
-        struct range_end<std_container_>
-        {
-            template< typename C >
-            struct inner {
-                static NDNBOOST_RANGE_DEDUCED_TYPENAME range_result_iterator<C>::type 
-                fun( C& c )
-                {
-                    return c.end();
-                };
-            };
-        };
-                    
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-        
-        template<>
-        struct range_end<std_pair_>
-        {
-            template< typename P >
-            struct inner {
-                static NDNBOOST_RANGE_DEDUCED_TYPENAME range_result_iterator<P>::type 
-                fun( const P& p )
-                {
-                    return p.second;
-                }
-            };
-        };
- 
-        //////////////////////////////////////////////////////////////////////
-        // array
-        //////////////////////////////////////////////////////////////////////
-        
-        template<>
-        struct range_end<array_>  
-        {
-            template< typename T >
-            struct inner {
-                static NDNBOOST_DEDUCED_TYPENAME remove_extent<T>::type*
-                fun(T& t)
-                {
-                    return t + remove_extent<T>::size;
-                }
-            };
-        };
-
-                
-        template<>
-        struct range_end<char_array_>
-        {
-            template< typename T >
-            struct inner {
-                static NDNBOOST_DEDUCED_TYPENAME remove_extent<T>::type*
-                fun(T& t)
-                {
-                    return t + remove_extent<T>::size;
-                }
-            };
-        };
-        
-        template<>
-        struct range_end<wchar_t_array_>
-        {
-            template< typename T >
-            struct inner {
-                static NDNBOOST_DEDUCED_TYPENAME remove_extent<T>::type*
-                fun(T& t)
-                {
-                    return t + remove_extent<T>::size;
-                }
-            };
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // string
-        //////////////////////////////////////////////////////////////////////
-        
-        template<>
-        struct range_end<char_ptr_>
-        {
-            template< typename T >
-            struct inner {
-                static char* fun( char* s )
-                {
-                    return ndnboost::range_detail::str_end( s );
-                }
-            };
-        };
-
-        template<>
-        struct range_end<const_char_ptr_>
-        {
-            template< typename T >
-            struct inner {
-                static const char* fun( const char* s )
-                {
-                    return ndnboost::range_detail::str_end( s );
-                }
-            };
-        };
-
-        template<>
-        struct range_end<wchar_t_ptr_>
-        {
-            template< typename T >
-            struct inner {
-                static wchar_t* fun( wchar_t* s )
-                {
-                    return ndnboost::range_detail::str_end( s );
-                }
-            };
-        };
-
-
-        template<>
-        struct range_end<const_wchar_t_ptr_>
-        {
-            template< typename T >
-            struct inner {
-                static const wchar_t* fun( const wchar_t* s )
-                {
-                    return ndnboost::range_detail::str_end( s );
-                }
-            };
-        };
-        
-    } // namespace 'range_detail'
-    
-    template< typename C >
-    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 );
-    }
-    
-} // namespace 'boost'
-
-
-#endif
diff --git a/include/ndnboost/range/difference_type.hpp b/include/ndnboost/range/difference_type.hpp
deleted file mode 100644
index f4e1c16..0000000
--- a/include/ndnboost/range/difference_type.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_DIFFERENCE_TYPE_HPP
-#define NDNBOOST_RANGE_DIFFERENCE_TYPE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-#include <ndnboost/range/iterator.hpp>
-#include <ndnboost/iterator/iterator_traits.hpp>
-
-namespace ndnboost
-{
-    template< class T >
-    struct range_difference : iterator_difference< typename range_iterator<T>::type >
-    { };
-}
-
-#endif
diff --git a/include/ndnboost/range/distance.hpp b/include/ndnboost/range/distance.hpp
deleted file mode 100644
index f43aada..0000000
--- a/include/ndnboost/range/distance.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2006. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_DISTANCE_HPP
-#define NDNBOOST_RANGE_DISTANCE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/difference_type.hpp>
-
-namespace ndnboost 
-{
-
-    template< class T >
-    inline NDNBOOST_DEDUCED_TYPENAME range_difference<T>::type 
-    distance( const T& r )
-    {
-        return std::distance( ndnboost::begin( r ), ndnboost::end( r ) );
-    }
-
-} // namespace 'boost'
-
-#endif
diff --git a/include/ndnboost/range/empty.hpp b/include/ndnboost/range/empty.hpp
deleted file mode 100644
index fc3dff1..0000000
--- a/include/ndnboost/range/empty.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_EMPTY_HPP
-#define NDNBOOST_RANGE_EMPTY_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-
-namespace ndnboost 
-{ 
-
-    template< class T >
-    inline bool empty( const T& r )
-    {
-        return ndnboost::begin( r ) == ndnboost::end( r );
-    }
-
-} // namespace 'boost'
-
-
-#endif
diff --git a/include/ndnboost/range/end.hpp b/include/ndnboost/range/end.hpp
deleted file mode 100644
index ec7d54d..0000000
--- a/include/ndnboost/range/end.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_END_HPP
-#define NDNBOOST_RANGE_END_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-
-#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#include <ndnboost/range/detail/end.hpp>
-#else
-
-#include <ndnboost/range/detail/implementation_help.hpp>
-#include <ndnboost/range/iterator.hpp>
-#include <ndnboost/range/const_iterator.hpp>
-
-namespace ndnboost
-{
-
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-namespace range_detail
-{
-#endif
-
-        //////////////////////////////////////////////////////////////////////
-        // primary template
-        //////////////////////////////////////////////////////////////////////
-        template< typename C >
-        inline NDNBOOST_DEDUCED_TYPENAME range_iterator<C>::type
-        range_end( C& c )
-        {
-            //
-            // If you get a compile-error here, it is most likely because
-            // you have not implemented range_begin() properly in
-            // the namespace of C
-            //
-            return c.end();
-        }
-
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-
-        template< typename Iterator >
-        inline Iterator range_end( const std::pair<Iterator,Iterator>& p )
-        {
-            return p.second;
-        }
-
-        template< typename Iterator >
-        inline Iterator range_end( std::pair<Iterator,Iterator>& p )
-        {
-            return p.second;
-        }
-
-        //////////////////////////////////////////////////////////////////////
-        // array
-        //////////////////////////////////////////////////////////////////////
-
-        template< typename T, std::size_t sz >
-        inline const T* range_end( const T (&a)[sz] )
-        {
-            return range_detail::array_end<T,sz>( a );
-        }
-
-        template< typename T, std::size_t sz >
-        inline T* range_end( T (&a)[sz] )
-        {
-            return range_detail::array_end<T,sz>( a );
-        }
-
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-} // namespace 'range_detail'
-#endif
-
-namespace range_adl_barrier
-{
-
-template< class T >
-inline NDNBOOST_DEDUCED_TYPENAME range_iterator<T>::type end( T& r )
-{
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-    using namespace range_detail;
-#endif
-    return range_end( r );
-}
-
-template< class T >
-inline NDNBOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
-{
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-    using namespace range_detail;
-#endif
-    return range_end( r );
-}
-
-    } // namespace range_adl_barrier
-} // namespace 'boost'
-
-#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-namespace ndnboost
-{
-    namespace range_adl_barrier
-    {
-        template< class T >
-        inline NDNBOOST_DEDUCED_TYPENAME range_iterator<const T>::type
-        const_end( const T& r )
-        {
-            return ndnboost::range_adl_barrier::end( r );
-        }
-    } // namespace range_adl_barrier
-    using namespace range_adl_barrier;
-} // namespace ndnboost
-
-#endif
-
diff --git a/include/ndnboost/range/functions.hpp b/include/ndnboost/range/functions.hpp
deleted file mode 100644
index 6aa2124..0000000
--- a/include/ndnboost/range/functions.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2006. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_FUNCTIONS_HPP
-#define NDNBOOST_RANGE_FUNCTIONS_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/size.hpp>
-#include <ndnboost/range/distance.hpp>
-#include <ndnboost/range/empty.hpp>
-#include <ndnboost/range/rbegin.hpp>
-#include <ndnboost/range/rend.hpp>
-
-#endif
-
diff --git a/include/ndnboost/range/iterator.hpp b/include/ndnboost/range/iterator.hpp
deleted file mode 100644
index b2a110c..0000000
--- a/include/ndnboost/range/iterator.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_ITERATOR_HPP
-#define NDNBOOST_RANGE_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-#include <ndnboost/range/mutable_iterator.hpp>
-#include <ndnboost/range/const_iterator.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/remove_const.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-
-namespace ndnboost
-{
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
-
-    namespace range_detail_vc7_1
-    {
-       template< typename C, typename Sig = void(C) >
-       struct range_iterator
-       {
-           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;
-       };
-
-       template< typename C, typename T >
-       struct range_iterator< C, void(T[]) >
-       {
-           typedef T* type;
-       };
-    }
-
-#endif
-
-    template< typename C >
-    struct range_iterator
-    {
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
-
-        typedef NDNBOOST_RANGE_DEDUCED_TYPENAME
-               range_detail_vc7_1::range_iterator<C>::type type;
-
-#else
-
-        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;
-
-#endif
-    };
-
-} // namespace ndnboost
-
-//#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif
diff --git a/include/ndnboost/range/iterator_range.hpp b/include/ndnboost/range/iterator_range.hpp
deleted file mode 100644
index 1108aaa..0000000
--- a/include/ndnboost/range/iterator_range.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Neil Groves 2009.
-//  Use, modification and distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-#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"
-
-#endif // include guard
diff --git a/include/ndnboost/range/iterator_range_core.hpp b/include/ndnboost/range/iterator_range_core.hpp
deleted file mode 100644
index be97e2b..0000000
--- a/include/ndnboost/range/iterator_range_core.hpp
+++ /dev/null
@@ -1,653 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Neil Groves & Thorsten Ottosen & Pavol Droba 2003-2004.
-//  Use, modification and distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-#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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1500))
-    #pragma warning( push )
-    #pragma warning( disable : 4996 )
-#endif
-
-#include <ndnboost/assert.hpp>
-#include <ndnboost/iterator/iterator_traits.hpp>
-#include <ndnboost/iterator/iterator_facade.hpp>
-#include <ndnboost/mpl/or.hpp>
-#include <ndnboost/type_traits/is_abstract.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/range/functions.hpp>
-#include <ndnboost/range/iterator.hpp>
-#include <ndnboost/range/difference_type.hpp>
-#include <ndnboost/range/algorithm/equal.hpp>
-#include <ndnboost/range/detail/safe_bool.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <iterator>
-#include <algorithm>
-#include <cstddef>
-
-/*! \file
-    Defines the \c iterator_class and related functions.
-    \c iterator_range is a simple wrapper of iterator pair idiom. It provides
-    a rich subset of Container interface.
-*/
-
-
-namespace ndnboost
-{
-    namespace iterator_range_detail
-    {
-        //
-        // The functions adl_begin and adl_end are implemented in a separate
-        // class for gcc-2.9x
-        //
-        template<class IteratorT>
-        struct iterator_range_impl {
-            template< class ForwardRange >
-            static IteratorT adl_begin( ForwardRange& r )
-            {
-                return static_cast<IteratorT>( ndnboost::begin( r ) );
-            }
-
-            template< class ForwardRange >
-            static IteratorT adl_end( ForwardRange& r )
-            {
-                return static_cast<IteratorT>( ndnboost::end( r ) );
-            }
-        };
-
-        template< class Left, class Right >
-        inline bool less_than( const Left& l, const Right& r )
-        {
-            return std::lexicographical_compare( ndnboost::begin(l),
-                                                 ndnboost::end(l),
-                                                 ndnboost::begin(r),
-                                                 ndnboost::end(r) );
-        }
-        
-        template< class Left, class Right >
-        inline bool greater_than( const Left& l, const Right& r )
-        {
-            return less_than(r,l);
-        }
-        
-        template< class Left, class Right >
-        inline bool less_or_equal_than( const Left& l, const Right& r )
-        {
-            return !iterator_range_detail::less_than(r,l);
-        }
-        
-        template< class Left, class Right >
-        inline bool greater_or_equal_than( const Left& l, const Right& r )
-        {
-            return !iterator_range_detail::less_than(l,r);
-        }
-
-        // This version is maintained since it is used in other boost libraries
-        // such as Boost.Assign
-        template< class Left, class Right >
-        inline bool equal(const Left& l, const Right& r)
-        {
-            return ndnboost::equal(l, r);
-        }
-
-        struct range_tag { };
-        struct const_range_tag { };
-    }
-
-//  iterator range template class -----------------------------------------//
-
-        //! iterator_range class
-        /*!
-            An \c iterator_range delimits a range in a sequence by beginning and ending iterators.
-            An iterator_range can be passed to an algorithm which requires a sequence as an input.
-            For example, the \c toupper() function may be used most frequently on strings,
-            but can also be used on iterator_ranges:
-
-            \code
-                ndnboost::tolower( find( s, "UPPERCASE STRING" ) );
-            \endcode
-
-            Many algorithms working with sequences take a pair of iterators,
-            delimiting a working range, as an arguments. The \c iterator_range class is an
-            encapsulation of a range identified by a pair of iterators.
-            It provides a collection interface,
-            so it is possible to pass an instance to an algorithm requiring a collection as an input.
-        */
-        template<class IteratorT>
-        class iterator_range
-        {
-            typedef range_detail::safe_bool< IteratorT iterator_range<IteratorT>::* > safe_bool_t;
-        protected: // Used by sub_range
-            //! implementation class
-            typedef iterator_range_detail::iterator_range_impl<IteratorT> impl;
-        public:
-            //! this type
-            typedef iterator_range<IteratorT> 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 NDNBOOST_DEDUCED_TYPENAME
-                iterator_value<IteratorT>::type value_type;
-
-            //! Difference type
-            typedef NDNBOOST_DEDUCED_TYPENAME
-                iterator_difference<IteratorT>::type difference_type;
-
-            //! Size type
-            typedef std::size_t size_type; // note: must be unsigned
-
-            //! This type
-            typedef iterator_range<IteratorT> this_type;
-
-            //! Reference type
-            //
-            // Needed because value-type is the same for
-            // const and non-const iterators
-            //
-            typedef NDNBOOST_DEDUCED_TYPENAME
-                iterator_reference<IteratorT>::type reference;
-
-            //! const_iterator type
-            /*!
-                There is no distinction between const_iterator and iterator.
-                These typedefs are provides to fulfill container interface
-            */
-            typedef IteratorT const_iterator;
-            //! iterator type
-            typedef IteratorT iterator;
-
-        private: // for return value of operator()()
-            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;
-
-        public:
-            iterator_range() : m_Begin( iterator() ), m_End( iterator() )
-            { }
-
-            //! Constructor from a pair of iterators
-            template< class Iterator >
-            iterator_range( Iterator Begin, Iterator End ) :
-                m_Begin(Begin), m_End(End)
-            {}
-
-            //! Constructor from a Range
-            template< class Range >
-            iterator_range( const Range& r ) :
-                m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
-            {}
-
-            //! Constructor from a Range
-            template< class Range >
-            iterator_range( Range& r ) :
-                m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
-            {}
-
-            //! Constructor from a Range
-            template< class Range >
-            iterator_range( const Range& r, iterator_range_detail::const_range_tag ) :
-                m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
-            {}
-
-            //! Constructor from a Range
-            template< class Range >
-            iterator_range( Range& r, iterator_range_detail::range_tag ) :
-                m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
-            {}
-
-            #if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-            this_type& operator=( const this_type& r )
-            {
-                m_Begin  = r.begin();
-                m_End    = r.end();
-                return *this;
-            }
-            #endif
-
-            template< class Iterator >
-            iterator_range& operator=( const iterator_range<Iterator>& r )
-            {
-                m_Begin  = r.begin();
-                m_End    = r.end();
-                return *this;
-            }
-
-            template< class ForwardRange >
-            iterator_range& operator=( ForwardRange& r )
-            {
-                m_Begin  = impl::adl_begin( r );
-                m_End    = impl::adl_end( r );
-                return *this;
-            }
-
-            template< class ForwardRange >
-            iterator_range& operator=( const ForwardRange& r )
-            {
-                m_Begin  = impl::adl_begin( r );
-                m_End    = impl::adl_end( r );
-                return *this;
-            }
-
-            IteratorT begin() const
-            {
-                return m_Begin;
-            }
-
-            IteratorT end() const
-            {
-                return m_End;
-            }
-
-            difference_type size() const
-            {
-                return m_End - m_Begin;
-            }
-
-            bool empty() const
-            {
-                return m_Begin == m_End;
-            }
-
-            operator unspecified_bool_type() const
-            {
-                return safe_bool_t::to_unspecified_bool(m_Begin != m_End, &iterator_range::m_Begin);
-            }
-
-            bool operator!() const
-            {
-                return empty();
-            }
-
-            bool equal( const iterator_range& r ) const
-            {
-                return m_Begin == r.m_Begin && m_End == r.m_End;
-            }
-
-
-#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-            bool operator==( const iterator_range& r ) const
-            {
-                return ndnboost::equal( *this, r );
-            }
-
-            bool operator!=( const iterator_range& r ) const
-            {
-                return !operator==(r);
-            }
-
-           bool operator<( const iterator_range& r ) const
-           {
-               return iterator_range_detail::less_than( *this, r );
-           }
-           
-           bool operator>( const iterator_range& r ) const
-           {
-               return iterator_range_detail::greater_than( *this, r );
-           }
-           
-           bool operator<=( const iterator_range& r ) const
-           {
-               return iterator_range_detail::less_or_equal_than( *this, r );
-           }
-           
-           bool operator>=( const iterator_range& r ) const
-           {
-               return iterator_range_detail::greater_or_equal_than( *this, r );
-           }
-
-#endif
-
-        public: // convenience
-           reference front() const
-           {
-               NDNBOOST_ASSERT( !empty() );
-               return *m_Begin;
-           }
-
-           reference back() const
-           {
-               NDNBOOST_ASSERT( !empty() );
-               IteratorT last( m_End );
-               return *--last;
-           }
-
-           // pop_front() - added to model the SinglePassRangePrimitiveConcept
-           void pop_front()
-           {
-               NDNBOOST_ASSERT( !empty() );
-               ++m_Begin;
-           }
-
-           // pop_back() - added to model the BidirectionalRangePrimitiveConcept
-           void pop_back()
-           {
-               NDNBOOST_ASSERT( !empty() );
-               --m_End;
-           }
-
-           reference operator[]( difference_type at ) const
-           {
-               NDNBOOST_ASSERT( at >= 0 && at < size() );
-               return m_Begin[at];
-           }
-
-           //
-           // When storing transform iterators, operator[]()
-           // fails because it returns by reference. Therefore
-           // operator()() is provided for these cases.
-           //
-           abstract_value_type operator()( difference_type at ) const
-           {
-               NDNBOOST_ASSERT( at >= 0 && at < size() );
-               return m_Begin[at];
-           }
-
-           iterator_range& advance_begin( difference_type n )
-           {
-               std::advance( m_Begin, n );
-               return *this;
-           }
-
-           iterator_range& advance_end( difference_type n )
-           {
-               std::advance( m_End, n );
-               return *this;
-           }
-
-        private:
-            // begin and end iterators
-            IteratorT m_Begin;
-            IteratorT m_End;
-
-        protected:
-            //
-            // Allow subclasses an easy way to access the
-            // base type
-            //
-            typedef iterator_range iterator_range_;
-        };
-
-//  iterator range free-standing operators ---------------------------//
-
-        /////////////////////////////////////////////////////////////////////
-        // comparison operators
-        /////////////////////////////////////////////////////////////////////
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator==( const ForwardRange& l,
-                                const iterator_range<IteratorT>& r )
-        {
-            return ndnboost::equal( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator!=( const ForwardRange& l,
-                                const iterator_range<IteratorT>& r )
-        {
-            return !ndnboost::equal( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator<( const ForwardRange& l,
-                               const iterator_range<IteratorT>& r )
-        {
-            return iterator_range_detail::less_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator<=( const ForwardRange& l,
-                                const iterator_range<IteratorT>& r )
-        {
-            return iterator_range_detail::less_or_equal_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator>( const ForwardRange& l,
-                               const iterator_range<IteratorT>& r )
-        {
-            return iterator_range_detail::greater_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator>=( const ForwardRange& l,
-                                const iterator_range<IteratorT>& r )
-        {
-            return iterator_range_detail::greater_or_equal_than( l, r );
-        }
-
-#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#else
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator==( const iterator_range<Iterator1T>& l,
-                                const iterator_range<Iterator2T>& r )
-        {
-            return ndnboost::equal( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator==( const iterator_range<IteratorT>& l,
-                                const ForwardRange& r )
-        {
-            return ndnboost::equal( l, r );
-        }
-
-
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator!=( const iterator_range<Iterator1T>& l,
-                                const iterator_range<Iterator2T>& r )
-        {
-            return !ndnboost::equal( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator!=( const iterator_range<IteratorT>& l,
-                                const ForwardRange& r )
-        {
-            return !ndnboost::equal( l, r );
-        }
-
-
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator<( const iterator_range<Iterator1T>& l,
-                               const iterator_range<Iterator2T>& r )
-        {
-            return iterator_range_detail::less_than( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator<( const iterator_range<IteratorT>& l,
-                               const ForwardRange& r )
-        {
-            return iterator_range_detail::less_than( l, r );
-        }
-        
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator<=( const iterator_range<Iterator1T>& l,
-                                const iterator_range<Iterator2T>& r )
-        {
-            return iterator_range_detail::less_or_equal_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator<=( const iterator_range<IteratorT>& l,
-                                const ForwardRange& r )
-        {
-            return iterator_range_detail::less_or_equal_than( l, r );
-        }
-        
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator>( const iterator_range<Iterator1T>& l,
-                               const iterator_range<Iterator2T>& r )
-        {
-            return iterator_range_detail::greater_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator>( const iterator_range<IteratorT>& l,
-                               const ForwardRange& r )
-        {
-            return iterator_range_detail::greater_than( l, r );
-        }
-        
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator>=( const iterator_range<Iterator1T>& l,
-                                const iterator_range<Iterator2T>& r )
-        {
-            return iterator_range_detail::greater_or_equal_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator>=( const iterator_range<IteratorT>& l,
-                                const ForwardRange& r )
-        {
-            return iterator_range_detail::greater_or_equal_than( l, r );
-        }
-
-#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-//  iterator range utilities -----------------------------------------//
-
-        //! iterator_range construct helper
-        /*!
-            Construct an \c iterator_range from a pair of iterators
-
-            \param Begin A begin iterator
-            \param End An end iterator
-            \return iterator_range object
-        */
-        template< typename IteratorT >
-        inline iterator_range< IteratorT >
-        make_iterator_range( IteratorT Begin, IteratorT End )
-        {
-            return iterator_range<IteratorT>( Begin, End );
-        }
-
-#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-        template< typename Range >
-        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-        make_iterator_range( Range& r )
-        {
-            return iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-                ( ndnboost::begin( r ), ndnboost::end( r ) );
-        }
-
-#else
-        //! iterator_range construct helper
-        /*!
-            Construct an \c iterator_range from a \c Range containing the begin
-            and end iterators.
-        */
-        template< class ForwardRange >
-        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type >
-        make_iterator_range( ForwardRange& r )
-        {
-           return iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type >
-                ( r, iterator_range_detail::range_tag() );
-        }
-
-        template< class ForwardRange >
-        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type >
-        make_iterator_range( const ForwardRange& r )
-        {
-           return iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type >
-                ( r, iterator_range_detail::const_range_tag() );
-        }
-
-#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-        namespace iterator_range_detail
-        {
-            template< class Range >
-            inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-            make_range_impl( Range& r,
-                             NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                             NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
-            {
-                //
-                // Not worth the effort
-                //
-                //if( advance_begin == 0 && advance_end == 0 )
-                //    return make_iterator_range( r );
-                //
-
-                NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type
-                    new_begin = ndnboost::begin( r ),
-                    new_end   = ndnboost::end( r );
-                std::advance( new_begin, advance_begin );
-                std::advance( new_end, advance_end );
-                return make_iterator_range( new_begin, new_end );
-            }
-        }
-
-#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-        template< class Range >
-        inline iterator_range< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-        make_iterator_range( Range& r,
-                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
-        {
-            //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< NDNBOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-        make_iterator_range( Range& r,
-                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
-        {
-            //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< NDNBOOST_DEDUCED_TYPENAME range_iterator<const Range>::type >
-        make_iterator_range( const Range& r,
-                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                    NDNBOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
-        {
-            //NDNBOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
-            return iterator_range_detail::make_range_impl( r, advance_begin, advance_end );
-        }
-
-#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-        //! copy a range into a sequence
-        /*!
-            Construct a new sequence of the specified type from the elements
-            in the given range
-
-            \param Range An input range
-            \return New sequence
-        */
-        template< typename SeqT, typename Range >
-        inline SeqT copy_range( const Range& r )
-        {
-            return SeqT( ndnboost::begin( r ), ndnboost::end( r ) );
-        }
-
-} // namespace 'boost'
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1500))
-    #pragma warning( pop )
-#endif
-
-#endif
-
diff --git a/include/ndnboost/range/iterator_range_io.hpp b/include/ndnboost/range/iterator_range_io.hpp
deleted file mode 100644
index 3786623..0000000
--- a/include/ndnboost/range/iterator_range_io.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Neil Groves 2009.
-//  Use, modification and distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-#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 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 NDNBOOST_OLD_IOSTREAMS 
-# if defined(__STL_CONFIG_H) && \
-    !defined (__STL_USE_NEW_IOSTREAMS) && !defined(__crayx1) \
-    /**/
-#  define NDNBOOST_OLD_IOSTREAMS
-# endif
-#endif // #ifndef NDNBOOST_OLD_IOSTREAMS
-
-#ifndef _STLP_NO_IOSTREAMS
-# ifndef NDNBOOST_OLD_IOSTREAMS
-#  include <ostream>
-# else
-#  include <ostream.h>
-# endif
-#endif // _STLP_NO_IOSTREAMS
-
-#include <ndnboost/range/iterator_range_core.hpp>
-#include <iterator>
-#include <algorithm>
-#include <cstddef>
-
-namespace ndnboost
-{
-
-#ifndef _STLP_NO_IOSTREAMS
-# ifndef NDNBOOST_OLD_IOSTREAMS   
-
-        //! iterator_range output operator
-        /*!
-            Output the range to an ostream. Elements are outputted
-            in a sequence without separators.
-        */
-        template< typename IteratorT, typename Elem, typename Traits >
-        inline std::basic_ostream<Elem,Traits>& operator<<( 
-                    std::basic_ostream<Elem, Traits>& Os,
-                    const iterator_range<IteratorT>& r )
-        {
-            std::copy( r.begin(), r.end(), 
-                       std::ostream_iterator< NDNBOOST_DEDUCED_TYPENAME 
-                                              iterator_value<IteratorT>::type, 
-                                              Elem, Traits>(Os) );
-            return Os;
-        }
-
-# else
-
-        //! iterator_range output operator
-        /*!
-            Output the range to an ostream. Elements are outputted
-            in a sequence without separators.
-        */
-        template< typename IteratorT >
-        inline std::ostream& operator<<( 
-                    std::ostream& Os,
-                    const iterator_range<IteratorT>& r )
-        {
-            std::copy( r.begin(), r.end(), std::ostream_iterator<char>(Os));
-            return Os;
-        }
-
-# endif
-#endif // _STLP_NO_IOSTREAMS
-
-} // namespace ndnboost
-
-#undef NDNBOOST_OLD_IOSTREAMS
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, NDNBOOST_TESTED_AT(1500))
-    #pragma warning(pop)
-#endif
-
-#endif // include guard
diff --git a/include/ndnboost/range/mutable_iterator.hpp b/include/ndnboost/range/mutable_iterator.hpp
deleted file mode 100644
index b5183b0..0000000
--- a/include/ndnboost/range/mutable_iterator.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_MUTABLE_ITERATOR_HPP
-#define NDNBOOST_RANGE_MUTABLE_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <ndnboost/range/detail/iterator.hpp>
-#else
-
-#include <ndnboost/range/detail/extract_optional_type.hpp>
-#include <ndnboost/iterator/iterator_traits.hpp>
-#include <cstddef>
-#include <utility>
-
-namespace ndnboost
-{
-    //////////////////////////////////////////////////////////////////////////
-    // default
-    //////////////////////////////////////////////////////////////////////////
-    
-    namespace range_detail {
-        NDNBOOST_RANGE_EXTRACT_OPTIONAL_TYPE( iterator )
-    }
-
-    template< typename C >
-    struct range_mutable_iterator : range_detail::extract_iterator<C>
-    {};
-    
-    //////////////////////////////////////////////////////////////////////////
-    // pair
-    //////////////////////////////////////////////////////////////////////////
-
-    template< typename Iterator >
-    struct range_mutable_iterator< std::pair<Iterator,Iterator> >
-    {
-        typedef Iterator type;
-    };
-
-    //////////////////////////////////////////////////////////////////////////
-    // array
-    //////////////////////////////////////////////////////////////////////////
-
-    template< typename T, std::size_t sz >
-    struct range_mutable_iterator< T[sz] >
-    {
-        typedef T* type;
-    };
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif
diff --git a/include/ndnboost/range/rbegin.hpp b/include/ndnboost/range/rbegin.hpp
deleted file mode 100644
index 68858f1..0000000
--- a/include/ndnboost/range/rbegin.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_RBEGIN_HPP
-#define NDNBOOST_RANGE_RBEGIN_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/reverse_iterator.hpp>
-
-namespace ndnboost
-{
-
-#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-template< class C >
-inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-rbegin( C& c )
-{
-    return NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type( ndnboost::end( c ) );
-}
-
-#else
-
-template< class C >
-inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-rbegin( C& c )
-{
-    typedef NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-        iter_type;
-    return iter_type( ndnboost::end( c ) );
-}
-
-template< class C >
-inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
-rbegin( const C& c )
-{
-    typedef NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
-        iter_type;
-    return iter_type( ndnboost::end( c ) );
-}
-
-#endif // NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-template< class T >
-inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const T>::type
-const_rbegin( const T& r )
-{
-    return ndnboost::rbegin( r );
-}
-
-} // namespace 'boost'
-
-#endif
-
diff --git a/include/ndnboost/range/rend.hpp b/include/ndnboost/range/rend.hpp
deleted file mode 100644
index c680ca6..0000000
--- a/include/ndnboost/range/rend.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_REND_HPP
-#define NDNBOOST_RANGE_REND_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/reverse_iterator.hpp>
-
-namespace ndnboost
-{
-
-#ifdef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-template< class C >
-inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-rend( C& c )
-{
-    return NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type( ndnboost::begin( c ) );
-}
-
-#else
-
-template< class C >
-inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-rend( C& c )
-{
-    typedef NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-               iter_type;
-    return iter_type( ndnboost::begin( c ) );
-}
-
-template< class C >
-inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
-rend( const C& c )
-{
-    typedef NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
-        iter_type;
-    return iter_type( ndnboost::begin( c ) );
-}
-
-#endif
-
-template< class T >
-inline NDNBOOST_DEDUCED_TYPENAME range_reverse_iterator<const T>::type
-const_rend( const T& r )
-{
-    return ndnboost::rend( r );
-}
-
-} // namespace 'boost'
-
-#endif
-
diff --git a/include/ndnboost/range/result_iterator.hpp b/include/ndnboost/range/result_iterator.hpp
deleted file mode 100644
index 006e77d..0000000
--- a/include/ndnboost/range/result_iterator.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_RESULT_ITERATOR_HPP
-#define NDNBOOST_RANGE_RESULT_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/range/iterator.hpp>
-
-namespace ndnboost
-{
-    //
-    // This interface is deprecated, use range_iterator<T>
-    //
-    
-    template< typename C >
-    struct range_result_iterator : range_iterator<C>
-    { };
-    
-} // namespace ndnboost
-
-
-#endif
diff --git a/include/ndnboost/range/reverse_iterator.hpp b/include/ndnboost/range/reverse_iterator.hpp
deleted file mode 100644
index a50f78b..0000000
--- a/include/ndnboost/range/reverse_iterator.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_REVERSE_ITERATOR_HPP
-#define NDNBOOST_RANGE_REVERSE_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-#include <ndnboost/range/iterator.hpp>
-#include <ndnboost/iterator/reverse_iterator.hpp>
-
-
-namespace ndnboost
-{
-    //////////////////////////////////////////////////////////////////////////
-    // default
-    //////////////////////////////////////////////////////////////////////////
-    
-    template< typename C >
-    struct range_reverse_iterator
-    {
-        typedef reverse_iterator< 
-            NDNBOOST_DEDUCED_TYPENAME range_iterator<C>::type > type;
-    };
-    
-
-} // namespace ndnboost
-
-
-#endif
diff --git a/include/ndnboost/range/size.hpp b/include/ndnboost/range/size.hpp
deleted file mode 100644
index 1952550..0000000
--- a/include/ndnboost/range/size.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_SIZE_HPP
-#define NDNBOOST_RANGE_SIZE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-#include <ndnboost/range/begin.hpp>
-#include <ndnboost/range/end.hpp>
-#include <ndnboost/range/size_type.hpp>
-#include <ndnboost/assert.hpp>
-
-namespace ndnboost
-{
-    namespace range_detail
-    {
-        template<class SinglePassRange>
-        inline NDNBOOST_DEDUCED_TYPENAME range_size<const SinglePassRange>::type
-        range_calculate_size(const SinglePassRange& rng)
-        {
-            NDNBOOST_ASSERT( (ndnboost::end(rng) - ndnboost::begin(rng)) >= 0 &&
-                          "reachability invariant broken!" );
-            return ndnboost::end(rng) - ndnboost::begin(rng);
-        }
-    }
-
-    template<class SinglePassRange>
-    inline NDNBOOST_DEDUCED_TYPENAME range_size<const SinglePassRange>::type
-    size(const SinglePassRange& rng)
-    {
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) && \
-    !NDNBOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-        using namespace range_detail;
-#endif
-        return range_calculate_size(rng);
-    }
-
-} // namespace 'boost'
-
-#endif
diff --git a/include/ndnboost/range/size_type.hpp b/include/ndnboost/range/size_type.hpp
deleted file mode 100644
index ce48639..0000000
--- a/include/ndnboost/range/size_type.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_SIZE_TYPE_HPP
-#define NDNBOOST_RANGE_SIZE_TYPE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-#include <ndnboost/range/difference_type.hpp>
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <ndnboost/range/detail/size_type.hpp>
-#else
-
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/type_traits/make_unsigned.hpp>
-#include <ndnboost/type_traits/remove_const.hpp>
-#include <cstddef>
-#include <utility>
-
-namespace ndnboost
-{
-    namespace detail
-    {
-
-        //////////////////////////////////////////////////////////////////////////
-        // default
-        //////////////////////////////////////////////////////////////////////////
-
-        template<typename T>
-        class has_size_type
-        {
-            typedef char no_type;
-            struct yes_type { char dummy[2]; };
-
-            template<typename C>
-            static yes_type test(NDNBOOST_DEDUCED_TYPENAME C::size_type x);
-
-            template<typename C, typename Arg>
-            static no_type test(Arg x);
-
-        public:
-            static const bool value = sizeof(test<T>(0)) == sizeof(yes_type);
-        };
-
-        template<typename C, typename Enabler=void>
-        struct range_size
-        {
-            typedef NDNBOOST_DEDUCED_TYPENAME make_unsigned<
-                NDNBOOST_DEDUCED_TYPENAME range_difference<C>::type
-            >::type type;
-        };
-
-        template<typename C>
-        struct range_size<
-            C,
-            NDNBOOST_DEDUCED_TYPENAME enable_if<has_size_type<C>, void>::type
-        >
-        {
-            typedef NDNBOOST_DEDUCED_TYPENAME C::size_type type;
-        };
-
-    }
-
-    template< class T >
-    struct range_size :
-        detail::range_size<T>
-    { };
-
-    template< class T >
-    struct range_size<const T >
-        : detail::range_size<T>
-    { };
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-
-#endif
diff --git a/include/ndnboost/range/value_type.hpp b/include/ndnboost/range/value_type.hpp
deleted file mode 100644
index 655ea60..0000000
--- a/include/ndnboost/range/value_type.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to 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)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef NDNBOOST_RANGE_VALUE_TYPE_HPP
-#define NDNBOOST_RANGE_VALUE_TYPE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <ndnboost/range/config.hpp>
-#include <ndnboost/range/iterator.hpp>
-
-//#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-//#include <ndnboost/range/detail/value_type.hpp>
-//#else
-
-#include <ndnboost/iterator/iterator_traits.hpp>
-
-namespace ndnboost
-{
-    template< class T >
-    struct range_value : iterator_value< typename range_iterator<T>::type >
-    { };
-}
-
-#endif
diff --git a/include/ndnboost/ref.hpp b/include/ndnboost/ref.hpp
deleted file mode 100644
index 756ecd6..0000000
--- a/include/ndnboost/ref.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-#ifndef NDNBOOST_REF_HPP_INCLUDED
-#define NDNBOOST_REF_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/utility/addressof.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-//
-//  ref.hpp - ref/cref, useful helper functions
-//
-//  Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//  Copyright (C) 2001, 2002 Peter Dimov
-//  Copyright (C) 2002 David Abrahams
-//
-// 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)
-//
-//  See http://www.boost.org/libs/bind/ref.html for documentation.
-//
-
-namespace ndnboost
-{
-
-template<class T> class reference_wrapper
-{ 
-public:
-    typedef T type;
-
-#if defined( NDNBOOST_MSVC ) && NDNBOOST_WORKAROUND( NDNBOOST_MSVC, < 1300 )
-
-    explicit reference_wrapper(T& t): t_(&t) {}
-
-#else
-
-    explicit reference_wrapper(T& t): t_(ndnboost::addressof(t)) {}
-
-#endif
-
-    operator T& () const { return *t_; }
-
-    T& get() const { return *t_; }
-
-    T* get_pointer() const { return t_; }
-
-private:
-
-    T* t_;
-};
-
-# if defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x581) )
-#  define NDNBOOST_REF_CONST
-# else
-#  define NDNBOOST_REF_CONST const
-# endif
-
-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> NDNBOOST_REF_CONST cref(T const & t)
-{
-    return reference_wrapper<T const>(t);
-}
-
-# undef NDNBOOST_REF_CONST
-
-# ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<typename T>
-class is_reference_wrapper
-    : public mpl::false_
-{
-};
-
-template<typename T>
-class unwrap_reference
-{
- public:
-    typedef T type;
-};
-
-#  define AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(X) \
-template<typename T> \
-class is_reference_wrapper< X > \
-    : public mpl::true_ \
-{ \
-}; \
-\
-template<typename T> \
-class unwrap_reference< X > \
-{ \
- public: \
-    typedef T type; \
-}; \
-/**/
-
-AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T>)
-#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)
-#endif
-
-#  undef AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF
-
-# else // no partial specialization
-
-} // namespace ndnboost
-
-#include <ndnboost/type.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-  typedef char (&yes_reference_wrapper_t)[1];
-  typedef char (&no_reference_wrapper_t)[2];
-      
-  no_reference_wrapper_t is_reference_wrapper_test(...);
-
-  template<typename T>
-  yes_reference_wrapper_t is_reference_wrapper_test(type< reference_wrapper<T> >);
-
-  template<bool wrapped>
-  struct reference_unwrapper
-  {
-      template <class T>
-      struct apply
-      {
-          typedef T type;
-      };
-  };
-
-  template<>
-  struct reference_unwrapper<true>
-  {
-      template <class T>
-      struct apply
-      {
-          typedef typename T::type type;
-      };
-  };
-}
-
-template<typename T>
-class is_reference_wrapper
-{
- public:
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value = (
-             sizeof(detail::is_reference_wrapper_test(type<T>()))
-            == sizeof(detail::yes_reference_wrapper_t)));
-    
-    typedef ::ndnboost::mpl::bool_<value> type;
-};
-
-template <typename T>
-class unwrap_reference
-    : public detail::reference_unwrapper<
-        is_reference_wrapper<T>::value
-      >::template apply<T>
-{};
-
-# endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template <class T> inline typename unwrap_reference<T>::type&
-unwrap_ref(T& t)
-{
-    return t;
-}
-
-template<class T> inline T* get_pointer( reference_wrapper<T> const & r )
-{
-    return r.get_pointer();
-}
-
-} // namespace ndnboost
-
-#endif // #ifndef NDNBOOST_REF_HPP_INCLUDED
diff --git a/include/ndnboost/regex.hpp b/include/ndnboost/regex.hpp
deleted file mode 100644
index 5b1c7a5..0000000
--- a/include/ndnboost/regex.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org/libs/regex for documentation.
-  *   FILE         regex.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares ndnboost::basic_regex<> and associated
-  *                functions and classes. This header is the main
-  *                entry point for the template regex code.
-  */
-
-
-/* start with C compatibility API */
-
-#ifndef NDNBOOST_RE_REGEX_HPP
-#define NDNBOOST_RE_REGEX_HPP
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-
-#include <ndnboost/regex/v4/regex.hpp>
-
-#endif  // include
-
-
-
-
diff --git a/include/ndnboost/regex/config.hpp b/include/ndnboost/regex/config.hpp
deleted file mode 100644
index a8168b6..0000000
--- a/include/ndnboost/regex/config.hpp
+++ /dev/null
@@ -1,435 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         config.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: regex extended config setup.
-  */
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#define NDNBOOST_REGEX_CONFIG_HPP
-/*
- * Borland C++ Fix/error check
- * this has to go *before* we include any std lib headers:
- */
-#if defined(__BORLANDC__)
-#  include <ndnboost/regex/config/borland.hpp>
-#endif
-
-/*****************************************************************************
- *
- *  Include all the headers we need here:
- *
- ****************************************************************************/
-
-#ifdef __cplusplus
-
-#  ifndef NDNBOOST_REGEX_USER_CONFIG
-#     define NDNBOOST_REGEX_USER_CONFIG <ndnboost/regex/user.hpp>
-#  endif
-
-#  include NDNBOOST_REGEX_USER_CONFIG
-
-#  include <ndnboost/config.hpp>
-
-#else
-   /*
-    * C build,
-    * don't include <ndnboost/config.hpp> because that may
-    * do C++ specific things in future...
-    */
-#  include <stdlib.h>
-#  include <stddef.h>
-#  ifdef _MSC_VER
-#     define NDNBOOST_MSVC _MSC_VER
-#  endif
-#endif
-
-/*****************************************************************************
- *
- *  Boilerplate regex config options:
- *
- ****************************************************************************/
-
-/* Obsolete macro, use NDNBOOST_VERSION instead: */
-#define NDNBOOST_RE_VERSION 320
-
-/* fix: */
-#if defined(_UNICODE) && !defined(UNICODE)
-#define UNICODE
-#endif
-
-/*
- * Fix for gcc prior to 3.4: std::ctype<wchar_t> doesn't allow
- * masks to be combined, for example:
- * std::use_facet<std::ctype<wchar_t> >.is(std::ctype_base::lower|std::ctype_base::upper, L'a');
- * returns *false*.
- */
-#ifdef __GLIBCPP__
-#  define NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-#endif
-
-/*
- * Intel C++ before 8.0 ends up with unresolved externals unless we turn off
- * extern template support:
- */
-#if defined(NDNBOOST_INTEL) && defined(__cplusplus) && (NDNBOOST_INTEL <= 800)
-#  define NDNBOOST_REGEX_NO_EXTERNAL_TEMPLATES
-#endif
-/*
- * Visual C++ doesn't support external templates with C++ extensions turned off:
- */
-#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
-#  define NDNBOOST_REGEX_NO_EXTERNAL_TEMPLATES
-#endif
-/*
- * Shared regex lib will crash without this, frankly it looks a lot like a gcc bug:
- */
-#if defined(__MINGW32__)
-#  define NDNBOOST_REGEX_NO_EXTERNAL_TEMPLATES
-#endif
-
-/*
- * If there isn't good enough wide character support then there will
- * be no wide character regular expressions:
- */
-#if (defined(NDNBOOST_NO_CWCHAR) || defined(NDNBOOST_NO_CWCTYPE) || defined(NDNBOOST_NO_STD_WSTRING))
-#  if !defined(NDNBOOST_NO_WREGEX)
-#     define NDNBOOST_NO_WREGEX
-#  endif
-#else
-#  if defined(__sgi) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
-      /* STLPort on IRIX is misconfigured: <cwctype> does not compile
-       * as a temporary fix include <wctype.h> instead and prevent inclusion
-       * of STLPort version of <cwctype> */
-#     include <wctype.h>
-#     define __STLPORT_CWCTYPE
-#     define _STLP_CWCTYPE
-#  endif
-
-#ifdef __cplusplus
-#  include <ndnboost/regex/config/cwchar.hpp>
-#endif
-
-#endif
-
-/*
- * If Win32 support has been disabled for boost in general, then
- * it is for regex in particular:
- */
-#if defined(NDNBOOST_DISABLE_WIN32) && !defined(NDNBOOST_REGEX_NO_W32)
-#  define NDNBOOST_REGEX_NO_W32
-#endif
-
-/* disable our own file-iterators and mapfiles if we can't
- * support them: */
-#if !defined(NDNBOOST_HAS_DIRENT_H) && !(defined(_WIN32) && !defined(NDNBOOST_REGEX_NO_W32))
-#  define NDNBOOST_REGEX_NO_FILEITER
-#endif
-
-/* backwards compatibitity: */
-#if defined(NDNBOOST_RE_NO_LIB)
-#  define NDNBOOST_REGEX_NO_LIB
-#endif
-
-#if defined(__GNUC__) && (defined(_WIN32) || defined(__CYGWIN__))
-/* gcc on win32 has problems if you include <windows.h>
-   (sporadically generates bad code). */
-#  define NDNBOOST_REGEX_NO_W32
-#endif
-#if defined(__COMO__) && !defined(NDNBOOST_REGEX_NO_W32) && !defined(_MSC_EXTENSIONS)
-#  define NDNBOOST_REGEX_NO_W32
-#endif
-
-/*****************************************************************************
- *
- *  Wide character workarounds:
- *
- ****************************************************************************/
-
-/*
- * define NDNBOOST_REGEX_HAS_OTHER_WCHAR_T when wchar_t is a native type, but the users
- * code may be built with wchar_t as unsigned short: basically when we're building
- * with MSVC and the /Zc:wchar_t option we place some extra unsigned short versions
- * of the non-inline functions in the library, so that users can still link to the lib,
- * irrespective of whether their own code is built with /Zc:wchar_t.
- * Note that this does NOT WORK with VC10 when the C++ locale is in effect as
- * the locale's <unsigned short> facets simply do not compile in that case.
- */
-#if defined(__cplusplus) && (defined(NDNBOOST_MSVC) || defined(__ICL)) && !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T) && defined(NDNBOOST_WINDOWS) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && !defined(NDNBOOST_RWSTD_VER) && ((_MSC_VER < 1600) || !defined(NDNBOOST_REGEX_USE_CPP_LOCALE))
-#  define NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-#  ifdef NDNBOOST_MSVC
-#     pragma warning(push)
-#     pragma warning(disable : 4251 4231)
-#     if NDNBOOST_MSVC < 1600
-#        pragma warning(disable : 4660)
-#     endif
-#  endif
-#  if defined(_DLL) && defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1600)
-#     include <string>
-      extern template class __declspec(dllimport) std::basic_string<unsigned short>;
-#  endif
-#  ifdef NDNBOOST_MSVC
-#     pragma warning(pop)
-#  endif
-#endif
-
-
-/*****************************************************************************
- *
- *  Set up dll import/export options:
- *
- ****************************************************************************/
-
-#ifndef NDNBOOST_SYMBOL_EXPORT
-#  define NDNBOOST_SYMBOL_EXPORT
-#  define NDNBOOST_SYMBOL_IMPORT
-#endif
-
-#if (defined(NDNBOOST_REGEX_DYN_LINK) || defined(NDNBOOST_ALL_DYN_LINK)) && !defined(NDNBOOST_REGEX_STATIC_LINK)
-#  if defined(NDNBOOST_REGEX_SOURCE)
-#     define NDNBOOST_REGEX_DECL NDNBOOST_SYMBOL_EXPORT
-#     define NDNBOOST_REGEX_BUILD_DLL
-#  else
-#     define NDNBOOST_REGEX_DECL NDNBOOST_SYMBOL_IMPORT
-#  endif
-#else
-#  define NDNBOOST_REGEX_DECL
-#endif
-
-#if !defined(NDNBOOST_REGEX_NO_LIB) && !defined(NDNBOOST_REGEX_SOURCE) && !defined(NDNBOOST_ALL_NO_LIB) && defined(__cplusplus)
-#  define NDNBOOST_LIB_NAME ndnboost_regex
-#  if defined(NDNBOOST_REGEX_DYN_LINK) || defined(NDNBOOST_ALL_DYN_LINK)
-#     define NDNBOOST_DYN_LINK
-#  endif
-#  ifdef NDNBOOST_REGEX_DIAG
-#     define NDNBOOST_LIB_DIAGNOSTIC
-#  endif
-#  include <ndnboost/config/auto_link.hpp>
-#endif
-
-/*****************************************************************************
- *
- *  Set up function call type:
- *
- ****************************************************************************/
-
-#if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC >= 1200) && defined(_MSC_EXTENSIONS)
-#if defined(_DEBUG) || defined(__MSVC_RUNTIME_CHECKS) || defined(_MANAGED) || defined(NDNBOOST_REGEX_NO_FASTCALL)
-#  define NDNBOOST_REGEX_CALL __cdecl
-#else
-#  define NDNBOOST_REGEX_CALL __fastcall
-#endif
-#  define NDNBOOST_REGEX_CCALL __cdecl
-#endif
-
-#if defined(__BORLANDC__) && !defined(NDNBOOST_DISABLE_WIN32)
-#  define NDNBOOST_REGEX_CALL __fastcall
-#  define NDNBOOST_REGEX_CCALL __stdcall
-#endif
-
-#ifndef NDNBOOST_REGEX_CALL
-#  define NDNBOOST_REGEX_CALL
-#endif
-#ifndef NDNBOOST_REGEX_CCALL
-#define NDNBOOST_REGEX_CCALL
-#endif
-
-/*****************************************************************************
- *
- *  Set up localisation model:
- *
- ****************************************************************************/
-
-/* backwards compatibility: */
-#ifdef NDNBOOST_RE_LOCALE_C
-#  define NDNBOOST_REGEX_USE_C_LOCALE
-#endif
-
-#ifdef NDNBOOST_RE_LOCALE_CPP
-#  define NDNBOOST_REGEX_USE_CPP_LOCALE
-#endif
-
-#if defined(__CYGWIN__)
-#  define NDNBOOST_REGEX_USE_C_LOCALE
-#endif
-
-/* Win32 defaults to native Win32 locale: */
-#if defined(_WIN32) && !defined(NDNBOOST_REGEX_USE_WIN32_LOCALE) && !defined(NDNBOOST_REGEX_USE_C_LOCALE) && !defined(NDNBOOST_REGEX_USE_CPP_LOCALE) && !defined(NDNBOOST_REGEX_NO_W32)
-#  define NDNBOOST_REGEX_USE_WIN32_LOCALE
-#endif
-/* otherwise use C++ locale if supported: */
-#if !defined(NDNBOOST_REGEX_USE_WIN32_LOCALE) && !defined(NDNBOOST_REGEX_USE_C_LOCALE) && !defined(NDNBOOST_REGEX_USE_CPP_LOCALE) && !defined(NDNBOOST_NO_STD_LOCALE)
-#  define NDNBOOST_REGEX_USE_CPP_LOCALE
-#endif
-/* otherwise use C+ locale: */
-#if !defined(NDNBOOST_REGEX_USE_WIN32_LOCALE) && !defined(NDNBOOST_REGEX_USE_C_LOCALE) && !defined(NDNBOOST_REGEX_USE_CPP_LOCALE)
-#  define NDNBOOST_REGEX_USE_C_LOCALE
-#endif
-
-#ifndef NDNBOOST_REGEX_MAX_STATE_COUNT
-#  define NDNBOOST_REGEX_MAX_STATE_COUNT 100000000
-#endif
-
-
-/*****************************************************************************
- *
- *  Error Handling for exception free compilers:
- *
- ****************************************************************************/
-
-#ifdef NDNBOOST_NO_EXCEPTIONS
-/*
- * If there are no exceptions then we must report critical-errors
- * the only way we know how; by terminating.
- */
-#include <stdexcept>
-#include <string>
-#include <ndnboost/throw_exception.hpp>
-
-#  define NDNBOOST_REGEX_NOEH_ASSERT(x)\
-if(0 == (x))\
-{\
-   std::string s("Error: critical regex++ failure in: ");\
-   s.append(#x);\
-   std::runtime_error e(s);\
-   ndnboost::throw_exception(e);\
-}
-#else
-/*
- * With exceptions then error handling is taken care of and
- * there is no need for these checks:
- */
-#  define NDNBOOST_REGEX_NOEH_ASSERT(x)
-#endif
-
-
-/*****************************************************************************
- *
- *  Stack protection under MS Windows:
- *
- ****************************************************************************/
-
-#if !defined(NDNBOOST_REGEX_NO_W32) && !defined(NDNBOOST_REGEX_V3)
-#  if(defined(_WIN32) || defined(_WIN64) || defined(_WINCE)) \
-        && !defined(__GNUC__) \
-        && !(defined(__BORLANDC__) && (__BORLANDC__ >= 0x600)) \
-        && !(defined(__MWERKS__) && (__MWERKS__ <= 0x3003))
-#     define NDNBOOST_REGEX_HAS_MS_STACK_GUARD
-#  endif
-#elif defined(NDNBOOST_REGEX_HAS_MS_STACK_GUARD)
-#  undef NDNBOOST_REGEX_HAS_MS_STACK_GUARD
-#endif
-
-#if defined(__cplusplus) && defined(NDNBOOST_REGEX_HAS_MS_STACK_GUARD)
-
-namespace ndnboost{
-namespace re_detail{
-
-NDNBOOST_REGEX_DECL void NDNBOOST_REGEX_CALL reset_stack_guard_page();
-
-}
-}
-
-#endif
-
-
-/*****************************************************************************
- *
- *  Algorithm selection and configuration:
- *
- ****************************************************************************/
-
-#if !defined(NDNBOOST_REGEX_RECURSIVE) && !defined(NDNBOOST_REGEX_NON_RECURSIVE)
-#  if defined(NDNBOOST_REGEX_HAS_MS_STACK_GUARD) && !defined(_STLP_DEBUG) && !defined(__STL_DEBUG) && !(defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC >= 1400))
-#     define NDNBOOST_REGEX_RECURSIVE
-#  else
-#     define NDNBOOST_REGEX_NON_RECURSIVE
-#  endif
-#endif
-
-#ifdef NDNBOOST_REGEX_NON_RECURSIVE
-#  ifdef NDNBOOST_REGEX_RECURSIVE
-#     error "Can't set both NDNBOOST_REGEX_RECURSIVE and NDNBOOST_REGEX_NON_RECURSIVE"
-#  endif
-#  ifndef NDNBOOST_REGEX_BLOCKSIZE
-#     define NDNBOOST_REGEX_BLOCKSIZE 4096
-#  endif
-#  if NDNBOOST_REGEX_BLOCKSIZE < 512
-#     error "NDNBOOST_REGEX_BLOCKSIZE must be at least 512"
-#  endif
-#  ifndef NDNBOOST_REGEX_MAX_BLOCKS
-#     define NDNBOOST_REGEX_MAX_BLOCKS 1024
-#  endif
-#  ifdef NDNBOOST_REGEX_HAS_MS_STACK_GUARD
-#     undef NDNBOOST_REGEX_HAS_MS_STACK_GUARD
-#  endif
-#  ifndef NDNBOOST_REGEX_MAX_CACHE_BLOCKS
-#     define NDNBOOST_REGEX_MAX_CACHE_BLOCKS 16
-#  endif
-#endif
-
-
-/*****************************************************************************
- *
- *  helper memory allocation functions:
- *
- ****************************************************************************/
-
-#if defined(__cplusplus) && defined(NDNBOOST_REGEX_NON_RECURSIVE)
-namespace ndnboost{ namespace re_detail{
-
-NDNBOOST_REGEX_DECL void* NDNBOOST_REGEX_CALL get_mem_block();
-NDNBOOST_REGEX_DECL void NDNBOOST_REGEX_CALL put_mem_block(void*);
-
-}} /* namespaces */
-#endif
-
-/*****************************************************************************
- *
- *  Diagnostics:
- *
- ****************************************************************************/
-
-#ifdef NDNBOOST_REGEX_CONFIG_INFO
-NDNBOOST_REGEX_DECL void NDNBOOST_REGEX_CALL print_regex_library_info();
-#endif
-
-#if defined(NDNBOOST_REGEX_DIAG)
-#  pragma message ("NDNBOOST_REGEX_DECL" NDNBOOST_STRINGIZE(=NDNBOOST_REGEX_DECL))
-#  pragma message ("NDNBOOST_REGEX_CALL" NDNBOOST_STRINGIZE(=NDNBOOST_REGEX_CALL))
-#  pragma message ("NDNBOOST_REGEX_CCALL" NDNBOOST_STRINGIZE(=NDNBOOST_REGEX_CCALL))
-#ifdef NDNBOOST_REGEX_USE_C_LOCALE
-#  pragma message ("Using C locale in regex traits class")
-#elif NDNBOOST_REGEX_USE_CPP_LOCALE
-#  pragma message ("Using C++ locale in regex traits class")
-#else
-#  pragma message ("Using Win32 locale in regex traits class")
-#endif
-#if defined(NDNBOOST_REGEX_DYN_LINK) || defined(NDNBOOST_ALL_DYN_LINK)
-#  pragma message ("Dynamic linking enabled")
-#endif
-#if defined(NDNBOOST_REGEX_NO_LIB) || defined(NDNBOOST_ALL_NO_LIB)
-#  pragma message ("Auto-linking disabled")
-#endif
-#ifdef NDNBOOST_REGEX_NO_EXTERNAL_TEMPLATES
-#  pragma message ("Extern templates disabled")
-#endif
-
-#endif
-
-#endif
-
-
-
-
diff --git a/include/ndnboost/regex/config/borland.hpp b/include/ndnboost/regex/config/borland.hpp
deleted file mode 100644
index 6e202e1..0000000
--- a/include/ndnboost/regex/config/borland.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         ndnboost/regex/config/borland.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: regex borland-specific config setup.
-  */
-
-
-#if defined(__BORLANDC__)
-#  if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
-      // problems with std::basic_string and dll RTL:
-#     if defined(_RTLDLL) && defined(_RWSTD_COMPILE_INSTANTIATE)
-#        ifdef NDNBOOST_REGEX_BUILD_DLL
-#           error _RWSTD_COMPILE_INSTANTIATE must not be defined when building regex++ as a DLL
-#        else
-#           pragma message("Defining _RWSTD_COMPILE_INSTANTIATE when linking to the DLL version of the RTL may produce memory corruption problems in std::basic_string, as a result of separate versions of basic_string's static data in the RTL and you're exe/dll: be warned!!")
-#        endif
-#     endif
-#     ifndef _RTLDLL
-         // this is harmless for a staic link:
-#        define _RWSTD_COMPILE_INSTANTIATE
-#     endif
-      // external templates cause problems for some reason:
-#     define NDNBOOST_REGEX_NO_EXTERNAL_TEMPLATES
-#  endif
-#  if (__BORLANDC__ <= 0x540) && !defined(NDNBOOST_REGEX_NO_LIB) && !defined(_NO_VCL)
-      // C++ Builder 4 and earlier, we can't tell whether we should be using
-      // the VCL runtime or not, do a static link instead:
-#     define NDNBOOST_REGEX_STATIC_LINK
-#  endif
-   //
-   // VCL support:
-   // if we're building a console app then there can't be any VCL (can there?)
-#  if !defined(__CONSOLE__) && !defined(_NO_VCL)
-#     define NDNBOOST_REGEX_USE_VCL
-#  endif
-   //
-   // if this isn't Win32 then don't automatically select link
-   // libraries:
-   //
-#  ifndef _Windows
-#     ifndef NDNBOOST_REGEX_NO_LIB
-#        define NDNBOOST_REGEX_NO_LIB
-#     endif
-#     ifndef NDNBOOST_REGEX_STATIC_LINK
-#        define NDNBOOST_REGEX_STATIC_LINK
-#     endif
-#  endif
-
-#if __BORLANDC__ < 0x600
-//
-// string workarounds:
-//
-#include <cstring>
-#undef strcmp
-#undef strcpy
-#endif
-
-#endif
-
-
diff --git a/include/ndnboost/regex/config/cwchar.hpp b/include/ndnboost/regex/config/cwchar.hpp
deleted file mode 100644
index 7165c1f..0000000
--- a/include/ndnboost/regex/config/cwchar.hpp
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         ndnboost/regex/config/cwchar.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: regex wide character string fixes.
-  */
-
-#ifndef NDNBOOST_REGEX_CONFIG_CWCHAR_HPP
-#define NDNBOOST_REGEX_CONFIG_CWCHAR_HPP
-
-#include <cwchar>
-#include <cwctype>
-#include <ndnboost/config.hpp>
-
-#if defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
-// apparently this is required for the RW STL on Linux:
-#undef iswalnum
-#undef iswalpha
-#undef iswblank
-#undef iswcntrl
-#undef iswdigit
-#undef iswgraph
-#undef iswlower
-#undef iswprint
-#undef iswprint
-#undef iswpunct
-#undef iswspace
-#undef iswupper
-#undef iswxdigit
-#undef iswctype
-#undef towlower
-#undef towupper
-#undef towctrans
-#undef wctrans
-#undef wctype
-#endif
-
-namespace std{
-
-#ifndef NDNBOOST_NO_STDC_NAMESPACE
-extern "C"{
-#endif
-
-#ifdef iswalnum
-inline int (iswalnum)(wint_t i)
-{ return iswalnum(i); }
-#undef iswalnum
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswalnum;
-#endif
-
-#ifdef iswalpha
-inline int (iswalpha)(wint_t i)
-{ return iswalpha(i); }
-#undef iswalpha
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswalpha;
-#endif
-
-#ifdef iswcntrl
-inline int (iswcntrl)(wint_t i)
-{ return iswcntrl(i); }
-#undef iswcntrl
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswcntrl;
-#endif
-
-#ifdef iswdigit
-inline int (iswdigit)(wint_t i)
-{ return iswdigit(i); }
-#undef iswdigit
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswdigit;
-#endif
-
-#ifdef iswgraph
-inline int (iswgraph)(wint_t i)
-{ return iswgraph(i); }
-#undef iswgraph
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswgraph;
-#endif
-
-#ifdef iswlower
-inline int (iswlower)(wint_t i)
-{ return iswlower(i); }
-#undef iswlower
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswlower;
-#endif
-
-#ifdef iswprint
-inline int (iswprint)(wint_t i)
-{ return iswprint(i); }
-#undef iswprint
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswprint;
-#endif
-
-#ifdef iswpunct
-inline int (iswpunct)(wint_t i)
-{ return iswpunct(i); }
-#undef iswpunct
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswpunct;
-#endif
-
-#ifdef iswspace
-inline int (iswspace)(wint_t i)
-{ return iswspace(i); }
-#undef iswspace
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswspace;
-#endif
-
-#ifdef iswupper
-inline int (iswupper)(wint_t i)
-{ return iswupper(i); }
-#undef iswupper
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswupper;
-#endif
-
-#ifdef iswxdigit
-inline int (iswxdigit)(wint_t i)
-{ return iswxdigit(i); }
-#undef iswxdigit
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::iswxdigit;
-#endif
-
-#ifdef towlower
-inline wint_t (towlower)(wint_t i)
-{ return towlower(i); }
-#undef towlower
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::towlower;
-#endif
-
-#ifdef towupper
-inline wint_t (towupper)(wint_t i)
-{ return towupper(i); }
-#undef towupper
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using :: towupper;
-#endif
-
-#ifdef wcscmp
-inline int (wcscmp)(const wchar_t *p1, const wchar_t *p2)
-{ return wcscmp(p1,p2); }
-#undef wcscmp
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::wcscmp;
-#endif
-
-#ifdef wcscoll
-inline int (wcscoll)(const wchar_t *p1, const wchar_t *p2)
-{ return wcscoll(p1,p2); }
-#undef wcscoll
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE) && !defined(UNDER_CE)
-using ::wcscoll;
-#endif
-
-#ifdef wcscpy
-inline wchar_t *(wcscpy)(wchar_t *p1, const wchar_t *p2)
-{ return wcscpy(p1,p2); }
-#undef wcscpy
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::wcscpy;
-#endif
-
-#ifdef wcslen
-inline size_t (wcslen)(const wchar_t *p)
-{ return wcslen(p); }
-#undef wcslen
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::wcslen;
-#endif
-
-#ifdef wcsxfrm
-size_t wcsxfrm(wchar_t *p1, const wchar_t *p2, size_t s)
-{ return wcsxfrm(p1,p2,s); }
-#undef wcsxfrm
-#elif defined(NDNBOOST_NO_STDC_NAMESPACE)
-using ::wcsxfrm;
-#endif
-
-
-#ifndef NDNBOOST_NO_STDC_NAMESPACE
-} // extern "C"
-#endif
-
-} // namespace std
-
-#endif
-
diff --git a/include/ndnboost/regex/icu.hpp b/include/ndnboost/regex/icu.hpp
deleted file mode 100644
index 6328520..0000000
--- a/include/ndnboost/regex/icu.hpp
+++ /dev/null
@@ -1,1031 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         icu.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Unicode regular expressions on top of the ICU Library.
-  */
-
-#ifndef NDNBOOST_REGEX_ICU_HPP
-#define NDNBOOST_REGEX_ICU_HPP
-
-#include <unicode/utypes.h>
-#include <unicode/uchar.h>
-#include <unicode/coll.h>
-#include <ndnboost/regex.hpp>
-#include <ndnboost/regex/pending/unicode_iterator.hpp>
-#include <ndnboost/mpl/int_fwd.hpp>
-#include <bitset>
-
-#ifdef NDNBOOST_MSVC
-#pragma warning (push)
-#pragma warning (disable: 4251)
-#endif
-
-namespace ndnboost{
-
-namespace re_detail{
-
-// 
-// Implementation details:
-//
-class NDNBOOST_REGEX_DECL icu_regex_traits_implementation
-{
-   typedef UChar32                      char_type;
-   typedef std::size_t                  size_type;
-   typedef std::vector<char_type>       string_type;
-   typedef U_NAMESPACE_QUALIFIER Locale locale_type;
-   typedef ndnboost::uint_least32_t        char_class_type;
-public:
-   icu_regex_traits_implementation(const U_NAMESPACE_QUALIFIER Locale& l)
-      : m_locale(l)
-   {
-      UErrorCode success = U_ZERO_ERROR;
-      m_collator.reset(U_NAMESPACE_QUALIFIER Collator::createInstance(l, success));
-      if(U_SUCCESS(success) == 0)
-         init_error();
-      m_collator->setStrength(U_NAMESPACE_QUALIFIER Collator::IDENTICAL);
-      success = U_ZERO_ERROR;
-      m_primary_collator.reset(U_NAMESPACE_QUALIFIER Collator::createInstance(l, success));
-      if(U_SUCCESS(success) == 0)
-         init_error();
-      m_primary_collator->setStrength(U_NAMESPACE_QUALIFIER Collator::PRIMARY);
-   }
-   U_NAMESPACE_QUALIFIER Locale getloc()const
-   {
-      return m_locale;
-   }
-   string_type do_transform(const char_type* p1, const char_type* p2, const U_NAMESPACE_QUALIFIER Collator* pcoll) const;
-   string_type transform(const char_type* p1, const char_type* p2) const
-   {
-      return do_transform(p1, p2, m_collator.get());
-   }
-   string_type transform_primary(const char_type* p1, const char_type* p2) const
-   {
-      return do_transform(p1, p2, m_primary_collator.get());
-   }
-private:
-   void init_error()
-   {
-      std::runtime_error e("Could not initialize ICU resources");
-      ndnboost::throw_exception(e);
-   }
-   U_NAMESPACE_QUALIFIER Locale m_locale;                                  // The ICU locale that we're using
-   ndnboost::scoped_ptr< U_NAMESPACE_QUALIFIER Collator> m_collator;          // The full collation object
-   ndnboost::scoped_ptr< U_NAMESPACE_QUALIFIER Collator> m_primary_collator;  // The primary collation object
-};
-
-inline ndnboost::shared_ptr<icu_regex_traits_implementation> get_icu_regex_traits_implementation(const U_NAMESPACE_QUALIFIER Locale& loc)
-{
-   return ndnboost::shared_ptr<icu_regex_traits_implementation>(new icu_regex_traits_implementation(loc));
-}
-
-}
-
-class NDNBOOST_REGEX_DECL icu_regex_traits
-{
-public:
-   typedef UChar32                      char_type;
-   typedef std::size_t                  size_type;
-   typedef std::vector<char_type>       string_type;
-   typedef U_NAMESPACE_QUALIFIER Locale locale_type;
-#ifdef NDNBOOST_NO_INT64_T
-   typedef std::bitset<64>              char_class_type;
-#else
-   typedef ndnboost::uint64_t              char_class_type;
-#endif
-
-   struct boost_extensions_tag{};
-
-   icu_regex_traits()
-      : m_pimpl(re_detail::get_icu_regex_traits_implementation(U_NAMESPACE_QUALIFIER Locale()))
-   {
-   }
-   static size_type length(const char_type* p);
-
-   ::ndnboost::regex_constants::syntax_type syntax_type(char_type c)const
-   {
-      return ((c < 0x7f) && (c > 0)) ? re_detail::get_default_syntax_type(static_cast<char>(c)) : regex_constants::syntax_char;
-   }
-   ::ndnboost::regex_constants::escape_syntax_type escape_syntax_type(char_type c) const
-   {
-      return ((c < 0x7f) && (c > 0)) ? re_detail::get_default_escape_syntax_type(static_cast<char>(c)) : regex_constants::syntax_char;
-   }
-   char_type translate(char_type c) const
-   {
-      return c;
-   }
-   char_type translate_nocase(char_type c) const
-   {
-      return ::u_tolower(c);
-   }
-   char_type translate(char_type c, bool icase) const
-   {
-      return icase ? translate_nocase(c) : translate(c);
-   }
-   char_type tolower(char_type c) const
-   {
-      return ::u_tolower(c);
-   }
-   char_type toupper(char_type c) const
-   {
-      return ::u_toupper(c);
-   }
-   string_type transform(const char_type* p1, const char_type* p2) const
-   {
-      return m_pimpl->transform(p1, p2);
-   }
-   string_type transform_primary(const char_type* p1, const char_type* p2) const
-   {
-      return m_pimpl->transform_primary(p1, p2);
-   }
-   char_class_type lookup_classname(const char_type* p1, const char_type* p2) const;
-   string_type lookup_collatename(const char_type* p1, const char_type* p2) const;
-   bool isctype(char_type c, char_class_type f) const;
-   int toi(const char_type*& p1, const char_type* p2, int radix)const
-   {
-      return re_detail::global_toi(p1, p2, radix, *this);
-   }
-   int value(char_type c, int radix)const
-   {
-      return u_digit(c, static_cast< ::int8_t>(radix));
-   }
-   locale_type imbue(locale_type l)
-   {
-      locale_type result(m_pimpl->getloc());
-      m_pimpl = re_detail::get_icu_regex_traits_implementation(l);
-      return result;
-   }
-   locale_type getloc()const
-   {
-      return locale_type();
-   }
-   std::string error_string(::ndnboost::regex_constants::error_type n) const
-   {
-      return re_detail::get_default_error_string(n);
-   }
-private:
-   icu_regex_traits(const icu_regex_traits&);
-   icu_regex_traits& operator=(const icu_regex_traits&);
-
-   //
-   // define the bitmasks offsets we need for additional character properties:
-   //
-   enum{
-      offset_blank = U_CHAR_CATEGORY_COUNT,
-      offset_space = U_CHAR_CATEGORY_COUNT+1,
-      offset_xdigit = U_CHAR_CATEGORY_COUNT+2,
-      offset_underscore = U_CHAR_CATEGORY_COUNT+3,
-      offset_unicode = U_CHAR_CATEGORY_COUNT+4,
-      offset_any = U_CHAR_CATEGORY_COUNT+5,
-      offset_ascii = U_CHAR_CATEGORY_COUNT+6,
-      offset_horizontal = U_CHAR_CATEGORY_COUNT+7,
-      offset_vertical = U_CHAR_CATEGORY_COUNT+8
-   };
-
-   //
-   // and now the masks:
-   //
-   static const char_class_type mask_blank;
-   static const char_class_type mask_space;
-   static const char_class_type mask_xdigit;
-   static const char_class_type mask_underscore;
-   static const char_class_type mask_unicode;
-   static const char_class_type mask_any;
-   static const char_class_type mask_ascii;
-   static const char_class_type mask_horizontal;
-   static const char_class_type mask_vertical;
-
-   static char_class_type lookup_icu_mask(const ::UChar32* p1, const ::UChar32* p2);
-
-   ndnboost::shared_ptr< ::ndnboost::re_detail::icu_regex_traits_implementation> m_pimpl;
-};
-
-} // namespace ndnboost
-
-//
-// template instances:
-//
-#define NDNBOOST_REGEX_CHAR_T UChar32
-#undef NDNBOOST_REGEX_TRAITS_T
-#define NDNBOOST_REGEX_TRAITS_T , icu_regex_traits
-#define NDNBOOST_REGEX_ICU_INSTANCES
-#ifdef NDNBOOST_REGEX_ICU_INSTANTIATE
-#  define NDNBOOST_REGEX_INSTANTIATE
-#endif
-#include <ndnboost/regex/v4/instances.hpp>
-#undef NDNBOOST_REGEX_CHAR_T
-#undef NDNBOOST_REGEX_TRAITS_T
-#undef NDNBOOST_REGEX_ICU_INSTANCES
-#ifdef NDNBOOST_REGEX_INSTANTIATE
-#  undef NDNBOOST_REGEX_INSTANTIATE
-#endif
-
-namespace ndnboost{
-
-// types:
-typedef basic_regex< ::UChar32, icu_regex_traits> u32regex;
-typedef match_results<const ::UChar32*> u32match;
-typedef match_results<const ::UChar*> u16match;
-
-//
-// Construction of 32-bit regex types from UTF-8 and UTF-16 primitives:
-//
-namespace re_detail{
-
-#if !defined(NDNBOOST_NO_MEMBER_TEMPLATES) && !defined(__IBMCPP__)
-template <class InputIterator>
-inline u32regex do_make_u32regex(InputIterator i, 
-                              InputIterator j, 
-                              ndnboost::regex_constants::syntax_option_type opt, 
-                              const ndnboost::mpl::int_<1>*)
-{
-   typedef ndnboost::u8_to_u32_iterator<InputIterator, UChar32> conv_type;
-   return u32regex(conv_type(i, i, j), conv_type(j, i, j), opt);
-}
-
-template <class InputIterator>
-inline u32regex do_make_u32regex(InputIterator i, 
-                              InputIterator j, 
-                              ndnboost::regex_constants::syntax_option_type opt, 
-                              const ndnboost::mpl::int_<2>*)
-{
-   typedef ndnboost::u16_to_u32_iterator<InputIterator, UChar32> conv_type;
-   return u32regex(conv_type(i, i, j), conv_type(j, i, j), opt);
-}
-
-template <class InputIterator>
-inline u32regex do_make_u32regex(InputIterator i, 
-                              InputIterator j, 
-                              ndnboost::regex_constants::syntax_option_type opt, 
-                              const ndnboost::mpl::int_<4>*)
-{
-   return u32regex(i, j, opt);
-}
-#else
-template <class InputIterator>
-inline u32regex do_make_u32regex(InputIterator i, 
-                              InputIterator j, 
-                              ndnboost::regex_constants::syntax_option_type opt, 
-                              const ndnboost::mpl::int_<1>*)
-{
-   typedef ndnboost::u8_to_u32_iterator<InputIterator, UChar32> conv_type;
-   typedef std::vector<UChar32> vector_type;
-   vector_type v;
-   conv_type a(i, i, j), b(j, i, j);
-   while(a != b)
-   {
-      v.push_back(*a);
-      ++a;
-   }
-   if(v.size())
-      return u32regex(&*v.begin(), v.size(), opt);
-   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);
-}
-
-template <class InputIterator>
-inline u32regex do_make_u32regex(InputIterator i, 
-                              InputIterator j, 
-                              ndnboost::regex_constants::syntax_option_type opt, 
-                              const ndnboost::mpl::int_<2>*)
-{
-   typedef ndnboost::u16_to_u32_iterator<InputIterator, UChar32> conv_type;
-   typedef std::vector<UChar32> vector_type;
-   vector_type v;
-   conv_type a(i, i, j), b(j, i, j);
-   while(a != b)
-   {
-      v.push_back(*a);
-      ++a;
-   }
-   if(v.size())
-      return u32regex(&*v.begin(), v.size(), opt);
-   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);
-}
-
-template <class InputIterator>
-inline u32regex do_make_u32regex(InputIterator i, 
-                              InputIterator j, 
-                              ndnboost::regex_constants::syntax_option_type opt, 
-                              const ndnboost::mpl::int_<4>*)
-{
-   typedef std::vector<UChar32> vector_type;
-   vector_type v;
-   while(i != j)
-   {
-      v.push_back((UChar32)(*i));
-      ++i;
-   }
-   if(v.size())
-      return u32regex(&*v.begin(), v.size(), opt);
-   return u32regex(static_cast<UChar32 const*>(0), static_cast<u32regex::size_type>(0), opt);
-}
-#endif
-}
-
-//
-// Construction from an iterator pair:
-//
-template <class InputIterator>
-inline u32regex make_u32regex(InputIterator i, 
-                              InputIterator j, 
-                              ndnboost::regex_constants::syntax_option_type opt)
-{
-   return re_detail::do_make_u32regex(i, j, opt, static_cast<ndnboost::mpl::int_<sizeof(*i)> const*>(0));
-}
-//
-// construction from UTF-8 nul-terminated strings:
-//
-inline u32regex make_u32regex(const char* p, ndnboost::regex_constants::syntax_option_type opt = ndnboost::regex_constants::perl)
-{
-   return re_detail::do_make_u32regex(p, p + std::strlen(p), opt, static_cast<ndnboost::mpl::int_<1> const*>(0));
-}
-inline u32regex make_u32regex(const unsigned char* p, ndnboost::regex_constants::syntax_option_type opt = ndnboost::regex_constants::perl)
-{
-   return re_detail::do_make_u32regex(p, p + std::strlen(reinterpret_cast<const char*>(p)), opt, static_cast<ndnboost::mpl::int_<1> const*>(0));
-}
-//
-// construction from UTF-16 nul-terminated strings:
-//
-#ifndef NDNBOOST_NO_WREGEX
-inline u32regex make_u32regex(const wchar_t* p, ndnboost::regex_constants::syntax_option_type opt = ndnboost::regex_constants::perl)
-{
-   return re_detail::do_make_u32regex(p, p + std::wcslen(p), opt, static_cast<ndnboost::mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-#endif
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
-inline u32regex make_u32regex(const UChar* p, ndnboost::regex_constants::syntax_option_type opt = ndnboost::regex_constants::perl)
-{
-   return re_detail::do_make_u32regex(p, p + u_strlen(p), opt, static_cast<ndnboost::mpl::int_<2> const*>(0));
-}
-#endif
-//
-// construction from basic_string class-template:
-//
-template<class C, class T, class A>
-inline u32regex make_u32regex(const std::basic_string<C, T, A>& s, ndnboost::regex_constants::syntax_option_type opt = ndnboost::regex_constants::perl)
-{
-   return re_detail::do_make_u32regex(s.begin(), s.end(), opt, static_cast<ndnboost::mpl::int_<sizeof(C)> const*>(0));
-}
-//
-// Construction from ICU string type:
-//
-inline u32regex make_u32regex(const U_NAMESPACE_QUALIFIER UnicodeString& s, ndnboost::regex_constants::syntax_option_type opt = ndnboost::regex_constants::perl)
-{
-   return re_detail::do_make_u32regex(s.getBuffer(), s.getBuffer() + s.length(), opt, static_cast<ndnboost::mpl::int_<2> const*>(0));
-}
-
-//
-// regex_match overloads that widen the character type as appropriate:
-//
-namespace re_detail{
-template<class MR1, class MR2>
-void copy_results(MR1& out, MR2 const& in)
-{
-   // copy results from an adapted MR2 match_results:
-   out.set_size(in.size(), in.prefix().first.base(), in.suffix().second.base());
-   out.set_base(in.base().base());
-   for(int i = 0; i < (int)in.size(); ++i)
-   {
-      if(in[i].matched)
-      {
-         out.set_first(in[i].first.base(), i);
-         out.set_second(in[i].second.base(), i);
-      }
-   }
-}
-
-template <class BidiIterator, class Allocator>
-inline bool do_regex_match(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags,
-                 ndnboost::mpl::int_<4> const*)
-{
-   return ::ndnboost::regex_match(first, last, m, e, flags);
-}
-template <class BidiIterator, class Allocator>
-bool do_regex_match(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags,
-                 ndnboost::mpl::int_<2> const*)
-{
-   typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type;
-   typedef match_results<conv_type>                   match_type;
-   //typedef typename match_type::allocator_type        alloc_type;
-   match_type what;
-   bool result = ::ndnboost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags);
-   // copy results across to m:
-   if(result) copy_results(m, what);
-   return result;
-}
-template <class BidiIterator, class Allocator>
-bool do_regex_match(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags,
-                 ndnboost::mpl::int_<1> const*)
-{
-   typedef u8_to_u32_iterator<BidiIterator, UChar32>  conv_type;
-   typedef match_results<conv_type>                   match_type;
-   //typedef typename match_type::allocator_type        alloc_type;
-   match_type what;
-   bool result = ::ndnboost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags);
-   // copy results across to m:
-   if(result) copy_results(m, what);
-   return result;
-}
-} // namespace re_detail
-
-template <class BidiIterator, class Allocator>
-inline bool u32regex_match(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_match(first, last, m, e, flags, static_cast<mpl::int_<sizeof(*first)> const*>(0));
-}
-inline bool u32regex_match(const UChar* p, 
-                 match_results<const UChar*>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast<mpl::int_<2> const*>(0));
-}
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(NDNBOOST_NO_WREGEX)
-inline bool u32regex_match(const wchar_t* p, 
-                 match_results<const wchar_t*>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_match(p, p+std::wcslen(p), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-#endif
-inline bool u32regex_match(const char* p, 
-                 match_results<const char*>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_match(p, p+std::strlen(p), m, e, flags, static_cast<mpl::int_<1> const*>(0));
-}
-inline bool u32regex_match(const unsigned char* p, 
-                 match_results<const unsigned char*>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_match(p, p+std::strlen((const char*)p), m, e, flags, static_cast<mpl::int_<1> const*>(0));
-}
-inline bool u32regex_match(const std::string& s, 
-                        match_results<std::string::const_iterator>& m, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<1> const*>(0));
-}
-#ifndef NDNBOOST_NO_STD_WSTRING
-inline bool u32regex_match(const std::wstring& s, 
-                        match_results<std::wstring::const_iterator>& m, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-#endif
-inline bool u32regex_match(const U_NAMESPACE_QUALIFIER UnicodeString& s, 
-                        match_results<const UChar*>& m, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_match(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-//
-// regex_match overloads that do not return what matched:
-//
-template <class BidiIterator>
-inline bool u32regex_match(BidiIterator first, BidiIterator last, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<BidiIterator> m;
-   return re_detail::do_regex_match(first, last, m, e, flags, static_cast<mpl::int_<sizeof(*first)> const*>(0));
-}
-inline bool u32regex_match(const UChar* p, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<const UChar*> m;
-   return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast<mpl::int_<2> const*>(0));
-}
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(NDNBOOST_NO_WREGEX)
-inline bool u32regex_match(const wchar_t* p, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<const wchar_t*> m;
-   return re_detail::do_regex_match(p, p+std::wcslen(p), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-#endif
-inline bool u32regex_match(const char* p, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<const char*> m;
-   return re_detail::do_regex_match(p, p+std::strlen(p), m, e, flags, static_cast<mpl::int_<1> const*>(0));
-}
-inline bool u32regex_match(const unsigned char* p, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<const unsigned char*> m;
-   return re_detail::do_regex_match(p, p+std::strlen((const char*)p), m, e, flags, static_cast<mpl::int_<1> const*>(0));
-}
-inline bool u32regex_match(const std::string& s, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::string::const_iterator> m;
-   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<1> const*>(0));
-}
-#ifndef NDNBOOST_NO_STD_WSTRING
-inline bool u32regex_match(const std::wstring& s, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::wstring::const_iterator> m;
-   return re_detail::do_regex_match(s.begin(), s.end(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-#endif
-inline bool u32regex_match(const U_NAMESPACE_QUALIFIER UnicodeString& s, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const UChar*> m;
-   return re_detail::do_regex_match(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-
-//
-// regex_search overloads that widen the character type as appropriate:
-//
-namespace re_detail{
-template <class BidiIterator, class Allocator>
-inline bool do_regex_search(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags,
-                 BidiIterator base,
-                 ndnboost::mpl::int_<4> const*)
-{
-   return ::ndnboost::regex_search(first, last, m, e, flags, base);
-}
-template <class BidiIterator, class Allocator>
-bool do_regex_search(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags,
-                 BidiIterator base,
-                 ndnboost::mpl::int_<2> const*)
-{
-   typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type;
-   typedef match_results<conv_type>                   match_type;
-   //typedef typename match_type::allocator_type        alloc_type;
-   match_type what;
-   bool result = ::ndnboost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base));
-   // copy results across to m:
-   if(result) copy_results(m, what);
-   return result;
-}
-template <class BidiIterator, class Allocator>
-bool do_regex_search(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags,
-                 BidiIterator base,
-                 ndnboost::mpl::int_<1> const*)
-{
-   typedef u8_to_u32_iterator<BidiIterator, UChar32>  conv_type;
-   typedef match_results<conv_type>                   match_type;
-   //typedef typename match_type::allocator_type        alloc_type;
-   match_type what;
-   bool result = ::ndnboost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base));
-   // copy results across to m:
-   if(result) copy_results(m, what);
-   return result;
-}
-}
-
-template <class BidiIterator, class Allocator>
-inline bool u32regex_search(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_search(first, last, m, e, flags, first, static_cast<mpl::int_<sizeof(*first)> const*>(0));
-}
-template <class BidiIterator, class Allocator>
-inline bool u32regex_search(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags,
-                 BidiIterator base)
-{
-   return re_detail::do_regex_search(first, last, m, e, flags, base, static_cast<mpl::int_<sizeof(*first)> const*>(0));
-}
-inline bool u32regex_search(const UChar* p, 
-                 match_results<const UChar*>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast<mpl::int_<2> const*>(0));
-}
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(NDNBOOST_NO_WREGEX)
-inline bool u32regex_search(const wchar_t* p, 
-                 match_results<const wchar_t*>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_search(p, p+std::wcslen(p), m, e, flags, p, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-#endif
-inline bool u32regex_search(const char* p, 
-                 match_results<const char*>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_search(p, p+std::strlen(p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));
-}
-inline bool u32regex_search(const unsigned char* p, 
-                 match_results<const unsigned char*>& m, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_search(p, p+std::strlen((const char*)p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));
-}
-inline bool u32regex_search(const std::string& s, 
-                        match_results<std::string::const_iterator>& m, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<1> const*>(0));
-}
-#ifndef NDNBOOST_NO_STD_WSTRING
-inline bool u32regex_search(const std::wstring& s, 
-                        match_results<std::wstring::const_iterator>& m, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-#endif
-inline bool u32regex_search(const U_NAMESPACE_QUALIFIER UnicodeString& s, 
-                        match_results<const UChar*>& m, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return re_detail::do_regex_search(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, s.getBuffer(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-template <class BidiIterator>
-inline bool u32regex_search(BidiIterator first, BidiIterator last, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<BidiIterator> m;
-   return re_detail::do_regex_search(first, last, m, e, flags, first, static_cast<mpl::int_<sizeof(*first)> const*>(0));
-}
-inline bool u32regex_search(const UChar* p, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<const UChar*> m;
-   return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast<mpl::int_<2> const*>(0));
-}
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(NDNBOOST_NO_WREGEX)
-inline bool u32regex_search(const wchar_t* p, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<const wchar_t*> m;
-   return re_detail::do_regex_search(p, p+std::wcslen(p), m, e, flags, p, static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-#endif
-inline bool u32regex_search(const char* p, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<const char*> m;
-   return re_detail::do_regex_search(p, p+std::strlen(p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));
-}
-inline bool u32regex_search(const unsigned char* p, 
-                 const u32regex& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<const unsigned char*> m;
-   return re_detail::do_regex_search(p, p+std::strlen((const char*)p), m, e, flags, p, static_cast<mpl::int_<1> const*>(0));
-}
-inline bool u32regex_search(const std::string& s, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::string::const_iterator> m;
-   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<1> const*>(0));
-}
-#ifndef NDNBOOST_NO_STD_WSTRING
-inline bool u32regex_search(const std::wstring& s, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::wstring::const_iterator> m;
-   return re_detail::do_regex_search(s.begin(), s.end(), m, e, flags, s.begin(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-#endif
-inline bool u32regex_search(const U_NAMESPACE_QUALIFIER UnicodeString& s, 
-                        const u32regex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const UChar*> m;
-   return re_detail::do_regex_search(s.getBuffer(), s.getBuffer() + s.length(), m, e, flags, s.getBuffer(), static_cast<mpl::int_<sizeof(wchar_t)> const*>(0));
-}
-
-//
-// overloads for regex_replace with utf-8 and utf-16 data types:
-//
-namespace re_detail{
-template <class I>
-inline std::pair< ndnboost::u8_to_u32_iterator<I>, ndnboost::u8_to_u32_iterator<I> >
-   make_utf32_seq(I i, I j, mpl::int_<1> const*)
-{
-   return std::pair< ndnboost::u8_to_u32_iterator<I>, ndnboost::u8_to_u32_iterator<I> >(ndnboost::u8_to_u32_iterator<I>(i, i, j), ndnboost::u8_to_u32_iterator<I>(j, i, j));
-}
-template <class I>
-inline std::pair< ndnboost::u16_to_u32_iterator<I>, ndnboost::u16_to_u32_iterator<I> >
-   make_utf32_seq(I i, I j, mpl::int_<2> const*)
-{
-   return std::pair< ndnboost::u16_to_u32_iterator<I>, ndnboost::u16_to_u32_iterator<I> >(ndnboost::u16_to_u32_iterator<I>(i, i, j), ndnboost::u16_to_u32_iterator<I>(j, i, j));
-}
-template <class I>
-inline std::pair< I, I >
-   make_utf32_seq(I i, I j, mpl::int_<4> const*)
-{
-   return std::pair< I, I >(i, j);
-}
-template <class charT>
-inline std::pair< ndnboost::u8_to_u32_iterator<const charT*>, ndnboost::u8_to_u32_iterator<const charT*> >
-   make_utf32_seq(const charT* p, mpl::int_<1> const*)
-{
-   std::size_t len = std::strlen((const char*)p);
-   return std::pair< ndnboost::u8_to_u32_iterator<const charT*>, ndnboost::u8_to_u32_iterator<const charT*> >(ndnboost::u8_to_u32_iterator<const charT*>(p, p, p+len), ndnboost::u8_to_u32_iterator<const charT*>(p+len, p, p+len));
-}
-template <class charT>
-inline std::pair< ndnboost::u16_to_u32_iterator<const charT*>, ndnboost::u16_to_u32_iterator<const charT*> >
-   make_utf32_seq(const charT* p, mpl::int_<2> const*)
-{
-   std::size_t len = u_strlen((const UChar*)p);
-   return std::pair< ndnboost::u16_to_u32_iterator<const charT*>, ndnboost::u16_to_u32_iterator<const charT*> >(ndnboost::u16_to_u32_iterator<const charT*>(p, p, p + len), ndnboost::u16_to_u32_iterator<const charT*>(p+len, p, p + len));
-}
-template <class charT>
-inline std::pair< const charT*, const charT* >
-   make_utf32_seq(const charT* p, mpl::int_<4> const*)
-{
-   return std::pair< const charT*, const charT* >(p, p+icu_regex_traits::length((UChar32 const*)p));
-}
-template <class OutputIterator>
-inline OutputIterator make_utf32_out(OutputIterator o, mpl::int_<4> const*)
-{
-   return o;
-}
-template <class OutputIterator>
-inline utf16_output_iterator<OutputIterator> make_utf32_out(OutputIterator o, mpl::int_<2> const*)
-{
-   return o;
-}
-template <class OutputIterator>
-inline utf8_output_iterator<OutputIterator> make_utf32_out(OutputIterator o, mpl::int_<1> const*)
-{
-   return o;
-}
-
-template <class OutputIterator, class I1, class I2>
-OutputIterator do_regex_replace(OutputIterator out,
-                                 std::pair<I1, I1> const& in,
-                                 const u32regex& e, 
-                                 const std::pair<I2, I2>& fmt, 
-                                 match_flag_type flags
-                                 )
-{
-   // unfortunately we have to copy the format string in order to pass in onward:
-   std::vector<UChar32> f;
-#ifndef NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-   f.assign(fmt.first, fmt.second);
-#else
-   f.clear();
-   I2 pos = fmt.first;
-   while(pos != fmt.second)
-      f.push_back(*pos++);
-#endif
-   
-   regex_iterator<I1, UChar32, icu_regex_traits> i(in.first, in.second, e, flags);
-   regex_iterator<I1, UChar32, icu_regex_traits> j;
-   if(i == j)
-   {
-      if(!(flags & regex_constants::format_no_copy))
-         out = re_detail::copy(in.first, in.second, out);
-   }
-   else
-   {
-      I1 last_m = in.first;
-      while(i != j)
-      {
-         if(!(flags & regex_constants::format_no_copy))
-            out = re_detail::copy(i->prefix().first, i->prefix().second, out); 
-         if(f.size())
-            out = ::ndnboost::re_detail::regex_format_imp(out, *i, &*f.begin(), &*f.begin() + f.size(), flags, e.get_traits());
-         else
-            out = ::ndnboost::re_detail::regex_format_imp(out, *i, static_cast<UChar32 const*>(0), static_cast<UChar32 const*>(0), flags, e.get_traits());
-         last_m = (*i)[0].second;
-         if(flags & regex_constants::format_first_only)
-            break;
-         ++i;
-      }
-      if(!(flags & regex_constants::format_no_copy))
-         out = re_detail::copy(last_m, in.second, out);
-   }
-   return out;
-}
-template <class BaseIterator>
-inline const BaseIterator& extract_output_base(const BaseIterator& b)
-{
-   return b;
-}
-template <class BaseIterator>
-inline BaseIterator extract_output_base(const utf8_output_iterator<BaseIterator>& b)
-{
-   return b.base();
-}
-template <class BaseIterator>
-inline BaseIterator extract_output_base(const utf16_output_iterator<BaseIterator>& b)
-{
-   return b.base();
-}
-}  // re_detail
-
-template <class OutputIterator, class BidirectionalIterator, class charT>
-inline OutputIterator u32regex_replace(OutputIterator out,
-                         BidirectionalIterator first,
-                         BidirectionalIterator last,
-                         const u32regex& e, 
-                         const charT* fmt, 
-                         match_flag_type flags = match_default)
-{
-   return re_detail::extract_output_base
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-   <OutputIterator>
-#endif
-    (
-      re_detail::do_regex_replace(
-         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
-         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
-         e,
-         re_detail::make_utf32_seq(fmt, static_cast<mpl::int_<sizeof(*fmt)> const*>(0)),
-         flags)
-      );
-}
-
-template <class OutputIterator, class Iterator, class charT>
-inline OutputIterator u32regex_replace(OutputIterator out,
-                         Iterator first,
-                         Iterator last,
-                         const u32regex& e, 
-                         const std::basic_string<charT>& fmt,
-                         match_flag_type flags = match_default)
-{
-   return re_detail::extract_output_base
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-   <OutputIterator>
-#endif
-    (
-      re_detail::do_regex_replace(
-         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
-         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
-         e,
-         re_detail::make_utf32_seq(fmt.begin(), fmt.end(), static_cast<mpl::int_<sizeof(charT)> const*>(0)),
-         flags)
-      );
-}
-
-template <class OutputIterator, class Iterator>
-inline OutputIterator u32regex_replace(OutputIterator out,
-                         Iterator first,
-                         Iterator last,
-                         const u32regex& e, 
-                         const U_NAMESPACE_QUALIFIER UnicodeString& fmt,
-                         match_flag_type flags = match_default)
-{
-   return re_detail::extract_output_base
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <= 1300)
-   <OutputIterator>
-#endif
-   (
-      re_detail::do_regex_replace(
-         re_detail::make_utf32_out(out, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
-         re_detail::make_utf32_seq(first, last, static_cast<mpl::int_<sizeof(*first)> const*>(0)),
-         e,
-         re_detail::make_utf32_seq(fmt.getBuffer(), fmt.getBuffer() + fmt.length(), static_cast<mpl::int_<2> const*>(0)),
-         flags)
-      );
-}
-
-template <class charT>
-std::basic_string<charT> u32regex_replace(const std::basic_string<charT>& s,
-                         const u32regex& e, 
-                         const charT* fmt,
-                         match_flag_type flags = match_default)
-{
-   std::basic_string<charT> result;
-   re_detail::string_out_iterator<std::basic_string<charT> > i(result);
-   u32regex_replace(i, s.begin(), s.end(), e, fmt, flags);
-   return result;
-}
-
-template <class charT>
-std::basic_string<charT> u32regex_replace(const std::basic_string<charT>& s,
-                         const u32regex& e, 
-                         const std::basic_string<charT>& fmt,
-                         match_flag_type flags = match_default)
-{
-   std::basic_string<charT> result;
-   re_detail::string_out_iterator<std::basic_string<charT> > i(result);
-   u32regex_replace(i, s.begin(), s.end(), e, fmt.c_str(), flags);
-   return result;
-}
-
-namespace re_detail{
-
-class unicode_string_out_iterator
-{
-   U_NAMESPACE_QUALIFIER UnicodeString* out;
-public:
-   unicode_string_out_iterator(U_NAMESPACE_QUALIFIER UnicodeString& s) : out(&s) {}
-   unicode_string_out_iterator& operator++() { return *this; }
-   unicode_string_out_iterator& operator++(int) { return *this; }
-   unicode_string_out_iterator& operator*() { return *this; }
-   unicode_string_out_iterator& operator=(UChar v) 
-   { 
-      *out += v; 
-      return *this; 
-   }
-   typedef std::ptrdiff_t difference_type;
-   typedef UChar value_type;
-   typedef value_type* pointer;
-   typedef value_type& reference;
-   typedef std::output_iterator_tag iterator_category;
-};
-
-}
-
-inline U_NAMESPACE_QUALIFIER UnicodeString u32regex_replace(const U_NAMESPACE_QUALIFIER UnicodeString& s,
-                         const u32regex& e, 
-                         const UChar* fmt,
-                         match_flag_type flags = match_default)
-{
-   U_NAMESPACE_QUALIFIER UnicodeString result;
-   re_detail::unicode_string_out_iterator i(result);
-   u32regex_replace(i, s.getBuffer(), s.getBuffer()+s.length(), e, fmt, flags);
-   return result;
-}
-
-inline U_NAMESPACE_QUALIFIER UnicodeString u32regex_replace(const U_NAMESPACE_QUALIFIER UnicodeString& s,
-                         const u32regex& e, 
-                         const U_NAMESPACE_QUALIFIER UnicodeString& fmt,
-                         match_flag_type flags = match_default)
-{
-   U_NAMESPACE_QUALIFIER UnicodeString result;
-   re_detail::unicode_string_out_iterator i(result);
-   re_detail::do_regex_replace(
-         re_detail::make_utf32_out(i, static_cast<mpl::int_<2> const*>(0)),
-         re_detail::make_utf32_seq(s.getBuffer(), s.getBuffer()+s.length(), static_cast<mpl::int_<2> const*>(0)),
-         e,
-         re_detail::make_utf32_seq(fmt.getBuffer(), fmt.getBuffer() + fmt.length(), static_cast<mpl::int_<2> const*>(0)),
-         flags);
-   return result;
-}
-
-} // namespace ndnboost.
-
-#ifdef NDNBOOST_MSVC
-#pragma warning (pop)
-#endif
-
-#include <ndnboost/regex/v4/u32regex_iterator.hpp>
-#include <ndnboost/regex/v4/u32regex_token_iterator.hpp>
-
-#endif
diff --git a/include/ndnboost/regex/pattern_except.hpp b/include/ndnboost/regex/pattern_except.hpp
deleted file mode 100644
index 7ec0d45..0000000
--- a/include/ndnboost/regex/pattern_except.hpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         pattern_except.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares pattern-matching exception classes.
-  */
-
-#ifndef NDNBOOST_RE_PAT_EXCEPT_HPP
-#define NDNBOOST_RE_PAT_EXCEPT_HPP
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-
-#include <stdexcept>
-#include <cstddef>
-#include <ndnboost/regex/v4/error_type.hpp>
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable : 4275)
-#endif
-class NDNBOOST_REGEX_DECL regex_error : public std::runtime_error
-{
-public:
-   explicit regex_error(const std::string& s, regex_constants::error_type err = regex_constants::error_unknown, std::ptrdiff_t pos = 0);
-   explicit regex_error(regex_constants::error_type err);
-   ~regex_error() throw();
-   regex_constants::error_type code()const
-   { return m_error_code; }
-   std::ptrdiff_t position()const
-   { return m_position; }
-   void raise()const;
-private:
-   regex_constants::error_type m_error_code;
-   std::ptrdiff_t m_position;
-};
-
-typedef regex_error bad_pattern;
-typedef regex_error bad_expression;
-
-namespace re_detail{
-
-NDNBOOST_REGEX_DECL void NDNBOOST_REGEX_CALL raise_runtime_error(const std::runtime_error& ex);
-
-template <class traits>
-void raise_error(const traits& t, regex_constants::error_type code)
-{
-   (void)t;  // warning suppression
-   std::runtime_error e(t.error_string(code));
-   ::ndnboost::re_detail::raise_runtime_error(e);
-}
-
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif
-
-
-
diff --git a/include/ndnboost/regex/pending/object_cache.hpp b/include/ndnboost/regex/pending/object_cache.hpp
deleted file mode 100644
index d0a088c..0000000
--- a/include/ndnboost/regex/pending/object_cache.hpp
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         object_cache.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Implements a generic object cache.
-  */
-
-#ifndef NDNBOOST_REGEX_OBJECT_CACHE_HPP
-#define NDNBOOST_REGEX_OBJECT_CACHE_HPP
-
-#include <map>
-#include <list>
-#include <stdexcept>
-#include <string>
-#include <ndnboost/config.hpp>
-#include <ndnboost/shared_ptr.hpp>
-#ifdef NDNBOOST_HAS_THREADS
-#include <ndnboost/regex/pending/static_mutex.hpp>
-#endif
-
-namespace ndnboost{
-
-template <class Key, class Object>
-class object_cache
-{
-public:
-   typedef std::pair< ::ndnboost::shared_ptr<Object const>, Key const*> value_type;
-   typedef std::list<value_type> list_type;
-   typedef typename list_type::iterator list_iterator;
-   typedef std::map<Key, list_iterator> map_type;
-   typedef typename map_type::iterator map_iterator;
-   typedef typename list_type::size_type size_type;
-   static ndnboost::shared_ptr<Object const> get(const Key& k, size_type l_max_cache_size);
-
-private:
-   static ndnboost::shared_ptr<Object const> do_get(const Key& k, size_type l_max_cache_size);
-
-   struct data
-   {
-      list_type   cont;
-      map_type    index;
-   };
-
-   // Needed by compilers not implementing the resolution to DR45. For reference,
-   // see http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#45.
-   friend struct data;
-};
-
-template <class Key, class Object>
-ndnboost::shared_ptr<Object const> object_cache<Key, Object>::get(const Key& k, size_type l_max_cache_size)
-{
-#ifdef NDNBOOST_HAS_THREADS
-   static ndnboost::static_mutex mut = NDNBOOST_STATIC_MUTEX_INIT;
-
-   ndnboost::static_mutex::scoped_lock l(mut);
-   if(l)
-   {
-      return do_get(k, l_max_cache_size);
-   }
-   //
-   // what do we do if the lock fails?
-   // for now just throw, but we should never really get here...
-   //
-   ::ndnboost::throw_exception(std::runtime_error("Error in thread safety code: could not acquire a lock"));
-#if defined(NDNBOOST_NO_UNREACHABLE_RETURN_DETECTION) || defined(NDNBOOST_NO_EXCEPTIONS)
-   return ndnboost::shared_ptr<Object>();
-#endif
-#else
-   return do_get(k, l_max_cache_size);
-#endif
-}
-
-template <class Key, class Object>
-ndnboost::shared_ptr<Object const> object_cache<Key, Object>::do_get(const Key& k, size_type l_max_cache_size)
-{
-   typedef typename object_cache<Key, Object>::data object_data;
-   typedef typename map_type::size_type map_size_type;
-   static object_data s_data;
-
-   //
-   // see if the object is already in the cache:
-   //
-   map_iterator mpos = s_data.index.find(k);
-   if(mpos != s_data.index.end())
-   {
-      //
-      // Eureka! 
-      // We have a cached item, bump it up the list and return it:
-      //
-      if(--(s_data.cont.end()) != mpos->second)
-      {
-         // splice out the item we want to move:
-         list_type temp;
-         temp.splice(temp.end(), s_data.cont, mpos->second);
-         // and now place it at the end of the list:
-         s_data.cont.splice(s_data.cont.end(), temp, temp.begin());
-         NDNBOOST_ASSERT(*(s_data.cont.back().second) == k);
-         // update index with new position:
-         mpos->second = --(s_data.cont.end());
-         NDNBOOST_ASSERT(&(mpos->first) == mpos->second->second);
-         NDNBOOST_ASSERT(&(mpos->first) == s_data.cont.back().second);
-      }
-      return s_data.cont.back().first;
-   }
-   //
-   // if we get here then the item is not in the cache,
-   // so create it:
-   //
-   ndnboost::shared_ptr<Object const> result(new Object(k));
-   //
-   // Add it to the list, and index it:
-   //
-   s_data.cont.push_back(value_type(result, static_cast<Key const*>(0)));
-   s_data.index.insert(std::make_pair(k, --(s_data.cont.end())));
-   s_data.cont.back().second = &(s_data.index.find(k)->first);
-   map_size_type s = s_data.index.size();
-   NDNBOOST_ASSERT(s_data.index[k]->first.get() == result.get());
-   NDNBOOST_ASSERT(&(s_data.index.find(k)->first) == s_data.cont.back().second);
-   NDNBOOST_ASSERT(s_data.index.find(k)->first == k);
-   if(s > l_max_cache_size)
-   {
-      //
-      // We have too many items in the list, so we need to start
-      // popping them off the back of the list, but only if they're
-      // being held uniquely by us:
-      //
-      list_iterator pos = s_data.cont.begin();
-      list_iterator last = s_data.cont.end();
-      while((pos != last) && (s > l_max_cache_size))
-      {
-         if(pos->first.unique())
-         {
-            list_iterator condemmed(pos);
-            ++pos;
-            // now remove the items from our containers, 
-            // then order has to be as follows:
-            NDNBOOST_ASSERT(s_data.index.find(*(condemmed->second)) != s_data.index.end());
-            s_data.index.erase(*(condemmed->second));
-            s_data.cont.erase(condemmed); 
-            --s;
-         }
-         else
-            ++pos;
-      }
-      NDNBOOST_ASSERT(s_data.index[k]->first.get() == result.get());
-      NDNBOOST_ASSERT(&(s_data.index.find(k)->first) == s_data.cont.back().second);
-      NDNBOOST_ASSERT(s_data.index.find(k)->first == k);
-   }
-   return result;
-}
-
-}
-
-#endif
diff --git a/include/ndnboost/regex/pending/static_mutex.hpp b/include/ndnboost/regex/pending/static_mutex.hpp
deleted file mode 100644
index c7d2659..0000000
--- a/include/ndnboost/regex/pending/static_mutex.hpp
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         static_mutex.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares static_mutex lock type, there are three different
-  *                implementations: POSIX pthreads, WIN32 threads, and portable,
-  *                these are described in more detail below.
-  */
-
-#ifndef NDNBOOST_REGEX_STATIC_MUTEX_HPP
-#define NDNBOOST_REGEX_STATIC_MUTEX_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/regex/config.hpp> // dll import/export options.
-
-#ifdef NDNBOOST_HAS_PTHREADS
-#include <pthread.h>
-#endif
-
-#if defined(NDNBOOST_HAS_PTHREADS) && defined(PTHREAD_MUTEX_INITIALIZER)
-//
-// pthreads version:
-// simple wrap around a pthread_mutex_t initialized with
-// PTHREAD_MUTEX_INITIALIZER.
-//
-namespace ndnboost{
-
-class static_mutex;
-
-#define NDNBOOST_STATIC_MUTEX_INIT { PTHREAD_MUTEX_INITIALIZER, }
-
-class NDNBOOST_REGEX_DECL scoped_static_mutex_lock
-{
-public:
-   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);
-   ~scoped_static_mutex_lock();
-   inline bool locked()const
-   {
-      return m_have_lock;
-   }
-   inline operator void const*()const
-   {
-      return locked() ? this : 0;
-   }
-   void lock();
-   void unlock();
-private:
-   static_mutex& m_mutex;
-   bool m_have_lock;
-};
-
-class static_mutex
-{
-public:
-   typedef scoped_static_mutex_lock scoped_lock;
-   pthread_mutex_t m_mutex;
-};
-
-} // namespace ndnboost
-#elif defined(NDNBOOST_HAS_WINTHREADS)
-//
-// Win32 version:
-// Use a 32-bit int as a lock, along with a test-and-set
-// implementation using InterlockedCompareExchange.
-//
-
-#include <ndnboost/cstdint.hpp>
-
-namespace ndnboost{
-
-class NDNBOOST_REGEX_DECL scoped_static_mutex_lock;
-
-class static_mutex
-{
-public:
-   typedef scoped_static_mutex_lock scoped_lock;
-   ndnboost::int32_t m_mutex;
-};
-
-#define NDNBOOST_STATIC_MUTEX_INIT { 0, }
-
-class NDNBOOST_REGEX_DECL scoped_static_mutex_lock
-{
-public:
-   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);
-   ~scoped_static_mutex_lock();
-   operator void const*()const
-   {
-      return locked() ? this : 0;
-   }
-   bool locked()const
-   {
-      return m_have_lock;
-   }
-   void lock();
-   void unlock();
-private:
-   static_mutex& m_mutex;
-   bool m_have_lock;
-   scoped_static_mutex_lock(const scoped_static_mutex_lock&);
-   scoped_static_mutex_lock& operator=(const scoped_static_mutex_lock&);
-};
-
-} // namespace
-
-#else
-//
-// Portable version of a static mutex based on Boost.Thread library:
-// This has to use a single mutex shared by all instances of static_mutex
-// because ndnboost::call_once doesn't alow us to pass instance information
-// down to the initialisation proceedure.  In fact the initialisation routine
-// may need to be called more than once - but only once per instance.
-//
-// Since this preprocessor path is almost never taken, we hide these header
-// dependencies so that build tools don't find them.
-//
-#define B1 <ndnboost/thread/once.hpp>
-#define B2 <ndnboost/thread/recursive_mutex.hpp>
-#include B1
-#include B2
-#undef B1
-#undef B2
-
-namespace ndnboost{
-
-class NDNBOOST_REGEX_DECL scoped_static_mutex_lock;
-extern "C" NDNBOOST_REGEX_DECL void ndnboost_regex_free_static_mutex();
-
-class NDNBOOST_REGEX_DECL static_mutex
-{
-public:
-   typedef scoped_static_mutex_lock scoped_lock;
-   static void init();
-   static ndnboost::recursive_mutex* m_pmutex;
-   static ndnboost::once_flag m_once;
-};
-
-#define NDNBOOST_STATIC_MUTEX_INIT {  }
-
-class NDNBOOST_REGEX_DECL scoped_static_mutex_lock
-{
-public:
-   scoped_static_mutex_lock(static_mutex& mut, bool lk = true);
-   ~scoped_static_mutex_lock();
-   operator void const*()const;
-   bool locked()const;
-   void lock();
-   void unlock();
-private:
-   ndnboost::recursive_mutex::scoped_lock* m_plock;
-   bool m_have_lock;
-};
-
-inline scoped_static_mutex_lock::operator void const*()const
-{
-   return locked() ? this : 0;
-}
-
-inline bool scoped_static_mutex_lock::locked()const
-{
-   return m_have_lock;
-}
-
-} // namespace
-
-#endif
-
-#endif
diff --git a/include/ndnboost/regex/pending/unicode_iterator.hpp b/include/ndnboost/regex/pending/unicode_iterator.hpp
deleted file mode 100644
index d66d3b9..0000000
--- a/include/ndnboost/regex/pending/unicode_iterator.hpp
+++ /dev/null
@@ -1,776 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         unicode_iterator.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Iterator adapters for converting between different Unicode encodings.
-  */
-
-/****************************************************************************
-
-Contents:
-~~~~~~~~~
-
-1) Read Only, Input Adapters:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-template <class BaseIterator, class U8Type = ::ndnboost::uint8_t>
-class u32_to_u8_iterator;
-
-Adapts sequence of UTF-32 code points to "look like" a sequence of UTF-8.
-
-template <class BaseIterator, class U32Type = ::ndnboost::uint32_t>
-class u8_to_u32_iterator;
-
-Adapts sequence of UTF-8 code points to "look like" a sequence of UTF-32.
-
-template <class BaseIterator, class U16Type = ::ndnboost::uint16_t>
-class u32_to_u16_iterator;
-
-Adapts sequence of UTF-32 code points to "look like" a sequence of UTF-16.
-
-template <class BaseIterator, class U32Type = ::ndnboost::uint32_t>
-class u16_to_u32_iterator;
-
-Adapts sequence of UTF-16 code points to "look like" a sequence of UTF-32.
-
-2) Single pass output iterator adapters:
-
-template <class BaseIterator>
-class utf8_output_iterator;
-
-Accepts UTF-32 code points and forwards them on as UTF-8 code points.
-
-template <class BaseIterator>
-class utf16_output_iterator;
-
-Accepts UTF-32 code points and forwards them on as UTF-16 code points.
-
-****************************************************************************/
-
-#ifndef NDNBOOST_REGEX_UNICODE_ITERATOR_HPP
-#define NDNBOOST_REGEX_UNICODE_ITERATOR_HPP
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/iterator/iterator_facade.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <stdexcept>
-#ifndef NDNBOOST_NO_STD_LOCALE
-#include <sstream>
-#include <ios>
-#endif
-#include <limits.h> // CHAR_BIT
-
-namespace ndnboost{
-
-namespace detail{
-
-static const ::ndnboost::uint16_t high_surrogate_base = 0xD7C0u;
-static const ::ndnboost::uint16_t low_surrogate_base = 0xDC00u;
-static const ::ndnboost::uint32_t ten_bit_mask = 0x3FFu;
-
-inline bool is_high_surrogate(::ndnboost::uint16_t v)
-{
-   return (v & 0xFFFFFC00u) == 0xd800u;
-}
-inline bool is_low_surrogate(::ndnboost::uint16_t v)
-{
-   return (v & 0xFFFFFC00u) == 0xdc00u;
-}
-template <class T>
-inline bool is_surrogate(T v)
-{
-   return (v & 0xFFFFF800u) == 0xd800;
-}
-
-inline unsigned utf8_byte_count(ndnboost::uint8_t c)
-{
-   // if the most significant bit with a zero in it is in position
-   // 8-N then there are N bytes in this UTF-8 sequence:
-   ndnboost::uint8_t mask = 0x80u;
-   unsigned result = 0;
-   while(c & mask)
-   {
-      ++result;
-      mask >>= 1;
-   }
-   return (result == 0) ? 1 : ((result > 4) ? 4 : result);
-}
-
-inline unsigned utf8_trailing_byte_count(ndnboost::uint8_t c)
-{
-   return utf8_byte_count(c) - 1;
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4100)
-#endif
-inline void invalid_utf32_code_point(::ndnboost::uint32_t val)
-{
-#ifndef NDNBOOST_NO_STD_LOCALE
-   std::stringstream ss;
-   ss << "Invalid UTF-32 code point U+" << std::showbase << std::hex << val << " encountered while trying to encode UTF-16 sequence";
-   std::out_of_range e(ss.str());
-#else
-   std::out_of_range e("Invalid UTF-32 code point encountered while trying to encode UTF-16 sequence");
-#endif
-   ndnboost::throw_exception(e);
-}
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-
-} // namespace detail
-
-template <class BaseIterator, class U16Type = ::ndnboost::uint16_t>
-class u32_to_u16_iterator
-   : public ndnboost::iterator_facade<u32_to_u16_iterator<BaseIterator, U16Type>, U16Type, std::bidirectional_iterator_tag, const U16Type>
-{
-   typedef ndnboost::iterator_facade<u32_to_u16_iterator<BaseIterator, U16Type>, U16Type, std::bidirectional_iterator_tag, const U16Type> base_type;
-
-#if !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS) && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;
-
-   NDNBOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 32);
-   NDNBOOST_STATIC_ASSERT(sizeof(U16Type)*CHAR_BIT == 16);
-#endif
-
-public:
-   typename base_type::reference
-      dereference()const
-   {
-      if(m_current == 2)
-         extract_current();
-      return m_values[m_current];
-   }
-   bool equal(const u32_to_u16_iterator& that)const
-   {
-      if(m_position == that.m_position)
-      {
-         // Both m_currents must be equal, or both even
-         // this is the same as saying their sum must be even:
-         return (m_current + that.m_current) & 1u ? false : true;
-      }
-      return false;
-   }
-   void increment()
-   {
-      // if we have a pending read then read now, so that we know whether
-      // to skip a position, or move to a low-surrogate:
-      if(m_current == 2)
-      {
-         // pending read:
-         extract_current();
-      }
-      // move to the next surrogate position:
-      ++m_current;
-      // if we've reached the end skip a position:
-      if(m_values[m_current] == 0)
-      {
-         m_current = 2;
-         ++m_position;
-      }
-   }
-   void decrement()
-   {
-      if(m_current != 1)
-      {
-         // decrementing an iterator always leads to a valid position:
-         --m_position;
-         extract_current();
-         m_current = m_values[1] ? 1 : 0;
-      }
-      else
-      {
-         m_current = 0;
-      }
-   }
-   BaseIterator base()const
-   {
-      return m_position;
-   }
-   // construct:
-   u32_to_u16_iterator() : m_position(), m_current(0)
-   {
-      m_values[0] = 0;
-      m_values[1] = 0;
-      m_values[2] = 0;
-   }
-   u32_to_u16_iterator(BaseIterator b) : m_position(b), m_current(2)
-   {
-      m_values[0] = 0;
-      m_values[1] = 0;
-      m_values[2] = 0;
-   }
-private:
-
-   void extract_current()const
-   {
-      // begin by checking for a code point out of range:
-      ::ndnboost::uint32_t v = *m_position;
-      if(v >= 0x10000u)
-      {
-         if(v > 0x10FFFFu)
-            detail::invalid_utf32_code_point(*m_position);
-         // split into two surrogates:
-         m_values[0] = static_cast<U16Type>(v >> 10) + detail::high_surrogate_base;
-         m_values[1] = static_cast<U16Type>(v & detail::ten_bit_mask) + detail::low_surrogate_base;
-         m_current = 0;
-         NDNBOOST_ASSERT(detail::is_high_surrogate(m_values[0]));
-         NDNBOOST_ASSERT(detail::is_low_surrogate(m_values[1]));
-      }
-      else
-      {
-         // 16-bit code point:
-         m_values[0] = static_cast<U16Type>(*m_position);
-         m_values[1] = 0;
-         m_current = 0;
-         // value must not be a surrogate:
-         if(detail::is_surrogate(m_values[0]))
-            detail::invalid_utf32_code_point(*m_position);
-      }
-   }
-   BaseIterator m_position;
-   mutable U16Type m_values[3];
-   mutable unsigned m_current;
-};
-
-template <class BaseIterator, class U32Type = ::ndnboost::uint32_t>
-class u16_to_u32_iterator
-   : public ndnboost::iterator_facade<u16_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type>
-{
-   typedef ndnboost::iterator_facade<u16_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type> base_type;
-   // special values for pending iterator reads:
-   NDNBOOST_STATIC_CONSTANT(U32Type, pending_read = 0xffffffffu);
-
-#if !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS) && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;
-
-   NDNBOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 16);
-   NDNBOOST_STATIC_ASSERT(sizeof(U32Type)*CHAR_BIT == 32);
-#endif
-
-public:
-   typename base_type::reference
-      dereference()const
-   {
-      if(m_value == pending_read)
-         extract_current();
-      return m_value;
-   }
-   bool equal(const u16_to_u32_iterator& that)const
-   {
-      return m_position == that.m_position;
-   }
-   void increment()
-   {
-      // skip high surrogate first if there is one:
-      if(detail::is_high_surrogate(*m_position)) ++m_position;
-      ++m_position;
-      m_value = pending_read;
-   }
-   void decrement()
-   {
-      --m_position;
-      // if we have a low surrogate then go back one more:
-      if(detail::is_low_surrogate(*m_position)) 
-         --m_position;
-      m_value = pending_read;
-   }
-   BaseIterator base()const
-   {
-      return m_position;
-   }
-   // construct:
-   u16_to_u32_iterator() : m_position()
-   {
-      m_value = pending_read;
-   }
-   u16_to_u32_iterator(BaseIterator b) : m_position(b)
-   {
-      m_value = pending_read;
-   }
-   //
-   // Range checked version:
-   //
-   u16_to_u32_iterator(BaseIterator b, BaseIterator start, BaseIterator end) : m_position(b)
-   {
-      m_value = pending_read;
-      //
-      // The range must not start with a low surrogate, or end in a high surrogate,
-      // otherwise we run the risk of running outside the underlying input range.
-      // Likewise b must not be located at a low surrogate.
-      //
-      ndnboost::uint16_t val;
-      if(start != end)
-      {
-         if((b != start) && (b != end))
-         {
-            val = *b;
-            if(detail::is_surrogate(val) && ((val & 0xFC00u) == 0xDC00u))
-               invalid_code_point(val);
-         }
-         val = *start;
-         if(detail::is_surrogate(val) && ((val & 0xFC00u) == 0xDC00u))
-            invalid_code_point(val);
-         val = *--end;
-         if(detail::is_high_surrogate(val))
-            invalid_code_point(val);
-      }
-   }
-private:
-   static void invalid_code_point(::ndnboost::uint16_t val)
-   {
-#ifndef NDNBOOST_NO_STD_LOCALE
-      std::stringstream ss;
-      ss << "Misplaced UTF-16 surrogate U+" << std::showbase << std::hex << val << " encountered while trying to encode UTF-32 sequence";
-      std::out_of_range e(ss.str());
-#else
-      std::out_of_range e("Misplaced UTF-16 surrogate encountered while trying to encode UTF-32 sequence");
-#endif
-      ndnboost::throw_exception(e);
-   }
-   void extract_current()const
-   {
-      m_value = static_cast<U32Type>(static_cast< ::ndnboost::uint16_t>(*m_position));
-      // if the last value is a high surrogate then adjust m_position and m_value as needed:
-      if(detail::is_high_surrogate(*m_position))
-      {
-         // precondition; next value must have be a low-surrogate:
-         BaseIterator next(m_position);
-         ::ndnboost::uint16_t t = *++next;
-         if((t & 0xFC00u) != 0xDC00u)
-            invalid_code_point(t);
-         m_value = (m_value - detail::high_surrogate_base) << 10;
-         m_value |= (static_cast<U32Type>(static_cast< ::ndnboost::uint16_t>(t)) & detail::ten_bit_mask);
-      }
-      // postcondition; result must not be a surrogate:
-      if(detail::is_surrogate(m_value))
-         invalid_code_point(static_cast< ::ndnboost::uint16_t>(m_value));
-   }
-   BaseIterator m_position;
-   mutable U32Type m_value;
-};
-
-template <class BaseIterator, class U8Type = ::ndnboost::uint8_t>
-class u32_to_u8_iterator
-   : public ndnboost::iterator_facade<u32_to_u8_iterator<BaseIterator, U8Type>, U8Type, std::bidirectional_iterator_tag, const U8Type>
-{
-   typedef ndnboost::iterator_facade<u32_to_u8_iterator<BaseIterator, U8Type>, U8Type, std::bidirectional_iterator_tag, const U8Type> base_type;
-   
-#if !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS) && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;
-
-   NDNBOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 32);
-   NDNBOOST_STATIC_ASSERT(sizeof(U8Type)*CHAR_BIT == 8);
-#endif
-
-public:
-   typename base_type::reference
-      dereference()const
-   {
-      if(m_current == 4)
-         extract_current();
-      return m_values[m_current];
-   }
-   bool equal(const u32_to_u8_iterator& that)const
-   {
-      if(m_position == that.m_position)
-      {
-         // either the m_current's must be equal, or one must be 0 and 
-         // the other 4: which means neither must have bits 1 or 2 set:
-         return (m_current == that.m_current)
-            || (((m_current | that.m_current) & 3) == 0);
-      }
-      return false;
-   }
-   void increment()
-   {
-      // if we have a pending read then read now, so that we know whether
-      // to skip a position, or move to a low-surrogate:
-      if(m_current == 4)
-      {
-         // pending read:
-         extract_current();
-      }
-      // move to the next surrogate position:
-      ++m_current;
-      // if we've reached the end skip a position:
-      if(m_values[m_current] == 0)
-      {
-         m_current = 4;
-         ++m_position;
-      }
-   }
-   void decrement()
-   {
-      if((m_current & 3) == 0)
-      {
-         --m_position;
-         extract_current();
-         m_current = 3;
-         while(m_current && (m_values[m_current] == 0))
-            --m_current;
-      }
-      else
-         --m_current;
-   }
-   BaseIterator base()const
-   {
-      return m_position;
-   }
-   // construct:
-   u32_to_u8_iterator() : m_position(), m_current(0)
-   {
-      m_values[0] = 0;
-      m_values[1] = 0;
-      m_values[2] = 0;
-      m_values[3] = 0;
-      m_values[4] = 0;
-   }
-   u32_to_u8_iterator(BaseIterator b) : m_position(b), m_current(4)
-   {
-      m_values[0] = 0;
-      m_values[1] = 0;
-      m_values[2] = 0;
-      m_values[3] = 0;
-      m_values[4] = 0;
-   }
-private:
-
-   void extract_current()const
-   {
-      ndnboost::uint32_t c = *m_position;
-      if(c > 0x10FFFFu)
-         detail::invalid_utf32_code_point(c);
-      if(c < 0x80u)
-      {
-         m_values[0] = static_cast<unsigned char>(c);
-         m_values[1] = static_cast<unsigned char>(0u);
-         m_values[2] = static_cast<unsigned char>(0u);
-         m_values[3] = static_cast<unsigned char>(0u);
-      }
-      else if(c < 0x800u)
-      {
-         m_values[0] = static_cast<unsigned char>(0xC0u + (c >> 6));
-         m_values[1] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
-         m_values[2] = static_cast<unsigned char>(0u);
-         m_values[3] = static_cast<unsigned char>(0u);
-      }
-      else if(c < 0x10000u)
-      {
-         m_values[0] = static_cast<unsigned char>(0xE0u + (c >> 12));
-         m_values[1] = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));
-         m_values[2] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
-         m_values[3] = static_cast<unsigned char>(0u);
-      }
-      else
-      {
-         m_values[0] = static_cast<unsigned char>(0xF0u + (c >> 18));
-         m_values[1] = static_cast<unsigned char>(0x80u + ((c >> 12) & 0x3Fu));
-         m_values[2] = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));
-         m_values[3] = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
-      }
-      m_current= 0;
-   }
-   BaseIterator m_position;
-   mutable U8Type m_values[5];
-   mutable unsigned m_current;
-};
-
-template <class BaseIterator, class U32Type = ::ndnboost::uint32_t>
-class u8_to_u32_iterator
-   : public ndnboost::iterator_facade<u8_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type>
-{
-   typedef ndnboost::iterator_facade<u8_to_u32_iterator<BaseIterator, U32Type>, U32Type, std::bidirectional_iterator_tag, const U32Type> base_type;
-   // special values for pending iterator reads:
-   NDNBOOST_STATIC_CONSTANT(U32Type, pending_read = 0xffffffffu);
-
-#if !defined(NDNBOOST_NO_STD_ITERATOR_TRAITS) && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-   typedef typename std::iterator_traits<BaseIterator>::value_type base_value_type;
-
-   NDNBOOST_STATIC_ASSERT(sizeof(base_value_type)*CHAR_BIT == 8);
-   NDNBOOST_STATIC_ASSERT(sizeof(U32Type)*CHAR_BIT == 32);
-#endif
-
-public:
-   typename base_type::reference
-      dereference()const
-   {
-      if(m_value == pending_read)
-         extract_current();
-      return m_value;
-   }
-   bool equal(const u8_to_u32_iterator& that)const
-   {
-      return m_position == that.m_position;
-   }
-   void increment()
-   {
-      // We must not start with a continuation character:
-      if((static_cast<ndnboost::uint8_t>(*m_position) & 0xC0) == 0x80)
-         invalid_sequence();
-      // skip high surrogate first if there is one:
-      unsigned c = detail::utf8_byte_count(*m_position);
-      if(m_value == pending_read)
-      {
-         // Since we haven't read in a value, we need to validate the code points:
-         for(unsigned i = 0; i < c; ++i)
-         {
-            ++m_position;
-            // We must have a continuation byte:
-            if((i != c - 1) && ((static_cast<ndnboost::uint8_t>(*m_position) & 0xC0) != 0x80))
-               invalid_sequence();
-         }
-      }
-      else
-      {
-         std::advance(m_position, c);
-      }
-      m_value = pending_read;
-   }
-   void decrement()
-   {
-      // Keep backtracking until we don't have a trailing character:
-      unsigned count = 0;
-      while((*--m_position & 0xC0u) == 0x80u) ++count;
-      // now check that the sequence was valid:
-      if(count != detail::utf8_trailing_byte_count(*m_position))
-         invalid_sequence();
-      m_value = pending_read;
-   }
-   BaseIterator base()const
-   {
-      return m_position;
-   }
-   // construct:
-   u8_to_u32_iterator() : m_position()
-   {
-      m_value = pending_read;
-   }
-   u8_to_u32_iterator(BaseIterator b) : m_position(b)
-   {
-      m_value = pending_read;
-   }
-   //
-   // Checked constructor:
-   //
-   u8_to_u32_iterator(BaseIterator b, BaseIterator start, BaseIterator end) : m_position(b)
-   {
-      m_value = pending_read;
-      //
-      // We must not start with a continuation character, or end with a 
-      // truncated UTF-8 sequence otherwise we run the risk of going past
-      // the start/end of the underlying sequence:
-      //
-      if(start != end)
-      {
-         unsigned char v = *start;
-         if((v & 0xC0u) == 0x80u)
-            invalid_sequence();
-         if((b != start) && (b != end) && ((*b & 0xC0u) == 0x80u))
-            invalid_sequence();
-         BaseIterator pos = end;
-         do
-         {
-            v = *--pos;
-         }
-         while((start != pos) && ((v & 0xC0u) == 0x80u));
-         std::ptrdiff_t extra = detail::utf8_byte_count(v);
-         if(std::distance(pos, end) < extra)
-            invalid_sequence();
-      }
-   }
-private:
-   static void invalid_sequence()
-   {
-      std::out_of_range e("Invalid UTF-8 sequence encountered while trying to encode UTF-32 character");
-      ndnboost::throw_exception(e);
-   }
-   void extract_current()const
-   {
-      m_value = static_cast<U32Type>(static_cast< ::ndnboost::uint8_t>(*m_position));
-      // we must not have a continuation character:
-      if((m_value & 0xC0u) == 0x80u)
-         invalid_sequence();
-      // see how many extra bytes we have:
-      unsigned extra = detail::utf8_trailing_byte_count(*m_position);
-      // extract the extra bits, 6 from each extra byte:
-      BaseIterator next(m_position);
-      for(unsigned c = 0; c < extra; ++c)
-      {
-         ++next;
-         m_value <<= 6;
-         // We must have a continuation byte:
-         if((static_cast<ndnboost::uint8_t>(*next) & 0xC0) != 0x80)
-            invalid_sequence();
-         m_value += static_cast<ndnboost::uint8_t>(*next) & 0x3Fu;
-      }
-      // we now need to remove a few of the leftmost bits, but how many depends
-      // upon how many extra bytes we've extracted:
-      static const ndnboost::uint32_t masks[4] = 
-      {
-         0x7Fu,
-         0x7FFu,
-         0xFFFFu,
-         0x1FFFFFu,
-      };
-      m_value &= masks[extra];
-      // check the result:
-      if(m_value > static_cast<U32Type>(0x10FFFFu))
-         invalid_sequence();
-   }
-   BaseIterator m_position;
-   mutable U32Type m_value;
-};
-
-template <class BaseIterator>
-class utf16_output_iterator
-{
-public:
-   typedef void                                   difference_type;
-   typedef void                                   value_type;
-   typedef ndnboost::uint32_t*                       pointer;
-   typedef ndnboost::uint32_t&                       reference;
-   typedef std::output_iterator_tag               iterator_category;
-
-   utf16_output_iterator(const BaseIterator& b)
-      : m_position(b){}
-   utf16_output_iterator(const utf16_output_iterator& that)
-      : m_position(that.m_position){}
-   utf16_output_iterator& operator=(const utf16_output_iterator& that)
-   {
-      m_position = that.m_position;
-      return *this;
-   }
-   const utf16_output_iterator& operator*()const
-   {
-      return *this;
-   }
-   void operator=(ndnboost::uint32_t val)const
-   {
-      push(val);
-   }
-   utf16_output_iterator& operator++()
-   {
-      return *this;
-   }
-   utf16_output_iterator& operator++(int)
-   {
-      return *this;
-   }
-   BaseIterator base()const
-   {
-      return m_position;
-   }
-private:
-   void push(ndnboost::uint32_t v)const
-   {
-      if(v >= 0x10000u)
-      {
-         // begin by checking for a code point out of range:
-         if(v > 0x10FFFFu)
-            detail::invalid_utf32_code_point(v);
-         // split into two surrogates:
-         *m_position++ = static_cast<ndnboost::uint16_t>(v >> 10) + detail::high_surrogate_base;
-         *m_position++ = static_cast<ndnboost::uint16_t>(v & detail::ten_bit_mask) + detail::low_surrogate_base;
-      }
-      else
-      {
-         // 16-bit code point:
-         // value must not be a surrogate:
-         if(detail::is_surrogate(v))
-            detail::invalid_utf32_code_point(v);
-         *m_position++ = static_cast<ndnboost::uint16_t>(v);
-      }
-   }
-   mutable BaseIterator m_position;
-};
-
-template <class BaseIterator>
-class utf8_output_iterator
-{
-public:
-   typedef void                                   difference_type;
-   typedef void                                   value_type;
-   typedef ndnboost::uint32_t*                       pointer;
-   typedef ndnboost::uint32_t&                       reference;
-   typedef std::output_iterator_tag               iterator_category;
-
-   utf8_output_iterator(const BaseIterator& b)
-      : m_position(b){}
-   utf8_output_iterator(const utf8_output_iterator& that)
-      : m_position(that.m_position){}
-   utf8_output_iterator& operator=(const utf8_output_iterator& that)
-   {
-      m_position = that.m_position;
-      return *this;
-   }
-   const utf8_output_iterator& operator*()const
-   {
-      return *this;
-   }
-   void operator=(ndnboost::uint32_t val)const
-   {
-      push(val);
-   }
-   utf8_output_iterator& operator++()
-   {
-      return *this;
-   }
-   utf8_output_iterator& operator++(int)
-   {
-      return *this;
-   }
-   BaseIterator base()const
-   {
-      return m_position;
-   }
-private:
-   void push(ndnboost::uint32_t c)const
-   {
-      if(c > 0x10FFFFu)
-         detail::invalid_utf32_code_point(c);
-      if(c < 0x80u)
-      {
-         *m_position++ = static_cast<unsigned char>(c);
-      }
-      else if(c < 0x800u)
-      {
-         *m_position++ = static_cast<unsigned char>(0xC0u + (c >> 6));
-         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
-      }
-      else if(c < 0x10000u)
-      {
-         *m_position++ = static_cast<unsigned char>(0xE0u + (c >> 12));
-         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));
-         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
-      }
-      else
-      {
-         *m_position++ = static_cast<unsigned char>(0xF0u + (c >> 18));
-         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 12) & 0x3Fu));
-         *m_position++ = static_cast<unsigned char>(0x80u + ((c >> 6) & 0x3Fu));
-         *m_position++ = static_cast<unsigned char>(0x80u + (c & 0x3Fu));
-      }
-   }
-   mutable BaseIterator m_position;
-};
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_REGEX_UNICODE_ITERATOR_HPP
-
diff --git a/include/ndnboost/regex/regex_traits.hpp b/include/ndnboost/regex/regex_traits.hpp
deleted file mode 100644
index 2fdb874..0000000
--- a/include/ndnboost/regex/regex_traits.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_traits.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares regular expression traits classes.
-  */
-
-#ifndef NDNBOOST_REGEX_TRAITS_HPP
-#define NDNBOOST_REGEX_TRAITS_HPP
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#  include <ndnboost/regex/config.hpp>
-#endif
-
-#  ifndef NDNBOOST_REGEX_TRAITS_HPP_INCLUDED
-#     include <ndnboost/regex/v4/regex_traits.hpp>
-#  endif
-
-#endif // include
-
-
-
-
-
diff --git a/include/ndnboost/regex/user.hpp b/include/ndnboost/regex/user.hpp
deleted file mode 100644
index f151fc1..0000000
--- a/include/ndnboost/regex/user.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         user.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: User settable options.
-  */
-
-// define if you want the regex library to use the C locale
-// even on Win32:
-// #define NDNBOOST_REGEX_USE_C_LOCALE
-
-// define this is you want the regex library to use the C++
-// locale:
-// #define NDNBOOST_REGEX_USE_CPP_LOCALE
-
-// define this if the runtime library is a dll, and you
-// want NDNBOOST_REGEX_DYN_LINK to set up dll exports/imports
-// with __declspec(dllexport)/__declspec(dllimport.)
-// #define NDNBOOST_REGEX_HAS_DLL_RUNTIME
-
-// define this if you want to dynamically link to regex,
-// if the runtime library is also a dll (Probably Win32 specific,
-// and has no effect unless NDNBOOST_REGEX_HAS_DLL_RUNTIME is set):
-// #define NDNBOOST_REGEX_DYN_LINK
-
-// define this if you don't want the lib to automatically
-// select its link libraries:
-// #define NDNBOOST_REGEX_NO_LIB
-
-// define this if templates with switch statements cause problems:
-// #define NDNBOOST_REGEX_NO_TEMPLATE_SWITCH_MERGE
- 
-// define this to disable Win32 support when available:
-// #define NDNBOOST_REGEX_NO_W32
-
-// define this if bool is not a real type:
-// #define NDNBOOST_REGEX_NO_BOOL
-
-// define this if no template instances are to be placed in
-// the library rather than users object files:
-// #define NDNBOOST_REGEX_NO_EXTERNAL_TEMPLATES
-
-// define this if the forward declarations in regex_fwd.hpp
-// cause more problems than they are worth:
-// #define NDNBOOST_REGEX_NO_FWD
-
-// define this if your compiler supports MS Windows structured
-// exception handling.
-// #define NDNBOOST_REGEX_HAS_MS_STACK_GUARD
-
-// define this if you want to use the recursive algorithm
-// even if NDNBOOST_REGEX_HAS_MS_STACK_GUARD is not defined.
-// #define NDNBOOST_REGEX_RECURSIVE
-
-// define this if you want to use the non-recursive
-// algorithm, even if the recursive version would be the default.
-// #define NDNBOOST_REGEX_NON_RECURSIVE
-
-// define this if you want to set the size of the memory blocks
-// used by the non-recursive algorithm.
-// #define NDNBOOST_REGEX_BLOCKSIZE 4096
-
-// define this if you want to set the maximum number of memory blocks
-// used by the non-recursive algorithm.
-// #define NDNBOOST_REGEX_MAX_BLOCKS 1024
-
-// define this if you want to set the maximum number of memory blocks
-// cached by the non-recursive algorithm: Normally this is 16, but can be 
-// higher if you have multiple threads all using boost.regex, or lower 
-// if you don't want boost.regex to cache memory.
-// #define NDNBOOST_REGEX_MAX_CACHE_BLOCKS 16
-
-// define this if you want to be able to access extended capture
-// information in your sub_match's (caution this will slow things
-// down quite a bit).
-// #define NDNBOOST_REGEX_MATCH_EXTRA
-
-// define this if you want to enable support for Unicode via ICU.
-// #define NDNBOOST_HAS_ICU
-
-// define this if you want regex to use __cdecl calling convensions, even when __fastcall is available:
-// #define NDNBOOST_REGEX_NO_FASTCALL
diff --git a/include/ndnboost/regex/v4/basic_regex.hpp b/include/ndnboost/regex/v4/basic_regex.hpp
deleted file mode 100644
index 9fe4ea7..0000000
--- a/include/ndnboost/regex/v4/basic_regex.hpp
+++ /dev/null
@@ -1,782 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2004 John Maddock
- * Copyright 2011 Garmin Ltd. or its subsidiaries
- *
- * 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org/ for most recent version.
-  *   FILE         basic_regex.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares template class basic_regex.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_BASIC_REGEX_HPP
-#define NDNBOOST_REGEX_V4_BASIC_REGEX_HPP
-
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/functional/hash.hpp>
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable : 4251 4231 4800)
-#if NDNBOOST_MSVC < 1600
-#pragma warning(disable : 4660)
-#endif
-#endif
-
-namespace re_detail{
-
-//
-// forward declaration, we will need this one later:
-//
-template <class charT, class traits>
-class basic_regex_parser;
-
-template <class I>
-void bubble_down_one(I first, I last)
-{
-   if(first != last)
-   {
-      I next = last - 1;
-      while((next != first) && (*next < *(next-1)))
-      {
-         (next-1)->swap(*next);
-         --next;
-      }
-   }
-}
-
-template <class Iterator>
-inline int hash_value_from_capture_name(Iterator i, Iterator j)
-{
-   std::size_t r = ndnboost::hash_range(i, j);
-   r %= ((std::numeric_limits<int>::max)() - 10001);
-   r += 10000;
-   return static_cast<int>(r);
-}
-
-class named_subexpressions
-{
-public:
-   struct name
-   {
-      template <class charT>
-      name(const charT* i, const charT* j, int idx)
-         : index(idx) 
-      { 
-         hash = hash_value_from_capture_name(i, j); 
-      }
-      name(int h, int idx)
-         : index(idx), hash(h)
-      { 
-      }
-      int index;
-      int hash;
-      bool operator < (const name& other)const
-      {
-         return hash < other.hash;
-      }
-      bool operator == (const name& other)const
-      {
-         return hash == other.hash; 
-      }
-      void swap(name& other)
-      {
-         std::swap(index, other.index);
-         std::swap(hash, other.hash);
-      }
-   };
-
-   typedef std::vector<name>::const_iterator const_iterator;
-   typedef std::pair<const_iterator, const_iterator> range_type;
-
-   named_subexpressions(){}
-
-   template <class charT>
-   void set_name(const charT* i, const charT* j, int index)
-   {
-      m_sub_names.push_back(name(i, j, index));
-      bubble_down_one(m_sub_names.begin(), m_sub_names.end());
-   }
-   template <class charT>
-   int get_id(const charT* i, const charT* j)const
-   {
-      name t(i, j, 0);
-      typename std::vector<name>::const_iterator pos = std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
-      if((pos != m_sub_names.end()) && (*pos == t))
-      {
-         return pos->index;
-      }
-      return -1;
-   }
-   template <class charT>
-   range_type equal_range(const charT* i, const charT* j)const
-   {
-      name t(i, j, 0);
-      return std::equal_range(m_sub_names.begin(), m_sub_names.end(), t);
-   }
-   int get_id(int h)const
-   {
-      name t(h, 0);
-      std::vector<name>::const_iterator pos = std::lower_bound(m_sub_names.begin(), m_sub_names.end(), t);
-      if((pos != m_sub_names.end()) && (*pos == t))
-      {
-         return pos->index;
-      }
-      return -1;
-   }
-   range_type equal_range(int h)const
-   {
-      name t(h, 0);
-      return std::equal_range(m_sub_names.begin(), m_sub_names.end(), t);
-   }
-private:
-   std::vector<name> m_sub_names;
-};
-
-//
-// class regex_data:
-// represents the data we wish to expose to the matching algorithms.
-//
-template <class charT, class traits>
-struct regex_data : public named_subexpressions
-{
-   typedef regex_constants::syntax_option_type   flag_type;
-   typedef std::size_t                           size_type;  
-
-   regex_data(const ::ndnboost::shared_ptr<
-      ::ndnboost::regex_traits_wrapper<traits> >& t) 
-      : m_ptraits(t), m_expression(0), m_expression_len(0) {}
-   regex_data() 
-      : m_ptraits(new ::ndnboost::regex_traits_wrapper<traits>()), m_expression(0), m_expression_len(0) {}
-
-   ::ndnboost::shared_ptr<
-      ::ndnboost::regex_traits_wrapper<traits>
-      >                        m_ptraits;                 // traits class instance
-   flag_type                   m_flags;                   // flags with which we were compiled
-   int                         m_status;                  // error code (0 implies OK).
-   const charT*                m_expression;              // the original expression
-   std::ptrdiff_t              m_expression_len;          // the length of the original expression
-   size_type                   m_mark_count;              // the number of marked sub-expressions
-   re_detail::re_syntax_base*  m_first_state;             // the first state of the machine
-   unsigned                    m_restart_type;            // search optimisation type
-   unsigned char               m_startmap[1 << CHAR_BIT]; // which characters can start a match
-   unsigned int                m_can_be_null;             // whether we can match a null string
-   re_detail::raw_storage      m_data;                    // the buffer in which our states are constructed
-   typename traits::char_class_type    m_word_mask;       // mask used to determine if a character is a word character
-   std::vector<
-      std::pair<
-      std::size_t, std::size_t> > m_subs;                 // Position of sub-expressions within the *string*.
-   bool                        m_has_recursions;          // whether we have recursive expressions;
-};
-//
-// class basic_regex_implementation
-// pimpl implementation class for basic_regex.
-//
-template <class charT, class traits>
-class basic_regex_implementation
-   : public regex_data<charT, traits>
-{
-public:
-   typedef regex_constants::syntax_option_type   flag_type;
-   typedef std::ptrdiff_t                        difference_type;
-   typedef std::size_t                           size_type; 
-   typedef typename traits::locale_type          locale_type;
-   typedef const charT*                          const_iterator;
-
-   basic_regex_implementation(){}
-   basic_regex_implementation(const ::ndnboost::shared_ptr<
-      ::ndnboost::regex_traits_wrapper<traits> >& t)
-      : regex_data<charT, traits>(t) {}
-   void assign(const charT* arg_first,
-                          const charT* arg_last,
-                          flag_type f)
-   {
-      regex_data<charT, traits>* pdat = this;
-      basic_regex_parser<charT, traits> parser(pdat);
-      parser.parse(arg_first, arg_last, f);
-   }
-
-   locale_type NDNBOOST_REGEX_CALL imbue(locale_type l)
-   { 
-      return this->m_ptraits->imbue(l); 
-   }
-   locale_type NDNBOOST_REGEX_CALL getloc()const
-   { 
-      return this->m_ptraits->getloc(); 
-   }
-   std::basic_string<charT> NDNBOOST_REGEX_CALL str()const
-   {
-      std::basic_string<charT> result;
-      if(this->m_status == 0)
-         result = std::basic_string<charT>(this->m_expression, this->m_expression_len);
-      return result;
-   }
-   const_iterator NDNBOOST_REGEX_CALL expression()const
-   {
-      return this->m_expression;
-   }
-   std::pair<const_iterator, const_iterator> NDNBOOST_REGEX_CALL subexpression(std::size_t n)const
-   {
-      if(n == 0)
-         ndnboost::throw_exception(std::out_of_range("0 is not a valid subexpression index."));
-      const std::pair<std::size_t, std::size_t>& pi = this->m_subs.at(n - 1);
-      std::pair<const_iterator, const_iterator> p(expression() + pi.first, expression() + pi.second);
-      return p;
-   }
-   //
-   // begin, end:
-   const_iterator NDNBOOST_REGEX_CALL begin()const
-   { 
-      return (this->m_status ? 0 : this->m_expression); 
-   }
-   const_iterator NDNBOOST_REGEX_CALL end()const
-   { 
-      return (this->m_status ? 0 : this->m_expression + this->m_expression_len); 
-   }
-   flag_type NDNBOOST_REGEX_CALL flags()const
-   {
-      return this->m_flags;
-   }
-   size_type NDNBOOST_REGEX_CALL size()const
-   {
-      return this->m_expression_len;
-   }
-   int NDNBOOST_REGEX_CALL status()const
-   {
-      return this->m_status;
-   }
-   size_type NDNBOOST_REGEX_CALL mark_count()const
-   {
-      return this->m_mark_count;
-   }
-   const re_detail::re_syntax_base* get_first_state()const
-   {
-      return this->m_first_state;
-   }
-   unsigned get_restart_type()const
-   {
-      return this->m_restart_type;
-   }
-   const unsigned char* get_map()const
-   {
-      return this->m_startmap;
-   }
-   const ::ndnboost::regex_traits_wrapper<traits>& get_traits()const
-   {
-      return *(this->m_ptraits);
-   }
-   bool can_be_null()const
-   {
-      return this->m_can_be_null;
-   }
-   const regex_data<charT, traits>& get_data()const
-   {
-      basic_regex_implementation<charT, traits> const* p = this;
-      return *static_cast<const regex_data<charT, traits>*>(p);
-   }
-};
-
-} // namespace re_detail
-//
-// class basic_regex:
-// represents the compiled
-// regular expression:
-//
-
-#ifdef NDNBOOST_REGEX_NO_FWD
-template <class charT, class traits = regex_traits<charT> >
-#else
-template <class charT, class traits >
-#endif
-class basic_regex : public regbase
-{
-public:
-   // typedefs:
-   typedef std::size_t                           traits_size_type;
-   typedef typename traits::string_type          traits_string_type;
-   typedef charT                                 char_type;
-   typedef traits                                traits_type;
-
-   typedef charT                                 value_type;
-   typedef charT&                                reference;
-   typedef const charT&                          const_reference;
-   typedef const charT*                          const_iterator;
-   typedef const_iterator                        iterator;
-   typedef std::ptrdiff_t                        difference_type;
-   typedef std::size_t                           size_type;   
-   typedef regex_constants::syntax_option_type   flag_type;
-   // locale_type
-   // placeholder for actual locale type used by the
-   // traits class to localise *this.
-   typedef typename traits::locale_type          locale_type;
-   
-public:
-   explicit basic_regex(){}
-   explicit basic_regex(const charT* p, flag_type f = regex_constants::normal)
-   {
-      assign(p, f);
-   }
-   basic_regex(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
-   {
-      assign(p1, p2, f);
-   }
-   basic_regex(const charT* p, size_type len, flag_type f)
-   {
-      assign(p, len, f);
-   }
-   basic_regex(const basic_regex& that)
-      : m_pimpl(that.m_pimpl) {}
-   ~basic_regex(){}
-   basic_regex& NDNBOOST_REGEX_CALL operator=(const basic_regex& that)
-   {
-      return assign(that);
-   }
-   basic_regex& NDNBOOST_REGEX_CALL operator=(const charT* ptr)
-   {
-      return assign(ptr);
-   }
-
-   //
-   // assign:
-   basic_regex& assign(const basic_regex& that)
-   { 
-      m_pimpl = that.m_pimpl;
-      return *this; 
-   }
-   basic_regex& assign(const charT* p, flag_type f = regex_constants::normal)
-   {
-      return assign(p, p + traits::length(p), f);
-   }
-   basic_regex& assign(const charT* p, size_type len, flag_type f)
-   {
-      return assign(p, p + len, f);
-   }
-private:
-   basic_regex& do_assign(const charT* p1,
-                          const charT* p2,
-                          flag_type f);
-public:
-   basic_regex& assign(const charT* p1,
-                          const charT* p2,
-                          flag_type f = regex_constants::normal)
-   {
-      return do_assign(p1, p2, f);
-   }
-#if !defined(NDNBOOST_NO_MEMBER_TEMPLATES)
-
-   template <class ST, class SA>
-   unsigned int NDNBOOST_REGEX_CALL set_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
-   { 
-      return set_expression(p.data(), p.data() + p.size(), f); 
-   }
-
-   template <class ST, class SA>
-   explicit basic_regex(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
-   { 
-      assign(p, f); 
-   }
-
-   template <class InputIterator>
-   basic_regex(InputIterator arg_first, InputIterator arg_last, flag_type f = regex_constants::normal)
-   {
-      typedef typename traits::string_type seq_type;
-      seq_type a(arg_first, arg_last);
-      if(a.size())
-         assign(static_cast<const charT*>(&*a.begin()), static_cast<const charT*>(&*a.begin() + a.size()), f);
-      else
-         assign(static_cast<const charT*>(0), static_cast<const charT*>(0), f);
-   }
-
-   template <class ST, class SA>
-   basic_regex& NDNBOOST_REGEX_CALL operator=(const std::basic_string<charT, ST, SA>& p)
-   {
-      return assign(p.data(), p.data() + p.size(), regex_constants::normal);
-   }
-
-   template <class string_traits, class A>
-   basic_regex& NDNBOOST_REGEX_CALL assign(
-       const std::basic_string<charT, string_traits, A>& s,
-       flag_type f = regex_constants::normal)
-   {
-      return assign(s.data(), s.data() + s.size(), f);
-   }
-
-   template <class InputIterator>
-   basic_regex& NDNBOOST_REGEX_CALL assign(InputIterator arg_first,
-                          InputIterator arg_last,
-                          flag_type f = regex_constants::normal)
-   {
-      typedef typename traits::string_type seq_type;
-      seq_type a(arg_first, arg_last);
-      if(a.size())
-      {
-         const charT* p1 = &*a.begin();
-         const charT* p2 = &*a.begin() + a.size();
-         return assign(p1, p2, f);
-      }
-      return assign(static_cast<const charT*>(0), static_cast<const charT*>(0), f);
-   }
-#else
-   unsigned int NDNBOOST_REGEX_CALL set_expression(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
-   { 
-      return set_expression(p.data(), p.data() + p.size(), f); 
-   }
-
-   basic_regex(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
-   { 
-      assign(p, f); 
-   }
-
-   basic_regex& NDNBOOST_REGEX_CALL operator=(const std::basic_string<charT>& p)
-   {
-      return assign(p.data(), p.data() + p.size(), regex_constants::normal);
-   }
-
-   basic_regex& NDNBOOST_REGEX_CALL assign(
-       const std::basic_string<charT>& s,
-       flag_type f = regex_constants::normal)
-   {
-      return assign(s.data(), s.data() + s.size(), f);
-   }
-
-#endif
-
-   //
-   // locale:
-   locale_type NDNBOOST_REGEX_CALL imbue(locale_type l);
-   locale_type NDNBOOST_REGEX_CALL getloc()const
-   { 
-      return m_pimpl.get() ? m_pimpl->getloc() : locale_type(); 
-   }
-   //
-   // getflags:
-   // retained for backwards compatibility only, "flags"
-   // is now the preferred name:
-   flag_type NDNBOOST_REGEX_CALL getflags()const
-   { 
-      return flags();
-   }
-   flag_type NDNBOOST_REGEX_CALL flags()const
-   { 
-      return m_pimpl.get() ? m_pimpl->flags() : 0;
-   }
-   //
-   // str:
-   std::basic_string<charT> NDNBOOST_REGEX_CALL str()const
-   {
-      return m_pimpl.get() ? m_pimpl->str() : std::basic_string<charT>();
-   }
-   //
-   // begin, end, subexpression:
-   std::pair<const_iterator, const_iterator> NDNBOOST_REGEX_CALL subexpression(std::size_t n)const
-   {
-      if(!m_pimpl.get())
-         ndnboost::throw_exception(std::logic_error("Can't access subexpressions in an invalid regex."));
-      return m_pimpl->subexpression(n);
-   }
-   const_iterator NDNBOOST_REGEX_CALL begin()const
-   { 
-      return (m_pimpl.get() ? m_pimpl->begin() : 0); 
-   }
-   const_iterator NDNBOOST_REGEX_CALL end()const
-   { 
-      return (m_pimpl.get() ? m_pimpl->end() : 0); 
-   }
-   //
-   // swap:
-   void NDNBOOST_REGEX_CALL swap(basic_regex& that)throw()
-   {
-      m_pimpl.swap(that.m_pimpl);
-   }
-   //
-   // size:
-   size_type NDNBOOST_REGEX_CALL size()const
-   { 
-      return (m_pimpl.get() ? m_pimpl->size() : 0); 
-   }
-   //
-   // max_size:
-   size_type NDNBOOST_REGEX_CALL max_size()const
-   { 
-      return UINT_MAX; 
-   }
-   //
-   // empty:
-   bool NDNBOOST_REGEX_CALL empty()const
-   { 
-      return (m_pimpl.get() ? 0 != m_pimpl->status() : true); 
-   }
-
-   size_type NDNBOOST_REGEX_CALL mark_count()const 
-   { 
-      return (m_pimpl.get() ? m_pimpl->mark_count() : 0); 
-   }
-
-   int status()const
-   {
-      return (m_pimpl.get() ? m_pimpl->status() : regex_constants::error_empty);
-   }
-
-   int NDNBOOST_REGEX_CALL compare(const basic_regex& that) const
-   {
-      if(m_pimpl.get() == that.m_pimpl.get())
-         return 0;
-      if(!m_pimpl.get())
-         return -1;
-      if(!that.m_pimpl.get())
-         return 1;
-      if(status() != that.status())
-         return status() - that.status();
-      if(flags() != that.flags())
-         return flags() - that.flags();
-      return str().compare(that.str());
-   }
-   bool NDNBOOST_REGEX_CALL operator==(const basic_regex& e)const
-   { 
-      return compare(e) == 0; 
-   }
-   bool NDNBOOST_REGEX_CALL operator != (const basic_regex& e)const
-   { 
-      return compare(e) != 0; 
-   }
-   bool NDNBOOST_REGEX_CALL operator<(const basic_regex& e)const
-   { 
-      return compare(e) < 0; 
-   }
-   bool NDNBOOST_REGEX_CALL operator>(const basic_regex& e)const
-   { 
-      return compare(e) > 0; 
-   }
-   bool NDNBOOST_REGEX_CALL operator<=(const basic_regex& e)const
-   { 
-      return compare(e) <= 0; 
-   }
-   bool NDNBOOST_REGEX_CALL operator>=(const basic_regex& e)const
-   { 
-      return compare(e) >= 0; 
-   }
-
-   //
-   // The following are deprecated as public interfaces
-   // but are available for compatibility with earlier versions.
-   const charT* NDNBOOST_REGEX_CALL expression()const 
-   { 
-      return (m_pimpl.get() && !m_pimpl->status() ? m_pimpl->expression() : 0); 
-   }
-   unsigned int NDNBOOST_REGEX_CALL set_expression(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
-   {
-      assign(p1, p2, f | regex_constants::no_except);
-      return status();
-   }
-   unsigned int NDNBOOST_REGEX_CALL set_expression(const charT* p, flag_type f = regex_constants::normal) 
-   { 
-      assign(p, f | regex_constants::no_except); 
-      return status();
-   }
-   unsigned int NDNBOOST_REGEX_CALL error_code()const
-   {
-      return status();
-   }
-   //
-   // private access methods:
-   //
-   const re_detail::re_syntax_base* get_first_state()const
-   {
-      NDNBOOST_ASSERT(0 != m_pimpl.get());
-      return m_pimpl->get_first_state();
-   }
-   unsigned get_restart_type()const
-   {
-      NDNBOOST_ASSERT(0 != m_pimpl.get());
-      return m_pimpl->get_restart_type();
-   }
-   const unsigned char* get_map()const
-   {
-      NDNBOOST_ASSERT(0 != m_pimpl.get());
-      return m_pimpl->get_map();
-   }
-   const ::ndnboost::regex_traits_wrapper<traits>& get_traits()const
-   {
-      NDNBOOST_ASSERT(0 != m_pimpl.get());
-      return m_pimpl->get_traits();
-   }
-   bool can_be_null()const
-   {
-      NDNBOOST_ASSERT(0 != m_pimpl.get());
-      return m_pimpl->can_be_null();
-   }
-   const re_detail::regex_data<charT, traits>& get_data()const
-   {
-      NDNBOOST_ASSERT(0 != m_pimpl.get());
-      return m_pimpl->get_data();
-   }
-   ndnboost::shared_ptr<re_detail::named_subexpressions > get_named_subs()const
-   {
-      return m_pimpl;
-   }
-
-private:
-   shared_ptr<re_detail::basic_regex_implementation<charT, traits> > m_pimpl;
-};
-
-//
-// out of line members;
-// these are the only members that mutate the basic_regex object,
-// and are designed to provide the strong exception guarentee
-// (in the event of a throw, the state of the object remains unchanged).
-//
-template <class charT, class traits>
-basic_regex<charT, traits>& basic_regex<charT, traits>::do_assign(const charT* p1,
-                        const charT* p2,
-                        flag_type f)
-{
-   shared_ptr<re_detail::basic_regex_implementation<charT, traits> > temp;
-   if(!m_pimpl.get())
-   {
-      temp = shared_ptr<re_detail::basic_regex_implementation<charT, traits> >(new re_detail::basic_regex_implementation<charT, traits>());
-   }
-   else
-   {
-      temp = shared_ptr<re_detail::basic_regex_implementation<charT, traits> >(new re_detail::basic_regex_implementation<charT, traits>(m_pimpl->m_ptraits));
-   }
-   temp->assign(p1, p2, f);
-   temp.swap(m_pimpl);
-   return *this;
-}
-
-template <class charT, class traits>
-typename basic_regex<charT, traits>::locale_type NDNBOOST_REGEX_CALL basic_regex<charT, traits>::imbue(locale_type l)
-{ 
-   shared_ptr<re_detail::basic_regex_implementation<charT, traits> > temp(new re_detail::basic_regex_implementation<charT, traits>());
-   locale_type result = temp->imbue(l);
-   temp.swap(m_pimpl);
-   return result;
-}
-
-//
-// non-members:
-//
-template <class charT, class traits>
-void swap(basic_regex<charT, traits>& e1, basic_regex<charT, traits>& e2)
-{
-   e1.swap(e2);
-}
-
-#ifndef NDNBOOST_NO_STD_LOCALE
-template <class charT, class traits, class traits2>
-std::basic_ostream<charT, traits>& 
-   operator << (std::basic_ostream<charT, traits>& os, 
-                const basic_regex<charT, traits2>& e)
-{
-   return (os << e.str());
-}
-#else
-template <class traits>
-std::ostream& operator << (std::ostream& os, const basic_regex<char, traits>& e)
-{
-   return (os << e.str());
-}
-#endif
-
-//
-// class reg_expression:
-// this is provided for backwards compatibility only,
-// it is deprecated, no not use!
-//
-#ifdef NDNBOOST_REGEX_NO_FWD
-template <class charT, class traits = regex_traits<charT> >
-#else
-template <class charT, class traits >
-#endif
-class reg_expression : public basic_regex<charT, traits>
-{
-public:
-   typedef typename basic_regex<charT, traits>::flag_type flag_type;
-   typedef typename basic_regex<charT, traits>::size_type size_type;
-   explicit reg_expression(){}
-   explicit reg_expression(const charT* p, flag_type f = regex_constants::normal)
-      : basic_regex<charT, traits>(p, f){}
-   reg_expression(const charT* p1, const charT* p2, flag_type f = regex_constants::normal)
-      : basic_regex<charT, traits>(p1, p2, f){}
-   reg_expression(const charT* p, size_type len, flag_type f)
-      : basic_regex<charT, traits>(p, len, f){}
-   reg_expression(const reg_expression& that)
-      : basic_regex<charT, traits>(that) {}
-   ~reg_expression(){}
-   reg_expression& NDNBOOST_REGEX_CALL operator=(const reg_expression& that)
-   {
-      return this->assign(that);
-   }
-
-#if !defined(NDNBOOST_NO_MEMBER_TEMPLATES)
-   template <class ST, class SA>
-   explicit reg_expression(const std::basic_string<charT, ST, SA>& p, flag_type f = regex_constants::normal)
-   : basic_regex<charT, traits>(p, f)
-   { 
-   }
-
-   template <class InputIterator>
-   reg_expression(InputIterator arg_first, InputIterator arg_last, flag_type f = regex_constants::normal)
-   : basic_regex<charT, traits>(arg_first, arg_last, f)
-   {
-   }
-
-   template <class ST, class SA>
-   reg_expression& NDNBOOST_REGEX_CALL operator=(const std::basic_string<charT, ST, SA>& p)
-   {
-      this->assign(p);
-      return *this;
-   }
-#else
-   explicit reg_expression(const std::basic_string<charT>& p, flag_type f = regex_constants::normal)
-   : basic_regex<charT, traits>(p, f)
-   { 
-   }
-
-   reg_expression& NDNBOOST_REGEX_CALL operator=(const std::basic_string<charT>& p)
-   {
-      this->assign(p);
-      return *this;
-   }
-#endif
-
-};
-
-#ifdef NDNBOOST_MSVC
-#pragma warning (pop)
-#endif
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/basic_regex_creator.hpp b/include/ndnboost/regex/v4/basic_regex_creator.hpp
deleted file mode 100644
index 5db04e6..0000000
--- a/include/ndnboost/regex/v4/basic_regex_creator.hpp
+++ /dev/null
@@ -1,1571 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         basic_regex_creator.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares template class basic_regex_creator which fills in
-  *                the data members of a regex_data object.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_BASIC_REGEX_CREATOR_HPP
-#define NDNBOOST_REGEX_V4_BASIC_REGEX_CREATOR_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable: 4800)
-#endif
-
-namespace ndnboost{
-
-namespace re_detail{
-
-template <class charT>
-struct digraph : public std::pair<charT, charT>
-{
-   digraph() : std::pair<charT, charT>(0, 0){}
-   digraph(charT c1) : std::pair<charT, charT>(c1, 0){}
-   digraph(charT c1, charT c2) : std::pair<charT, charT>(c1, c2)
-   {}
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-   digraph(const digraph<charT>& d) : std::pair<charT, charT>(d.first, d.second){}
-#endif
-   template <class Seq>
-   digraph(const Seq& s) : std::pair<charT, charT>()
-   {
-      NDNBOOST_ASSERT(s.size() <= 2);
-      NDNBOOST_ASSERT(s.size());
-      this->first = s[0];
-      this->second = (s.size() > 1) ? s[1] : 0;
-   }
-};
-
-template <class charT, class traits>
-class basic_char_set
-{
-public:
-   typedef digraph<charT>                   digraph_type;
-   typedef typename traits::string_type     string_type;
-   typedef typename traits::char_class_type m_type;
-
-   basic_char_set()
-   {
-      m_negate = false;
-      m_has_digraphs = false;
-      m_classes = 0;
-      m_negated_classes = 0;
-      m_empty = true;
-   }
-
-   void add_single(const digraph_type& s)
-   {
-      m_singles.insert(m_singles.end(), s);
-      if(s.second)
-         m_has_digraphs = true;
-      m_empty = false;
-   }
-   void add_range(const digraph_type& first, const digraph_type& end)
-   {
-      m_ranges.insert(m_ranges.end(), first);
-      m_ranges.insert(m_ranges.end(), end);
-      if(first.second)
-      {
-         m_has_digraphs = true;
-         add_single(first);
-      }
-      if(end.second)
-      {
-         m_has_digraphs = true;
-         add_single(end);
-      }
-      m_empty = false;
-   }
-   void add_class(m_type m)
-   {
-      m_classes |= m;
-      m_empty = false;
-   }
-   void add_negated_class(m_type m)
-   {
-      m_negated_classes |= m;
-      m_empty = false;
-   }
-   void add_equivalent(const digraph_type& s)
-   {
-      m_equivalents.insert(m_equivalents.end(), s);
-      if(s.second)
-      {
-         m_has_digraphs = true;
-         add_single(s);
-      }
-      m_empty = false;
-   }
-   void negate()
-   { 
-      m_negate = true;
-      //m_empty = false;
-   }
-
-   //
-   // accessor functions:
-   //
-   bool has_digraphs()const
-   {
-      return m_has_digraphs;
-   }
-   bool is_negated()const
-   {
-      return m_negate;
-   }
-   typedef typename std::vector<digraph_type>::const_iterator  list_iterator;
-   list_iterator singles_begin()const
-   {
-      return m_singles.begin();
-   }
-   list_iterator singles_end()const
-   {
-      return m_singles.end();
-   }
-   list_iterator ranges_begin()const
-   {
-      return m_ranges.begin();
-   }
-   list_iterator ranges_end()const
-   {
-      return m_ranges.end();
-   }
-   list_iterator equivalents_begin()const
-   {
-      return m_equivalents.begin();
-   }
-   list_iterator equivalents_end()const
-   {
-      return m_equivalents.end();
-   }
-   m_type classes()const
-   {
-      return m_classes;
-   }
-   m_type negated_classes()const
-   {
-      return m_negated_classes;
-   }
-   bool empty()const
-   {
-      return m_empty;
-   }
-private:
-   std::vector<digraph_type> m_singles;         // a list of single characters to match
-   std::vector<digraph_type> m_ranges;          // a list of end points of our ranges
-   bool                      m_negate;          // true if the set is to be negated
-   bool                      m_has_digraphs;    // true if we have digraphs present
-   m_type                    m_classes;         // character classes to match
-   m_type                    m_negated_classes; // negated character classes to match
-   bool                      m_empty;           // whether we've added anything yet
-   std::vector<digraph_type> m_equivalents;     // a list of equivalence classes
-};
-   
-template <class charT, class traits>
-class basic_regex_creator
-{
-public:
-   basic_regex_creator(regex_data<charT, traits>* data);
-   std::ptrdiff_t getoffset(void* addr)
-   {
-      return getoffset(addr, m_pdata->m_data.data());
-   }
-   std::ptrdiff_t getoffset(const void* addr, const void* base)
-   {
-      return static_cast<const char*>(addr) - static_cast<const char*>(base);
-   }
-   re_syntax_base* getaddress(std::ptrdiff_t off)
-   {
-      return getaddress(off, m_pdata->m_data.data());
-   }
-   re_syntax_base* getaddress(std::ptrdiff_t off, void* base)
-   {
-      return static_cast<re_syntax_base*>(static_cast<void*>(static_cast<char*>(base) + off));
-   }
-   void init(unsigned l_flags)
-   {
-      m_pdata->m_flags = l_flags;
-      m_icase = l_flags & regex_constants::icase;
-   }
-   regbase::flag_type flags()
-   {
-      return m_pdata->m_flags;
-   }
-   void flags(regbase::flag_type f)
-   {
-      m_pdata->m_flags = f;
-      if(m_icase != static_cast<bool>(f & regbase::icase))
-      {
-         m_icase = static_cast<bool>(f & regbase::icase);
-      }
-   }
-   re_syntax_base* append_state(syntax_element_type t, std::size_t s = sizeof(re_syntax_base));
-   re_syntax_base* insert_state(std::ptrdiff_t pos, syntax_element_type t, std::size_t s = sizeof(re_syntax_base));
-   re_literal* append_literal(charT c);
-   re_syntax_base* append_set(const basic_char_set<charT, traits>& char_set);
-   re_syntax_base* append_set(const basic_char_set<charT, traits>& char_set, mpl::false_*);
-   re_syntax_base* append_set(const basic_char_set<charT, traits>& char_set, mpl::true_*);
-   void finalize(const charT* p1, const charT* p2);
-protected:
-   regex_data<charT, traits>*    m_pdata;              // pointer to the basic_regex_data struct we are filling in
-   const ::ndnboost::regex_traits_wrapper<traits>&  
-                                 m_traits;             // convenience reference to traits class
-   re_syntax_base*               m_last_state;         // the last state we added
-   bool                          m_icase;              // true for case insensitive matches
-   unsigned                      m_repeater_id;        // the state_id of the next repeater
-   bool                          m_has_backrefs;       // true if there are actually any backrefs
-   unsigned                      m_backrefs;           // bitmask of permitted backrefs
-   ndnboost::uintmax_t              m_bad_repeats;        // bitmask of repeats we can't deduce a startmap for;
-   bool                          m_has_recursions;     // set when we have recursive expresisons to fixup
-   std::vector<bool>             m_recursion_checks;   // notes which recursions we've followed while analysing this expression
-   typename traits::char_class_type m_word_mask;       // mask used to determine if a character is a word character
-   typename traits::char_class_type m_mask_space;      // mask used to determine if a character is a word character
-   typename traits::char_class_type m_lower_mask;       // mask used to determine if a character is a lowercase character
-   typename traits::char_class_type m_upper_mask;      // mask used to determine if a character is an uppercase character
-   typename traits::char_class_type m_alpha_mask;      // mask used to determine if a character is an alphabetic character
-private:
-   basic_regex_creator& operator=(const basic_regex_creator&);
-   basic_regex_creator(const basic_regex_creator&);
-
-   void fixup_pointers(re_syntax_base* state);
-   void fixup_recursions(re_syntax_base* state);
-   void create_startmaps(re_syntax_base* state);
-   int calculate_backstep(re_syntax_base* state);
-   void create_startmap(re_syntax_base* state, unsigned char* l_map, unsigned int* pnull, unsigned char mask);
-   unsigned get_restart_type(re_syntax_base* state);
-   void set_all_masks(unsigned char* bits, unsigned char);
-   bool is_bad_repeat(re_syntax_base* pt);
-   void set_bad_repeat(re_syntax_base* pt);
-   syntax_element_type get_repeat_type(re_syntax_base* state);
-   void probe_leading_repeat(re_syntax_base* state);
-};
-
-template <class charT, class traits>
-basic_regex_creator<charT, traits>::basic_regex_creator(regex_data<charT, traits>* data)
-   : m_pdata(data), m_traits(*(data->m_ptraits)), m_last_state(0), m_repeater_id(0), m_has_backrefs(false), m_backrefs(0), m_has_recursions(false)
-{
-   m_pdata->m_data.clear();
-   m_pdata->m_status = ::ndnboost::regex_constants::error_ok;
-   static const charT w = 'w';
-   static const charT s = 's';
-   static const charT l[5] = { 'l', 'o', 'w', 'e', 'r', };
-   static const charT u[5] = { 'u', 'p', 'p', 'e', 'r', };
-   static const charT a[5] = { 'a', 'l', 'p', 'h', 'a', };
-   m_word_mask = m_traits.lookup_classname(&w, &w +1);
-   m_mask_space = m_traits.lookup_classname(&s, &s +1);
-   m_lower_mask = m_traits.lookup_classname(l, l + 5);
-   m_upper_mask = m_traits.lookup_classname(u, u + 5);
-   m_alpha_mask = m_traits.lookup_classname(a, a + 5);
-   m_pdata->m_word_mask = m_word_mask;
-   NDNBOOST_ASSERT(m_word_mask != 0); 
-   NDNBOOST_ASSERT(m_mask_space != 0); 
-   NDNBOOST_ASSERT(m_lower_mask != 0); 
-   NDNBOOST_ASSERT(m_upper_mask != 0); 
-   NDNBOOST_ASSERT(m_alpha_mask != 0); 
-}
-
-template <class charT, class traits>
-re_syntax_base* basic_regex_creator<charT, traits>::append_state(syntax_element_type t, std::size_t s)
-{
-   // if the state is a backref then make a note of it:
-   if(t == syntax_element_backref)
-      this->m_has_backrefs = true;
-   // append a new state, start by aligning our last one:
-   m_pdata->m_data.align();
-   // set the offset to the next state in our last one:
-   if(m_last_state)
-      m_last_state->next.i = m_pdata->m_data.size() - getoffset(m_last_state);
-   // now actually extent our data:
-   m_last_state = static_cast<re_syntax_base*>(m_pdata->m_data.extend(s));
-   // fill in boilerplate options in the new state:
-   m_last_state->next.i = 0;
-   m_last_state->type = t;
-   return m_last_state;
-}
-
-template <class charT, class traits>
-re_syntax_base* basic_regex_creator<charT, traits>::insert_state(std::ptrdiff_t pos, syntax_element_type t, std::size_t s)
-{
-   // append a new state, start by aligning our last one:
-   m_pdata->m_data.align();
-   // set the offset to the next state in our last one:
-   if(m_last_state)
-      m_last_state->next.i = m_pdata->m_data.size() - getoffset(m_last_state);
-   // remember the last state position:
-   std::ptrdiff_t off = getoffset(m_last_state) + s;
-   // now actually insert our data:
-   re_syntax_base* new_state = static_cast<re_syntax_base*>(m_pdata->m_data.insert(pos, s));
-   // fill in boilerplate options in the new state:
-   new_state->next.i = s;
-   new_state->type = t;
-   m_last_state = getaddress(off);
-   return new_state;
-}
-
-template <class charT, class traits>
-re_literal* basic_regex_creator<charT, traits>::append_literal(charT c)
-{
-   re_literal* result;
-   // start by seeing if we have an existing re_literal we can extend:
-   if((0 == m_last_state) || (m_last_state->type != syntax_element_literal))
-   {
-      // no existing re_literal, create a new one:
-      result = static_cast<re_literal*>(append_state(syntax_element_literal, sizeof(re_literal) + sizeof(charT)));
-      result->length = 1;
-      *static_cast<charT*>(static_cast<void*>(result+1)) = m_traits.translate(c, m_icase);
-   }
-   else
-   {
-      // we have an existing re_literal, extend it:
-      std::ptrdiff_t off = getoffset(m_last_state);
-      m_pdata->m_data.extend(sizeof(charT));
-      m_last_state = result = static_cast<re_literal*>(getaddress(off));
-      charT* characters = static_cast<charT*>(static_cast<void*>(result+1));
-      characters[result->length] = m_traits.translate(c, m_icase);
-      ++(result->length);
-   }
-   return result;
-}
-
-template <class charT, class traits>
-inline re_syntax_base* basic_regex_creator<charT, traits>::append_set(
-   const basic_char_set<charT, traits>& char_set)
-{
-   typedef mpl::bool_< (sizeof(charT) == 1) > truth_type;
-   return char_set.has_digraphs() 
-      ? append_set(char_set, static_cast<mpl::false_*>(0))
-      : append_set(char_set, static_cast<truth_type*>(0));
-}
-
-template <class charT, class traits>
-re_syntax_base* basic_regex_creator<charT, traits>::append_set(
-   const basic_char_set<charT, traits>& char_set, mpl::false_*)
-{
-   typedef typename traits::string_type string_type;
-   typedef typename basic_char_set<charT, traits>::list_iterator item_iterator;
-   typedef typename traits::char_class_type m_type;
-   
-   re_set_long<m_type>* result = static_cast<re_set_long<m_type>*>(append_state(syntax_element_long_set, sizeof(re_set_long<m_type>)));
-   //
-   // fill in the basics:
-   //
-   result->csingles = static_cast<unsigned int>(::ndnboost::re_detail::distance(char_set.singles_begin(), char_set.singles_end()));
-   result->cranges = static_cast<unsigned int>(::ndnboost::re_detail::distance(char_set.ranges_begin(), char_set.ranges_end())) / 2;
-   result->cequivalents = static_cast<unsigned int>(::ndnboost::re_detail::distance(char_set.equivalents_begin(), char_set.equivalents_end()));
-   result->cclasses = char_set.classes();
-   result->cnclasses = char_set.negated_classes();
-   if(flags() & regbase::icase)
-   {
-      // adjust classes as needed:
-      if(((result->cclasses & m_lower_mask) == m_lower_mask) || ((result->cclasses & m_upper_mask) == m_upper_mask))
-         result->cclasses |= m_alpha_mask;
-      if(((result->cnclasses & m_lower_mask) == m_lower_mask) || ((result->cnclasses & m_upper_mask) == m_upper_mask))
-         result->cnclasses |= m_alpha_mask;
-   }
-
-   result->isnot = char_set.is_negated();
-   result->singleton = !char_set.has_digraphs();
-   //
-   // remember where the state is for later:
-   //
-   std::ptrdiff_t offset = getoffset(result);
-   //
-   // now extend with all the singles:
-   //
-   item_iterator first, last;
-   first = char_set.singles_begin();
-   last = char_set.singles_end();
-   while(first != last)
-   {
-      charT* p = static_cast<charT*>(this->m_pdata->m_data.extend(sizeof(charT) * (first->second ? 3 : 2)));
-      p[0] = m_traits.translate(first->first, m_icase);
-      if(first->second)
-      {
-         p[1] = m_traits.translate(first->second, m_icase);
-         p[2] = 0;
-      }
-      else
-         p[1] = 0;
-      ++first;
-   }
-   //
-   // now extend with all the ranges:
-   //
-   first = char_set.ranges_begin();
-   last = char_set.ranges_end();
-   while(first != last)
-   {
-      // first grab the endpoints of the range:
-      digraph<charT> c1 = *first;
-      c1.first = this->m_traits.translate(c1.first, this->m_icase);
-      c1.second = this->m_traits.translate(c1.second, this->m_icase);
-      ++first;
-      digraph<charT> c2 = *first;
-      c2.first = this->m_traits.translate(c2.first, this->m_icase);
-      c2.second = this->m_traits.translate(c2.second, this->m_icase);
-      ++first;
-      string_type s1, s2;
-      // different actions now depending upon whether collation is turned on:
-      if(flags() & regex_constants::collate)
-      {
-         // we need to transform our range into sort keys:
-#if NDNBOOST_WORKAROUND(__GNUC__, < 3)
-         string_type in(3, charT(0));
-         in[0] = c1.first;
-         in[1] = c1.second;
-         s1 = this->m_traits.transform(in.c_str(), (in[1] ? in.c_str()+2 : in.c_str()+1));
-         in[0] = c2.first;
-         in[1] = c2.second;
-         s2 = this->m_traits.transform(in.c_str(), (in[1] ? in.c_str()+2 : in.c_str()+1));
-#else
-         charT a1[3] = { c1.first, c1.second, charT(0), };
-         charT a2[3] = { c2.first, c2.second, charT(0), };
-         s1 = this->m_traits.transform(a1, (a1[1] ? a1+2 : a1+1));
-         s2 = this->m_traits.transform(a2, (a2[1] ? a2+2 : a2+1));
-#endif
-         if(s1.size() == 0)
-            s1 = string_type(1, charT(0));
-         if(s2.size() == 0)
-            s2 = string_type(1, charT(0));
-      }
-      else
-      {
-         if(c1.second)
-         {
-            s1.insert(s1.end(), c1.first);
-            s1.insert(s1.end(), c1.second);
-         }
-         else
-            s1 = string_type(1, c1.first);
-         if(c2.second)
-         {
-            s2.insert(s2.end(), c2.first);
-            s2.insert(s2.end(), c2.second);
-         }
-         else
-            s2.insert(s2.end(), c2.first);
-      }
-      if(s1 > s2)
-      {
-         // Oops error:
-         return 0;
-      }
-      charT* p = static_cast<charT*>(this->m_pdata->m_data.extend(sizeof(charT) * (s1.size() + s2.size() + 2) ) );
-      re_detail::copy(s1.begin(), s1.end(), p);
-      p[s1.size()] = charT(0);
-      p += s1.size() + 1;
-      re_detail::copy(s2.begin(), s2.end(), p);
-      p[s2.size()] = charT(0);
-   }
-   //
-   // now process the equivalence classes:
-   //
-   first = char_set.equivalents_begin();
-   last = char_set.equivalents_end();
-   while(first != last)
-   {
-      string_type s;
-      if(first->second)
-      {
-#if NDNBOOST_WORKAROUND(__GNUC__, < 3)
-         string_type in(3, charT(0));
-         in[0] = first->first;
-         in[1] = first->second;
-         s = m_traits.transform_primary(in.c_str(), in.c_str()+2);
-#else
-         charT cs[3] = { first->first, first->second, charT(0), };
-         s = m_traits.transform_primary(cs, cs+2);
-#endif
-      }
-      else
-         s = m_traits.transform_primary(&first->first, &first->first+1);
-      if(s.empty())
-         return 0;  // invalid or unsupported equivalence class
-      charT* p = static_cast<charT*>(this->m_pdata->m_data.extend(sizeof(charT) * (s.size()+1) ) );
-      re_detail::copy(s.begin(), s.end(), p);
-      p[s.size()] = charT(0);
-      ++first;
-   }
-   //
-   // finally reset the address of our last state:
-   //
-   m_last_state = result = static_cast<re_set_long<m_type>*>(getaddress(offset));
-   return result;
-}
-
-template<class T>
-inline bool char_less(T t1, T t2)
-{
-   return t1 < t2;
-}
-inline bool char_less(char t1, char t2)
-{
-   return static_cast<unsigned char>(t1) < static_cast<unsigned char>(t2);
-}
-inline bool char_less(signed char t1, signed char t2)
-{
-   return static_cast<unsigned char>(t1) < static_cast<unsigned char>(t2);
-}
-
-template <class charT, class traits>
-re_syntax_base* basic_regex_creator<charT, traits>::append_set(
-   const basic_char_set<charT, traits>& char_set, mpl::true_*)
-{
-   typedef typename traits::string_type string_type;
-   typedef typename basic_char_set<charT, traits>::list_iterator item_iterator;
-   
-   re_set* result = static_cast<re_set*>(append_state(syntax_element_set, sizeof(re_set)));
-   bool negate = char_set.is_negated();
-   std::memset(result->_map, 0, sizeof(result->_map));
-   //
-   // handle singles first:
-   //
-   item_iterator first, last;
-   first = char_set.singles_begin();
-   last = char_set.singles_end();
-   while(first != last)
-   {
-      for(unsigned int i = 0; i < (1 << CHAR_BIT); ++i)
-      {
-         if(this->m_traits.translate(static_cast<charT>(i), this->m_icase)
-            == this->m_traits.translate(first->first, this->m_icase))
-            result->_map[i] = true;
-      }
-      ++first;
-   }
-   //
-   // OK now handle ranges:
-   //
-   first = char_set.ranges_begin();
-   last = char_set.ranges_end();
-   while(first != last)
-   {
-      // first grab the endpoints of the range:
-      charT c1 = this->m_traits.translate(first->first, this->m_icase);
-      ++first;
-      charT c2 = this->m_traits.translate(first->first, this->m_icase);
-      ++first;
-      // different actions now depending upon whether collation is turned on:
-      if(flags() & regex_constants::collate)
-      {
-         // we need to transform our range into sort keys:
-         charT c3[2] = { c1, charT(0), };
-         string_type s1 = this->m_traits.transform(c3, c3+1);
-         c3[0] = c2;
-         string_type s2 = this->m_traits.transform(c3, c3+1);
-         if(s1 > s2)
-         {
-            // Oops error:
-            return 0;
-         }
-         NDNBOOST_ASSERT(c3[1] == charT(0));
-         for(unsigned i = 0; i < (1u << CHAR_BIT); ++i)
-         {
-            c3[0] = static_cast<charT>(i);
-            string_type s3 = this->m_traits.transform(c3, c3 +1);
-            if((s1 <= s3) && (s3 <= s2))
-               result->_map[i] = true;
-         }
-      }
-      else
-      {
-         if(char_less(c2, c1))
-         {
-            // Oops error:
-            return 0;
-         }
-         // everything in range matches:
-         std::memset(result->_map + static_cast<unsigned char>(c1), true, 1 + static_cast<unsigned char>(c2) - static_cast<unsigned char>(c1));
-      }
-   }
-   //
-   // and now the classes:
-   //
-   typedef typename traits::char_class_type m_type;
-   m_type m = char_set.classes();
-   if(flags() & regbase::icase)
-   {
-      // adjust m as needed:
-      if(((m & m_lower_mask) == m_lower_mask) || ((m & m_upper_mask) == m_upper_mask))
-         m |= m_alpha_mask;
-   }
-   if(m != 0)
-   {
-      for(unsigned i = 0; i < (1u << CHAR_BIT); ++i)
-      {
-         if(this->m_traits.isctype(static_cast<charT>(i), m))
-            result->_map[i] = true;
-      }
-   }
-   //
-   // and now the negated classes:
-   //
-   m = char_set.negated_classes();
-   if(flags() & regbase::icase)
-   {
-      // adjust m as needed:
-      if(((m & m_lower_mask) == m_lower_mask) || ((m & m_upper_mask) == m_upper_mask))
-         m |= m_alpha_mask;
-   }
-   if(m != 0)
-   {
-      for(unsigned i = 0; i < (1u << CHAR_BIT); ++i)
-      {
-         if(0 == this->m_traits.isctype(static_cast<charT>(i), m))
-            result->_map[i] = true;
-      }
-   }
-   //
-   // now process the equivalence classes:
-   //
-   first = char_set.equivalents_begin();
-   last = char_set.equivalents_end();
-   while(first != last)
-   {
-      string_type s;
-      NDNBOOST_ASSERT(static_cast<charT>(0) == first->second);
-      s = m_traits.transform_primary(&first->first, &first->first+1);
-      if(s.empty())
-         return 0;  // invalid or unsupported equivalence class
-      for(unsigned i = 0; i < (1u << CHAR_BIT); ++i)
-      {
-         charT c[2] = { (static_cast<charT>(i)), charT(0), };
-         string_type s2 = this->m_traits.transform_primary(c, c+1);
-         if(s == s2)
-            result->_map[i] = true;
-      }
-      ++first;
-   }
-   if(negate)
-   {
-      for(unsigned i = 0; i < (1u << CHAR_BIT); ++i)
-      {
-         result->_map[i] = !(result->_map[i]);
-      }
-   }
-   return result;
-}
-
-template <class charT, class traits>
-void basic_regex_creator<charT, traits>::finalize(const charT* p1, const charT* p2)
-{
-   if(this->m_pdata->m_status)
-      return;
-   // we've added all the states we need, now finish things off.
-   // start by adding a terminating state:
-   append_state(syntax_element_match);
-   // extend storage to store original expression:
-   std::ptrdiff_t len = p2 - p1;
-   m_pdata->m_expression_len = len;
-   charT* ps = static_cast<charT*>(m_pdata->m_data.extend(sizeof(charT) * (1 + (p2 - p1))));
-   m_pdata->m_expression = ps;
-   re_detail::copy(p1, p2, ps);
-   ps[p2 - p1] = 0;
-   // fill in our other data...
-   // successful parsing implies a zero status:
-   m_pdata->m_status = 0;
-   // get the first state of the machine:
-   m_pdata->m_first_state = static_cast<re_syntax_base*>(m_pdata->m_data.data());
-   // fixup pointers in the machine:
-   fixup_pointers(m_pdata->m_first_state);
-   if(m_has_recursions)
-   {
-      m_pdata->m_has_recursions = true;
-      fixup_recursions(m_pdata->m_first_state);
-      if(this->m_pdata->m_status)
-         return;
-   }
-   else
-      m_pdata->m_has_recursions = false;
-   // create nested startmaps:
-   create_startmaps(m_pdata->m_first_state);
-   // create main startmap:
-   std::memset(m_pdata->m_startmap, 0, sizeof(m_pdata->m_startmap));
-   m_pdata->m_can_be_null = 0;
-
-   m_bad_repeats = 0;
-   if(m_has_recursions)
-      m_recursion_checks.assign(1 + m_pdata->m_mark_count, false);
-   create_startmap(m_pdata->m_first_state, m_pdata->m_startmap, &(m_pdata->m_can_be_null), mask_all);
-   // get the restart type:
-   m_pdata->m_restart_type = get_restart_type(m_pdata->m_first_state);
-   // optimise a leading repeat if there is one:
-   probe_leading_repeat(m_pdata->m_first_state);
-}
-
-template <class charT, class traits>
-void basic_regex_creator<charT, traits>::fixup_pointers(re_syntax_base* state)
-{
-   while(state)
-   {
-      switch(state->type)
-      {
-      case syntax_element_recurse:
-         m_has_recursions = true;
-         if(state->next.i)
-            state->next.p = getaddress(state->next.i, state);
-         else
-            state->next.p = 0;
-         break;
-      case syntax_element_rep:
-      case syntax_element_dot_rep:
-      case syntax_element_char_rep:
-      case syntax_element_short_set_rep:
-      case syntax_element_long_set_rep:
-         // set the state_id of this repeat:
-         static_cast<re_repeat*>(state)->state_id = m_repeater_id++;
-         NDNBOOST_FALLTHROUGH;
-      case syntax_element_alt:
-         std::memset(static_cast<re_alt*>(state)->_map, 0, sizeof(static_cast<re_alt*>(state)->_map));
-         static_cast<re_alt*>(state)->can_be_null = 0;
-         NDNBOOST_FALLTHROUGH;
-      case syntax_element_jump:
-         static_cast<re_jump*>(state)->alt.p = getaddress(static_cast<re_jump*>(state)->alt.i, state);
-         NDNBOOST_FALLTHROUGH;
-      default:
-         if(state->next.i)
-            state->next.p = getaddress(state->next.i, state);
-         else
-            state->next.p = 0;
-      }
-      state = state->next.p;
-   }
-}
-
-template <class charT, class traits>
-void basic_regex_creator<charT, traits>::fixup_recursions(re_syntax_base* state)
-{
-   re_syntax_base* base = state;
-   while(state)
-   {
-      switch(state->type)
-      {
-      case syntax_element_assert_backref:
-         {
-            // just check that the index is valid:
-            int idx = static_cast<const re_brace*>(state)->index;
-            if(idx < 0)
-            {
-               idx = -idx-1;
-               if(idx >= 10000)
-               {
-                  idx = m_pdata->get_id(idx);
-                  if(idx <= 0)
-                  {
-                     // check of sub-expression that doesn't exist:
-                     if(0 == this->m_pdata->m_status) // update the error code if not already set
-                        this->m_pdata->m_status = ndnboost::regex_constants::error_bad_pattern;
-                     //
-                     // clear the expression, we should be empty:
-                     //
-                     this->m_pdata->m_expression = 0;
-                     this->m_pdata->m_expression_len = 0;
-                     //
-                     // and throw if required:
-                     //
-                     if(0 == (this->flags() & regex_constants::no_except))
-                     {
-                        std::string message = "Encountered a forward reference to a marked sub-expression that does not exist.";
-                        ndnboost::regex_error e(message, ndnboost::regex_constants::error_bad_pattern, 0);
-                        e.raise();
-                     }
-                  }
-               }
-            }
-         }
-         break;
-      case syntax_element_recurse:
-         {
-            bool ok = false;
-            re_syntax_base* p = base;
-            std::ptrdiff_t idx = static_cast<re_jump*>(state)->alt.i;
-            if(idx > 10000)
-            {
-               //
-               // There may be more than one capture group with this hash, just do what Perl
-               // does and recurse to the leftmost:
-               //
-               idx = m_pdata->get_id(static_cast<int>(idx));
-            }
-            while(p)
-            {
-               if((p->type == syntax_element_startmark) && (static_cast<re_brace*>(p)->index == idx))
-               {
-                  //
-                  // We've found the target of the recursion, set the jump target:
-                  //
-                  static_cast<re_jump*>(state)->alt.p = p;
-                  ok = true;
-                  // 
-                  // Now scan the target for nested repeats:
-                  //
-                  p = p->next.p;
-                  int next_rep_id = 0;
-                  while(p)
-                  {
-                     switch(p->type)
-                     {
-                     case syntax_element_rep:
-                     case syntax_element_dot_rep:
-                     case syntax_element_char_rep:
-                     case syntax_element_short_set_rep:
-                     case syntax_element_long_set_rep:
-                        next_rep_id = static_cast<re_repeat*>(p)->state_id;
-                        break;
-                     case syntax_element_endmark:
-                        if(static_cast<const re_brace*>(p)->index == idx)
-                           next_rep_id = -1;
-                        break;
-                     default: 
-                        break;
-                     }
-                     if(next_rep_id)
-                        break;
-                     p = p->next.p;
-                  }
-                  if(next_rep_id > 0)
-                  {
-                     static_cast<re_recurse*>(state)->state_id = next_rep_id - 1;
-                  }
-
-                  break;
-               }
-               p = p->next.p;
-            }
-            if(!ok)
-            {
-               // recursion to sub-expression that doesn't exist:
-               if(0 == this->m_pdata->m_status) // update the error code if not already set
-                  this->m_pdata->m_status = ndnboost::regex_constants::error_bad_pattern;
-               //
-               // clear the expression, we should be empty:
-               //
-               this->m_pdata->m_expression = 0;
-               this->m_pdata->m_expression_len = 0;
-               //
-               // and throw if required:
-               //
-               if(0 == (this->flags() & regex_constants::no_except))
-               {
-                  std::string message = "Encountered a forward reference to a recursive sub-expression that does not exist.";
-                  ndnboost::regex_error e(message, ndnboost::regex_constants::error_bad_pattern, 0);
-                  e.raise();
-               }
-            }
-         }
-         break;
-      default:
-         break;
-      }
-      state = state->next.p;
-   }
-}
-
-template <class charT, class traits>
-void basic_regex_creator<charT, traits>::create_startmaps(re_syntax_base* state)
-{
-   // non-recursive implementation:
-   // create the last map in the machine first, so that earlier maps
-   // can make use of the result...
-   //
-   // This was originally a recursive implementation, but that caused stack
-   // overflows with complex expressions on small stacks (think COM+).
-
-   // start by saving the case setting:
-   bool l_icase = m_icase;
-   std::vector<std::pair<bool, re_syntax_base*> > v;
-
-   while(state)
-   {
-      switch(state->type)
-      {
-      case syntax_element_toggle_case:
-         // we need to track case changes here:
-         m_icase = static_cast<re_case*>(state)->icase;
-         state = state->next.p;
-         continue;
-      case syntax_element_alt:
-      case syntax_element_rep:
-      case syntax_element_dot_rep:
-      case syntax_element_char_rep:
-      case syntax_element_short_set_rep:
-      case syntax_element_long_set_rep:
-         // just push the state onto our stack for now:
-         v.push_back(std::pair<bool, re_syntax_base*>(m_icase, state));
-         state = state->next.p;
-         break;
-      case syntax_element_backstep:
-         // we need to calculate how big the backstep is:
-         static_cast<re_brace*>(state)->index
-            = this->calculate_backstep(state->next.p);
-         if(static_cast<re_brace*>(state)->index < 0)
-         {
-            // Oops error:
-            if(0 == this->m_pdata->m_status) // update the error code if not already set
-               this->m_pdata->m_status = ndnboost::regex_constants::error_bad_pattern;
-            //
-            // clear the expression, we should be empty:
-            //
-            this->m_pdata->m_expression = 0;
-            this->m_pdata->m_expression_len = 0;
-            //
-            // and throw if required:
-            //
-            if(0 == (this->flags() & regex_constants::no_except))
-            {
-               std::string message = "Invalid lookbehind assertion encountered in the regular expression.";
-               ndnboost::regex_error e(message, ndnboost::regex_constants::error_bad_pattern, 0);
-               e.raise();
-            }
-         }
-         NDNBOOST_FALLTHROUGH;
-      default:
-         state = state->next.p;
-      }
-   }
-
-   // now work through our list, building all the maps as we go:
-   while(v.size())
-   {
-      // Initialize m_recursion_checks if we need it:
-      if(m_has_recursions)
-         m_recursion_checks.assign(1 + m_pdata->m_mark_count, false);
-
-      const std::pair<bool, re_syntax_base*>& p = v.back();
-      m_icase = p.first;
-      state = p.second;
-      v.pop_back();
-
-      // Build maps:
-      m_bad_repeats = 0;
-      create_startmap(state->next.p, static_cast<re_alt*>(state)->_map, &static_cast<re_alt*>(state)->can_be_null, mask_take);
-      m_bad_repeats = 0;
-
-      if(m_has_recursions)
-         m_recursion_checks.assign(1 + m_pdata->m_mark_count, false);
-      create_startmap(static_cast<re_alt*>(state)->alt.p, static_cast<re_alt*>(state)->_map, &static_cast<re_alt*>(state)->can_be_null, mask_skip);
-      // adjust the type of the state to allow for faster matching:
-      state->type = this->get_repeat_type(state);
-   }
-   // restore case sensitivity:
-   m_icase = l_icase;
-}
-
-template <class charT, class traits>
-int basic_regex_creator<charT, traits>::calculate_backstep(re_syntax_base* state)
-{
-   typedef typename traits::char_class_type m_type;
-   int result = 0;
-   while(state)
-   {
-      switch(state->type)
-      {
-      case syntax_element_startmark:
-         if((static_cast<re_brace*>(state)->index == -1)
-            || (static_cast<re_brace*>(state)->index == -2))
-         {
-            state = static_cast<re_jump*>(state->next.p)->alt.p->next.p;
-            continue;
-         }
-         else if(static_cast<re_brace*>(state)->index == -3)
-         {
-            state = state->next.p->next.p;
-            continue;
-         }
-         break;
-      case syntax_element_endmark:
-         if((static_cast<re_brace*>(state)->index == -1)
-            || (static_cast<re_brace*>(state)->index == -2))
-            return result;
-         break;
-      case syntax_element_literal:
-         result += static_cast<re_literal*>(state)->length;
-         break;
-      case syntax_element_wild:
-      case syntax_element_set:
-         result += 1;
-         break;
-      case syntax_element_dot_rep:
-      case syntax_element_char_rep:
-      case syntax_element_short_set_rep:
-      case syntax_element_backref:
-      case syntax_element_rep:
-      case syntax_element_combining:
-      case syntax_element_long_set_rep:
-      case syntax_element_backstep:
-         {
-            re_repeat* rep = static_cast<re_repeat *>(state);
-            // adjust the type of the state to allow for faster matching:
-            state->type = this->get_repeat_type(state);
-            if((state->type == syntax_element_dot_rep) 
-               || (state->type == syntax_element_char_rep)
-               || (state->type == syntax_element_short_set_rep))
-            {
-               if(rep->max != rep->min)
-                  return -1;
-               result += static_cast<int>(rep->min);
-               state = rep->alt.p;
-               continue;
-            }
-            else if(state->type == syntax_element_long_set_rep)
-            {
-               NDNBOOST_ASSERT(rep->next.p->type == syntax_element_long_set);
-               if(static_cast<re_set_long<m_type>*>(rep->next.p)->singleton == 0)
-                  return -1;
-               if(rep->max != rep->min)
-                  return -1;
-               result += static_cast<int>(rep->min);
-               state = rep->alt.p;
-               continue;
-            }
-         }
-         return -1;
-      case syntax_element_long_set:
-         if(static_cast<re_set_long<m_type>*>(state)->singleton == 0)
-            return -1;
-         result += 1;
-         break;
-      case syntax_element_jump:
-         state = static_cast<re_jump*>(state)->alt.p;
-         continue;
-      case syntax_element_alt:
-         {
-            int r1 = calculate_backstep(state->next.p);
-            int r2 = calculate_backstep(static_cast<re_alt*>(state)->alt.p);
-            if((r1 < 0) || (r1 != r2))
-               return -1;
-            return result + r1;
-         }
-      default:
-         break;
-      }
-      state = state->next.p;
-   }
-   return -1;
-}
-
-template <class charT, class traits>
-void basic_regex_creator<charT, traits>::create_startmap(re_syntax_base* state, unsigned char* l_map, unsigned int* pnull, unsigned char mask)
-{
-   int not_last_jump = 1;
-   re_syntax_base* recursion_start = 0;
-   int recursion_sub = 0;
-   re_syntax_base* recursion_restart = 0;
-
-   // track case sensitivity:
-   bool l_icase = m_icase;
-
-   while(state)
-   {
-      switch(state->type)
-      {
-      case syntax_element_toggle_case:
-         l_icase = static_cast<re_case*>(state)->icase;
-         state = state->next.p;
-         break;
-      case syntax_element_literal:
-      {
-         // don't set anything in *pnull, set each element in l_map
-         // that could match the first character in the literal:
-         if(l_map)
-         {
-            l_map[0] |= mask_init;
-            charT first_char = *static_cast<charT*>(static_cast<void*>(static_cast<re_literal*>(state) + 1));
-            for(unsigned int i = 0; i < (1u << CHAR_BIT); ++i)
-            {
-               if(m_traits.translate(static_cast<charT>(i), l_icase) == first_char)
-                  l_map[i] |= mask;
-            }
-         }
-         return;
-      }
-      case syntax_element_end_line:
-      {
-         // next character must be a line separator (if there is one):
-         if(l_map)
-         {
-            l_map[0] |= mask_init;
-            l_map[static_cast<unsigned>('\n')] |= mask;
-            l_map[static_cast<unsigned>('\r')] |= mask;
-            l_map[static_cast<unsigned>('\f')] |= mask;
-            l_map[0x85] |= mask;
-         }
-         // now figure out if we can match a NULL string at this point:
-         if(pnull)
-            create_startmap(state->next.p, 0, pnull, mask);
-         return;
-      }
-      case syntax_element_recurse:
-         {
-            if(state->type == syntax_element_startmark)
-               recursion_sub = static_cast<re_brace*>(state)->index;
-            else
-               recursion_sub = 0;
-            if(m_recursion_checks[recursion_sub])
-            {
-               // Infinite recursion!!
-               if(0 == this->m_pdata->m_status) // update the error code if not already set
-                  this->m_pdata->m_status = ndnboost::regex_constants::error_bad_pattern;
-               //
-               // clear the expression, we should be empty:
-               //
-               this->m_pdata->m_expression = 0;
-               this->m_pdata->m_expression_len = 0;
-               //
-               // and throw if required:
-               //
-               if(0 == (this->flags() & regex_constants::no_except))
-               {
-                  std::string message = "Encountered an infinite recursion.";
-                  ndnboost::regex_error e(message, ndnboost::regex_constants::error_bad_pattern, 0);
-                  e.raise();
-               }
-            }
-            else if(recursion_start == 0)
-            {
-               recursion_start = state;
-               recursion_restart = state->next.p;
-               state = static_cast<re_jump*>(state)->alt.p;
-               m_recursion_checks[recursion_sub] = true;
-               break;
-            }
-            m_recursion_checks[recursion_sub] = true;
-            // can't handle nested recursion here...
-            NDNBOOST_FALLTHROUGH;
-         }
-      case syntax_element_backref:
-         // can be null, and any character can match:
-         if(pnull)
-            *pnull |= mask;
-         NDNBOOST_FALLTHROUGH;
-      case syntax_element_wild:
-      {
-         // can't be null, any character can match:
-         set_all_masks(l_map, mask);
-         return;
-      }
-      case syntax_element_match:
-      {
-         // must be null, any character can match:
-         set_all_masks(l_map, mask);
-         if(pnull)
-            *pnull |= mask;
-         return;
-      }
-      case syntax_element_word_start:
-      {
-         // recurse, then AND with all the word characters:
-         create_startmap(state->next.p, l_map, pnull, mask);
-         if(l_map)
-         {
-            l_map[0] |= mask_init;
-            for(unsigned int i = 0; i < (1u << CHAR_BIT); ++i)
-            {
-               if(!m_traits.isctype(static_cast<charT>(i), m_word_mask))
-                  l_map[i] &= static_cast<unsigned char>(~mask);
-            }
-         }
-         return;
-      }
-      case syntax_element_word_end:
-      {
-         // recurse, then AND with all the word characters:
-         create_startmap(state->next.p, l_map, pnull, mask);
-         if(l_map)
-         {
-            l_map[0] |= mask_init;
-            for(unsigned int i = 0; i < (1u << CHAR_BIT); ++i)
-            {
-               if(m_traits.isctype(static_cast<charT>(i), m_word_mask))
-                  l_map[i] &= static_cast<unsigned char>(~mask);
-            }
-         }
-         return;
-      }
-      case syntax_element_buffer_end:
-      {
-         // we *must be null* :
-         if(pnull)
-            *pnull |= mask;
-         return;
-      }
-      case syntax_element_long_set:
-         if(l_map)
-         {
-            typedef typename traits::char_class_type m_type;
-            if(static_cast<re_set_long<m_type>*>(state)->singleton)
-            {
-               l_map[0] |= mask_init;
-               for(unsigned int i = 0; i < (1u << CHAR_BIT); ++i)
-               {
-                  charT c = static_cast<charT>(i);
-                  if(&c != re_is_set_member(&c, &c + 1, static_cast<re_set_long<m_type>*>(state), *m_pdata, l_icase))
-                     l_map[i] |= mask;
-               }
-            }
-            else
-               set_all_masks(l_map, mask);
-         }
-         return;
-      case syntax_element_set:
-         if(l_map)
-         {
-            l_map[0] |= mask_init;
-            for(unsigned int i = 0; i < (1u << CHAR_BIT); ++i)
-            {
-               if(static_cast<re_set*>(state)->_map[
-                  static_cast<unsigned char>(m_traits.translate(static_cast<charT>(i), l_icase))])
-                  l_map[i] |= mask;
-            }
-         }
-         return;
-      case syntax_element_jump:
-         // take the jump:
-         state = static_cast<re_alt*>(state)->alt.p;
-         not_last_jump = -1;
-         break;
-      case syntax_element_alt:
-      case syntax_element_rep:
-      case syntax_element_dot_rep:
-      case syntax_element_char_rep:
-      case syntax_element_short_set_rep:
-      case syntax_element_long_set_rep:
-         {
-            re_alt* rep = static_cast<re_alt*>(state);
-            if(rep->_map[0] & mask_init)
-            {
-               if(l_map)
-               {
-                  // copy previous results:
-                  l_map[0] |= mask_init;
-                  for(unsigned int i = 0; i <= UCHAR_MAX; ++i)
-                  {
-                     if(rep->_map[i] & mask_any)
-                        l_map[i] |= mask;
-                  }
-               }
-               if(pnull)
-               {
-                  if(rep->can_be_null & mask_any)
-                     *pnull |= mask;
-               }
-            }
-            else
-            {
-               // we haven't created a startmap for this alternative yet
-               // so take the union of the two options:
-               if(is_bad_repeat(state))
-               {
-                  set_all_masks(l_map, mask);
-                  if(pnull)
-                     *pnull |= mask;
-                  return;
-               }
-               set_bad_repeat(state);
-               create_startmap(state->next.p, l_map, pnull, mask);
-               if((state->type == syntax_element_alt)
-                  || (static_cast<re_repeat*>(state)->min == 0)
-                  || (not_last_jump == 0))
-                  create_startmap(rep->alt.p, l_map, pnull, mask);
-            }
-         }
-         return;
-      case syntax_element_soft_buffer_end:
-         // match newline or null:
-         if(l_map)
-         {
-            l_map[0] |= mask_init;
-            l_map[static_cast<unsigned>('\n')] |= mask;
-            l_map[static_cast<unsigned>('\r')] |= mask;
-         }
-         if(pnull)
-            *pnull |= mask;
-         return;
-      case syntax_element_endmark:
-         // need to handle independent subs as a special case:
-         if(static_cast<re_brace*>(state)->index < 0)
-         {
-            // can be null, any character can match:
-            set_all_masks(l_map, mask);
-            if(pnull)
-               *pnull |= mask;
-            return;
-         }
-         else if(recursion_start && (recursion_sub != 0) && (recursion_sub == static_cast<re_brace*>(state)->index))
-         {
-            // recursion termination:
-            recursion_start = 0;
-            state = recursion_restart;
-            break;
-         }
-
-         //
-         // Normally we just go to the next state... but if this sub-expression is
-         // the target of a recursion, then we might be ending a recursion, in which
-         // case we should check whatever follows that recursion, as well as whatever
-         // follows this state:
-         //
-         if(m_pdata->m_has_recursions && static_cast<re_brace*>(state)->index)
-         {
-            bool ok = false;
-            re_syntax_base* p = m_pdata->m_first_state;
-            while(p)
-            {
-               if(p->type == syntax_element_recurse)
-               {
-                  re_brace* p2 = static_cast<re_brace*>(static_cast<re_jump*>(p)->alt.p);
-                  if((p2->type == syntax_element_startmark) && (p2->index == static_cast<re_brace*>(state)->index))
-                  {
-                     ok = true;
-                     break;
-                  }
-               }
-               p = p->next.p;
-            }
-            if(ok)
-            {
-               create_startmap(p->next.p, l_map, pnull, mask);
-            }
-         }
-         state = state->next.p;
-         break;
-
-      case syntax_element_startmark:
-         // need to handle independent subs as a special case:
-         if(static_cast<re_brace*>(state)->index == -3)
-         {
-            state = state->next.p->next.p;
-            break;
-         }
-         NDNBOOST_FALLTHROUGH;
-      default:
-         state = state->next.p;
-      }
-      ++not_last_jump;
-   }
-}
-
-template <class charT, class traits>
-unsigned basic_regex_creator<charT, traits>::get_restart_type(re_syntax_base* state)
-{
-   //
-   // find out how the machine starts, so we can optimise the search:
-   //
-   while(state)
-   {
-      switch(state->type)
-      {
-      case syntax_element_startmark:
-      case syntax_element_endmark:
-         state = state->next.p;
-         continue;
-      case syntax_element_start_line:
-         return regbase::restart_line;
-      case syntax_element_word_start:
-         return regbase::restart_word;
-      case syntax_element_buffer_start:
-         return regbase::restart_buf;
-      case syntax_element_restart_continue:
-         return regbase::restart_continue;
-      default:
-         state = 0;
-         continue;
-      }
-   }
-   return regbase::restart_any;
-}
-
-template <class charT, class traits>
-void basic_regex_creator<charT, traits>::set_all_masks(unsigned char* bits, unsigned char mask)
-{
-   //
-   // set mask in all of bits elements, 
-   // if bits[0] has mask_init not set then we can 
-   // optimise this to a call to memset:
-   //
-   if(bits)
-   {
-      if(bits[0] == 0)
-         (std::memset)(bits, mask, 1u << CHAR_BIT);
-      else
-      {
-         for(unsigned i = 0; i < (1u << CHAR_BIT); ++i)
-            bits[i] |= mask;
-      }
-      bits[0] |= mask_init;
-   }
-}
-
-template <class charT, class traits>
-bool basic_regex_creator<charT, traits>::is_bad_repeat(re_syntax_base* pt)
-{
-   switch(pt->type)
-   {
-   case syntax_element_rep:
-   case syntax_element_dot_rep:
-   case syntax_element_char_rep:
-   case syntax_element_short_set_rep:
-   case syntax_element_long_set_rep:
-      {
-         unsigned state_id = static_cast<re_repeat*>(pt)->state_id;
-         if(state_id > sizeof(m_bad_repeats) * CHAR_BIT)
-            return true;  // run out of bits, assume we can't traverse this one.
-         static const ndnboost::uintmax_t one = 1uL;
-         return m_bad_repeats & (one << state_id);
-      }
-   default:
-      return false;
-   }
-}
-
-template <class charT, class traits>
-void basic_regex_creator<charT, traits>::set_bad_repeat(re_syntax_base* pt)
-{
-   switch(pt->type)
-   {
-   case syntax_element_rep:
-   case syntax_element_dot_rep:
-   case syntax_element_char_rep:
-   case syntax_element_short_set_rep:
-   case syntax_element_long_set_rep:
-      {
-         unsigned state_id = static_cast<re_repeat*>(pt)->state_id;
-         static const ndnboost::uintmax_t one = 1uL;
-         if(state_id <= sizeof(m_bad_repeats) * CHAR_BIT)
-            m_bad_repeats |= (one << state_id);
-      }
-      break;
-   default:
-      break;
-   }
-}
-
-template <class charT, class traits>
-syntax_element_type basic_regex_creator<charT, traits>::get_repeat_type(re_syntax_base* state)
-{
-   typedef typename traits::char_class_type m_type;
-   if(state->type == syntax_element_rep)
-   {
-      // check to see if we are repeating a single state:
-      if(state->next.p->next.p->next.p == static_cast<re_alt*>(state)->alt.p)
-      {
-         switch(state->next.p->type)
-         {
-         case re_detail::syntax_element_wild:
-            return re_detail::syntax_element_dot_rep;
-         case re_detail::syntax_element_literal:
-            return re_detail::syntax_element_char_rep;
-         case re_detail::syntax_element_set:
-            return re_detail::syntax_element_short_set_rep;
-         case re_detail::syntax_element_long_set:
-            if(static_cast<re_detail::re_set_long<m_type>*>(state->next.p)->singleton)
-               return re_detail::syntax_element_long_set_rep;
-            break;
-         default:
-            break;
-         }
-      }
-   }
-   return state->type;
-}
-
-template <class charT, class traits>
-void basic_regex_creator<charT, traits>::probe_leading_repeat(re_syntax_base* state)
-{
-   // enumerate our states, and see if we have a leading repeat 
-   // for which failed search restarts can be optimised;
-   do
-   {
-      switch(state->type)
-      {
-      case syntax_element_startmark:
-         if(static_cast<re_brace*>(state)->index >= 0)
-         {
-            state = state->next.p;
-            continue;
-         }
-         if((static_cast<re_brace*>(state)->index == -1)
-            || (static_cast<re_brace*>(state)->index == -2))
-         {
-            // skip past the zero width assertion:
-            state = static_cast<const re_jump*>(state->next.p)->alt.p->next.p;
-            continue;
-         }
-         if(static_cast<re_brace*>(state)->index == -3)
-         {
-            // Have to skip the leading jump state:
-            state = state->next.p->next.p;
-            continue;
-         }
-         return;
-      case syntax_element_endmark:
-      case syntax_element_start_line:
-      case syntax_element_end_line:
-      case syntax_element_word_boundary:
-      case syntax_element_within_word:
-      case syntax_element_word_start:
-      case syntax_element_word_end:
-      case syntax_element_buffer_start:
-      case syntax_element_buffer_end:
-      case syntax_element_restart_continue:
-         state = state->next.p;
-         break;
-      case syntax_element_dot_rep:
-      case syntax_element_char_rep:
-      case syntax_element_short_set_rep:
-      case syntax_element_long_set_rep:
-         if(this->m_has_backrefs == 0)
-            static_cast<re_repeat*>(state)->leading = true;
-         NDNBOOST_FALLTHROUGH;
-      default:
-         return;
-      }
-   }while(state);
-}
-
-
-} // namespace re_detail
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/basic_regex_parser.hpp b/include/ndnboost/regex/v4/basic_regex_parser.hpp
deleted file mode 100644
index 2f72e44..0000000
--- a/include/ndnboost/regex/v4/basic_regex_parser.hpp
+++ /dev/null
@@ -1,2874 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         basic_regex_parser.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares template class basic_regex_parser.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_BASIC_REGEX_PARSER_HPP
-#define NDNBOOST_REGEX_V4_BASIC_REGEX_PARSER_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-namespace re_detail{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4244 4800)
-#endif
-
-template <class charT, class traits>
-class basic_regex_parser : public basic_regex_creator<charT, traits>
-{
-public:
-   basic_regex_parser(regex_data<charT, traits>* data);
-   void parse(const charT* p1, const charT* p2, unsigned flags);
-   void fail(regex_constants::error_type error_code, std::ptrdiff_t position);
-   void fail(regex_constants::error_type error_code, std::ptrdiff_t position, std::string message, std::ptrdiff_t start_pos);
-   void fail(regex_constants::error_type error_code, std::ptrdiff_t position, const std::string& message)
-   {
-      fail(error_code, position, message, position);
-   }
-
-   bool parse_all();
-   bool parse_basic();
-   bool parse_extended();
-   bool parse_literal();
-   bool parse_open_paren();
-   bool parse_basic_escape();
-   bool parse_extended_escape();
-   bool parse_match_any();
-   bool parse_repeat(std::size_t low = 0, std::size_t high = (std::numeric_limits<std::size_t>::max)());
-   bool parse_repeat_range(bool isbasic);
-   bool parse_alt();
-   bool parse_set();
-   bool parse_backref();
-   void parse_set_literal(basic_char_set<charT, traits>& char_set);
-   bool parse_inner_set(basic_char_set<charT, traits>& char_set);
-   bool parse_QE();
-   bool parse_perl_extension();
-   bool add_emacs_code(bool negate);
-   bool unwind_alts(std::ptrdiff_t last_paren_start);
-   digraph<charT> get_next_set_literal(basic_char_set<charT, traits>& char_set);
-   charT unescape_character();
-   regex_constants::syntax_option_type parse_options();
-
-private:
-   typedef bool (basic_regex_parser::*parser_proc_type)();
-   typedef typename traits::string_type string_type;
-   typedef typename traits::char_class_type char_class_type;
-   parser_proc_type           m_parser_proc;    // the main parser to use
-   const charT*               m_base;           // the start of the string being parsed
-   const charT*               m_end;            // the end of the string being parsed
-   const charT*               m_position;       // our current parser position
-   unsigned                   m_mark_count;     // how many sub-expressions we have
-   int                        m_mark_reset;     // used to indicate that we're inside a (?|...) block.
-   unsigned                   m_max_mark;       // largest mark count seen inside a (?|...) block.
-   std::ptrdiff_t             m_paren_start;    // where the last seen ')' began (where repeats are inserted).
-   std::ptrdiff_t             m_alt_insert_point; // where to insert the next alternative
-   bool                       m_has_case_change; // true if somewhere in the current block the case has changed
-#if defined(NDNBOOST_MSVC) && defined(_M_IX86)
-   // This is an ugly warning suppression workaround (for warnings *inside* std::vector
-   // that can not otherwise be suppressed)...
-   NDNBOOST_STATIC_ASSERT(sizeof(long) >= sizeof(void*));
-   std::vector<long>           m_alt_jumps;      // list of alternative in the current scope.
-#else
-   std::vector<std::ptrdiff_t> m_alt_jumps;      // list of alternative in the current scope.
-#endif
-
-   basic_regex_parser& operator=(const basic_regex_parser&);
-   basic_regex_parser(const basic_regex_parser&);
-};
-
-template <class charT, class traits>
-basic_regex_parser<charT, traits>::basic_regex_parser(regex_data<charT, traits>* data)
-   : basic_regex_creator<charT, traits>(data), m_mark_count(0), m_mark_reset(-1), m_max_mark(0), m_paren_start(0), m_alt_insert_point(0), m_has_case_change(false)
-{
-}
-
-template <class charT, class traits>
-void basic_regex_parser<charT, traits>::parse(const charT* p1, const charT* p2, unsigned l_flags)
-{
-   // pass l_flags on to base class:
-   this->init(l_flags);
-   // set up pointers:
-   m_position = m_base = p1;
-   m_end = p2;
-   // empty strings are errors:
-   if((p1 == p2) && 
-      (
-         ((l_flags & regbase::main_option_type) != regbase::perl_syntax_group)
-         || (l_flags & regbase::no_empty_expressions)
-      )
-     )
-   {
-      fail(regex_constants::error_empty, 0);
-      return;
-   }
-   // select which parser to use:
-   switch(l_flags & regbase::main_option_type)
-   {
-   case regbase::perl_syntax_group:
-      {
-         m_parser_proc = &basic_regex_parser<charT, traits>::parse_extended;
-         //
-         // Add a leading paren with index zero to give recursions a target:
-         //
-         re_brace* br = static_cast<re_brace*>(this->append_state(syntax_element_startmark, sizeof(re_brace)));
-         br->index = 0;
-         br->icase = this->flags() & regbase::icase;
-         break;
-      }
-   case regbase::basic_syntax_group:
-      m_parser_proc = &basic_regex_parser<charT, traits>::parse_basic;
-      break;
-   case regbase::literal:
-      m_parser_proc = &basic_regex_parser<charT, traits>::parse_literal;
-      break;
-   default:
-      // Ooops, someone has managed to set more than one of the main option flags, 
-      // so this must be an error:
-      fail(regex_constants::error_unknown, 0, "An invalid combination of regular expression syntax flags was used.");
-      return;
-   }
-
-   // parse all our characters:
-   bool result = parse_all();
-   //
-   // Unwind our alternatives:
-   //
-   unwind_alts(-1);
-   // reset l_flags as a global scope (?imsx) may have altered them:
-   this->flags(l_flags);
-   // if we haven't gobbled up all the characters then we must
-   // have had an unexpected ')' :
-   if(!result)
-   {
-      fail(regex_constants::error_paren, ::ndnboost::re_detail::distance(m_base, m_position), "Found a closing ) with no corresponding openening parenthesis.");
-      return;
-   }
-   // if an error has been set then give up now:
-   if(this->m_pdata->m_status)
-      return;
-   // fill in our sub-expression count:
-   this->m_pdata->m_mark_count = 1 + m_mark_count;
-   this->finalize(p1, p2);
-}
-
-template <class charT, class traits>
-void basic_regex_parser<charT, traits>::fail(regex_constants::error_type error_code, std::ptrdiff_t position)
-{
-   // get the error message:
-   std::string message = this->m_pdata->m_ptraits->error_string(error_code);
-   fail(error_code, position, message);
-}
-
-template <class charT, class traits>
-void basic_regex_parser<charT, traits>::fail(regex_constants::error_type error_code, std::ptrdiff_t position, std::string message, std::ptrdiff_t start_pos)
-{
-   if(0 == this->m_pdata->m_status) // update the error code if not already set
-      this->m_pdata->m_status = error_code;
-   m_position = m_end; // don't bother parsing anything else
-
-#ifndef NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-   //
-   // Augment error message with the regular expression text:
-   //
-   if(start_pos == position)
-      start_pos = (std::max)(static_cast<std::ptrdiff_t>(0), position - static_cast<std::ptrdiff_t>(10));
-   std::ptrdiff_t end_pos = (std::min)(position + static_cast<std::ptrdiff_t>(10), static_cast<std::ptrdiff_t>(m_end - m_base));
-   if(error_code != regex_constants::error_empty)
-   {
-      if((start_pos != 0) || (end_pos != (m_end - m_base)))
-         message += "  The error occurred while parsing the regular expression fragment: '";
-      else
-         message += "  The error occurred while parsing the regular expression: '";
-      if(start_pos != end_pos)
-      {
-         message += std::string(m_base + start_pos, m_base + position);
-         message += ">>>HERE>>>";
-         message += std::string(m_base + position, m_base + end_pos);
-      }
-      message += "'.";
-   }
-#endif
-
-#ifndef NDNBOOST_NO_EXCEPTIONS
-   if(0 == (this->flags() & regex_constants::no_except))
-   {
-      ndnboost::regex_error e(message, error_code, position);
-      e.raise();
-   }
-#else
-   (void)position; // suppress warnings.
-#endif
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_all()
-{
-   bool result = true;
-   while(result && (m_position != m_end))
-   {
-      result = (this->*m_parser_proc)();
-   }
-   return result;
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4702)
-#endif
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_basic()
-{
-   switch(this->m_traits.syntax_type(*m_position))
-   {
-   case regex_constants::syntax_escape:
-      return parse_basic_escape();
-   case regex_constants::syntax_dot:
-      return parse_match_any();
-   case regex_constants::syntax_caret:
-      ++m_position;
-      this->append_state(syntax_element_start_line);
-      break;
-   case regex_constants::syntax_dollar:
-      ++m_position;
-      this->append_state(syntax_element_end_line);
-      break;
-   case regex_constants::syntax_star:
-      if(!(this->m_last_state) || (this->m_last_state->type == syntax_element_start_line))
-         return parse_literal();
-      else
-      {
-         ++m_position;
-         return parse_repeat();
-      }
-   case regex_constants::syntax_plus:
-      if(!(this->m_last_state) || (this->m_last_state->type == syntax_element_start_line) || !(this->flags() & regbase::emacs_ex))
-         return parse_literal();
-      else
-      {
-         ++m_position;
-         return parse_repeat(1);
-      }
-   case regex_constants::syntax_question:
-      if(!(this->m_last_state) || (this->m_last_state->type == syntax_element_start_line) || !(this->flags() & regbase::emacs_ex))
-         return parse_literal();
-      else
-      {
-         ++m_position;
-         return parse_repeat(0, 1);
-      }
-   case regex_constants::syntax_open_set:
-      return parse_set();
-   case regex_constants::syntax_newline:
-      if(this->flags() & regbase::newline_alt)
-         return parse_alt();
-      else
-         return parse_literal();
-   default:
-      return parse_literal();
-   }
-   return true;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_extended()
-{
-   bool result = true;
-   switch(this->m_traits.syntax_type(*m_position))
-   {
-   case regex_constants::syntax_open_mark:
-      return parse_open_paren();
-   case regex_constants::syntax_close_mark:
-      return false;
-   case regex_constants::syntax_escape:
-      return parse_extended_escape();
-   case regex_constants::syntax_dot:
-      return parse_match_any();
-   case regex_constants::syntax_caret:
-      ++m_position;
-      this->append_state(
-         (this->flags() & regex_constants::no_mod_m ? syntax_element_buffer_start : syntax_element_start_line));
-      break;
-   case regex_constants::syntax_dollar:
-      ++m_position;
-      this->append_state(
-         (this->flags() & regex_constants::no_mod_m ? syntax_element_buffer_end : syntax_element_end_line));
-      break;
-   case regex_constants::syntax_star:
-      if(m_position == this->m_base)
-      {
-         fail(regex_constants::error_badrepeat, 0, "The repeat operator \"*\" cannot start a regular expression.");
-         return false;
-      }
-      ++m_position;
-      return parse_repeat();
-   case regex_constants::syntax_question:
-      if(m_position == this->m_base)
-      {
-         fail(regex_constants::error_badrepeat, 0, "The repeat operator \"?\" cannot start a regular expression.");
-         return false;
-      }
-      ++m_position;
-      return parse_repeat(0,1);
-   case regex_constants::syntax_plus:
-      if(m_position == this->m_base)
-      {
-         fail(regex_constants::error_badrepeat, 0, "The repeat operator \"+\" cannot start a regular expression.");
-         return false;
-      }
-      ++m_position;
-      return parse_repeat(1);
-   case regex_constants::syntax_open_brace:
-      ++m_position;
-      return parse_repeat_range(false);
-   case regex_constants::syntax_close_brace:
-      fail(regex_constants::error_brace, this->m_position - this->m_base, "Found a closing repetition operator } with no corresponding {.");
-      return false;
-   case regex_constants::syntax_or:
-      return parse_alt();
-   case regex_constants::syntax_open_set:
-      return parse_set();
-   case regex_constants::syntax_newline:
-      if(this->flags() & regbase::newline_alt)
-         return parse_alt();
-      else
-         return parse_literal();
-   case regex_constants::syntax_hash:
-      //
-      // If we have a mod_x flag set, then skip until
-      // we get to a newline character:
-      //
-      if((this->flags() 
-         & (regbase::no_perl_ex|regbase::mod_x))
-         == regbase::mod_x)
-      {
-         while((m_position != m_end) && !is_separator(*m_position++)){}
-         return true;
-      }
-      NDNBOOST_FALLTHROUGH;
-   default:
-      result = parse_literal();
-      break;
-   }
-   return result;
-}
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_literal()
-{
-   // append this as a literal provided it's not a space character
-   // or the perl option regbase::mod_x is not set:
-   if(
-      ((this->flags() 
-         & (regbase::main_option_type|regbase::mod_x|regbase::no_perl_ex)) 
-            != regbase::mod_x)
-      || !this->m_traits.isctype(*m_position, this->m_mask_space))
-         this->append_literal(*m_position);
-   ++m_position;
-   return true;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_open_paren()
-{
-   //
-   // skip the '(' and error check:
-   //
-   if(++m_position == m_end)
-   {
-      fail(regex_constants::error_paren, m_position - m_base);
-      return false;
-   }
-   //
-   // begin by checking for a perl-style (?...) extension:
-   //
-   if(
-         ((this->flags() & (regbase::main_option_type | regbase::no_perl_ex)) == 0)
-         || ((this->flags() & (regbase::main_option_type | regbase::emacs_ex)) == (regbase::basic_syntax_group|regbase::emacs_ex))
-     )
-   {
-      if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_question)
-         return parse_perl_extension();
-   }
-   //
-   // update our mark count, and append the required state:
-   //
-   unsigned markid = 0;
-   if(0 == (this->flags() & regbase::nosubs))
-   {
-      markid = ++m_mark_count;
-#ifndef NDNBOOST_NO_STD_DISTANCE
-      if(this->flags() & regbase::save_subexpression_location)
-         this->m_pdata->m_subs.push_back(std::pair<std::size_t, std::size_t>(std::distance(m_base, m_position) - 1, 0));
-#else
-      if(this->flags() & regbase::save_subexpression_location)
-         this->m_pdata->m_subs.push_back(std::pair<std::size_t, std::size_t>((m_position - m_base) - 1, 0));
-#endif
-   }
-   re_brace* pb = static_cast<re_brace*>(this->append_state(syntax_element_startmark, sizeof(re_brace)));
-   pb->index = markid;
-   pb->icase = this->flags() & regbase::icase;
-   std::ptrdiff_t last_paren_start = this->getoffset(pb);
-   // back up insertion point for alternations, and set new point:
-   std::ptrdiff_t last_alt_point = m_alt_insert_point;
-   this->m_pdata->m_data.align();
-   m_alt_insert_point = this->m_pdata->m_data.size();
-   //
-   // back up the current flags in case we have a nested (?imsx) group:
-   //
-   regex_constants::syntax_option_type opts = this->flags();
-   bool old_case_change = m_has_case_change;
-   m_has_case_change = false; // no changes to this scope as yet...
-   //
-   // Back up branch reset data in case we have a nested (?|...)
-   //
-   int mark_reset = m_mark_reset;
-   m_mark_reset = -1;
-   //
-   // now recursively add more states, this will terminate when we get to a
-   // matching ')' :
-   //
-   parse_all();
-   //
-   // Unwind pushed alternatives:
-   //
-   if(0 == unwind_alts(last_paren_start))
-      return false;
-   //
-   // restore flags:
-   //
-   if(m_has_case_change)
-   {
-      // the case has changed in one or more of the alternatives
-      // within the scoped (...) block: we have to add a state
-      // to reset the case sensitivity:
-      static_cast<re_case*>(
-         this->append_state(syntax_element_toggle_case, sizeof(re_case))
-         )->icase = opts & regbase::icase;
-   }
-   this->flags(opts);
-   m_has_case_change = old_case_change;
-   //
-   // restore branch reset:
-   //
-   m_mark_reset = mark_reset;
-   //
-   // we either have a ')' or we have run out of characters prematurely:
-   //
-   if(m_position == m_end)
-   {
-      this->fail(regex_constants::error_paren, ::ndnboost::re_detail::distance(m_base, m_end));
-      return false;
-   }
-   NDNBOOST_ASSERT(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_close_mark);
-#ifndef NDNBOOST_NO_STD_DISTANCE
-   if(markid && (this->flags() & regbase::save_subexpression_location))
-      this->m_pdata->m_subs.at(markid - 1).second = std::distance(m_base, m_position);
-#else
-   if(markid && (this->flags() & regbase::save_subexpression_location))
-      this->m_pdata->m_subs.at(markid - 1).second = (m_position - m_base);
-#endif
-   ++m_position;
-   //
-   // append closing parenthesis state:
-   //
-   pb = static_cast<re_brace*>(this->append_state(syntax_element_endmark, sizeof(re_brace)));
-   pb->index = markid;
-   pb->icase = this->flags() & regbase::icase;
-   this->m_paren_start = last_paren_start;
-   //
-   // restore the alternate insertion point:
-   //
-   this->m_alt_insert_point = last_alt_point;
-   //
-   // allow backrefs to this mark:
-   //
-   if((markid > 0) && (markid < sizeof(unsigned) * CHAR_BIT))
-      this->m_backrefs |= 1u << (markid - 1);
-
-   return true;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_basic_escape()
-{
-   ++m_position;
-   bool result = true;
-   switch(this->m_traits.escape_syntax_type(*m_position))
-   {
-   case regex_constants::syntax_open_mark:
-      return parse_open_paren();
-   case regex_constants::syntax_close_mark:
-      return false;
-   case regex_constants::syntax_plus:
-      if(this->flags() & regex_constants::bk_plus_qm)
-      {
-         ++m_position;
-         return parse_repeat(1);
-      }
-      else
-         return parse_literal();
-   case regex_constants::syntax_question:
-      if(this->flags() & regex_constants::bk_plus_qm)
-      {
-         ++m_position;
-         return parse_repeat(0, 1);
-      }
-      else
-         return parse_literal();
-   case regex_constants::syntax_open_brace:
-      if(this->flags() & regbase::no_intervals)
-         return parse_literal();
-      ++m_position;
-      return parse_repeat_range(true);
-   case regex_constants::syntax_close_brace:
-      if(this->flags() & regbase::no_intervals)
-         return parse_literal();
-      fail(regex_constants::error_brace, this->m_position - this->m_base, "Found a closing repetition operator } with no corresponding {.");
-      return false;
-   case regex_constants::syntax_or:
-      if(this->flags() & regbase::bk_vbar)
-         return parse_alt();
-      else
-         result = parse_literal();
-      break;
-   case regex_constants::syntax_digit:
-      return parse_backref();
-   case regex_constants::escape_type_start_buffer:
-      if(this->flags() & regbase::emacs_ex)
-      {
-         ++m_position;
-         this->append_state(syntax_element_buffer_start);
-      }
-      else
-         result = parse_literal();
-      break;
-   case regex_constants::escape_type_end_buffer:
-      if(this->flags() & regbase::emacs_ex)
-      {
-         ++m_position;
-         this->append_state(syntax_element_buffer_end);
-      }
-      else
-         result = parse_literal();
-      break;
-   case regex_constants::escape_type_word_assert:
-      if(this->flags() & regbase::emacs_ex)
-      {
-         ++m_position;
-         this->append_state(syntax_element_word_boundary);
-      }
-      else
-         result = parse_literal();
-      break;
-   case regex_constants::escape_type_not_word_assert:
-      if(this->flags() & regbase::emacs_ex)
-      {
-         ++m_position;
-         this->append_state(syntax_element_within_word);
-      }
-      else
-         result = parse_literal();
-      break;
-   case regex_constants::escape_type_left_word:
-      if(this->flags() & regbase::emacs_ex)
-      {
-         ++m_position;
-         this->append_state(syntax_element_word_start);
-      }
-      else
-         result = parse_literal();
-      break;
-   case regex_constants::escape_type_right_word:
-      if(this->flags() & regbase::emacs_ex)
-      {
-         ++m_position;
-         this->append_state(syntax_element_word_end);
-      }
-      else
-         result = parse_literal();
-      break;
-   default:
-      if(this->flags() & regbase::emacs_ex)
-      {
-         bool negate = true;
-         switch(*m_position)
-         {
-         case 'w':
-            negate = false;
-            NDNBOOST_FALLTHROUGH;
-         case 'W':
-            {
-            basic_char_set<charT, traits> char_set;
-            if(negate)
-               char_set.negate();
-            char_set.add_class(this->m_word_mask);
-            if(0 == this->append_set(char_set))
-            {
-               fail(regex_constants::error_ctype, m_position - m_base);
-               return false;
-            }
-            ++m_position;
-            return true;
-            }
-         case 's':
-            negate = false;
-            NDNBOOST_FALLTHROUGH;
-         case 'S':
-            return add_emacs_code(negate);
-         case 'c':
-         case 'C':
-            // not supported yet:
-            fail(regex_constants::error_escape, m_position - m_base, "The \\c and \\C escape sequences are not supported by POSIX basic regular expressions: try the Perl syntax instead.");
-            return false;
-         default:
-            break;
-         }
-      }
-      result = parse_literal();
-      break;
-   }
-   return result;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_extended_escape()
-{
-   ++m_position;
-   if(m_position == m_end)
-   {
-      fail(regex_constants::error_escape, m_position - m_base, "Incomplete escape sequence found.");
-      return false;
-   }
-   bool negate = false; // in case this is a character class escape: \w \d etc
-   switch(this->m_traits.escape_syntax_type(*m_position))
-   {
-   case regex_constants::escape_type_not_class:
-      negate = true;
-      NDNBOOST_FALLTHROUGH;
-   case regex_constants::escape_type_class:
-      {
-escape_type_class_jump:
-         typedef typename traits::char_class_type m_type;
-         m_type m = this->m_traits.lookup_classname(m_position, m_position+1);
-         if(m != 0)
-         {
-            basic_char_set<charT, traits> char_set;
-            if(negate)
-               char_set.negate();
-            char_set.add_class(m);
-            if(0 == this->append_set(char_set))
-            {
-               fail(regex_constants::error_ctype, m_position - m_base);
-               return false;
-            }
-            ++m_position;
-            return true;
-         }
-         //
-         // not a class, just a regular unknown escape:
-         //
-         this->append_literal(unescape_character());
-         break;
-      }
-   case regex_constants::syntax_digit:
-      return parse_backref();
-   case regex_constants::escape_type_left_word:
-      ++m_position;
-      this->append_state(syntax_element_word_start);
-      break;
-   case regex_constants::escape_type_right_word:
-      ++m_position;
-      this->append_state(syntax_element_word_end);
-      break;
-   case regex_constants::escape_type_start_buffer:
-      ++m_position;
-      this->append_state(syntax_element_buffer_start);
-      break;
-   case regex_constants::escape_type_end_buffer:
-      ++m_position;
-      this->append_state(syntax_element_buffer_end);
-      break;
-   case regex_constants::escape_type_word_assert:
-      ++m_position;
-      this->append_state(syntax_element_word_boundary);
-      break;
-   case regex_constants::escape_type_not_word_assert:
-      ++m_position;
-      this->append_state(syntax_element_within_word);
-      break;
-   case regex_constants::escape_type_Z:
-      ++m_position;
-      this->append_state(syntax_element_soft_buffer_end);
-      break;
-   case regex_constants::escape_type_Q:
-      return parse_QE();
-   case regex_constants::escape_type_C:
-      return parse_match_any();
-   case regex_constants::escape_type_X:
-      ++m_position;
-      this->append_state(syntax_element_combining);
-      break;
-   case regex_constants::escape_type_G:
-      ++m_position;
-      this->append_state(syntax_element_restart_continue);
-      break;
-   case regex_constants::escape_type_not_property:
-      negate = true;
-      NDNBOOST_FALLTHROUGH;
-   case regex_constants::escape_type_property:
-      {
-         ++m_position;
-         char_class_type m;
-         if(m_position == m_end)
-         {
-            fail(regex_constants::error_escape, m_position - m_base, "Incomplete property escape found.");
-            return false;
-         }
-         // maybe have \p{ddd}
-         if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_open_brace)
-         {
-            const charT* base = m_position;
-            // skip forward until we find enclosing brace:
-            while((m_position != m_end) && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_brace))
-               ++m_position;
-            if(m_position == m_end)
-            {
-               fail(regex_constants::error_escape, m_position - m_base, "Closing } missing from property escape sequence.");
-               return false;
-            }
-            m = this->m_traits.lookup_classname(++base, m_position++);
-         }
-         else
-         {
-            m = this->m_traits.lookup_classname(m_position, m_position+1);
-            ++m_position;
-         }
-         if(m != 0)
-         {
-            basic_char_set<charT, traits> char_set;
-            if(negate)
-               char_set.negate();
-            char_set.add_class(m);
-            if(0 == this->append_set(char_set))
-            {
-               fail(regex_constants::error_ctype, m_position - m_base);
-               return false;
-            }
-            return true;
-         }
-         fail(regex_constants::error_ctype, m_position - m_base, "Escape sequence was neither a valid property nor a valid character class name.");
-         return false;
-      }
-   case regex_constants::escape_type_reset_start_mark:
-      if(0 == (this->flags() & (regbase::main_option_type | regbase::no_perl_ex)))
-      {
-         re_brace* pb = static_cast<re_brace*>(this->append_state(syntax_element_startmark, sizeof(re_brace)));
-         pb->index = -5;
-         pb->icase = this->flags() & regbase::icase;
-         this->m_pdata->m_data.align();
-         ++m_position;
-         return true;
-      }
-      goto escape_type_class_jump;
-   case regex_constants::escape_type_line_ending:
-      if(0 == (this->flags() & (regbase::main_option_type | regbase::no_perl_ex)))
-      {
-         const charT* e = get_escape_R_string<charT>();
-         const charT* old_position = m_position;
-         const charT* old_end = m_end;
-         const charT* old_base = m_base;
-         m_position = e;
-         m_base = e;
-         m_end = e + traits::length(e);
-         bool r = parse_all();
-         m_position = ++old_position;
-         m_end = old_end;
-         m_base = old_base;
-         return r;
-      }
-      goto escape_type_class_jump;
-   case regex_constants::escape_type_extended_backref:
-      if(0 == (this->flags() & (regbase::main_option_type | regbase::no_perl_ex)))
-      {
-         bool have_brace = false;
-         bool negative = false;
-         static const char* incomplete_message = "Incomplete \\g escape found.";
-         if(++m_position == m_end)
-         {
-            fail(regex_constants::error_escape, m_position - m_base, incomplete_message);
-            return false;
-         }
-         // maybe have \g{ddd}
-         regex_constants::syntax_type syn = this->m_traits.syntax_type(*m_position);
-         regex_constants::syntax_type syn_end = 0;
-         if((syn == regex_constants::syntax_open_brace) 
-            || (syn == regex_constants::escape_type_left_word)
-            || (syn == regex_constants::escape_type_end_buffer))
-         {
-            if(++m_position == m_end)
-            {
-               fail(regex_constants::error_escape, m_position - m_base, incomplete_message);
-               return false;
-            }
-            have_brace = true;
-            switch(syn)
-            {
-            case regex_constants::syntax_open_brace:
-               syn_end = regex_constants::syntax_close_brace;
-               break;
-            case regex_constants::escape_type_left_word:
-               syn_end = regex_constants::escape_type_right_word;
-               break;
-            default:
-               syn_end = regex_constants::escape_type_end_buffer;
-               break;
-            }
-         }
-         negative = (*m_position == static_cast<charT>('-'));
-         if((negative) && (++m_position == m_end))
-         {
-            fail(regex_constants::error_escape, m_position - m_base, incomplete_message);
-            return false;
-         }
-         const charT* pc = m_position;
-         int i = this->m_traits.toi(pc, m_end, 10);
-         if((i < 0) && syn_end)
-         {
-            // Check for a named capture, get the leftmost one if there is more than one:
-            const charT* base = m_position;
-            while((m_position != m_end) && (this->m_traits.syntax_type(*m_position) != syn_end))
-            {
-               ++m_position;
-            }
-            i = hash_value_from_capture_name(base, m_position);
-            pc = m_position;
-         }
-         if(negative)
-            i = 1 + m_mark_count - i;
-         if(((i > 0) && (this->m_backrefs & (1u << (i-1)))) || ((i > 10000) && (this->m_pdata->get_id(i) > 0) && (this->m_backrefs & (1u << (this->m_pdata->get_id(i)-1)))))
-         {
-            m_position = pc;
-            re_brace* pb = static_cast<re_brace*>(this->append_state(syntax_element_backref, sizeof(re_brace)));
-            pb->index = i;
-            pb->icase = this->flags() & regbase::icase;
-         }
-         else
-         {
-            fail(regex_constants::error_backref, m_position - m_base);
-            return false;
-         }
-         m_position = pc;
-         if(have_brace)
-         {
-            if((m_position == m_end) || (this->m_traits.syntax_type(*m_position) != syn_end))
-            {
-               fail(regex_constants::error_escape, m_position - m_base, incomplete_message);
-               return false;
-            }
-            ++m_position;
-         }
-         return true;
-      }
-      goto escape_type_class_jump;
-   case regex_constants::escape_type_control_v:
-      if(0 == (this->flags() & (regbase::main_option_type | regbase::no_perl_ex)))
-         goto escape_type_class_jump;
-      NDNBOOST_FALLTHROUGH;
-   default:
-      this->append_literal(unescape_character());
-      break;
-   }
-   return true;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_match_any()
-{
-   //
-   // we have a '.' that can match any character:
-   //
-   ++m_position;
-   static_cast<re_dot*>(
-      this->append_state(syntax_element_wild, sizeof(re_dot))
-      )->mask = static_cast<unsigned char>(this->flags() & regbase::no_mod_s 
-      ? re_detail::force_not_newline 
-         : this->flags() & regbase::mod_s ?
-            re_detail::force_newline : re_detail::dont_care);
-   return true;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_t high)
-{
-   bool greedy = true;
-   bool pocessive = false;
-   std::size_t insert_point;
-   // 
-   // when we get to here we may have a non-greedy ? mark still to come:
-   //
-   if((m_position != m_end) 
-      && (
-            (0 == (this->flags() & (regbase::main_option_type | regbase::no_perl_ex)))
-            || ((regbase::basic_syntax_group|regbase::emacs_ex) == (this->flags() & (regbase::main_option_type | regbase::emacs_ex)))
-         )
-      )
-   {
-      // OK we have a perl or emacs regex, check for a '?':
-      if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_question)
-      {
-         greedy = false;
-         ++m_position;
-      }
-      // for perl regexes only check for pocessive ++ repeats.
-      if((m_position != m_end)
-         && (0 == (this->flags() & regbase::main_option_type)) 
-         && (this->m_traits.syntax_type(*m_position) == regex_constants::syntax_plus))
-      {
-         pocessive = true;
-         ++m_position;
-      }
-   }
-   if(0 == this->m_last_state)
-   {
-      fail(regex_constants::error_badrepeat, ::ndnboost::re_detail::distance(m_base, m_position), "Nothing to repeat.");
-      return false;
-   }
-   if(this->m_last_state->type == syntax_element_endmark)
-   {
-      // insert a repeat before the '(' matching the last ')':
-      insert_point = this->m_paren_start;
-   }
-   else if((this->m_last_state->type == syntax_element_literal) && (static_cast<re_literal*>(this->m_last_state)->length > 1))
-   {
-      // the last state was a literal with more than one character, split it in two:
-      re_literal* lit = static_cast<re_literal*>(this->m_last_state);
-      charT c = (static_cast<charT*>(static_cast<void*>(lit+1)))[lit->length - 1];
-      --(lit->length);
-      // now append new state:
-      lit = static_cast<re_literal*>(this->append_state(syntax_element_literal, sizeof(re_literal) + sizeof(charT)));
-      lit->length = 1;
-      (static_cast<charT*>(static_cast<void*>(lit+1)))[0] = c;
-      insert_point = this->getoffset(this->m_last_state);
-   }
-   else
-   {
-      // repeat the last state whatever it was, need to add some error checking here:
-      switch(this->m_last_state->type)
-      {
-      case syntax_element_start_line:
-      case syntax_element_end_line:
-      case syntax_element_word_boundary:
-      case syntax_element_within_word:
-      case syntax_element_word_start:
-      case syntax_element_word_end:
-      case syntax_element_buffer_start:
-      case syntax_element_buffer_end:
-      case syntax_element_alt:
-      case syntax_element_soft_buffer_end:
-      case syntax_element_restart_continue:
-      case syntax_element_jump:
-      case syntax_element_startmark:
-      case syntax_element_backstep:
-         // can't legally repeat any of the above:
-         fail(regex_constants::error_badrepeat, m_position - m_base);
-         return false;
-      default:
-         // do nothing...
-         break;
-      }
-      insert_point = this->getoffset(this->m_last_state);
-   }
-   //
-   // OK we now know what to repeat, so insert the repeat around it:
-   //
-   re_repeat* rep = static_cast<re_repeat*>(this->insert_state(insert_point, syntax_element_rep, re_repeater_size));
-   rep->min = low;
-   rep->max = high;
-   rep->greedy = greedy;
-   rep->leading = false;
-   // store our repeater position for later:
-   std::ptrdiff_t rep_off = this->getoffset(rep);
-   // and append a back jump to the repeat:
-   re_jump* jmp = static_cast<re_jump*>(this->append_state(syntax_element_jump, sizeof(re_jump)));
-   jmp->alt.i = rep_off - this->getoffset(jmp);
-   this->m_pdata->m_data.align();
-   // now fill in the alt jump for the repeat:
-   rep = static_cast<re_repeat*>(this->getaddress(rep_off));
-   rep->alt.i = this->m_pdata->m_data.size() - rep_off;
-   //
-   // If the repeat is pocessive then bracket the repeat with a (?>...)
-   // independent sub-expression construct:
-   //
-   if(pocessive)
-   {
-      if(m_position != m_end)
-      {
-         //
-         // Check for illegal following quantifier, we have to do this here, because
-         // the extra states we insert below circumvents our usual error checking :-(
-         //
-         switch(this->m_traits.syntax_type(*m_position))
-         {
-         case regex_constants::syntax_star:
-         case regex_constants::syntax_plus:
-         case regex_constants::syntax_question:
-         case regex_constants::syntax_open_brace:
-            fail(regex_constants::error_badrepeat, m_position - m_base);
-            return false;
-         }
-      }
-      re_brace* pb = static_cast<re_brace*>(this->insert_state(insert_point, syntax_element_startmark, sizeof(re_brace)));
-      pb->index = -3;
-      pb->icase = this->flags() & regbase::icase;
-      jmp = static_cast<re_jump*>(this->insert_state(insert_point + sizeof(re_brace), syntax_element_jump, sizeof(re_jump)));
-      this->m_pdata->m_data.align();
-      jmp->alt.i = this->m_pdata->m_data.size() - this->getoffset(jmp);
-      pb = static_cast<re_brace*>(this->append_state(syntax_element_endmark, sizeof(re_brace)));
-      pb->index = -3;
-      pb->icase = this->flags() & regbase::icase;
-   }
-   return true;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_repeat_range(bool isbasic)
-{
-   static const char* incomplete_message = "Missing } in quantified repetition.";
-   //
-   // parse a repeat-range:
-   //
-   std::size_t min, max;
-   int v;
-   // skip whitespace:
-   while((m_position != m_end) && this->m_traits.isctype(*m_position, this->m_mask_space))
-      ++m_position;
-   if(this->m_position == this->m_end)
-   {
-      if(this->flags() & (regbase::main_option_type | regbase::no_perl_ex))
-      {
-         fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
-         return false;
-      }
-      // Treat the opening '{' as a literal character, rewind to start of error:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_brace) --m_position;
-      return parse_literal();
-   }
-   // get min:
-   v = this->m_traits.toi(m_position, m_end, 10);
-   // skip whitespace:
-   if(v < 0)
-   {
-      if(this->flags() & (regbase::main_option_type | regbase::no_perl_ex))
-      {
-         fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
-         return false;
-      }
-      // Treat the opening '{' as a literal character, rewind to start of error:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_brace) --m_position;
-      return parse_literal();
-   }
-   while((m_position != m_end) && this->m_traits.isctype(*m_position, this->m_mask_space))
-      ++m_position;
-   if(this->m_position == this->m_end)
-   {
-      if(this->flags() & (regbase::main_option_type | regbase::no_perl_ex))
-      {
-         fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
-         return false;
-      }
-      // Treat the opening '{' as a literal character, rewind to start of error:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_brace) --m_position;
-      return parse_literal();
-   }
-   min = v;
-   // see if we have a comma:
-   if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_comma)
-   {
-      // move on and error check:
-      ++m_position;
-      // skip whitespace:
-      while((m_position != m_end) && this->m_traits.isctype(*m_position, this->m_mask_space))
-         ++m_position;
-      if(this->m_position == this->m_end)
-      {
-         if(this->flags() & (regbase::main_option_type | regbase::no_perl_ex))
-         {
-            fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
-            return false;
-         }
-         // Treat the opening '{' as a literal character, rewind to start of error:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_brace) --m_position;
-         return parse_literal();
-      }
-      // get the value if any:
-      v = this->m_traits.toi(m_position, m_end, 10);
-      max = (v >= 0) ? (std::size_t)v : (std::numeric_limits<std::size_t>::max)();
-   }
-   else
-   {
-      // no comma, max = min:
-      max = min;
-   }
-   // skip whitespace:
-   while((m_position != m_end) && this->m_traits.isctype(*m_position, this->m_mask_space))
-      ++m_position;
-   // OK now check trailing }:
-   if(this->m_position == this->m_end)
-   {
-      if(this->flags() & (regbase::main_option_type | regbase::no_perl_ex))
-      {
-         fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
-         return false;
-      }
-      // Treat the opening '{' as a literal character, rewind to start of error:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_brace) --m_position;
-      return parse_literal();
-   }
-   if(isbasic)
-   {
-      if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_escape)
-      {
-         ++m_position;
-         if(this->m_position == this->m_end)
-         {
-            fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
-            return false;
-         }
-      }
-      else
-      {
-         fail(regex_constants::error_brace, this->m_position - this->m_base, incomplete_message);
-         return false;
-      }
-   }
-   if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_close_brace)
-      ++m_position;
-   else
-   {
-      // Treat the opening '{' as a literal character, rewind to start of error:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_brace) --m_position;
-      return parse_literal();
-   }
-   //
-   // finally go and add the repeat, unless error:
-   //
-   if(min > max)
-   {
-      // Backtrack to error location:
-      m_position -= 2;
-      while(this->m_traits.isctype(*m_position, this->m_word_mask)) --m_position;
-         ++m_position;
-      fail(regex_constants::error_badbrace, m_position - m_base);
-      return false;
-   }
-   return parse_repeat(min, max);
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_alt()
-{
-   //
-   // error check: if there have been no previous states,
-   // or if the last state was a '(' then error:
-   //
-   if(
-      ((this->m_last_state == 0) || (this->m_last_state->type == syntax_element_startmark))
-      &&
-      !(
-         ((this->flags() & regbase::main_option_type) == regbase::perl_syntax_group)
-           &&
-         ((this->flags() & regbase::no_empty_expressions) == 0)
-        )
-      )
-   {
-      fail(regex_constants::error_empty, this->m_position - this->m_base, "A regular expression can start with the alternation operator |.");
-      return false;
-   }
-   //
-   // Reset mark count if required:
-   //
-   if(m_max_mark < m_mark_count)
-      m_max_mark = m_mark_count;
-   if(m_mark_reset >= 0)
-      m_mark_count = m_mark_reset;
-
-   ++m_position;
-   //
-   // we need to append a trailing jump: 
-   //
-   re_syntax_base* pj = this->append_state(re_detail::syntax_element_jump, sizeof(re_jump));
-   std::ptrdiff_t jump_offset = this->getoffset(pj);
-   //
-   // now insert the alternative:
-   //
-   re_alt* palt = static_cast<re_alt*>(this->insert_state(this->m_alt_insert_point, syntax_element_alt, re_alt_size));
-   jump_offset += re_alt_size;
-   this->m_pdata->m_data.align();
-   palt->alt.i = this->m_pdata->m_data.size() - this->getoffset(palt);
-   //
-   // update m_alt_insert_point so that the next alternate gets
-   // inserted at the start of the second of the two we've just created:
-   //
-   this->m_alt_insert_point = this->m_pdata->m_data.size();
-   //
-   // the start of this alternative must have a case changes state
-   // if the current block has messed around with case changes:
-   //
-   if(m_has_case_change)
-   {
-      static_cast<re_case*>(
-         this->append_state(syntax_element_toggle_case, sizeof(re_case))
-         )->icase = this->m_icase;
-   }
-   //
-   // push the alternative onto our stack, a recursive
-   // implementation here is easier to understand (and faster
-   // as it happens), but causes all kinds of stack overflow problems
-   // on programs with small stacks (COM+).
-   //
-   m_alt_jumps.push_back(jump_offset);
-   return true;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_set()
-{
-   static const char* incomplete_message = "Character set declaration starting with [ terminated prematurely - either no ] was found or the set had no content.";
-   ++m_position;
-   if(m_position == m_end)
-   {
-      fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-      return false;
-   }
-   basic_char_set<charT, traits> char_set;
-
-   const charT* base = m_position;  // where the '[' was
-   const charT* item_base = m_position;  // where the '[' or '^' was
-
-   while(m_position != m_end)
-   {
-      switch(this->m_traits.syntax_type(*m_position))
-      {
-      case regex_constants::syntax_caret:
-         if(m_position == base)
-         {
-            char_set.negate();
-            ++m_position;
-            item_base = m_position;
-         }
-         else
-            parse_set_literal(char_set);
-         break;
-      case regex_constants::syntax_close_set:
-         if(m_position == item_base)
-         {
-            parse_set_literal(char_set);
-            break;
-         }
-         else
-         {
-            ++m_position;
-            if(0 == this->append_set(char_set))
-            {
-               fail(regex_constants::error_ctype, m_position - m_base);
-               return false;
-            }
-         }
-         return true;
-      case regex_constants::syntax_open_set:
-         if(parse_inner_set(char_set))
-            break;
-         return true;
-      case regex_constants::syntax_escape:
-         {
-            // 
-            // look ahead and see if this is a character class shortcut
-            // \d \w \s etc...
-            //
-            ++m_position;
-            if(this->m_traits.escape_syntax_type(*m_position)
-               == regex_constants::escape_type_class)
-            {
-               char_class_type m = this->m_traits.lookup_classname(m_position, m_position+1);
-               if(m != 0)
-               {
-                  char_set.add_class(m);
-                  ++m_position;
-                  break;
-               }
-            }
-            else if(this->m_traits.escape_syntax_type(*m_position)
-               == regex_constants::escape_type_not_class)
-            {
-               // negated character class:
-               char_class_type m = this->m_traits.lookup_classname(m_position, m_position+1);
-               if(m != 0)
-               {
-                  char_set.add_negated_class(m);
-                  ++m_position;
-                  break;
-               }
-            }
-            // not a character class, just a regular escape:
-            --m_position;
-            parse_set_literal(char_set);
-            break;
-         }
-      default:
-         parse_set_literal(char_set);
-         break;
-      }
-   }
-   return m_position != m_end;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_inner_set(basic_char_set<charT, traits>& char_set)
-{
-   static const char* incomplete_message = "Character class declaration starting with [ terminated prematurely - either no ] was found or the set had no content.";
-   //
-   // we have either a character class [:name:]
-   // a collating element [.name.]
-   // or an equivalence class [=name=]
-   //
-   if(m_end == ++m_position)
-   {
-      fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-      return false;
-   }
-   switch(this->m_traits.syntax_type(*m_position))
-   {
-   case regex_constants::syntax_dot:
-      //
-      // a collating element is treated as a literal:
-      //
-      --m_position;
-      parse_set_literal(char_set);
-      return true;
-   case regex_constants::syntax_colon:
-      {
-      // check that character classes are actually enabled:
-      if((this->flags() & (regbase::main_option_type | regbase::no_char_classes)) 
-         == (regbase::basic_syntax_group  | regbase::no_char_classes))
-      {
-         --m_position;
-         parse_set_literal(char_set);
-         return true;
-      }
-      // skip the ':'
-      if(m_end == ++m_position)
-      {
-         fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-         return false;
-      }
-      const charT* name_first = m_position;
-      // skip at least one character, then find the matching ':]'
-      if(m_end == ++m_position)
-      {
-         fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-         return false;
-      }
-      while((m_position != m_end) 
-         && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_colon)) 
-         ++m_position;
-      const charT* name_last = m_position;
-      if(m_end == m_position)
-      {
-         fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-         return false;
-      }
-      if((m_end == ++m_position) 
-         || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_set))
-      {
-         fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-         return false;
-      }
-      //
-      // check for negated class:
-      //
-      bool negated = false;
-      if(this->m_traits.syntax_type(*name_first) == regex_constants::syntax_caret)
-      {
-         ++name_first;
-         negated = true;
-      }
-      typedef typename traits::char_class_type m_type;
-      m_type m = this->m_traits.lookup_classname(name_first, name_last);
-      if(m == 0)
-      {
-         if(char_set.empty() && (name_last - name_first == 1))
-         {
-            // maybe a special case:
-            ++m_position;
-            if( (m_position != m_end) 
-               && (this->m_traits.syntax_type(*m_position) 
-                  == regex_constants::syntax_close_set))
-            {
-               if(this->m_traits.escape_syntax_type(*name_first) 
-                  == regex_constants::escape_type_left_word)
-               {
-                  ++m_position;
-                  this->append_state(syntax_element_word_start);
-                  return false;
-               }
-               if(this->m_traits.escape_syntax_type(*name_first) 
-                  == regex_constants::escape_type_right_word)
-               {
-                  ++m_position;
-                  this->append_state(syntax_element_word_end);
-                  return false;
-               }
-            }
-         }
-         fail(regex_constants::error_ctype, name_first - m_base);
-         return false;
-      }
-      if(negated == false)
-         char_set.add_class(m);
-      else
-         char_set.add_negated_class(m);
-      ++m_position;
-      break;
-   }
-   case regex_constants::syntax_equal:
-      {
-      // skip the '='
-      if(m_end == ++m_position)
-      {
-         fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-         return false;
-      }
-      const charT* name_first = m_position;
-      // skip at least one character, then find the matching '=]'
-      if(m_end == ++m_position)
-      {
-         fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-         return false;
-      }
-      while((m_position != m_end) 
-         && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_equal)) 
-         ++m_position;
-      const charT* name_last = m_position;
-      if(m_end == m_position)
-      {
-         fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-         return false;
-      }
-      if((m_end == ++m_position) 
-         || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_set))
-      {
-         fail(regex_constants::error_brack, m_position - m_base, incomplete_message);
-         return false;
-      }
-      string_type m = this->m_traits.lookup_collatename(name_first, name_last);
-      if((0 == m.size()) || (m.size() > 2))
-      {
-         fail(regex_constants::error_collate, name_first - m_base);
-         return false;
-      }
-      digraph<charT> d;
-      d.first = m[0];
-      if(m.size() > 1)
-         d.second = m[1];
-      else
-         d.second = 0;
-      char_set.add_equivalent(d);
-      ++m_position;
-      break;
-   }
-   default:
-      --m_position;
-      parse_set_literal(char_set);
-      break;
-   }
-   return true;
-}
-
-template <class charT, class traits>
-void basic_regex_parser<charT, traits>::parse_set_literal(basic_char_set<charT, traits>& char_set)
-{
-   digraph<charT> start_range(get_next_set_literal(char_set));
-   if(m_end == m_position)
-   {
-      fail(regex_constants::error_brack, m_position - m_base);
-      return;
-   }
-   if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_dash)
-   {
-      // we have a range:
-      if(m_end == ++m_position)
-      {
-         fail(regex_constants::error_brack, m_position - m_base);
-         return;
-      }
-      if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_set)
-      {
-         digraph<charT> end_range = get_next_set_literal(char_set);
-         char_set.add_range(start_range, end_range);
-         if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_dash)
-         {
-            if(m_end == ++m_position)
-            {
-               fail(regex_constants::error_brack, m_position - m_base);
-               return;
-            }
-            if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_close_set)
-            {
-               // trailing - :
-               --m_position;
-               return;
-            }
-            fail(regex_constants::error_range, m_position - m_base);
-            return;
-         }
-         return;
-      }
-      --m_position;
-   }
-   char_set.add_single(start_range);
-}
-
-template <class charT, class traits>
-digraph<charT> basic_regex_parser<charT, traits>::get_next_set_literal(basic_char_set<charT, traits>& char_set)
-{
-   digraph<charT> result;
-   switch(this->m_traits.syntax_type(*m_position))
-   {
-   case regex_constants::syntax_dash:
-      if(!char_set.empty())
-      {
-         // see if we are at the end of the set:
-         if((++m_position == m_end) || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_set))
-         {
-            fail(regex_constants::error_range, m_position - m_base);
-            return result;
-         }
-         --m_position;
-      }
-      result.first = *m_position++;
-      return result;
-   case regex_constants::syntax_escape:
-      // check to see if escapes are supported first:
-      if(this->flags() & regex_constants::no_escape_in_lists)
-      {
-         result = *m_position++;
-         break;
-      }
-      ++m_position;
-      result = unescape_character();
-      break;
-   case regex_constants::syntax_open_set:
-   {
-      if(m_end == ++m_position)
-      {
-         fail(regex_constants::error_collate, m_position - m_base);
-         return result;
-      }
-      if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_dot)
-      {
-         --m_position;
-         result.first = *m_position;
-         ++m_position;
-         return result;
-      }
-      if(m_end == ++m_position)
-      {
-         fail(regex_constants::error_collate, m_position - m_base);
-         return result;
-      }
-      const charT* name_first = m_position;
-      // skip at least one character, then find the matching ':]'
-      if(m_end == ++m_position)
-      {
-         fail(regex_constants::error_collate, name_first - m_base);
-         return result;
-      }
-      while((m_position != m_end) 
-         && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_dot)) 
-         ++m_position;
-      const charT* name_last = m_position;
-      if(m_end == m_position)
-      {
-         fail(regex_constants::error_collate, name_first - m_base);
-         return result;
-      }
-      if((m_end == ++m_position) 
-         || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_set))
-      {
-         fail(regex_constants::error_collate, name_first - m_base);
-         return result;
-      }
-      ++m_position;
-      string_type s = this->m_traits.lookup_collatename(name_first, name_last);
-      if(s.empty() || (s.size() > 2))
-      {
-         fail(regex_constants::error_collate, name_first - m_base);
-         return result;
-      }
-      result.first = s[0];
-      if(s.size() > 1)
-         result.second = s[1];
-      else
-         result.second = 0;
-      return result;
-   }
-   default:
-      result = *m_position++;
-   }
-   return result;
-}
-
-//
-// does a value fit in the specified charT type?
-//
-template <class charT>
-bool valid_value(charT, int v, const mpl::true_&)
-{
-   return (v >> (sizeof(charT) * CHAR_BIT)) == 0;
-}
-template <class charT>
-bool valid_value(charT, int, const mpl::false_&)
-{
-   return true; // v will alsways fit in a charT
-}
-template <class charT>
-bool valid_value(charT c, int v)
-{
-   return valid_value(c, v, mpl::bool_<(sizeof(charT) < sizeof(int))>());
-}
-
-template <class charT, class traits>
-charT basic_regex_parser<charT, traits>::unescape_character()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-   charT result(0);
-   if(m_position == m_end)
-   {
-      fail(regex_constants::error_escape, m_position - m_base, "Escape sequence terminated prematurely.");
-      return false;
-   }
-   switch(this->m_traits.escape_syntax_type(*m_position))
-   {
-   case regex_constants::escape_type_control_a:
-      result = charT('\a');
-      break;
-   case regex_constants::escape_type_e:
-      result = charT(27);
-      break;
-   case regex_constants::escape_type_control_f:
-      result = charT('\f');
-      break;
-   case regex_constants::escape_type_control_n:
-      result = charT('\n');
-      break;
-   case regex_constants::escape_type_control_r:
-      result = charT('\r');
-      break;
-   case regex_constants::escape_type_control_t:
-      result = charT('\t');
-      break;
-   case regex_constants::escape_type_control_v:
-      result = charT('\v');
-      break;
-   case regex_constants::escape_type_word_assert:
-      result = charT('\b');
-      break;
-   case regex_constants::escape_type_ascii_control:
-      ++m_position;
-      if(m_position == m_end)
-      {
-         // Rewind to start of escape:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-         fail(regex_constants::error_escape, m_position - m_base, "ASCII escape sequence terminated prematurely.");
-         return result;
-      }
-      result = static_cast<charT>(*m_position % 32);
-      break;
-   case regex_constants::escape_type_hex:
-      ++m_position;
-      if(m_position == m_end)
-      {
-         // Rewind to start of escape:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-         fail(regex_constants::error_escape, m_position - m_base, "Hexadecimal escape sequence terminated prematurely.");
-         return result;
-      }
-      // maybe have \x{ddd}
-      if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_open_brace)
-      {
-         ++m_position;
-         if(m_position == m_end)
-         {
-            // Rewind to start of escape:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-            fail(regex_constants::error_escape, m_position - m_base, "Missing } in hexadecimal escape sequence.");
-            return result;
-         }
-         int i = this->m_traits.toi(m_position, m_end, 16);
-         if((m_position == m_end)
-            || (i < 0)
-            || ((std::numeric_limits<charT>::is_specialized) && (i > (int)(std::numeric_limits<charT>::max)()))
-            || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_brace))
-         {
-            // Rewind to start of escape:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-            fail(regex_constants::error_badbrace, m_position - m_base, "Hexadecimal escape sequence was invalid.");
-            return result;
-         }
-         ++m_position;
-         result = charT(i);
-      }
-      else
-      {
-         std::ptrdiff_t len = (std::min)(static_cast<std::ptrdiff_t>(2), static_cast<std::ptrdiff_t>(m_end - m_position));
-         int i = this->m_traits.toi(m_position, m_position + len, 16);
-         if((i < 0)
-            || !valid_value(charT(0), i))
-         {
-            // Rewind to start of escape:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-            fail(regex_constants::error_escape, m_position - m_base, "Escape sequence did not encode a valid character.");
-            return result;
-         }
-         result = charT(i);
-      }
-      return result;
-   case regex_constants::syntax_digit:
-      {
-      // an octal escape sequence, the first character must be a zero
-      // followed by up to 3 octal digits:
-      std::ptrdiff_t len = (std::min)(::ndnboost::re_detail::distance(m_position, m_end), static_cast<std::ptrdiff_t>(4));
-      const charT* bp = m_position;
-      int val = this->m_traits.toi(bp, bp + 1, 8);
-      if(val != 0)
-      {
-         // Rewind to start of escape:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-         // Oops not an octal escape after all:
-         fail(regex_constants::error_escape, m_position - m_base, "Invalid octal escape sequence.");
-         return result;
-      }
-      val = this->m_traits.toi(m_position, m_position + len, 8);
-      if(val < 0) 
-      {
-         // Rewind to start of escape:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-         fail(regex_constants::error_escape, m_position - m_base, "Octal escape sequence is invalid.");
-         return result;
-      }
-      return static_cast<charT>(val);
-      }
-   case regex_constants::escape_type_named_char:
-      {
-         ++m_position;
-         if(m_position == m_end)
-         {
-            // Rewind to start of escape:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-            fail(regex_constants::error_escape, m_position - m_base);
-            return false;
-         }
-         // maybe have \N{name}
-         if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_open_brace)
-         {
-            const charT* base = m_position;
-            // skip forward until we find enclosing brace:
-            while((m_position != m_end) && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_brace))
-               ++m_position;
-            if(m_position == m_end)
-            {
-               // Rewind to start of escape:
-               --m_position;
-               while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-               fail(regex_constants::error_escape, m_position - m_base);
-               return false;
-            }
-            string_type s = this->m_traits.lookup_collatename(++base, m_position++);
-            if(s.empty())
-            {
-               // Rewind to start of escape:
-               --m_position;
-               while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-               fail(regex_constants::error_collate, m_position - m_base);
-               return false;
-            }
-            if(s.size() == 1)
-            {
-               return s[0];
-            }
-         }
-         // fall through is a failure:
-         // Rewind to start of escape:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-         fail(regex_constants::error_escape, m_position - m_base);
-         return false;
-      }
-   default:
-      result = *m_position;
-      break;
-   }
-   ++m_position;
-   return result;
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_backref()
-{
-   NDNBOOST_ASSERT(m_position != m_end);
-   const charT* pc = m_position;
-   int i = this->m_traits.toi(pc, pc + 1, 10);
-   if((i == 0) || (((this->flags() & regbase::main_option_type) == regbase::perl_syntax_group) && (this->flags() & regbase::no_bk_refs)))
-   {
-      // not a backref at all but an octal escape sequence:
-      charT c = unescape_character();
-      this->append_literal(c);
-   }
-   else if((i > 0) && (this->m_backrefs & (1u << (i-1))))
-   {
-      m_position = pc;
-      re_brace* pb = static_cast<re_brace*>(this->append_state(syntax_element_backref, sizeof(re_brace)));
-      pb->index = i;
-      pb->icase = this->flags() & regbase::icase;
-   }
-   else
-   {
-      // Rewind to start of escape:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-      fail(regex_constants::error_backref, m_position - m_base);
-      return false;
-   }
-   return true;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_QE()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-   //
-   // parse a \Q...\E sequence:
-   //
-   ++m_position; // skip the Q
-   const charT* start = m_position;
-   const charT* end;
-   do
-   {
-      while((m_position != m_end) 
-         && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape))
-         ++m_position;
-      if(m_position == m_end)
-      {
-         //  a \Q...\E sequence may terminate with the end of the expression:
-         end = m_position;
-         break;  
-      }
-      if(++m_position == m_end) // skip the escape
-      {
-         fail(regex_constants::error_escape, m_position - m_base, "Unterminated \\Q...\\E sequence.");
-         return false;
-      }
-      // check to see if it's a \E:
-      if(this->m_traits.escape_syntax_type(*m_position) == regex_constants::escape_type_E)
-      {
-         ++m_position;
-         end = m_position - 2;
-         break;
-      }
-      // otherwise go round again:
-   }while(true);
-   //
-   // now add all the character between the two escapes as literals:
-   //
-   while(start != end)
-   {
-      this->append_literal(*start);
-      ++start;
-   }
-   return true;
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::parse_perl_extension()
-{
-   if(++m_position == m_end)
-   {
-      // Rewind to start of (? sequence:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-      fail(regex_constants::error_perl_extension, m_position - m_base);
-      return false;
-   }
-   //
-   // treat comments as a special case, as these
-   // are the only ones that don't start with a leading
-   // startmark state:
-   //
-   if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_hash)
-   {
-      while((m_position != m_end) 
-         && (this->m_traits.syntax_type(*m_position++) != regex_constants::syntax_close_mark))
-      {}      
-      return true;
-   }
-   //
-   // backup some state, and prepare the way:
-   //
-   int markid = 0;
-   std::ptrdiff_t jump_offset = 0;
-   re_brace* pb = static_cast<re_brace*>(this->append_state(syntax_element_startmark, sizeof(re_brace)));
-   pb->icase = this->flags() & regbase::icase;
-   std::ptrdiff_t last_paren_start = this->getoffset(pb);
-   // back up insertion point for alternations, and set new point:
-   std::ptrdiff_t last_alt_point = m_alt_insert_point;
-   this->m_pdata->m_data.align();
-   m_alt_insert_point = this->m_pdata->m_data.size();
-   std::ptrdiff_t expected_alt_point = m_alt_insert_point;
-   bool restore_flags = true;
-   regex_constants::syntax_option_type old_flags = this->flags();
-   bool old_case_change = m_has_case_change;
-   m_has_case_change = false;
-   charT name_delim;
-   int mark_reset = m_mark_reset;
-   int max_mark = m_max_mark;
-   m_mark_reset = -1;
-   m_max_mark = m_mark_count;
-   int v;
-   //
-   // select the actual extension used:
-   //
-   switch(this->m_traits.syntax_type(*m_position))
-   {
-   case regex_constants::syntax_or:
-      m_mark_reset = m_mark_count;
-      NDNBOOST_FALLTHROUGH;
-   case regex_constants::syntax_colon:
-      //
-      // a non-capturing mark:
-      //
-      pb->index = markid = 0;
-      ++m_position;
-      break;
-   case regex_constants::syntax_digit:
-      {
-      //
-      // a recursive subexpression:
-      //
-      v = this->m_traits.toi(m_position, m_end, 10);
-      if((v < 0) || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark))
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base, "The recursive sub-expression refers to an invalid marking group, or is unterminated.");
-         return false;
-      }
-insert_recursion:
-      pb->index = markid = 0;
-      re_recurse* pr = static_cast<re_recurse*>(this->append_state(syntax_element_recurse, sizeof(re_recurse)));
-      pr->alt.i = v;
-      pr->state_id = 0;
-      static_cast<re_case*>(
-            this->append_state(syntax_element_toggle_case, sizeof(re_case))
-            )->icase = this->flags() & regbase::icase;
-      break;
-      }
-   case regex_constants::syntax_plus:
-      //
-      // A forward-relative recursive subexpression:
-      //
-      ++m_position;
-      v = this->m_traits.toi(m_position, m_end, 10);
-      if((v <= 0) || (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark))
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base, "An invalid or unterminated recursive sub-expression.");
-         return false;
-      }
-      v += m_mark_count;
-      goto insert_recursion;
-   case regex_constants::syntax_dash:
-      //
-      // Possibly a backward-relative recursive subexpression:
-      //
-      ++m_position;
-      v = this->m_traits.toi(m_position, m_end, 10);
-      if(v <= 0)
-      {
-         --m_position;
-         // Oops not a relative recursion at all, but a (?-imsx) group:
-         goto option_group_jump;
-      }
-      v = m_mark_count + 1 - v;
-      if(v <= 0)
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base, "An invalid or unterminated recursive sub-expression.");
-         return false;
-      }
-      goto insert_recursion;
-   case regex_constants::syntax_equal:
-      pb->index = markid = -1;
-      ++m_position;
-      jump_offset = this->getoffset(this->append_state(syntax_element_jump, sizeof(re_jump)));
-      this->m_pdata->m_data.align();
-      m_alt_insert_point = this->m_pdata->m_data.size();
-      break;
-   case regex_constants::syntax_not:
-      pb->index = markid = -2;
-      ++m_position;
-      jump_offset = this->getoffset(this->append_state(syntax_element_jump, sizeof(re_jump)));
-      this->m_pdata->m_data.align();
-      m_alt_insert_point = this->m_pdata->m_data.size();
-      break;
-   case regex_constants::escape_type_left_word:
-      {
-         // a lookbehind assertion:
-         if(++m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         regex_constants::syntax_type t = this->m_traits.syntax_type(*m_position);
-         if(t == regex_constants::syntax_not)
-            pb->index = markid = -2;
-         else if(t == regex_constants::syntax_equal)
-            pb->index = markid = -1;
-         else
-         {
-            // Probably a named capture which also starts (?< :
-            name_delim = '>';
-            --m_position;
-            goto named_capture_jump;
-         }
-         ++m_position;
-         jump_offset = this->getoffset(this->append_state(syntax_element_jump, sizeof(re_jump)));
-         this->append_state(syntax_element_backstep, sizeof(re_brace));
-         this->m_pdata->m_data.align();
-         m_alt_insert_point = this->m_pdata->m_data.size();
-         break;
-      }
-   case regex_constants::escape_type_right_word:
-      //
-      // an independent sub-expression:
-      //
-      pb->index = markid = -3;
-      ++m_position;
-      jump_offset = this->getoffset(this->append_state(syntax_element_jump, sizeof(re_jump)));
-      this->m_pdata->m_data.align();
-      m_alt_insert_point = this->m_pdata->m_data.size();
-      break;
-   case regex_constants::syntax_open_mark:
-      {
-      // a conditional expression:
-      pb->index = markid = -4;
-      if(++m_position == m_end)
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base);
-         return false;
-      }
-      v = this->m_traits.toi(m_position, m_end, 10);
-      if(m_position == m_end)
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base);
-         return false;
-      }
-      if(*m_position == charT('R'))
-      {
-         if(++m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         if(*m_position == charT('&'))
-         {
-            const charT* base = ++m_position;
-            while((m_position != m_end) && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark))
-               ++m_position;
-            if(m_position == m_end)
-            {
-               // Rewind to start of (? sequence:
-               --m_position;
-               while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-               fail(regex_constants::error_perl_extension, m_position - m_base);
-               return false;
-            }
-            v = -static_cast<int>(hash_value_from_capture_name(base, m_position));
-         }
-         else
-         {
-            v = -this->m_traits.toi(m_position, m_end, 10);
-         }
-         re_brace* br = static_cast<re_brace*>(this->append_state(syntax_element_assert_backref, sizeof(re_brace)));
-         br->index = v < 0 ? (v - 1) : 0;
-         if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         if(++m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-      }
-      else if((*m_position == charT('\'')) || (*m_position == charT('<')))
-      {
-         const charT* base = ++m_position;
-         while((m_position != m_end) && (*m_position != charT('>')) && (*m_position != charT('\'')))
-            ++m_position;
-         if(m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         v = static_cast<int>(hash_value_from_capture_name(base, m_position));
-         re_brace* br = static_cast<re_brace*>(this->append_state(syntax_element_assert_backref, sizeof(re_brace)));
-         br->index = v;
-         if(((*m_position != charT('>')) && (*m_position != charT('\''))) || (++m_position == m_end))
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base, "Unterminated named capture.");
-            return false;
-         }
-         if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         if(++m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-      }
-      else if(*m_position == charT('D'))
-      {
-         const char* def = "DEFINE";
-         while(*def && (m_position != m_end) && (*m_position == charT(*def)))
-            ++m_position, ++def;
-         if((m_position == m_end) || *def)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         re_brace* br = static_cast<re_brace*>(this->append_state(syntax_element_assert_backref, sizeof(re_brace)));
-         br->index = 9999; // special magic value!
-         if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         if(++m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-      }
-      else if(v > 0)
-      {
-         re_brace* br = static_cast<re_brace*>(this->append_state(syntax_element_assert_backref, sizeof(re_brace)));
-         br->index = v;
-         if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         if(++m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-      }
-      else
-      {
-         // verify that we have a lookahead or lookbehind assert:
-         if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_question)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         if(++m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         if(this->m_traits.syntax_type(*m_position) == regex_constants::escape_type_left_word)
-         {
-            if(++m_position == m_end)
-            {
-               // Rewind to start of (? sequence:
-               --m_position;
-               while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-               fail(regex_constants::error_perl_extension, m_position - m_base);
-               return false;
-            }
-            if((this->m_traits.syntax_type(*m_position) != regex_constants::syntax_equal)
-               && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_not))
-            {
-               // Rewind to start of (? sequence:
-               --m_position;
-               while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-               fail(regex_constants::error_perl_extension, m_position - m_base);
-               return false;
-            }
-            m_position -= 3;
-         }
-         else
-         {
-            if((this->m_traits.syntax_type(*m_position) != regex_constants::syntax_equal)
-               && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_not))
-            {
-               // Rewind to start of (? sequence:
-               --m_position;
-               while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-               fail(regex_constants::error_perl_extension, m_position - m_base);
-               return false;
-            }
-            m_position -= 2;
-         }
-      }
-      break;
-      }
-   case regex_constants::syntax_close_mark:
-      // Rewind to start of (? sequence:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-      fail(regex_constants::error_perl_extension, m_position - m_base);
-      return false;
-   case regex_constants::escape_type_end_buffer:
-      {
-      name_delim = *m_position;
-named_capture_jump:
-      markid = 0;
-      if(0 == (this->flags() & regbase::nosubs))
-      {
-         markid = ++m_mark_count;
-   #ifndef NDNBOOST_NO_STD_DISTANCE
-         if(this->flags() & regbase::save_subexpression_location)
-            this->m_pdata->m_subs.push_back(std::pair<std::size_t, std::size_t>(std::distance(m_base, m_position) - 2, 0));
-   #else
-         if(this->flags() & regbase::save_subexpression_location)
-            this->m_pdata->m_subs.push_back(std::pair<std::size_t, std::size_t>((m_position - m_base) - 2, 0));
-   #endif
-      }
-      pb->index = markid;
-      const charT* base = ++m_position;
-      if(m_position == m_end)
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base);
-         return false;
-      }
-      while((m_position != m_end) && (*m_position != name_delim))
-         ++m_position;
-      if(m_position == m_end)
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base);
-         return false;
-      }
-      this->m_pdata->set_name(base, m_position, markid);
-      ++m_position;
-      break;
-      }
-   default:
-      if(*m_position == charT('R'))
-      {
-         ++m_position;
-         v = 0;
-         if(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         goto insert_recursion;
-      }
-      if(*m_position == charT('&'))
-      {
-         ++m_position;
-         const charT* base = m_position;
-         while((m_position != m_end) && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark))
-            ++m_position;
-         if(m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         v = static_cast<int>(hash_value_from_capture_name(base, m_position));
-         goto insert_recursion;
-      }
-      if(*m_position == charT('P'))
-      {
-         ++m_position;
-         if(m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_perl_extension, m_position - m_base);
-            return false;
-         }
-         if(*m_position == charT('>'))
-         {
-            ++m_position;
-            const charT* base = m_position;
-            while((m_position != m_end) && (this->m_traits.syntax_type(*m_position) != regex_constants::syntax_close_mark))
-               ++m_position;
-            if(m_position == m_end)
-            {
-               // Rewind to start of (? sequence:
-               --m_position;
-               while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-               fail(regex_constants::error_perl_extension, m_position - m_base);
-               return false;
-            }
-            v = static_cast<int>(hash_value_from_capture_name(base, m_position));
-            goto insert_recursion;
-         }
-      }
-      //
-      // lets assume that we have a (?imsx) group and try and parse it:
-      //
-option_group_jump:
-      regex_constants::syntax_option_type opts = parse_options();
-      if(m_position == m_end)
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base);
-         return false;
-      }
-      // make a note of whether we have a case change:
-      m_has_case_change = ((opts & regbase::icase) != (this->flags() & regbase::icase));
-      pb->index = markid = 0;
-      if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_close_mark)
-      {
-         // update flags and carry on as normal:
-         this->flags(opts);
-         restore_flags = false;
-         old_case_change |= m_has_case_change; // defer end of scope by one ')'
-      }
-      else if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_colon)
-      {
-         // update flags and carry on until the matching ')' is found:
-         this->flags(opts);
-         ++m_position;
-      }
-      else
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base);
-         return false;
-      }
-
-      // finally append a case change state if we need it:
-      if(m_has_case_change)
-      {
-         static_cast<re_case*>(
-            this->append_state(syntax_element_toggle_case, sizeof(re_case))
-            )->icase = opts & regbase::icase;
-      }
-
-   }
-   //
-   // now recursively add more states, this will terminate when we get to a
-   // matching ')' :
-   //
-   parse_all();
-   //
-   // Unwind alternatives:
-   //
-   if(0 == unwind_alts(last_paren_start))
-   {
-      // Rewind to start of (? sequence:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-      fail(regex_constants::error_perl_extension, m_position - m_base, "Invalid alternation operators within (?...) block.");
-      return false;
-   }
-   //
-   // we either have a ')' or we have run out of characters prematurely:
-   //
-   if(m_position == m_end)
-   {
-      // Rewind to start of (? sequence:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-      this->fail(regex_constants::error_paren, ::ndnboost::re_detail::distance(m_base, m_end));
-      return false;
-   }
-   NDNBOOST_ASSERT(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_close_mark);
-   ++m_position;
-   //
-   // restore the flags:
-   //
-   if(restore_flags)
-   {
-      // append a case change state if we need it:
-      if(m_has_case_change)
-      {
-         static_cast<re_case*>(
-            this->append_state(syntax_element_toggle_case, sizeof(re_case))
-            )->icase = old_flags & regbase::icase;
-      }
-      this->flags(old_flags);
-   }
-   //
-   // set up the jump pointer if we have one:
-   //
-   if(jump_offset)
-   {
-      this->m_pdata->m_data.align();
-      re_jump* jmp = static_cast<re_jump*>(this->getaddress(jump_offset));
-      jmp->alt.i = this->m_pdata->m_data.size() - this->getoffset(jmp);
-      if((this->m_last_state == jmp) && (markid != -2))
-      {
-         // Oops... we didn't have anything inside the assertion.
-         // Note we don't get here for negated forward lookahead as (?!)
-         // does have some uses.
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_perl_extension, m_position - m_base, "Invalid or empty zero width assertion.");
-         return false;
-      }
-   }
-   //
-   // verify that if this is conditional expression, that we do have
-   // an alternative, if not add one:
-   //
-   if(markid == -4)
-   {
-      re_syntax_base* b = this->getaddress(expected_alt_point);
-      // Make sure we have exactly one alternative following this state:
-      if(b->type != syntax_element_alt)
-      {
-         re_alt* alt = static_cast<re_alt*>(this->insert_state(expected_alt_point, syntax_element_alt, sizeof(re_alt)));
-         alt->alt.i = this->m_pdata->m_data.size() - this->getoffset(alt);
-      }
-      else if(this->getaddress(static_cast<re_alt*>(b)->alt.i, b)->type == syntax_element_alt)
-      {
-         // Can't have seen more than one alternative:
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_bad_pattern, m_position - m_base, "More than one alternation operator | was encountered inside a conditional expression.");
-         return false;
-      }
-      else
-      {
-         // We must *not* have seen an alternative inside a (DEFINE) block:
-         b = this->getaddress(b->next.i, b);
-         if((b->type == syntax_element_assert_backref) && (static_cast<re_brace*>(b)->index == 9999))
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_bad_pattern, m_position - m_base, "Alternation operators are not allowed inside a DEFINE block.");
-            return false;
-         }
-      }
-      // check for invalid repetition of next state:
-      b = this->getaddress(expected_alt_point);
-      b = this->getaddress(static_cast<re_alt*>(b)->next.i, b);
-      if((b->type != syntax_element_assert_backref)
-         && (b->type != syntax_element_startmark))
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_badrepeat, m_position - m_base, "A repetition operator cannot be applied to a zero-width assertion.");
-         return false;
-      }
-   }
-   //
-   // append closing parenthesis state:
-   //
-   pb = static_cast<re_brace*>(this->append_state(syntax_element_endmark, sizeof(re_brace)));
-   pb->index = markid;
-   pb->icase = this->flags() & regbase::icase;
-   this->m_paren_start = last_paren_start;
-   //
-   // restore the alternate insertion point:
-   //
-   this->m_alt_insert_point = last_alt_point;
-   //
-   // and the case change data:
-   //
-   m_has_case_change = old_case_change;
-   //
-   // And the mark_reset data:
-   //
-   if(m_max_mark > m_mark_count)
-   {
-      m_mark_count = m_max_mark;
-   }
-   m_mark_reset = mark_reset;
-   m_max_mark = max_mark;
-
-
-   if(markid > 0)
-   {
-#ifndef NDNBOOST_NO_STD_DISTANCE
-      if(this->flags() & regbase::save_subexpression_location)
-         this->m_pdata->m_subs.at(markid - 1).second = std::distance(m_base, m_position) - 1;
-#else
-      if(this->flags() & regbase::save_subexpression_location)
-         this->m_pdata->m_subs.at(markid - 1).second = (m_position - m_base) - 1;
-#endif
-      //
-      // allow backrefs to this mark:
-      //
-      if((markid > 0) && (markid < (int)(sizeof(unsigned) * CHAR_BIT)))
-         this->m_backrefs |= 1u << (markid - 1);
-   }
-   return true;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::add_emacs_code(bool negate)
-{
-   //
-   // parses an emacs style \sx or \Sx construct.
-   //
-   if(++m_position == m_end)
-   {
-      // Rewind to start of sequence:
-      --m_position;
-      while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_escape) --m_position;
-      fail(regex_constants::error_escape, m_position - m_base);
-      return false;
-   }
-   basic_char_set<charT, traits> char_set;
-   if(negate)
-      char_set.negate();
-
-   static const charT s_punct[5] = { 'p', 'u', 'n', 'c', 't', };
-
-   switch(*m_position)
-   {
-   case 's':
-   case ' ':
-      char_set.add_class(this->m_mask_space);
-      break;
-   case 'w':
-      char_set.add_class(this->m_word_mask);
-      break;
-   case '_':
-      char_set.add_single(digraph<charT>(charT('$'))); 
-      char_set.add_single(digraph<charT>(charT('&'))); 
-      char_set.add_single(digraph<charT>(charT('*'))); 
-      char_set.add_single(digraph<charT>(charT('+'))); 
-      char_set.add_single(digraph<charT>(charT('-'))); 
-      char_set.add_single(digraph<charT>(charT('_'))); 
-      char_set.add_single(digraph<charT>(charT('<'))); 
-      char_set.add_single(digraph<charT>(charT('>'))); 
-      break;
-   case '.':
-      char_set.add_class(this->m_traits.lookup_classname(s_punct, s_punct+5));
-      break;
-   case '(':
-      char_set.add_single(digraph<charT>(charT('('))); 
-      char_set.add_single(digraph<charT>(charT('['))); 
-      char_set.add_single(digraph<charT>(charT('{'))); 
-      break;
-   case ')':
-      char_set.add_single(digraph<charT>(charT(')'))); 
-      char_set.add_single(digraph<charT>(charT(']'))); 
-      char_set.add_single(digraph<charT>(charT('}'))); 
-      break;
-   case '"':
-      char_set.add_single(digraph<charT>(charT('"'))); 
-      char_set.add_single(digraph<charT>(charT('\''))); 
-      char_set.add_single(digraph<charT>(charT('`'))); 
-      break;
-   case '\'':
-      char_set.add_single(digraph<charT>(charT('\''))); 
-      char_set.add_single(digraph<charT>(charT(','))); 
-      char_set.add_single(digraph<charT>(charT('#'))); 
-      break;
-   case '<':
-      char_set.add_single(digraph<charT>(charT(';'))); 
-      break;
-   case '>':
-      char_set.add_single(digraph<charT>(charT('\n'))); 
-      char_set.add_single(digraph<charT>(charT('\f'))); 
-      break;
-   default:
-      fail(regex_constants::error_ctype, m_position - m_base);
-      return false;
-   }
-   if(0 == this->append_set(char_set))
-   {
-      fail(regex_constants::error_ctype, m_position - m_base);
-      return false;
-   }
-   ++m_position;
-   return true;
-}
-
-template <class charT, class traits>
-regex_constants::syntax_option_type basic_regex_parser<charT, traits>::parse_options()
-{
-   // we have a (?imsx-imsx) group, convert it into a set of flags:
-   regex_constants::syntax_option_type f = this->flags();
-   bool breakout = false;
-   do
-   {
-      switch(*m_position)
-      {
-      case 's':
-         f |= regex_constants::mod_s;
-         f &= ~regex_constants::no_mod_s;
-         break;
-      case 'm':
-         f &= ~regex_constants::no_mod_m;
-         break;
-      case 'i':
-         f |= regex_constants::icase;
-         break;
-      case 'x':
-         f |= regex_constants::mod_x;
-         break;
-      default:
-         breakout = true;
-         continue;
-      }
-      if(++m_position == m_end)
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_paren, m_position - m_base);
-         return false;
-      }
-   }
-   while(!breakout);
-   
-   breakout = false;
-
-   if(*m_position == static_cast<charT>('-'))
-   {
-      if(++m_position == m_end)
-      {
-         // Rewind to start of (? sequence:
-         --m_position;
-         while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-         fail(regex_constants::error_paren, m_position - m_base);
-         return false;
-      }
-      do
-      {
-         switch(*m_position)
-         {
-         case 's':
-            f &= ~regex_constants::mod_s;
-            f |= regex_constants::no_mod_s;
-            break;
-         case 'm':
-            f |= regex_constants::no_mod_m;
-            break;
-         case 'i':
-            f &= ~regex_constants::icase;
-            break;
-         case 'x':
-            f &= ~regex_constants::mod_x;
-            break;
-         default:
-            breakout = true;
-            continue;
-         }
-         if(++m_position == m_end)
-         {
-            // Rewind to start of (? sequence:
-            --m_position;
-            while(this->m_traits.syntax_type(*m_position) != regex_constants::syntax_open_mark) --m_position;
-            fail(regex_constants::error_paren, m_position - m_base);
-            return false;
-         }
-      }
-      while(!breakout);
-   }
-   return f;
-}
-
-template <class charT, class traits>
-bool basic_regex_parser<charT, traits>::unwind_alts(std::ptrdiff_t last_paren_start)
-{
-   //
-   // If we didn't actually add any states after the last 
-   // alternative then that's an error:
-   //
-   if((this->m_alt_insert_point == static_cast<std::ptrdiff_t>(this->m_pdata->m_data.size()))
-      && m_alt_jumps.size() && (m_alt_jumps.back() > last_paren_start)
-      &&
-      !(
-         ((this->flags() & regbase::main_option_type) == regbase::perl_syntax_group)
-           &&
-         ((this->flags() & regbase::no_empty_expressions) == 0)
-        )
-      )
-   {
-      fail(regex_constants::error_empty, this->m_position - this->m_base, "Can't terminate a sub-expression with an alternation operator |.");
-      return false;
-   }
-   // 
-   // Fix up our alternatives:
-   //
-   while(m_alt_jumps.size() && (m_alt_jumps.back() > last_paren_start))
-   {
-      //
-      // fix up the jump to point to the end of the states
-      // that we've just added:
-      //
-      std::ptrdiff_t jump_offset = m_alt_jumps.back();
-      m_alt_jumps.pop_back();
-      this->m_pdata->m_data.align();
-      re_jump* jmp = static_cast<re_jump*>(this->getaddress(jump_offset));
-      NDNBOOST_ASSERT(jmp->type == syntax_element_jump);
-      jmp->alt.i = this->m_pdata->m_data.size() - jump_offset;
-   }
-   return true;
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace re_detail
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/include/ndnboost/regex/v4/c_regex_traits.hpp b/include/ndnboost/regex/v4/c_regex_traits.hpp
deleted file mode 100644
index 62add91..0000000
--- a/include/ndnboost/regex/v4/c_regex_traits.hpp
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         c_regex_traits.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares regular expression traits class that wraps the global C locale.
-  */
-
-#ifndef NDNBOOST_C_REGEX_TRAITS_HPP_INCLUDED
-#define NDNBOOST_C_REGEX_TRAITS_HPP_INCLUDED
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_WORKAROUND_HPP
-#include <ndnboost/regex/v4/regex_workaround.hpp>
-#endif
-
-#include <cctype>
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std{
-   using ::strlen; using ::tolower;
-}
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-
-template <class charT>
-struct c_regex_traits;
-
-template<>
-struct NDNBOOST_REGEX_DECL c_regex_traits<char>
-{
-   c_regex_traits(){}
-   typedef char char_type;
-   typedef std::size_t size_type;
-   typedef std::string string_type;
-   struct locale_type{};
-   typedef ndnboost::uint32_t char_class_type;
-
-   static size_type length(const char_type* p) 
-   { 
-      return (std::strlen)(p); 
-   }
-
-   char translate(char c) const 
-   { 
-      return c; 
-   }
-   char translate_nocase(char c) const 
-   { 
-      return static_cast<char>((std::tolower)(static_cast<unsigned char>(c))); 
-   }
-
-   static string_type NDNBOOST_REGEX_CALL transform(const char* p1, const char* p2);
-   static string_type NDNBOOST_REGEX_CALL transform_primary(const char* p1, const char* p2);
-
-   static char_class_type NDNBOOST_REGEX_CALL lookup_classname(const char* p1, const char* p2);
-   static string_type NDNBOOST_REGEX_CALL lookup_collatename(const char* p1, const char* p2);
-
-   static bool NDNBOOST_REGEX_CALL isctype(char, char_class_type);
-   static int NDNBOOST_REGEX_CALL value(char, int);
-
-   locale_type imbue(locale_type l)
-   { return l; }
-   locale_type getloc()const
-   { return locale_type(); }
-
-private:
-   // this type is not copyable:
-   c_regex_traits(const c_regex_traits&);
-   c_regex_traits& operator=(const c_regex_traits&);
-};
-
-#ifndef NDNBOOST_NO_WREGEX
-template<>
-struct NDNBOOST_REGEX_DECL c_regex_traits<wchar_t>
-{
-   c_regex_traits(){}
-   typedef wchar_t char_type;
-   typedef std::size_t size_type;
-   typedef std::wstring string_type;
-   struct locale_type{};
-   typedef ndnboost::uint32_t char_class_type;
-
-   static size_type length(const char_type* p) 
-   { 
-      return (std::wcslen)(p); 
-   }
-
-   wchar_t translate(wchar_t c) const 
-   { 
-      return c; 
-   }
-   wchar_t translate_nocase(wchar_t c) const 
-   { 
-      return (std::towlower)(c); 
-   }
-
-   static string_type NDNBOOST_REGEX_CALL transform(const wchar_t* p1, const wchar_t* p2);
-   static string_type NDNBOOST_REGEX_CALL transform_primary(const wchar_t* p1, const wchar_t* p2);
-
-   static char_class_type NDNBOOST_REGEX_CALL lookup_classname(const wchar_t* p1, const wchar_t* p2);
-   static string_type NDNBOOST_REGEX_CALL lookup_collatename(const wchar_t* p1, const wchar_t* p2);
-
-   static bool NDNBOOST_REGEX_CALL isctype(wchar_t, char_class_type);
-   static int NDNBOOST_REGEX_CALL value(wchar_t, int);
-
-   locale_type imbue(locale_type l)
-   { return l; }
-   locale_type getloc()const
-   { return locale_type(); }
-
-private:
-   // this type is not copyable:
-   c_regex_traits(const c_regex_traits&);
-   c_regex_traits& operator=(const c_regex_traits&);
-};
-
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-//
-// Provide an unsigned short version as well, so the user can link to this
-// no matter whether they build with /Zc:wchar_t or not (MSVC specific).
-//
-template<>
-struct NDNBOOST_REGEX_DECL c_regex_traits<unsigned short>
-{
-   c_regex_traits(){}
-   typedef unsigned short char_type;
-   typedef std::size_t size_type;
-   typedef std::basic_string<unsigned short> string_type;
-   struct locale_type{};
-   typedef ndnboost::uint32_t char_class_type;
-
-   static size_type length(const char_type* p) 
-   { 
-      return (std::wcslen)((const wchar_t*)p); 
-   }
-
-   unsigned short translate(unsigned short c) const 
-   { 
-      return c; 
-   }
-   unsigned short translate_nocase(unsigned short c) const 
-   { 
-      return (std::towlower)((wchar_t)c); 
-   }
-
-   static string_type NDNBOOST_REGEX_CALL transform(const unsigned short* p1, const unsigned short* p2);
-   static string_type NDNBOOST_REGEX_CALL transform_primary(const unsigned short* p1, const unsigned short* p2);
-
-   static char_class_type NDNBOOST_REGEX_CALL lookup_classname(const unsigned short* p1, const unsigned short* p2);
-   static string_type NDNBOOST_REGEX_CALL lookup_collatename(const unsigned short* p1, const unsigned short* p2);
-
-   static bool NDNBOOST_REGEX_CALL isctype(unsigned short, char_class_type);
-   static int NDNBOOST_REGEX_CALL value(unsigned short, int);
-
-   locale_type imbue(locale_type l)
-   { return l; }
-   locale_type getloc()const
-   { return locale_type(); }
-
-private:
-   // this type is not copyable:
-   c_regex_traits(const c_regex_traits&);
-   c_regex_traits& operator=(const c_regex_traits&);
-};
-
-#endif
-
-#endif // NDNBOOST_NO_WREGEX
-
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
-
-
diff --git a/include/ndnboost/regex/v4/char_regex_traits.hpp b/include/ndnboost/regex/v4/char_regex_traits.hpp
deleted file mode 100644
index e5e5228..0000000
--- a/include/ndnboost/regex/v4/char_regex_traits.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *
- * Copyright (c) 2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         char_regex_traits.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares deprecated traits classes char_regex_traits<>.
-  */
-
-
-#ifndef NDNBOOST_REGEX_V4_CHAR_REGEX_TRAITS_HPP
-#define NDNBOOST_REGEX_V4_CHAR_REGEX_TRAITS_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-
-namespace deprecated{
-//
-// class char_regex_traits_i
-// provides case insensitive traits classes (deprecated):
-template <class charT>
-class char_regex_traits_i : public regex_traits<charT> {};
-
-template<>
-class char_regex_traits_i<char> : public regex_traits<char>
-{
-public:
-   typedef char char_type;
-   typedef unsigned char uchar_type;
-   typedef unsigned int size_type;
-   typedef regex_traits<char> base_type;
-
-};
-
-#ifndef NDNBOOST_NO_WREGEX
-template<>
-class char_regex_traits_i<wchar_t> : public regex_traits<wchar_t>
-{
-public:
-   typedef wchar_t char_type;
-   typedef unsigned short uchar_type;
-   typedef unsigned int size_type;
-   typedef regex_traits<wchar_t> base_type;
-
-};
-#endif
-} // namespace deprecated
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif // include
-
diff --git a/include/ndnboost/regex/v4/cpp_regex_traits.hpp b/include/ndnboost/regex/v4/cpp_regex_traits.hpp
deleted file mode 100644
index 5ec8657..0000000
--- a/include/ndnboost/regex/v4/cpp_regex_traits.hpp
+++ /dev/null
@@ -1,1099 +0,0 @@
-/*
- *
- * Copyright (c) 2004 John Maddock
- * Copyright 2011 Garmin Ltd. or its subsidiaries
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         cpp_regex_traits.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares regular expression traits class cpp_regex_traits.
-  */
-
-#ifndef NDNBOOST_CPP_REGEX_TRAITS_HPP_INCLUDED
-#define NDNBOOST_CPP_REGEX_TRAITS_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/integer.hpp>
-
-#ifndef NDNBOOST_NO_STD_LOCALE
-
-#ifndef NDNBOOST_RE_PAT_EXCEPT_HPP
-#include <ndnboost/regex/pattern_except.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_TRAITS_DEFAULTS_HPP_INCLUDED
-#include <ndnboost/regex/v4/regex_traits_defaults.hpp>
-#endif
-#ifdef NDNBOOST_HAS_THREADS
-#include <ndnboost/regex/pending/static_mutex.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_PRIMARY_TRANSFORM
-#include <ndnboost/regex/v4/primary_transform.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_OBJECT_CACHE_HPP
-#include <ndnboost/regex/pending/object_cache.hpp>
-#endif
-
-#include <istream>
-#include <ios>
-#include <climits>
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4786 4251)
-#endif
-
-namespace ndnboost{ 
-
-//
-// forward declaration is needed by some compilers:
-//
-template <class charT>
-class cpp_regex_traits;
-   
-namespace re_detail{
-
-//
-// class parser_buf:
-// acts as a stream buffer which wraps around a pair of pointers:
-//
-template <class charT,
-          class traits = ::std::char_traits<charT> >
-class parser_buf : public ::std::basic_streambuf<charT, traits>
-{
-   typedef ::std::basic_streambuf<charT, traits> base_type;
-   typedef typename base_type::int_type int_type;
-   typedef typename base_type::char_type char_type;
-   typedef typename base_type::pos_type pos_type;
-   typedef ::std::streamsize streamsize;
-   typedef typename base_type::off_type off_type;
-public:
-   parser_buf() : base_type() { setbuf(0, 0); }
-   const charT* getnext() { return this->gptr(); }
-protected:
-   std::basic_streambuf<charT, traits>* setbuf(char_type* s, streamsize n);
-   typename parser_buf<charT, traits>::pos_type seekpos(pos_type sp, ::std::ios_base::openmode which);
-   typename parser_buf<charT, traits>::pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which);
-private:
-   parser_buf& operator=(const parser_buf&);
-   parser_buf(const parser_buf&);
-};
-
-template<class charT, class traits>
-std::basic_streambuf<charT, traits>*
-parser_buf<charT, traits>::setbuf(char_type* s, streamsize n)
-{
-   this->setg(s, s, s + n);
-   return this;
-}
-
-template<class charT, class traits>
-typename parser_buf<charT, traits>::pos_type
-parser_buf<charT, traits>::seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which)
-{
-   typedef typename ndnboost::int_t<sizeof(way) * CHAR_BIT>::least cast_type;
-
-   if(which & ::std::ios_base::out)
-      return pos_type(off_type(-1));
-   std::ptrdiff_t size = this->egptr() - this->eback();
-   std::ptrdiff_t pos = this->gptr() - this->eback();
-   charT* g = this->eback();
-   switch(static_cast<cast_type>(way))
-   {
-   case ::std::ios_base::beg:
-      if((off < 0) || (off > size))
-         return pos_type(off_type(-1));
-      else
-         this->setg(g, g + off, g + size);
-      break;
-   case ::std::ios_base::end:
-      if((off < 0) || (off > size))
-         return pos_type(off_type(-1));
-      else
-         this->setg(g, g + size - off, g + size);
-      break;
-   case ::std::ios_base::cur:
-   {
-      std::ptrdiff_t newpos = static_cast<std::ptrdiff_t>(pos + off);
-      if((newpos < 0) || (newpos > size))
-         return pos_type(off_type(-1));
-      else
-         this->setg(g, g + newpos, g + size);
-      break;
-   }
-   default: ;
-   }
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4244)
-#endif
-   return static_cast<pos_type>(this->gptr() - this->eback());
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template<class charT, class traits>
-typename parser_buf<charT, traits>::pos_type
-parser_buf<charT, traits>::seekpos(pos_type sp, ::std::ios_base::openmode which)
-{
-   if(which & ::std::ios_base::out)
-      return pos_type(off_type(-1));
-   off_type size = static_cast<off_type>(this->egptr() - this->eback());
-   charT* g = this->eback();
-   if(off_type(sp) <= size)
-   {
-      this->setg(g, g + off_type(sp), g + size);
-   }
-   return pos_type(off_type(-1));
-}
-
-//
-// class cpp_regex_traits_base:
-// acts as a container for locale and the facets we are using.
-//
-template <class charT>
-struct cpp_regex_traits_base
-{
-   cpp_regex_traits_base(const std::locale& l)
-   { imbue(l); }
-   std::locale imbue(const std::locale& l);
-
-   std::locale m_locale;
-   std::ctype<charT> const* m_pctype;
-#ifndef NDNBOOST_NO_STD_MESSAGES
-   std::messages<charT> const* m_pmessages;
-#endif
-   std::collate<charT> const* m_pcollate;
-
-   bool operator<(const cpp_regex_traits_base& b)const
-   {
-      if(m_pctype == b.m_pctype)
-      {
-#ifndef NDNBOOST_NO_STD_MESSAGES
-         if(m_pmessages == b.m_pmessages)
-         {
-            return m_pcollate < b.m_pcollate;
-         }
-         return m_pmessages < b.m_pmessages;
-#else
-         return m_pcollate < b.m_pcollate;
-#endif
-      }
-      return m_pctype < b.m_pctype;
-   }
-   bool operator==(const cpp_regex_traits_base& b)const
-   {
-      return (m_pctype == b.m_pctype) 
-#ifndef NDNBOOST_NO_STD_MESSAGES
-         && (m_pmessages == b.m_pmessages) 
-#endif
-         && (m_pcollate == b.m_pcollate);
-   }
-};
-
-template <class charT>
-std::locale cpp_regex_traits_base<charT>::imbue(const std::locale& l)
-{
-   std::locale result(m_locale);
-   m_locale = l;
-   m_pctype = &NDNBOOST_USE_FACET(std::ctype<charT>, l);
-#ifndef NDNBOOST_NO_STD_MESSAGES
-   m_pmessages = NDNBOOST_HAS_FACET(std::messages<charT>, l) ? &NDNBOOST_USE_FACET(std::messages<charT>, l) : 0;
-#endif
-   m_pcollate = &NDNBOOST_USE_FACET(std::collate<charT>, l);
-   return result;
-}
-
-//
-// class cpp_regex_traits_char_layer:
-// implements methods that require specialisation for narrow characters:
-//
-template <class charT>
-class cpp_regex_traits_char_layer : public cpp_regex_traits_base<charT>
-{
-   typedef std::basic_string<charT> string_type;
-   typedef std::map<charT, regex_constants::syntax_type> map_type;
-   typedef typename map_type::const_iterator map_iterator_type;
-public:
-   cpp_regex_traits_char_layer(const std::locale& l)
-      : cpp_regex_traits_base<charT>(l)
-   {
-      init();
-   }
-   cpp_regex_traits_char_layer(const cpp_regex_traits_base<charT>& b)
-      : cpp_regex_traits_base<charT>(b)
-   {
-      init();
-   }
-   void init();
-
-   regex_constants::syntax_type syntax_type(charT c)const
-   {
-      map_iterator_type i = m_char_map.find(c);
-      return ((i == m_char_map.end()) ? 0 : i->second);
-   }
-   regex_constants::escape_syntax_type escape_syntax_type(charT c) const
-   {
-      map_iterator_type i = m_char_map.find(c);
-      if(i == m_char_map.end())
-      {
-         if(this->m_pctype->is(std::ctype_base::lower, c)) return regex_constants::escape_type_class;
-         if(this->m_pctype->is(std::ctype_base::upper, c)) return regex_constants::escape_type_not_class;
-         return 0;
-      }
-      return i->second;
-   }
-
-private:
-   string_type get_default_message(regex_constants::syntax_type);
-   // TODO: use a hash table when available!
-   map_type m_char_map;
-};
-
-template <class charT>
-void cpp_regex_traits_char_layer<charT>::init()
-{
-   // we need to start by initialising our syntax map so we know which
-   // character is used for which purpose:
-#ifndef NDNBOOST_NO_STD_MESSAGES
-#ifndef __IBMCPP__
-   typename std::messages<charT>::catalog cat = static_cast<std::messages<char>::catalog>(-1);
-#else
-   typename std::messages<charT>::catalog cat = reinterpret_cast<std::messages<char>::catalog>(-1);
-#endif
-   std::string cat_name(cpp_regex_traits<charT>::get_catalog_name());
-   if(cat_name.size() && (this->m_pmessages != 0))
-   {
-      cat = this->m_pmessages->open(
-         cat_name, 
-         this->m_locale);
-      if((int)cat < 0)
-      {
-         std::string m("Unable to open message catalog: ");
-         std::runtime_error err(m + cat_name);
-         ndnboost::re_detail::raise_runtime_error(err);
-      }
-   }
-   //
-   // if we have a valid catalog then load our messages:
-   //
-   if((int)cat >= 0)
-   {
-#ifndef NDNBOOST_NO_EXCEPTIONS
-      try{
-#endif
-         for(regex_constants::syntax_type i = 1; i < regex_constants::syntax_max; ++i)
-         {
-            string_type mss = this->m_pmessages->get(cat, 0, i, get_default_message(i));
-            for(typename string_type::size_type j = 0; j < mss.size(); ++j)
-            {
-               m_char_map[mss[j]] = i;
-            }
-         }
-         this->m_pmessages->close(cat);
-#ifndef NDNBOOST_NO_EXCEPTIONS
-      }
-      catch(...)
-      {
-         if(this->m_pmessages)
-            this->m_pmessages->close(cat);
-         throw;
-      }
-#endif
-   }
-   else
-   {
-#endif
-      for(regex_constants::syntax_type i = 1; i < regex_constants::syntax_max; ++i)
-      {
-         const char* ptr = get_default_syntax(i);
-         while(ptr && *ptr)
-         {
-            m_char_map[this->m_pctype->widen(*ptr)] = i;
-            ++ptr;
-         }
-      }
-#ifndef NDNBOOST_NO_STD_MESSAGES
-   }
-#endif
-}
-
-template <class charT>
-typename cpp_regex_traits_char_layer<charT>::string_type 
-   cpp_regex_traits_char_layer<charT>::get_default_message(regex_constants::syntax_type i)
-{
-   const char* ptr = get_default_syntax(i);
-   string_type result;
-   while(ptr && *ptr)
-   {
-      result.append(1, this->m_pctype->widen(*ptr));
-      ++ptr;
-   }
-   return result;
-}
-
-//
-// specialised version for narrow characters:
-//
-template <>
-class NDNBOOST_REGEX_DECL cpp_regex_traits_char_layer<char> : public cpp_regex_traits_base<char>
-{
-   typedef std::string string_type;
-public:
-   cpp_regex_traits_char_layer(const std::locale& l)
-   : cpp_regex_traits_base<char>(l)
-   {
-      init();
-   }
-   cpp_regex_traits_char_layer(const cpp_regex_traits_base<char>& l)
-   : cpp_regex_traits_base<char>(l)
-   {
-      init();
-   }
-
-   regex_constants::syntax_type syntax_type(char c)const
-   {
-      return m_char_map[static_cast<unsigned char>(c)];
-   }
-   regex_constants::escape_syntax_type escape_syntax_type(char c) const
-   {
-      return m_char_map[static_cast<unsigned char>(c)];
-   }
-
-private:
-   regex_constants::syntax_type m_char_map[1u << CHAR_BIT];
-   void init();
-};
-
-#ifdef NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-enum
-{
-   char_class_space=1<<0, 
-   char_class_print=1<<1, 
-   char_class_cntrl=1<<2, 
-   char_class_upper=1<<3, 
-   char_class_lower=1<<4,
-   char_class_alpha=1<<5, 
-   char_class_digit=1<<6, 
-   char_class_punct=1<<7, 
-   char_class_xdigit=1<<8,
-   char_class_alnum=char_class_alpha|char_class_digit, 
-   char_class_graph=char_class_alnum|char_class_punct,
-   char_class_blank=1<<9,
-   char_class_word=1<<10,
-   char_class_unicode=1<<11,
-   char_class_horizontal_space=1<<12,
-   char_class_vertical_space=1<<13
-};
-
-#endif
-
-//
-// class cpp_regex_traits_implementation:
-// provides pimpl implementation for cpp_regex_traits.
-//
-template <class charT>
-class cpp_regex_traits_implementation : public cpp_regex_traits_char_layer<charT>
-{
-public:
-   typedef typename cpp_regex_traits<charT>::char_class_type char_class_type;
-   typedef typename std::ctype<charT>::mask                  native_mask_type;
-#ifndef NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_blank = 1u << 24);
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_word = 1u << 25);
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_unicode = 1u << 26);
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_horizontal = 1u << 27);
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_vertical = 1u << 28);
-#endif
-
-   typedef std::basic_string<charT> string_type;
-   typedef charT char_type;
-   //cpp_regex_traits_implementation();
-   cpp_regex_traits_implementation(const std::locale& l)
-      : cpp_regex_traits_char_layer<charT>(l)
-   {
-      init();
-   }
-   cpp_regex_traits_implementation(const cpp_regex_traits_base<charT>& l)
-      : cpp_regex_traits_char_layer<charT>(l)
-   {
-      init();
-   }
-   std::string error_string(regex_constants::error_type n) const
-   {
-      if(!m_error_strings.empty())
-      {
-         std::map<int, std::string>::const_iterator p = m_error_strings.find(n);
-         return (p == m_error_strings.end()) ? std::string(get_default_error_string(n)) : p->second;
-      }
-      return get_default_error_string(n);
-   }
-   char_class_type lookup_classname(const charT* p1, const charT* p2) const
-   {
-      char_class_type result = lookup_classname_imp(p1, p2);
-      if(result == 0)
-      {
-         string_type temp(p1, p2);
-         this->m_pctype->tolower(&*temp.begin(), &*temp.begin() + temp.size());
-         result = lookup_classname_imp(&*temp.begin(), &*temp.begin() + temp.size());
-      }
-      return result;
-   }
-   string_type lookup_collatename(const charT* p1, const charT* p2) const;
-   string_type transform_primary(const charT* p1, const charT* p2) const;
-   string_type transform(const charT* p1, const charT* p2) const;
-private:
-   std::map<int, std::string>     m_error_strings;   // error messages indexed by numberic ID
-   std::map<string_type, char_class_type>  m_custom_class_names; // character class names
-   std::map<string_type, string_type>      m_custom_collate_names; // collating element names
-   unsigned                       m_collate_type;    // the form of the collation string
-   charT                          m_collate_delim;   // the collation group delimiter
-   //
-   // helpers:
-   //
-   char_class_type lookup_classname_imp(const charT* p1, const charT* p2) const;
-   void init();
-#ifdef NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-public:
-   bool isctype(charT c, char_class_type m)const;
-#endif
-};
-
-#ifndef NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-#if !defined(NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION)
-
-template <class charT>
-typename cpp_regex_traits_implementation<charT>::char_class_type const cpp_regex_traits_implementation<charT>::mask_blank;
-template <class charT>
-typename cpp_regex_traits_implementation<charT>::char_class_type const cpp_regex_traits_implementation<charT>::mask_word;
-template <class charT>
-typename cpp_regex_traits_implementation<charT>::char_class_type const cpp_regex_traits_implementation<charT>::mask_unicode;
-template <class charT>
-typename cpp_regex_traits_implementation<charT>::char_class_type const cpp_regex_traits_implementation<charT>::mask_vertical;
-template <class charT>
-typename cpp_regex_traits_implementation<charT>::char_class_type const cpp_regex_traits_implementation<charT>::mask_horizontal;
-
-#endif
-#endif
-
-template <class charT>
-typename cpp_regex_traits_implementation<charT>::string_type 
-   cpp_regex_traits_implementation<charT>::transform_primary(const charT* p1, const charT* p2) const
-{
-   //
-   // PRECONDITIONS:
-   //
-   // A bug in gcc 3.2 (and maybe other versions as well) treats
-   // p1 as a null terminated string, for efficiency reasons 
-   // we work around this elsewhere, but just assert here that
-   // we adhere to gcc's (buggy) preconditions...
-   //
-   NDNBOOST_ASSERT(*p2 == 0);
-
-   string_type result;
-   //
-   // swallowing all exceptions here is a bad idea
-   // however at least one std lib will always throw
-   // std::bad_alloc for certain arguments...
-   //
-#ifndef NDNBOOST_NO_EXCEPTIONS
-   try{
-#endif
-      //
-      // What we do here depends upon the format of the sort key returned by
-      // sort key returned by this->transform:
-      //
-      switch(m_collate_type)
-      {
-      case sort_C:
-      case sort_unknown:
-         // the best we can do is translate to lower case, then get a regular sort key:
-         {
-            result.assign(p1, p2);
-            this->m_pctype->tolower(&*result.begin(), &*result.begin() + result.size());
-            result = this->m_pcollate->transform(&*result.begin(), &*result.begin() + result.size());
-            break;
-         }
-      case sort_fixed:
-         {
-            // get a regular sort key, and then truncate it:
-            result.assign(this->m_pcollate->transform(p1, p2));
-            result.erase(this->m_collate_delim);
-            break;
-         }
-      case sort_delim:
-            // get a regular sort key, and then truncate everything after the delim:
-            result.assign(this->m_pcollate->transform(p1, p2));
-            std::size_t i;
-            for(i = 0; i < result.size(); ++i)
-            {
-               if(result[i] == m_collate_delim)
-                  break;
-            }
-            result.erase(i);
-            break;
-      }
-#ifndef NDNBOOST_NO_EXCEPTIONS
-   }catch(...){}
-#endif
-   while(result.size() && (charT(0) == *result.rbegin()))
-      result.erase(result.size() - 1);
-   if(result.empty())
-   {
-      // character is ignorable at the primary level:
-      result = string_type(1, charT(0));
-   }
-   return result;
-}
-
-template <class charT>
-typename cpp_regex_traits_implementation<charT>::string_type 
-   cpp_regex_traits_implementation<charT>::transform(const charT* p1, const charT* p2) const
-{
-   //
-   // PRECONDITIONS:
-   //
-   // A bug in gcc 3.2 (and maybe other versions as well) treats
-   // p1 as a null terminated string, for efficiency reasons 
-   // we work around this elsewhere, but just assert here that
-   // we adhere to gcc's (buggy) preconditions...
-   //
-   NDNBOOST_ASSERT(*p2 == 0);
-   //
-   // swallowing all exceptions here is a bad idea
-   // however at least one std lib will always throw
-   // std::bad_alloc for certain arguments...
-   //
-   string_type result;
-#ifndef NDNBOOST_NO_EXCEPTIONS
-   try{
-#endif
-      result = this->m_pcollate->transform(p1, p2);
-      //
-      // Borland's STLPort version returns a NULL-terminated
-      // string that has garbage at the end - each call to
-      // std::collate<wchar_t>::transform returns a different string!
-      // So as a workaround, we'll truncate the string at the first NULL
-      // which _seems_ to work....
-#if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x580)
-      result.erase(result.find(charT(0)));
-#else
-      //
-      // some implementations (Dinkumware) append unnecessary trailing \0's:
-      while(result.size() && (charT(0) == *result.rbegin()))
-         result.erase(result.size() - 1);
-#endif
-      NDNBOOST_ASSERT(std::find(result.begin(), result.end(), charT(0)) == result.end());
-#ifndef NDNBOOST_NO_EXCEPTIONS
-   }
-   catch(...)
-   {
-   }
-#endif
-   return result;
-}
-
-
-template <class charT>
-typename cpp_regex_traits_implementation<charT>::string_type 
-   cpp_regex_traits_implementation<charT>::lookup_collatename(const charT* p1, const charT* p2) const
-{
-   typedef typename std::map<string_type, string_type>::const_iterator iter_type;
-   if(m_custom_collate_names.size())
-   {
-      iter_type pos = m_custom_collate_names.find(string_type(p1, p2));
-      if(pos != m_custom_collate_names.end())
-         return pos->second;
-   }
-#if !defined(NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)\
-               && !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)\
-               && !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
-   std::string name(p1, p2);
-#else
-   std::string name;
-   const charT* p0 = p1;
-   while(p0 != p2)
-      name.append(1, char(*p0++));
-#endif
-   name = lookup_default_collate_name(name);
-#if !defined(NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)\
-               && !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)\
-               && !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
-   if(name.size())
-      return string_type(name.begin(), name.end());
-#else
-   if(name.size())
-   {
-      string_type result;
-      typedef std::string::const_iterator iter;
-      iter b = name.begin();
-      iter e = name.end();
-      while(b != e)
-         result.append(1, charT(*b++));
-      return result;
-   }
-#endif
-   if(p2 - p1 == 1)
-      return string_type(1, *p1);
-   return string_type();
-}
-
-template <class charT>
-void cpp_regex_traits_implementation<charT>::init()
-{
-#ifndef NDNBOOST_NO_STD_MESSAGES
-#ifndef __IBMCPP__
-   typename std::messages<charT>::catalog cat = static_cast<std::messages<char>::catalog>(-1);
-#else
-   typename std::messages<charT>::catalog cat = reinterpret_cast<std::messages<char>::catalog>(-1);
-#endif
-   std::string cat_name(cpp_regex_traits<charT>::get_catalog_name());
-   if(cat_name.size() && (this->m_pmessages != 0))
-   {
-      cat = this->m_pmessages->open(
-         cat_name, 
-         this->m_locale);
-      if((int)cat < 0)
-      {
-         std::string m("Unable to open message catalog: ");
-         std::runtime_error err(m + cat_name);
-         ndnboost::re_detail::raise_runtime_error(err);
-      }
-   }
-   //
-   // if we have a valid catalog then load our messages:
-   //
-   if((int)cat >= 0)
-   {
-      //
-      // Error messages:
-      //
-      for(ndnboost::regex_constants::error_type i = static_cast<ndnboost::regex_constants::error_type>(0); 
-         i <= ndnboost::regex_constants::error_unknown; 
-         i = static_cast<ndnboost::regex_constants::error_type>(i + 1))
-      {
-         const char* p = get_default_error_string(i);
-         string_type default_message;
-         while(*p)
-         {
-            default_message.append(1, this->m_pctype->widen(*p));
-            ++p;
-         }
-         string_type s = this->m_pmessages->get(cat, 0, i+200, default_message);
-         std::string result;
-         for(std::string::size_type j = 0; j < s.size(); ++j)
-         {
-            result.append(1, this->m_pctype->narrow(s[j], 0));
-         }
-         m_error_strings[i] = result;
-      }
-      //
-      // Custom class names:
-      //
-#ifndef NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-      static const char_class_type masks[16] = 
-      {
-         std::ctype<charT>::alnum,
-         std::ctype<charT>::alpha,
-         std::ctype<charT>::cntrl,
-         std::ctype<charT>::digit,
-         std::ctype<charT>::graph,
-         cpp_regex_traits_implementation<charT>::mask_horizontal,
-         std::ctype<charT>::lower,
-         std::ctype<charT>::print,
-         std::ctype<charT>::punct,
-         std::ctype<charT>::space,
-         std::ctype<charT>::upper,
-         cpp_regex_traits_implementation<charT>::mask_vertical,
-         std::ctype<charT>::xdigit,
-         cpp_regex_traits_implementation<charT>::mask_blank,
-         cpp_regex_traits_implementation<charT>::mask_word,
-         cpp_regex_traits_implementation<charT>::mask_unicode,
-      };
-#else
-      static const char_class_type masks[16] = 
-      {
-         ::ndnboost::re_detail::char_class_alnum,
-         ::ndnboost::re_detail::char_class_alpha,
-         ::ndnboost::re_detail::char_class_cntrl,
-         ::ndnboost::re_detail::char_class_digit,
-         ::ndnboost::re_detail::char_class_graph,
-         ::ndnboost::re_detail::char_class_horizontal_space,
-         ::ndnboost::re_detail::char_class_lower,
-         ::ndnboost::re_detail::char_class_print,
-         ::ndnboost::re_detail::char_class_punct,
-         ::ndnboost::re_detail::char_class_space,
-         ::ndnboost::re_detail::char_class_upper,
-         ::ndnboost::re_detail::char_class_vertical_space,
-         ::ndnboost::re_detail::char_class_xdigit,
-         ::ndnboost::re_detail::char_class_blank,
-         ::ndnboost::re_detail::char_class_word,
-         ::ndnboost::re_detail::char_class_unicode,
-      };
-#endif
-      static const string_type null_string;
-      for(unsigned int j = 0; j <= 13; ++j)
-      {
-         string_type s(this->m_pmessages->get(cat, 0, j+300, null_string));
-         if(s.size())
-            this->m_custom_class_names[s] = masks[j];
-      }
-   }
-#endif
-   //
-   // get the collation format used by m_pcollate:
-   //
-   m_collate_type = re_detail::find_sort_syntax(this, &m_collate_delim);
-}
-
-template <class charT>
-typename cpp_regex_traits_implementation<charT>::char_class_type 
-   cpp_regex_traits_implementation<charT>::lookup_classname_imp(const charT* p1, const charT* p2) const
-{
-#ifndef NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-   static const char_class_type masks[22] = 
-   {
-      0,
-      std::ctype<char>::alnum, 
-      std::ctype<char>::alpha,
-      cpp_regex_traits_implementation<charT>::mask_blank,
-      std::ctype<char>::cntrl,
-      std::ctype<char>::digit,
-      std::ctype<char>::digit,
-      std::ctype<char>::graph,
-      cpp_regex_traits_implementation<charT>::mask_horizontal,
-      std::ctype<char>::lower,
-      std::ctype<char>::lower,
-      std::ctype<char>::print,
-      std::ctype<char>::punct,
-      std::ctype<char>::space,
-      std::ctype<char>::space,
-      std::ctype<char>::upper,
-      cpp_regex_traits_implementation<charT>::mask_unicode,
-      std::ctype<char>::upper,
-      cpp_regex_traits_implementation<charT>::mask_vertical,
-      std::ctype<char>::alnum | cpp_regex_traits_implementation<charT>::mask_word, 
-      std::ctype<char>::alnum | cpp_regex_traits_implementation<charT>::mask_word, 
-      std::ctype<char>::xdigit,
-   };
-#else
-   static const char_class_type masks[22] = 
-   {
-      0,
-      ::ndnboost::re_detail::char_class_alnum, 
-      ::ndnboost::re_detail::char_class_alpha,
-      ::ndnboost::re_detail::char_class_blank,
-      ::ndnboost::re_detail::char_class_cntrl,
-      ::ndnboost::re_detail::char_class_digit,
-      ::ndnboost::re_detail::char_class_digit,
-      ::ndnboost::re_detail::char_class_graph,
-      ::ndnboost::re_detail::char_class_horizontal_space,
-      ::ndnboost::re_detail::char_class_lower,
-      ::ndnboost::re_detail::char_class_lower,
-      ::ndnboost::re_detail::char_class_print,
-      ::ndnboost::re_detail::char_class_punct,
-      ::ndnboost::re_detail::char_class_space,
-      ::ndnboost::re_detail::char_class_space,
-      ::ndnboost::re_detail::char_class_upper,
-      ::ndnboost::re_detail::char_class_unicode,
-      ::ndnboost::re_detail::char_class_upper,
-      ::ndnboost::re_detail::char_class_vertical_space,
-      ::ndnboost::re_detail::char_class_alnum | ::ndnboost::re_detail::char_class_word, 
-      ::ndnboost::re_detail::char_class_alnum | ::ndnboost::re_detail::char_class_word, 
-      ::ndnboost::re_detail::char_class_xdigit,
-   };
-#endif
-   if(m_custom_class_names.size())
-   {
-      typedef typename std::map<std::basic_string<charT>, char_class_type>::const_iterator map_iter;
-      map_iter pos = m_custom_class_names.find(string_type(p1, p2));
-      if(pos != m_custom_class_names.end())
-         return pos->second;
-   }
-   std::size_t state_id = 1 + re_detail::get_default_class_id(p1, p2);
-   NDNBOOST_ASSERT(state_id < sizeof(masks) / sizeof(masks[0]));
-   return masks[state_id];
-}
-
-#ifdef NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-template <class charT>
-bool cpp_regex_traits_implementation<charT>::isctype(const charT c, char_class_type mask) const
-{
-   return
-      ((mask & ::ndnboost::re_detail::char_class_space) && (this->m_pctype->is(std::ctype<charT>::space, c)))
-      || ((mask & ::ndnboost::re_detail::char_class_print) && (this->m_pctype->is(std::ctype<charT>::print, c)))
-      || ((mask & ::ndnboost::re_detail::char_class_cntrl) && (this->m_pctype->is(std::ctype<charT>::cntrl, c)))
-      || ((mask & ::ndnboost::re_detail::char_class_upper) && (this->m_pctype->is(std::ctype<charT>::upper, c)))
-      || ((mask & ::ndnboost::re_detail::char_class_lower) && (this->m_pctype->is(std::ctype<charT>::lower, c)))
-      || ((mask & ::ndnboost::re_detail::char_class_alpha) && (this->m_pctype->is(std::ctype<charT>::alpha, c)))
-      || ((mask & ::ndnboost::re_detail::char_class_digit) && (this->m_pctype->is(std::ctype<charT>::digit, c)))
-      || ((mask & ::ndnboost::re_detail::char_class_punct) && (this->m_pctype->is(std::ctype<charT>::punct, c)))
-      || ((mask & ::ndnboost::re_detail::char_class_xdigit) && (this->m_pctype->is(std::ctype<charT>::xdigit, c)))
-      || ((mask & ::ndnboost::re_detail::char_class_blank) && (this->m_pctype->is(std::ctype<charT>::space, c)) && !::ndnboost::re_detail::is_separator(c))
-      || ((mask & ::ndnboost::re_detail::char_class_word) && (c == '_'))
-      || ((mask & ::ndnboost::re_detail::char_class_unicode) && ::ndnboost::re_detail::is_extended(c))
-      || ((mask & ::ndnboost::re_detail::char_class_vertical_space) && (is_separator(c) || (c == '\v')))
-      || ((mask & ::ndnboost::re_detail::char_class_horizontal_space) && this->m_pctype->is(std::ctype<charT>::space, c) && !(is_separator(c) || (c == '\v')));
-}
-#endif
-
-
-template <class charT>
-inline ndnboost::shared_ptr<const cpp_regex_traits_implementation<charT> > create_cpp_regex_traits(const std::locale& l NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(charT))
-{
-   cpp_regex_traits_base<charT> key(l);
-   return ::ndnboost::object_cache<cpp_regex_traits_base<charT>, cpp_regex_traits_implementation<charT> >::get(key, 5);
-}
-
-} // re_detail
-
-template <class charT>
-class cpp_regex_traits
-{
-private:
-   typedef std::ctype<charT>            ctype_type;
-public:
-   typedef charT                        char_type;
-   typedef std::size_t                  size_type;
-   typedef std::basic_string<char_type> string_type;
-   typedef std::locale                  locale_type;
-   typedef ndnboost::uint_least32_t        char_class_type;
-
-   struct boost_extensions_tag{};
-
-   cpp_regex_traits()
-      : m_pimpl(re_detail::create_cpp_regex_traits<charT>(std::locale()))
-   { }
-   static size_type length(const char_type* p)
-   {
-      return std::char_traits<charT>::length(p);
-   }
-   regex_constants::syntax_type syntax_type(charT c)const
-   {
-      return m_pimpl->syntax_type(c);
-   }
-   regex_constants::escape_syntax_type escape_syntax_type(charT c) const
-   {
-      return m_pimpl->escape_syntax_type(c);
-   }
-   charT translate(charT c) const
-   {
-      return c;
-   }
-   charT translate_nocase(charT c) const
-   {
-      return m_pimpl->m_pctype->tolower(c);
-   }
-   charT translate(charT c, bool icase) const
-   {
-      return icase ? m_pimpl->m_pctype->tolower(c) : c;
-   }
-   charT tolower(charT c) const
-   {
-      return m_pimpl->m_pctype->tolower(c);
-   }
-   charT toupper(charT c) const
-   {
-      return m_pimpl->m_pctype->toupper(c);
-   }
-   string_type transform(const charT* p1, const charT* p2) const
-   {
-      return m_pimpl->transform(p1, p2);
-   }
-   string_type transform_primary(const charT* p1, const charT* p2) const
-   {
-      return m_pimpl->transform_primary(p1, p2);
-   }
-   char_class_type lookup_classname(const charT* p1, const charT* p2) const
-   {
-      return m_pimpl->lookup_classname(p1, p2);
-   }
-   string_type lookup_collatename(const charT* p1, const charT* p2) const
-   {
-      return m_pimpl->lookup_collatename(p1, p2);
-   }
-   bool isctype(charT c, char_class_type f) const
-   {
-#ifndef NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-      typedef typename std::ctype<charT>::mask ctype_mask;
-
-      static const ctype_mask mask_base = 
-         static_cast<ctype_mask>(
-            std::ctype<charT>::alnum 
-            | std::ctype<charT>::alpha
-            | std::ctype<charT>::cntrl
-            | std::ctype<charT>::digit
-            | std::ctype<charT>::graph
-            | std::ctype<charT>::lower
-            | std::ctype<charT>::print
-            | std::ctype<charT>::punct
-            | std::ctype<charT>::space
-            | std::ctype<charT>::upper
-            | std::ctype<charT>::xdigit);
-
-      if((f & mask_base) 
-         && (m_pimpl->m_pctype->is(
-            static_cast<ctype_mask>(f & mask_base), c)))
-         return true;
-      else if((f & re_detail::cpp_regex_traits_implementation<charT>::mask_unicode) && re_detail::is_extended(c))
-         return true;
-      else if((f & re_detail::cpp_regex_traits_implementation<charT>::mask_word) && (c == '_'))
-         return true;
-      else if((f & re_detail::cpp_regex_traits_implementation<charT>::mask_blank) 
-         && m_pimpl->m_pctype->is(std::ctype<charT>::space, c)
-         && !re_detail::is_separator(c))
-         return true;
-      else if((f & re_detail::cpp_regex_traits_implementation<charT>::mask_vertical) 
-         && (::ndnboost::re_detail::is_separator(c) || (c == '\v')))
-         return true;
-      else if((f & re_detail::cpp_regex_traits_implementation<charT>::mask_horizontal) 
-         && this->isctype(c, std::ctype<charT>::space) && !this->isctype(c, re_detail::cpp_regex_traits_implementation<charT>::mask_vertical))
-         return true;
-      return false;
-#else
-      return m_pimpl->isctype(c, f);
-#endif
-   }
-   int toi(const charT*& p1, const charT* p2, int radix)const;
-   int value(charT c, int radix)const
-   {
-      const charT* pc = &c;
-      return toi(pc, pc + 1, radix);
-   }
-   locale_type imbue(locale_type l)
-   {
-      std::locale result(getloc());
-      m_pimpl = re_detail::create_cpp_regex_traits<charT>(l);
-      return result;
-   }
-   locale_type getloc()const
-   {
-      return m_pimpl->m_locale;
-   }
-   std::string error_string(regex_constants::error_type n) const
-   {
-      return m_pimpl->error_string(n);
-   }
-
-   //
-   // extension:
-   // set the name of the message catalog in use (defaults to "boost_regex").
-   //
-   static std::string catalog_name(const std::string& name);
-   static std::string get_catalog_name();
-
-private:
-   ndnboost::shared_ptr<const re_detail::cpp_regex_traits_implementation<charT> > m_pimpl;
-   //
-   // catalog name handler:
-   //
-   static std::string& get_catalog_name_inst();
-
-#ifdef NDNBOOST_HAS_THREADS
-   static static_mutex& get_mutex_inst();
-#endif
-};
-
-
-template <class charT>
-int cpp_regex_traits<charT>::toi(const charT*& first, const charT* last, int radix)const
-{
-   re_detail::parser_buf<charT>   sbuf;            // buffer for parsing numbers.
-   std::basic_istream<charT>      is(&sbuf);       // stream for parsing numbers.
-
-   // we do NOT want to parse any thousands separators inside the stream:
-   last = std::find(first, last, NDNBOOST_USE_FACET(std::numpunct<charT>, is.getloc()).thousands_sep());
-
-   sbuf.pubsetbuf(const_cast<charT*>(static_cast<const charT*>(first)), static_cast<std::streamsize>(last-first));
-   is.clear();
-   if(std::abs(radix) == 16) is >> std::hex;
-   else if(std::abs(radix) == 8) is >> std::oct;
-   else is >> std::dec;
-   int val;
-   if(is >> val)
-   {
-      first = first + ((last - first) - sbuf.in_avail());
-      return val;
-   }
-   else
-      return -1;
-}
-
-template <class charT>
-std::string cpp_regex_traits<charT>::catalog_name(const std::string& name)
-{
-#ifdef NDNBOOST_HAS_THREADS
-   static_mutex::scoped_lock lk(get_mutex_inst());
-#endif
-   std::string result(get_catalog_name_inst());
-   get_catalog_name_inst() = name;
-   return result;
-}
-
-template <class charT>
-std::string& cpp_regex_traits<charT>::get_catalog_name_inst()
-{
-   static std::string s_name;
-   return s_name;
-}
-
-template <class charT>
-std::string cpp_regex_traits<charT>::get_catalog_name()
-{
-#ifdef NDNBOOST_HAS_THREADS
-   static_mutex::scoped_lock lk(get_mutex_inst());
-#endif
-   std::string result(get_catalog_name_inst());
-   return result;
-}
-
-#ifdef NDNBOOST_HAS_THREADS
-template <class charT>
-static_mutex& cpp_regex_traits<charT>::get_mutex_inst()
-{
-   static static_mutex s_mutex = NDNBOOST_STATIC_MUTEX_INIT;
-   return s_mutex;
-}
-#endif
-
-
-} // boost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
-#endif
-
-
diff --git a/include/ndnboost/regex/v4/cregex.hpp b/include/ndnboost/regex/v4/cregex.hpp
deleted file mode 100644
index bfe61f0..0000000
--- a/include/ndnboost/regex/v4/cregex.hpp
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         cregex.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares POSIX API functions
-  *                + ndnboost::RegEx high level wrapper.
-  */
-
-#ifndef NDNBOOST_RE_CREGEX_HPP_INCLUDED
-#define NDNBOOST_RE_CREGEX_HPP_INCLUDED
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-#include <ndnboost/regex/v4/match_flags.hpp>
-#include <ndnboost/regex/v4/error_type.hpp>
-
-#ifdef __cplusplus
-#include <cstddef>
-#else
-#include <stddef.h>
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-/* include these defs only for POSIX compatablity */
-#ifdef __cplusplus
-namespace ndnboost{
-extern "C" {
-#endif
-
-#if defined(__cplusplus) && !defined(NDNBOOST_NO_STDC_NAMESPACE)
-typedef std::ptrdiff_t regoff_t;
-typedef std::size_t regsize_t;
-#else
-typedef ptrdiff_t regoff_t;
-typedef size_t regsize_t;
-#endif
-
-typedef struct
-{
-   unsigned int re_magic;
-#ifdef __cplusplus
-   std::size_t  re_nsub;      /* number of parenthesized subexpressions */
-#else
-   size_t re_nsub; 
-#endif
-   const char*  re_endp;       /* end pointer for REG_PEND */
-   void* guts;                /* none of your business :-) */
-   match_flag_type eflags;        /* none of your business :-) */
-} regex_tA;
-
-#ifndef NDNBOOST_NO_WREGEX
-typedef struct
-{
-   unsigned int re_magic;
-#ifdef __cplusplus
-   std::size_t  re_nsub;         /* number of parenthesized subexpressions */
-#else
-   size_t re_nsub;
-#endif
-   const wchar_t* re_endp;       /* end pointer for REG_PEND */
-   void* guts;                   /* none of your business :-) */
-   match_flag_type eflags;           /* none of your business :-) */
-} regex_tW;
-#endif
-
-typedef struct
-{
-   regoff_t rm_so;      /* start of match */
-   regoff_t rm_eo;      /* end of match */
-} regmatch_t;
-
-/* regcomp() flags */
-typedef enum{
-   REG_BASIC = 0000,
-   REG_EXTENDED = 0001,
-   REG_ICASE = 0002,
-   REG_NOSUB = 0004,
-   REG_NEWLINE = 0010,
-   REG_NOSPEC = 0020,
-   REG_PEND = 0040,
-   REG_DUMP = 0200,
-   REG_NOCOLLATE = 0400,
-   REG_ESCAPE_IN_LISTS = 01000,
-   REG_NEWLINE_ALT = 02000,
-   REG_PERLEX = 04000,
-
-   REG_PERL = REG_EXTENDED | REG_NOCOLLATE | REG_ESCAPE_IN_LISTS | REG_PERLEX,
-   REG_AWK = REG_EXTENDED | REG_ESCAPE_IN_LISTS,
-   REG_GREP = REG_BASIC | REG_NEWLINE_ALT,
-   REG_EGREP = REG_EXTENDED | REG_NEWLINE_ALT,
-
-   REG_ASSERT = 15,
-   REG_INVARG = 16,
-   REG_ATOI = 255,   /* convert name to number (!) */
-   REG_ITOA = 0400   /* convert number to name (!) */
-} reg_comp_flags;
-
-/* regexec() flags */
-typedef enum{
-   REG_NOTBOL =    00001,
-   REG_NOTEOL =    00002,
-   REG_STARTEND =  00004
-} reg_exec_flags;
-
-/*
- * POSIX error codes:
- */
-typedef unsigned reg_error_t;
-typedef reg_error_t reg_errcode_t;  /* backwards compatibility */
-
-static const reg_error_t REG_NOERROR = 0;   /* Success.  */
-static const reg_error_t REG_NOMATCH = 1;   /* Didn't find a match (for regexec).  */
-
-  /* POSIX regcomp return error codes.  (In the order listed in the
-     standard.)  */
-static const reg_error_t REG_BADPAT = 2;    /* Invalid pattern.  */
-static const reg_error_t REG_ECOLLATE = 3;  /* Undefined collating element.  */
-static const reg_error_t REG_ECTYPE = 4;    /* Invalid character class name.  */
-static const reg_error_t REG_EESCAPE = 5;   /* Trailing backslash.  */
-static const reg_error_t REG_ESUBREG = 6;   /* Invalid back reference.  */
-static const reg_error_t REG_EBRACK = 7;    /* Unmatched left bracket.  */
-static const reg_error_t REG_EPAREN = 8;    /* Parenthesis imbalance.  */
-static const reg_error_t REG_EBRACE = 9;    /* Unmatched \{.  */
-static const reg_error_t REG_BADBR = 10;    /* Invalid contents of \{\}.  */
-static const reg_error_t REG_ERANGE = 11;   /* Invalid range end.  */
-static const reg_error_t REG_ESPACE = 12;   /* Ran out of memory.  */
-static const reg_error_t REG_BADRPT = 13;   /* No preceding re for repetition op.  */
-static const reg_error_t REG_EEND = 14;     /* unexpected end of expression */
-static const reg_error_t REG_ESIZE = 15;    /* expression too big */
-static const reg_error_t REG_ERPAREN = 8;   /* = REG_EPAREN : unmatched right parenthesis */
-static const reg_error_t REG_EMPTY = 17;    /* empty expression */
-static const reg_error_t REG_E_MEMORY = 15; /* = REG_ESIZE : out of memory */
-static const reg_error_t REG_ECOMPLEXITY = 18; /* complexity too high */
-static const reg_error_t REG_ESTACK = 19;   /* out of stack space */
-static const reg_error_t REG_E_PERL = 20;   /* Perl (?...) error */
-static const reg_error_t REG_E_UNKNOWN = 21; /* unknown error */
-static const reg_error_t REG_ENOSYS = 21;   /* = REG_E_UNKNOWN : Reserved. */
-
-NDNBOOST_REGEX_DECL int NDNBOOST_REGEX_CCALL regcompA(regex_tA*, const char*, int);
-NDNBOOST_REGEX_DECL regsize_t NDNBOOST_REGEX_CCALL regerrorA(int, const regex_tA*, char*, regsize_t);
-NDNBOOST_REGEX_DECL int NDNBOOST_REGEX_CCALL regexecA(const regex_tA*, const char*, regsize_t, regmatch_t*, int);
-NDNBOOST_REGEX_DECL void NDNBOOST_REGEX_CCALL regfreeA(regex_tA*);
-
-#ifndef NDNBOOST_NO_WREGEX
-NDNBOOST_REGEX_DECL int NDNBOOST_REGEX_CCALL regcompW(regex_tW*, const wchar_t*, int);
-NDNBOOST_REGEX_DECL regsize_t NDNBOOST_REGEX_CCALL regerrorW(int, const regex_tW*, wchar_t*, regsize_t);
-NDNBOOST_REGEX_DECL int NDNBOOST_REGEX_CCALL regexecW(const regex_tW*, const wchar_t*, regsize_t, regmatch_t*, int);
-NDNBOOST_REGEX_DECL void NDNBOOST_REGEX_CCALL regfreeW(regex_tW*);
-#endif
-
-#ifdef UNICODE
-#define regcomp regcompW
-#define regerror regerrorW
-#define regexec regexecW
-#define regfree regfreeW
-#define regex_t regex_tW
-#else
-#define regcomp regcompA
-#define regerror regerrorA
-#define regexec regexecA
-#define regfree regfreeA
-#define regex_t regex_tA
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef __cplusplus
-} /* extern "C" */
-} /* namespace */
-#endif
-
-#if defined(__cplusplus)
-/*
- * C++ high level wrapper goes here:
- */
-#include <string>
-#include <vector>
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-class RegEx;
-
-namespace re_detail{
-
-class RegExData;
-struct pred1;
-struct pred2;
-struct pred3;
-struct pred4;
-
-}  /* namespace re_detail */
-
-#if (defined(NDNBOOST_MSVC) || defined(__BORLANDC__)) && !defined(NDNBOOST_DISABLE_WIN32)
-typedef bool (__cdecl *GrepCallback)(const RegEx& expression);
-typedef bool (__cdecl *GrepFileCallback)(const char* file, const RegEx& expression);
-typedef bool (__cdecl *FindFilesCallback)(const char* file);
-#else
-typedef bool (*GrepCallback)(const RegEx& expression);
-typedef bool (*GrepFileCallback)(const char* file, const RegEx& expression);
-typedef bool (*FindFilesCallback)(const char* file);
-#endif
-
-class NDNBOOST_REGEX_DECL RegEx
-{
-private:
-   re_detail::RegExData* pdata;
-public:
-   RegEx();
-   RegEx(const RegEx& o);
-   ~RegEx();
-   explicit RegEx(const char* c, bool icase = false);
-   explicit RegEx(const std::string& s, bool icase = false);
-   RegEx& operator=(const RegEx& o);
-   RegEx& operator=(const char* p);
-   RegEx& operator=(const std::string& s){ return this->operator=(s.c_str()); }
-   unsigned int SetExpression(const char* p, bool icase = false);
-   unsigned int SetExpression(const std::string& s, bool icase = false){ return SetExpression(s.c_str(), icase); }
-   std::string Expression()const;
-   unsigned int error_code()const;
-   /*
-    * now matching operators:
-    */
-   bool Match(const char* p, match_flag_type flags = match_default);
-   bool Match(const std::string& s, match_flag_type flags = match_default) { return Match(s.c_str(), flags); }
-   bool Search(const char* p, match_flag_type flags = match_default);
-   bool Search(const std::string& s, match_flag_type flags = match_default) { return Search(s.c_str(), flags); }
-   unsigned int Grep(GrepCallback cb, const char* p, match_flag_type flags = match_default);
-   unsigned int Grep(GrepCallback cb, const std::string& s, match_flag_type flags = match_default) { return Grep(cb, s.c_str(), flags); }
-   unsigned int Grep(std::vector<std::string>& v, const char* p, match_flag_type flags = match_default);
-   unsigned int Grep(std::vector<std::string>& v, const std::string& s, match_flag_type flags = match_default) { return Grep(v, s.c_str(), flags); }
-   unsigned int Grep(std::vector<std::size_t>& v, const char* p, match_flag_type flags = match_default);
-   unsigned int Grep(std::vector<std::size_t>& v, const std::string& s, match_flag_type flags = match_default) { return Grep(v, s.c_str(), flags); }
-#ifndef NDNBOOST_REGEX_NO_FILEITER
-   unsigned int GrepFiles(GrepFileCallback cb, const char* files, bool recurse = false, match_flag_type flags = match_default);
-   unsigned int GrepFiles(GrepFileCallback cb, const std::string& files, bool recurse = false, match_flag_type flags = match_default) { return GrepFiles(cb, files.c_str(), recurse, flags); }
-   unsigned int FindFiles(FindFilesCallback cb, const char* files, bool recurse = false, match_flag_type flags = match_default);
-   unsigned int FindFiles(FindFilesCallback cb, const std::string& files, bool recurse = false, match_flag_type flags = match_default) { return FindFiles(cb, files.c_str(), recurse, flags); }
-#endif
-
-   std::string Merge(const std::string& in, const std::string& fmt,
-                       bool copy = true, match_flag_type flags = match_default);
-   std::string Merge(const char* in, const char* fmt,
-                       bool copy = true, match_flag_type flags = match_default);
-
-   std::size_t Split(std::vector<std::string>& v, std::string& s, match_flag_type flags = match_default, unsigned max_count = ~0);
-   /*
-    * now operators for returning what matched in more detail:
-    */
-   std::size_t Position(int i = 0)const;
-   std::size_t Length(int i = 0)const;
-   bool Matched(int i = 0)const;
-   std::size_t Marks()const;
-   std::string What(int i = 0)const;
-   std::string operator[](int i)const { return What(i); }
-
-   static const std::size_t npos;
-
-   friend struct re_detail::pred1;
-   friend struct re_detail::pred2;
-   friend struct re_detail::pred3;
-   friend struct re_detail::pred4;
-};
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} /* namespace ndnboost */
-
-#endif /* __cplusplus */
-
-#endif /* include guard */
-
-
-
-
-
-
-
-
-
-
diff --git a/include/ndnboost/regex/v4/error_type.hpp b/include/ndnboost/regex/v4/error_type.hpp
deleted file mode 100644
index 154e9c0..0000000
--- a/include/ndnboost/regex/v4/error_type.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *
- * Copyright (c) 2003-2005
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         error_type.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares regular expression error type enumerator.
-  */
-
-#ifndef NDNBOOST_REGEX_ERROR_TYPE_HPP
-#define NDNBOOST_REGEX_ERROR_TYPE_HPP
-
-#ifdef __cplusplus
-namespace ndnboost{
-#endif
-
-#ifdef __cplusplus
-namespace regex_constants{
-
-enum error_type{
-
-   error_ok = 0,         /* not used */
-   error_no_match = 1,   /* not used */
-   error_bad_pattern = 2,
-   error_collate = 3,
-   error_ctype = 4,
-   error_escape = 5,
-   error_backref = 6,
-   error_brack = 7,
-   error_paren = 8,
-   error_brace = 9,
-   error_badbrace = 10,
-   error_range = 11,
-   error_space = 12,
-   error_badrepeat = 13,
-   error_end = 14,    /* not used */
-   error_size = 15,
-   error_right_paren = 16,  /* not used */
-   error_empty = 17,
-   error_complexity = 18,
-   error_stack = 19,
-   error_perl_extension = 20,
-   error_unknown = 21
-};
-
-}
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/include/ndnboost/regex/v4/fileiter.hpp b/include/ndnboost/regex/v4/fileiter.hpp
deleted file mode 100644
index 75b99f8..0000000
--- a/include/ndnboost/regex/v4/fileiter.hpp
+++ /dev/null
@@ -1,455 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         fileiter.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares various platform independent file and
-  *                directory iterators, plus binary file input in
-  *                the form of class map_file.
-  */
-
-#ifndef NDNBOOST_RE_FILEITER_HPP_INCLUDED
-#define NDNBOOST_RE_FILEITER_HPP_INCLUDED
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-#include <ndnboost/assert.hpp>
-
-#ifndef NDNBOOST_REGEX_NO_FILEITER
-
-#if (defined(__CYGWIN__) || defined(__CYGWIN32__)) && !defined(NDNBOOST_REGEX_NO_W32)
-#error "Sorry, can't mix <windows.h> with STL code and gcc compiler: if you ran configure, try again with configure --disable-ms-windows"
-#define NDNBOOST_REGEX_FI_WIN32_MAP
-#define NDNBOOST_REGEX_FI_POSIX_DIR
-#elif (defined(__WIN32__) || defined(_WIN32) || defined(WIN32)) && !defined(NDNBOOST_REGEX_NO_W32)
-#define NDNBOOST_REGEX_FI_WIN32_MAP
-#define NDNBOOST_REGEX_FI_WIN32_DIR
-#else
-#define NDNBOOST_REGEX_FI_POSIX_MAP
-#define NDNBOOST_REGEX_FI_POSIX_DIR
-#endif
-
-#if defined(NDNBOOST_REGEX_FI_WIN32_MAP)||defined(NDNBOOST_REGEX_FI_WIN32_DIR)
-#include <windows.h>
-#endif
-
-#if defined(NDNBOOST_REGEX_FI_WIN32_DIR)
-
-#include <cstddef>
-
-namespace ndnboost{
-   namespace re_detail{
-
-#ifndef NDNBOOST_NO_ANSI_APIS
-typedef WIN32_FIND_DATAA _fi_find_data;
-#else
-typedef WIN32_FIND_DATAW _fi_find_data;
-#endif
-typedef HANDLE _fi_find_handle;
-
-   } // namespace re_detail
-
-} // namespace ndnboost
-
-#define _fi_invalid_handle INVALID_HANDLE_VALUE
-#define _fi_dir FILE_ATTRIBUTE_DIRECTORY
-
-#elif defined(NDNBOOST_REGEX_FI_POSIX_DIR)
-
-#include <cstddef>
-#include <cstdio>
-#include <cctype>
-#include <iterator>
-#include <list>
-#include <cassert>
-#include <dirent.h>
-
-#if defined(__SUNPRO_CC)
-using std::list;
-#endif
-
-#ifndef MAX_PATH
-#define MAX_PATH 256
-#endif
-
-namespace ndnboost{
-   namespace re_detail{
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-
-struct _fi_find_data
-{
-   unsigned dwFileAttributes;
-   char cFileName[MAX_PATH];
-};
-
-struct _fi_priv_data;
-
-typedef _fi_priv_data* _fi_find_handle;
-#define _fi_invalid_handle 0
-#define _fi_dir 1
-
-_fi_find_handle _fi_FindFirstFile(const char* lpFileName, _fi_find_data* lpFindFileData);
-bool _fi_FindNextFile(_fi_find_handle hFindFile,   _fi_find_data* lpFindFileData);
-bool _fi_FindClose(_fi_find_handle hFindFile);
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-
-   } // namespace re_detail
-} // namespace ndnboost
-
-#ifdef FindFirstFile
- #undef FindFirstFile
-#endif
-#ifdef FindNextFile
- #undef FindNextFile
-#endif
-#ifdef FindClose
- #undef FindClose
-#endif
-
-#define FindFirstFileA _fi_FindFirstFile
-#define FindNextFileA _fi_FindNextFile
-#define FindClose _fi_FindClose
-
-#endif
-
-namespace ndnboost{
-   namespace re_detail{
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-
-#ifdef NDNBOOST_REGEX_FI_WIN32_MAP // win32 mapfile
-
-class NDNBOOST_REGEX_DECL mapfile
-{
-   HANDLE hfile;
-   HANDLE hmap;
-   const char* _first;
-   const char* _last;
-public:
-
-   typedef const char* iterator;
-
-   mapfile(){ hfile = hmap = 0; _first = _last = 0; }
-   mapfile(const char* file){ hfile = hmap = 0; _first = _last = 0; open(file); }
-   ~mapfile(){ close(); }
-   void open(const char* file);
-   void close();
-   const char* begin(){ return _first; }
-   const char* end(){ return _last; }
-   size_t size(){ return _last - _first; }
-   bool valid(){ return (hfile != 0) && (hfile != INVALID_HANDLE_VALUE); }
-};
-
-
-#else
-
-class NDNBOOST_REGEX_DECL mapfile_iterator;
-
-class NDNBOOST_REGEX_DECL mapfile
-{
-   typedef char* pointer;
-   std::FILE* hfile;
-   long int _size;
-   pointer* _first;
-   pointer* _last;
-   mutable std::list<pointer*> condemed;
-   enum sizes
-   {
-      buf_size = 4096
-   };
-   void lock(pointer* node)const;
-   void unlock(pointer* node)const;
-public:
-
-   typedef mapfile_iterator iterator;
-
-   mapfile(){ hfile = 0; _size = 0; _first = _last = 0; }
-   mapfile(const char* file){ hfile = 0; _size = 0; _first = _last = 0; open(file); }
-   ~mapfile(){ close(); }
-   void open(const char* file);
-   void close();
-   iterator begin()const;
-   iterator end()const;
-   unsigned long size()const{ return _size; }
-   bool valid()const{ return hfile != 0; }
-   friend class mapfile_iterator;
-};
-
-class NDNBOOST_REGEX_DECL mapfile_iterator
-#if !defined(NDNBOOST_NO_STD_ITERATOR) || defined(NDNBOOST_MSVC_STD_ITERATOR)
-: public std::iterator<std::random_access_iterator_tag, char>
-#endif
-{
-   typedef mapfile::pointer internal_pointer;
-   internal_pointer* node;
-   const mapfile* file;
-   unsigned long offset;
-   long position()const
-   {
-      return file ? ((node - file->_first) * mapfile::buf_size + offset) : 0;
-   }
-   void position(long pos)
-   {
-      if(file)
-      {
-         node = file->_first + (pos / mapfile::buf_size);
-         offset = pos % mapfile::buf_size;
-      }
-   }
-public:
-   typedef std::ptrdiff_t                  difference_type;
-   typedef char                            value_type;
-   typedef const char*                     pointer;
-   typedef const char&                     reference;
-   typedef std::random_access_iterator_tag iterator_category;
-
-   mapfile_iterator() { node = 0; file = 0; offset = 0; }
-   mapfile_iterator(const mapfile* f, long arg_position)
-   {
-      file = f;
-      node = f->_first + arg_position / mapfile::buf_size;
-      offset = arg_position % mapfile::buf_size;
-      if(file)
-         file->lock(node);
-   }
-   mapfile_iterator(const mapfile_iterator& i)
-   {
-      file = i.file;
-      node = i.node;
-      offset = i.offset;
-      if(file)
-         file->lock(node);
-   }
-   ~mapfile_iterator()
-   {
-      if(file && node)
-         file->unlock(node);
-   }
-   mapfile_iterator& operator = (const mapfile_iterator& i);
-   char operator* ()const
-   {
-      NDNBOOST_ASSERT(node >= file->_first);
-      NDNBOOST_ASSERT(node < file->_last);
-      return file ? *(*node + sizeof(int) + offset) : char(0);
-   }
-   char operator[] (long off)const
-   {
-      mapfile_iterator tmp(*this);
-      tmp += off;
-      return *tmp;
-   }
-   mapfile_iterator& operator++ ();
-   mapfile_iterator operator++ (int);
-   mapfile_iterator& operator-- ();
-   mapfile_iterator operator-- (int);
-
-   mapfile_iterator& operator += (long off)
-   {
-      position(position() + off);
-      return *this;
-   }
-   mapfile_iterator& operator -= (long off)
-   {
-      position(position() - off);
-      return *this;
-   }
-
-   friend inline bool operator==(const mapfile_iterator& i, const mapfile_iterator& j)
-   {
-      return (i.file == j.file) && (i.node == j.node) && (i.offset == j.offset);
-   }
-
-   friend inline bool operator!=(const mapfile_iterator& i, const mapfile_iterator& j)
-   {
-      return !(i == j);
-   }
-
-   friend inline bool operator<(const mapfile_iterator& i, const mapfile_iterator& j)
-   {
-      return i.position() < j.position();
-   }
-   friend inline bool operator>(const mapfile_iterator& i, const mapfile_iterator& j)
-   {
-      return i.position() > j.position();
-   }
-   friend inline bool operator<=(const mapfile_iterator& i, const mapfile_iterator& j)
-   {
-      return i.position() <= j.position();
-   }
-   friend inline bool operator>=(const mapfile_iterator& i, const mapfile_iterator& j)
-   {
-      return i.position() >= j.position();
-   }
-
-   friend mapfile_iterator operator + (const mapfile_iterator& i, long off);
-   friend mapfile_iterator operator + (long off, const mapfile_iterator& i)
-   {
-      mapfile_iterator tmp(i);
-      return tmp += off;
-   }
-   friend mapfile_iterator operator - (const mapfile_iterator& i, long off);
-   friend inline long operator - (const mapfile_iterator& i, const mapfile_iterator& j)
-   {
-      return i.position() - j.position();
-   }
-};
-
-#endif
-
-// _fi_sep determines the directory separator, either '\\' or '/'
-NDNBOOST_REGEX_DECL extern const char* _fi_sep;
-
-struct file_iterator_ref
-{
-   _fi_find_handle hf;
-   _fi_find_data _data;
-   long count;
-};
-
-
-class NDNBOOST_REGEX_DECL file_iterator 
-{
-   char* _root;
-   char* _path;
-   char* ptr;
-   file_iterator_ref* ref;
-
-public:
-   typedef std::ptrdiff_t            difference_type;
-   typedef const char*               value_type;
-   typedef const char**              pointer;
-   typedef const char*&              reference;
-   typedef std::input_iterator_tag   iterator_category;
-
-   file_iterator();
-   file_iterator(const char* wild);
-   ~file_iterator();
-   file_iterator(const file_iterator&);
-   file_iterator& operator=(const file_iterator&);
-   const char* root()const { return _root; }
-   const char* path()const { return _path; }
-   const char* name()const { return ptr; }
-   _fi_find_data* data() { return &(ref->_data); }
-   void next();
-   file_iterator& operator++() { next(); return *this; }
-   file_iterator operator++(int);
-   const char* operator*() { return path(); }
-
-   friend inline bool operator == (const file_iterator& f1, const file_iterator& f2)
-   {
-      return ((f1.ref->hf == _fi_invalid_handle) && (f2.ref->hf == _fi_invalid_handle));
-   }
-
-   friend inline bool operator != (const file_iterator& f1, const file_iterator& f2)
-   {
-      return !(f1 == f2);
-   }
-
-};
-
-// dwa 9/13/00 - suppress unused parameter warning
-inline bool operator < (const file_iterator&, const file_iterator&)
-{
-   return false;
-}
-
-
-class NDNBOOST_REGEX_DECL directory_iterator
-{
-   char* _root;
-   char* _path;
-   char* ptr;
-   file_iterator_ref* ref;
-
-public:
-   typedef std::ptrdiff_t            difference_type;
-   typedef const char*               value_type;
-   typedef const char**              pointer;
-   typedef const char*&              reference;
-   typedef std::input_iterator_tag   iterator_category;
-
-   directory_iterator();
-   directory_iterator(const char* wild);
-   ~directory_iterator();
-   directory_iterator(const directory_iterator& other);
-   directory_iterator& operator=(const directory_iterator& other);
-
-   const char* root()const { return _root; }
-   const char* path()const { return _path; }
-   const char* name()const { return ptr; }
-   _fi_find_data* data() { return &(ref->_data); }
-   void next();
-   directory_iterator& operator++() { next(); return *this; }
-   directory_iterator operator++(int);
-   const char* operator*() { return path(); }
-
-   static const char* separator() { return _fi_sep; }
-
-   friend inline bool operator == (const directory_iterator& f1, const directory_iterator& f2)
-   {
-      return ((f1.ref->hf == _fi_invalid_handle) && (f2.ref->hf == _fi_invalid_handle));
-   }
-
-
-   friend inline bool operator != (const directory_iterator& f1, const directory_iterator& f2)
-   {
-      return !(f1 == f2);
-   }
-
-   };
-
-inline bool operator < (const directory_iterator&, const directory_iterator&)
-{
-   return false;
-}
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-
-
-} // namespace re_detail
-using ndnboost::re_detail::directory_iterator;
-using ndnboost::re_detail::file_iterator;
-using ndnboost::re_detail::mapfile;
-} // namespace ndnboost
-
-#endif     // NDNBOOST_REGEX_NO_FILEITER
-#endif     // NDNBOOST_RE_FILEITER_HPP
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/include/ndnboost/regex/v4/instances.hpp b/include/ndnboost/regex/v4/instances.hpp
deleted file mode 100644
index b64e01e..0000000
--- a/include/ndnboost/regex/v4/instances.hpp
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         instances.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Defines those template instances that are placed in the
-  *                library rather than in the users object files.
-  */
-
-//
-// note no include guard, we may include this multiple times:
-//
-#ifndef NDNBOOST_REGEX_NO_EXTERNAL_TEMPLATES
-
-namespace ndnboost{
-
-//
-// this header can be included multiple times, each time with
-// a different character type, NDNBOOST_REGEX_CHAR_T must be defined
-// first:
-//
-#ifndef NDNBOOST_REGEX_CHAR_T
-#  error "NDNBOOST_REGEX_CHAR_T not defined"
-#endif
-
-#ifndef NDNBOOST_REGEX_TRAITS_T
-#  define NDNBOOST_REGEX_TRAITS_T , ndnboost::regex_traits<NDNBOOST_REGEX_CHAR_T >
-#endif
-
-//
-// what follows is compiler specific:
-//
-
-#if  defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-
-#  ifndef NDNBOOST_REGEX_INSTANTIATE
-#     pragma option push -Jgx
-#  endif
-
-template class NDNBOOST_REGEX_DECL basic_regex< NDNBOOST_REGEX_CHAR_T NDNBOOST_REGEX_TRAITS_T >;
-template class NDNBOOST_REGEX_DECL match_results< const NDNBOOST_REGEX_CHAR_T* >;
-#ifndef NDNBOOST_NO_STD_ALLOCATOR
-template class NDNBOOST_REGEX_DECL ::ndnboost::re_detail::perl_matcher<NDNBOOST_REGEX_CHAR_T const *, match_results< const NDNBOOST_REGEX_CHAR_T* >::allocator_type NDNBOOST_REGEX_TRAITS_T >;
-#endif
-
-#  ifndef NDNBOOST_REGEX_INSTANTIATE
-#     pragma option pop
-#  endif
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-
-#elif defined(NDNBOOST_MSVC) || defined(__ICL)
-
-#  ifndef NDNBOOST_REGEX_INSTANTIATE
-#     ifdef __GNUC__
-#        define template __extension__ extern template
-#     else
-#        if NDNBOOST_MSVC > 1310
-#           define NDNBOOST_REGEX_TEMPLATE_DECL
-#        endif
-#        define template extern template
-#     endif
-#  endif
-
-#ifndef NDNBOOST_REGEX_TEMPLATE_DECL
-#  define NDNBOOST_REGEX_TEMPLATE_DECL NDNBOOST_REGEX_DECL
-#endif
-
-#  ifdef NDNBOOST_MSVC
-#     pragma warning(push)
-#     pragma warning(disable : 4251 4231)
-#     if NDNBOOST_MSVC < 1600
-#     pragma warning(disable : 4660)
-#     endif
-#  endif
-
-template class NDNBOOST_REGEX_TEMPLATE_DECL basic_regex< NDNBOOST_REGEX_CHAR_T NDNBOOST_REGEX_TRAITS_T >;
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-template class NDNBOOST_REGEX_TEMPLATE_DECL match_results< const NDNBOOST_REGEX_CHAR_T* >;
-#endif
-#ifndef NDNBOOST_NO_STD_ALLOCATOR
-template class NDNBOOST_REGEX_TEMPLATE_DECL ::ndnboost::re_detail::perl_matcher<NDNBOOST_REGEX_CHAR_T const *, match_results< const NDNBOOST_REGEX_CHAR_T* >::allocator_type NDNBOOST_REGEX_TRAITS_T >;
-#endif
-#if !(defined(NDNBOOST_DINKUMWARE_STDLIB) && (NDNBOOST_DINKUMWARE_STDLIB <= 1))\
-   && !(defined(NDNBOOST_INTEL_CXX_VERSION) && (NDNBOOST_INTEL_CXX_VERSION <= 800))\
-   && !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))\
-   && !defined(NDNBOOST_REGEX_ICU_INSTANCES)
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-template class NDNBOOST_REGEX_TEMPLATE_DECL match_results< std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator >;
-#endif
-#ifndef NDNBOOST_NO_STD_ALLOCATOR
-template class NDNBOOST_REGEX_TEMPLATE_DECL ::ndnboost::re_detail::perl_matcher< std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator, match_results< std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator >::allocator_type, ndnboost::regex_traits<NDNBOOST_REGEX_CHAR_T > >;
-#endif
-#endif
-
-
-#  ifdef NDNBOOST_MSVC
-#     pragma warning(pop)
-#  endif
-
-#  ifdef template
-#     undef template
-#  endif
-
-#undef NDNBOOST_REGEX_TEMPLATE_DECL
-
-#elif (defined(__GNUC__) && (__GNUC__ >= 3)) || !defined(NDNBOOST_NO_CXX11_EXTERN_TEMPLATE)
-
-#  ifndef NDNBOOST_REGEX_INSTANTIATE
-#     ifdef __GNUC__
-#        define template __extension__ extern template
-#     else
-#        define template extern template
-#     endif
-#  endif
-
-#if !defined(NDNBOOST_NO_STD_LOCALE) && !defined(NDNBOOST_REGEX_ICU_INSTANCES)
-namespace re_detail{
-template NDNBOOST_REGEX_DECL
-std::locale cpp_regex_traits_base<NDNBOOST_REGEX_CHAR_T>::imbue(const std::locale& l);
-
-template NDNBOOST_REGEX_DECL
-cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::string_type 
-   cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::transform_primary(const NDNBOOST_REGEX_CHAR_T* p1, const NDNBOOST_REGEX_CHAR_T* p2) const;
-template NDNBOOST_REGEX_DECL
-cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::string_type 
-   cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::transform(const NDNBOOST_REGEX_CHAR_T* p1, const NDNBOOST_REGEX_CHAR_T* p2) const;
-template NDNBOOST_REGEX_DECL
-cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::string_type 
-   cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::lookup_collatename(const NDNBOOST_REGEX_CHAR_T* p1, const NDNBOOST_REGEX_CHAR_T* p2) const;
-template NDNBOOST_REGEX_DECL
-void cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::init();
-template NDNBOOST_REGEX_DECL
-cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::char_class_type 
-   cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::lookup_classname_imp(const NDNBOOST_REGEX_CHAR_T* p1, const NDNBOOST_REGEX_CHAR_T* p2) const;
-#ifdef NDNBOOST_REGEX_BUGGY_CTYPE_FACET
-template NDNBOOST_REGEX_DECL
-bool cpp_regex_traits_implementation<NDNBOOST_REGEX_CHAR_T>::isctype(const NDNBOOST_REGEX_CHAR_T c, char_class_type mask) const;
-#endif
-} // namespace
-template NDNBOOST_REGEX_DECL
-int cpp_regex_traits<NDNBOOST_REGEX_CHAR_T>::toi(const NDNBOOST_REGEX_CHAR_T*& first, const NDNBOOST_REGEX_CHAR_T* last, int radix)const;
-template NDNBOOST_REGEX_DECL
-std::string cpp_regex_traits<NDNBOOST_REGEX_CHAR_T>::catalog_name(const std::string& name);
-template NDNBOOST_REGEX_DECL
-std::string& cpp_regex_traits<NDNBOOST_REGEX_CHAR_T>::get_catalog_name_inst();
-template NDNBOOST_REGEX_DECL
-std::string cpp_regex_traits<NDNBOOST_REGEX_CHAR_T>::get_catalog_name();
-#ifdef NDNBOOST_HAS_THREADS
-template NDNBOOST_REGEX_DECL
-static_mutex& cpp_regex_traits<NDNBOOST_REGEX_CHAR_T>::get_mutex_inst();
-#endif
-#endif
-
-template NDNBOOST_REGEX_DECL basic_regex<NDNBOOST_REGEX_CHAR_T NDNBOOST_REGEX_TRAITS_T >& 
-   basic_regex<NDNBOOST_REGEX_CHAR_T NDNBOOST_REGEX_TRAITS_T >::do_assign(
-      const NDNBOOST_REGEX_CHAR_T* p1, 
-      const NDNBOOST_REGEX_CHAR_T* p2, 
-      flag_type f);
-template NDNBOOST_REGEX_DECL basic_regex<NDNBOOST_REGEX_CHAR_T NDNBOOST_REGEX_TRAITS_T >::locale_type NDNBOOST_REGEX_CALL 
-   basic_regex<NDNBOOST_REGEX_CHAR_T NDNBOOST_REGEX_TRAITS_T >::imbue(locale_type l);
-
-template NDNBOOST_REGEX_DECL void NDNBOOST_REGEX_CALL 
-   match_results<const NDNBOOST_REGEX_CHAR_T*>::maybe_assign(
-      const match_results<const NDNBOOST_REGEX_CHAR_T*>& m);
-
-namespace re_detail{
-template NDNBOOST_REGEX_DECL void perl_matcher<NDNBOOST_REGEX_CHAR_T const *, match_results< const NDNBOOST_REGEX_CHAR_T* >::allocator_type NDNBOOST_REGEX_TRAITS_T >::construct_init(
-      const basic_regex<NDNBOOST_REGEX_CHAR_T NDNBOOST_REGEX_TRAITS_T >& e, match_flag_type f);
-template NDNBOOST_REGEX_DECL bool perl_matcher<NDNBOOST_REGEX_CHAR_T const *, match_results< const NDNBOOST_REGEX_CHAR_T* >::allocator_type NDNBOOST_REGEX_TRAITS_T >::match();
-template NDNBOOST_REGEX_DECL bool perl_matcher<NDNBOOST_REGEX_CHAR_T const *, match_results< const NDNBOOST_REGEX_CHAR_T* >::allocator_type NDNBOOST_REGEX_TRAITS_T >::find();
-} // namespace
-
-#if (defined(__GLIBCPP__) || defined(__GLIBCXX__)) \
-   && !defined(NDNBOOST_REGEX_ICU_INSTANCES)\
-   && !defined(__SGI_STL_PORT)\
-   && !defined(_STLPORT_VERSION)
-// std:basic_string<>::const_iterator instances as well:
-template NDNBOOST_REGEX_DECL void NDNBOOST_REGEX_CALL 
-   match_results<std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator>::maybe_assign(
-      const match_results<std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator>& m);
-
-namespace re_detail{
-template NDNBOOST_REGEX_DECL void perl_matcher<std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator, match_results< std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator >::allocator_type, ndnboost::regex_traits<NDNBOOST_REGEX_CHAR_T > >::construct_init(
-      const basic_regex<NDNBOOST_REGEX_CHAR_T>& e, match_flag_type f);
-template NDNBOOST_REGEX_DECL bool perl_matcher<std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator, match_results< std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator >::allocator_type, ndnboost::regex_traits<NDNBOOST_REGEX_CHAR_T > >::match();
-template NDNBOOST_REGEX_DECL bool perl_matcher<std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator, match_results< std::basic_string<NDNBOOST_REGEX_CHAR_T>::const_iterator >::allocator_type, ndnboost::regex_traits<NDNBOOST_REGEX_CHAR_T > >::find();
-} // namespace
-#endif
-
-#  ifdef template
-#     undef template
-#  endif
-
-
-#endif
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_REGEX_NO_EXTERNAL_TEMPLATES
-
-
-
-
-
diff --git a/include/ndnboost/regex/v4/iterator_category.hpp b/include/ndnboost/regex/v4/iterator_category.hpp
deleted file mode 100644
index 790417b..0000000
--- a/include/ndnboost/regex/v4/iterator_category.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- *
- * Copyright (c) 2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_match.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Iterator traits for selecting an iterator type as
-  *                an integral constant expression.
-  */
-
-
-#ifndef NDNBOOST_REGEX_ITERATOR_CATEGORY_HPP
-#define NDNBOOST_REGEX_ITERATOR_CATEGORY_HPP
-
-#include <iterator>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-
-namespace ndnboost{
-namespace detail{
-
-template <class I>
-struct is_random_imp
-{
-#ifndef NDNBOOST_NO_STD_ITERATOR_TRAITS
-private:
-   typedef typename std::iterator_traits<I>::iterator_category cat;
-public:
-   NDNBOOST_STATIC_CONSTANT(bool, value = (::ndnboost::is_convertible<cat*, std::random_access_iterator_tag*>::value));
-#else
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-#endif
-};
-
-template <class I>
-struct is_random_pointer_imp
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <bool is_pointer_type>
-struct is_random_imp_selector
-{
-   template <class I>
-   struct rebind
-   {
-      typedef is_random_imp<I> type;
-   };
-};
-
-template <>
-struct is_random_imp_selector<true>
-{
-   template <class I>
-   struct rebind
-   {
-      typedef is_random_pointer_imp<I> type;
-   };
-};
-
-}
-
-template <class I>
-struct is_random_access_iterator
-{
-private:
-   typedef detail::is_random_imp_selector< ::ndnboost::is_pointer<I>::value> selector;
-   typedef typename selector::template rebind<I> bound_type;
-   typedef typename bound_type::type answer;
-public:
-   NDNBOOST_STATIC_CONSTANT(bool, value = answer::value);
-};
-
-#ifndef NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
-template <class I>
-const bool is_random_access_iterator<I>::value;
-#endif
-
-}
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/iterator_traits.hpp b/include/ndnboost/regex/v4/iterator_traits.hpp
deleted file mode 100644
index 6795b35..0000000
--- a/include/ndnboost/regex/v4/iterator_traits.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         iterator_traits.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares iterator traits workarounds.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_ITERATOR_TRAITS_HPP
-#define NDNBOOST_REGEX_V4_ITERATOR_TRAITS_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-namespace re_detail{
-
-#if defined(NDNBOOST_NO_STD_ITERATOR_TRAITS) || defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <class T>
-struct regex_iterator_traits 
-{
-  typedef typename T::iterator_category iterator_category;
-  typedef typename T::value_type        value_type;
-#if !defined(NDNBOOST_NO_STD_ITERATOR)
-  typedef typename T::difference_type   difference_type;
-  typedef typename T::pointer           pointer;
-  typedef typename T::reference         reference;
-#else
-  typedef std::ptrdiff_t                difference_type;
-  typedef value_type*                   pointer;
-  typedef value_type&                   reference;
-#endif
-};
-
-template <class T>
-struct pointer_iterator_traits
-{
-   typedef std::ptrdiff_t difference_type;
-   typedef T value_type;
-   typedef T* pointer;
-   typedef T& reference;
-   typedef std::random_access_iterator_tag iterator_category;
-};
-template <class T>
-struct const_pointer_iterator_traits
-{
-   typedef std::ptrdiff_t difference_type;
-   typedef T value_type;
-   typedef const T* pointer;
-   typedef const T& reference;
-   typedef std::random_access_iterator_tag iterator_category;
-};
-
-template<>
-struct regex_iterator_traits<char*> : pointer_iterator_traits<char>{};
-template<>
-struct regex_iterator_traits<const char*> : const_pointer_iterator_traits<char>{};
-template<>
-struct regex_iterator_traits<wchar_t*> : pointer_iterator_traits<wchar_t>{};
-template<>
-struct regex_iterator_traits<const wchar_t*> : const_pointer_iterator_traits<wchar_t>{};
-//
-// the follwoing are needed for ICU support:
-//
-template<>
-struct regex_iterator_traits<unsigned char*> : pointer_iterator_traits<char>{};
-template<>
-struct regex_iterator_traits<const unsigned char*> : const_pointer_iterator_traits<char>{};
-template<>
-struct regex_iterator_traits<int*> : pointer_iterator_traits<int>{};
-template<>
-struct regex_iterator_traits<const int*> : const_pointer_iterator_traits<int>{};
-
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-template<>
-struct regex_iterator_traits<unsigned short*> : pointer_iterator_traits<unsigned short>{};
-template<>
-struct regex_iterator_traits<const unsigned short*> : const_pointer_iterator_traits<unsigned short>{};
-#endif
-
-#if defined(__SGI_STL_PORT) && defined(__STL_DEBUG)
-template<>
-struct regex_iterator_traits<std::string::iterator> : pointer_iterator_traits<char>{};
-template<>
-struct regex_iterator_traits<std::string::const_iterator> : const_pointer_iterator_traits<char>{};
-#ifndef NDNBOOST_NO_STD_WSTRING
-template<>
-struct regex_iterator_traits<std::wstring::iterator> : pointer_iterator_traits<wchar_t>{};
-template<>
-struct regex_iterator_traits<std::wstring::const_iterator> : const_pointer_iterator_traits<wchar_t>{};
-#endif // NDNBOOST_NO_WSTRING
-#endif // stport
-
-#else
-
-template <class T>
-struct regex_iterator_traits : public std::iterator_traits<T> {};
-
-#endif
-
-} // namespace re_detail
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/match_flags.hpp b/include/ndnboost/regex/v4/match_flags.hpp
deleted file mode 100644
index d352d0f..0000000
--- a/include/ndnboost/regex/v4/match_flags.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         match_flags.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares match_flags type.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_MATCH_FLAGS
-#define NDNBOOST_REGEX_V4_MATCH_FLAGS
-
-#ifdef __cplusplus
-#  include <ndnboost/cstdint.hpp>
-#endif
-
-#ifdef __cplusplus
-namespace ndnboost{
-   namespace regex_constants{
-#endif
-
-typedef enum _match_flags
-{
-   match_default = 0,
-   match_not_bol = 1,                                /* first is not start of line */
-   match_not_eol = match_not_bol << 1,               /* last is not end of line */
-   match_not_bob = match_not_eol << 1,               /* first is not start of buffer */
-   match_not_eob = match_not_bob << 1,               /* last is not end of buffer */
-   match_not_bow = match_not_eob << 1,               /* first is not start of word */
-   match_not_eow = match_not_bow << 1,               /* last is not end of word */
-   match_not_dot_newline = match_not_eow << 1,       /* \n is not matched by '.' */
-   match_not_dot_null = match_not_dot_newline << 1,  /* '\0' is not matched by '.' */
-   match_prev_avail = match_not_dot_null << 1,       /* *--first is a valid expression */
-   match_init = match_prev_avail << 1,               /* internal use */
-   match_any = match_init << 1,                      /* don't care what we match */
-   match_not_null = match_any << 1,                  /* string can't be null */
-   match_continuous = match_not_null << 1,           /* each grep match must continue from */
-                                                     /* uninterupted from the previous one */
-   match_partial = match_continuous << 1,            /* find partial matches */
-   
-   match_stop = match_partial << 1,                  /* stop after first match (grep) V3 only */
-   match_not_initial_null = match_stop,              /* don't match initial null, V4 only */
-   match_all = match_stop << 1,                      /* must find the whole of input even if match_any is set */
-   match_perl = match_all << 1,                      /* Use perl matching rules */
-   match_posix = match_perl << 1,                    /* Use POSIX matching rules */
-   match_nosubs = match_posix << 1,                  /* don't trap marked subs */
-   match_extra = match_nosubs << 1,                  /* include full capture information for repeated captures */
-   match_single_line = match_extra << 1,             /* treat text as single line and ignor any \n's when matching ^ and $. */
-   match_unused1 = match_single_line << 1,           /* unused */
-   match_unused2 = match_unused1 << 1,               /* unused */
-   match_unused3 = match_unused2 << 1,               /* unused */
-   match_max = match_unused3,
-
-   format_perl = 0,                                  /* perl style replacement */
-   format_default = 0,                               /* ditto. */
-   format_sed = match_max << 1,                      /* sed style replacement. */
-   format_all = format_sed << 1,                     /* enable all extentions to sytax. */
-   format_no_copy = format_all << 1,                 /* don't copy non-matching segments. */
-   format_first_only = format_no_copy << 1,          /* Only replace first occurance. */
-   format_is_if = format_first_only << 1,            /* internal use only. */
-   format_literal = format_is_if << 1                /* treat string as a literal */
-
-} match_flags;
-
-#if (defined(_MSC_VER) && (_MSC_VER < 1300)) || defined(__BORLANDC__)
-typedef unsigned long match_flag_type;
-#else
-typedef match_flags match_flag_type;
-
-
-#ifdef __cplusplus
-inline match_flags operator&(match_flags m1, match_flags m2)
-{ return static_cast<match_flags>(static_cast<ndnboost::int32_t>(m1) & static_cast<ndnboost::int32_t>(m2)); }
-inline match_flags operator|(match_flags m1, match_flags m2)
-{ return static_cast<match_flags>(static_cast<ndnboost::int32_t>(m1) | static_cast<ndnboost::int32_t>(m2)); }
-inline match_flags operator^(match_flags m1, match_flags m2)
-{ return static_cast<match_flags>(static_cast<ndnboost::int32_t>(m1) ^ static_cast<ndnboost::int32_t>(m2)); }
-inline match_flags operator~(match_flags m1)
-{ return static_cast<match_flags>(~static_cast<ndnboost::int32_t>(m1)); }
-inline match_flags& operator&=(match_flags& m1, match_flags m2)
-{ m1 = m1&m2; return m1; }
-inline match_flags& operator|=(match_flags& m1, match_flags m2)
-{ m1 = m1|m2; return m1; }
-inline match_flags& operator^=(match_flags& m1, match_flags m2)
-{ m1 = m1^m2; return m1; }
-#endif
-#endif
-
-#ifdef __cplusplus
-} /* namespace regex_constants */
-/*
- * import names into boost for backwards compatiblity:
- */
-using regex_constants::match_flag_type;
-using regex_constants::match_default;
-using regex_constants::match_not_bol;
-using regex_constants::match_not_eol;
-using regex_constants::match_not_bob;
-using regex_constants::match_not_eob;
-using regex_constants::match_not_bow;
-using regex_constants::match_not_eow;
-using regex_constants::match_not_dot_newline;
-using regex_constants::match_not_dot_null;
-using regex_constants::match_prev_avail;
-/* using regex_constants::match_init; */
-using regex_constants::match_any;
-using regex_constants::match_not_null;
-using regex_constants::match_continuous;
-using regex_constants::match_partial;
-/*using regex_constants::match_stop; */
-using regex_constants::match_all;
-using regex_constants::match_perl;
-using regex_constants::match_posix;
-using regex_constants::match_nosubs;
-using regex_constants::match_extra;
-using regex_constants::match_single_line;
-/*using regex_constants::match_max; */
-using regex_constants::format_all;
-using regex_constants::format_sed;
-using regex_constants::format_perl;
-using regex_constants::format_default;
-using regex_constants::format_no_copy;
-using regex_constants::format_first_only;
-/*using regex_constants::format_is_if;*/
-
-} /* namespace ndnboost */
-#endif /* __cplusplus */
-#endif /* include guard */
-
diff --git a/include/ndnboost/regex/v4/match_results.hpp b/include/ndnboost/regex/v4/match_results.hpp
deleted file mode 100644
index 8bb981f..0000000
--- a/include/ndnboost/regex/v4/match_results.hpp
+++ /dev/null
@@ -1,702 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2009
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         match_results.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares template class match_results.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_MATCH_RESULTS_HPP
-#define NDNBOOST_REGEX_V4_MATCH_RESULTS_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable : 4251 4231)
-#  if NDNBOOST_MSVC < 1600
-#     pragma warning(disable : 4660)
-#  endif
-#endif
-
-namespace re_detail{
-
-class named_subexpressions;
-
-}
-
-template <class BidiIterator, class Allocator>
-class match_results
-{ 
-private:
-#ifndef NDNBOOST_NO_STD_ALLOCATOR
-   typedef          std::vector<sub_match<BidiIterator>, Allocator> vector_type;
-#else
-   typedef          std::vector<sub_match<BidiIterator> >           vector_type;
-#endif
-public: 
-   typedef          sub_match<BidiIterator>                         value_type;
-#if  !defined(NDNBOOST_NO_STD_ALLOCATOR) && !(defined(NDNBOOST_MSVC) && defined(_STLPORT_VERSION))
-   typedef typename Allocator::const_reference                              const_reference;
-#else
-   typedef          const value_type&                                       const_reference;
-#endif
-   typedef          const_reference                                         reference;
-   typedef typename vector_type::const_iterator                             const_iterator;
-   typedef          const_iterator                                          iterator;
-   typedef typename re_detail::regex_iterator_traits<
-                                    BidiIterator>::difference_type          difference_type;
-   typedef typename Allocator::size_type                                    size_type;
-   typedef          Allocator                                               allocator_type;
-   typedef typename re_detail::regex_iterator_traits<
-                                    BidiIterator>::value_type               char_type;
-   typedef          std::basic_string<char_type>                            string_type;
-   typedef          re_detail::named_subexpressions                         named_sub_type;
-
-   // construct/copy/destroy:
-   explicit match_results(const Allocator& a = Allocator())
-#ifndef NDNBOOST_NO_STD_ALLOCATOR
-      : m_subs(a), m_base(), m_last_closed_paren(0), m_is_singular(true) {}
-#else
-      : m_subs(), m_base(), m_last_closed_paren(0), m_is_singular(true) { (void)a; }
-#endif
-   match_results(const match_results& m)
-      : m_subs(m.m_subs), m_named_subs(m.m_named_subs), m_last_closed_paren(m.m_last_closed_paren), m_is_singular(m.m_is_singular) 
-   {
-      if(!m_is_singular)
-      {
-         m_base = m.m_base;
-         m_null = m.m_null;
-      }
-   }
-   match_results& operator=(const match_results& m)
-   {
-      m_subs = m.m_subs;
-      m_named_subs = m.m_named_subs;
-      m_last_closed_paren = m.m_last_closed_paren;
-      m_is_singular = m.m_is_singular;
-      if(!m_is_singular)
-      {
-         m_base = m.m_base;
-         m_null = m.m_null;
-      }
-      return *this;
-   }
-   ~match_results(){}
-
-   // size:
-   size_type size() const
-   { return empty() ? 0 : m_subs.size() - 2; }
-   size_type max_size() const
-   { return m_subs.max_size(); }
-   bool empty() const
-   { return m_subs.size() < 2; }
-   // element access:
-   difference_type length(int sub = 0) const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      sub += 2;
-      if((sub < (int)m_subs.size()) && (sub > 0))
-         return m_subs[sub].length();
-      return 0;
-   }
-   difference_type length(const char_type* sub) const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      const char_type* sub_end = sub;
-      while(*sub_end) ++sub_end;
-      return length(named_subexpression_index(sub, sub_end));
-   }
-   template <class charT>
-   difference_type length(const charT* sub) const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      const charT* sub_end = sub;
-      while(*sub_end) ++sub_end;
-      return length(named_subexpression_index(sub, sub_end));
-   }
-   template <class charT, class Traits, class A>
-   difference_type length(const std::basic_string<charT, Traits, A>& sub) const
-   {
-      return length(sub.c_str());
-   }
-   difference_type position(size_type sub = 0) const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      sub += 2;
-      if(sub < m_subs.size())
-      {
-         const sub_match<BidiIterator>& s = m_subs[sub];
-         if(s.matched || (sub == 2))
-         {
-            return ::ndnboost::re_detail::distance((BidiIterator)(m_base), (BidiIterator)(s.first));
-         }
-      }
-      return ~static_cast<difference_type>(0);
-   }
-   difference_type position(const char_type* sub) const
-   {
-      const char_type* sub_end = sub;
-      while(*sub_end) ++sub_end;
-      return position(named_subexpression_index(sub, sub_end));
-   }
-   template <class charT>
-   difference_type position(const charT* sub) const
-   {
-      const charT* sub_end = sub;
-      while(*sub_end) ++sub_end;
-      return position(named_subexpression_index(sub, sub_end));
-   }
-   template <class charT, class Traits, class A>
-   difference_type position(const std::basic_string<charT, Traits, A>& sub) const
-   {
-      return position(sub.c_str());
-   }
-   string_type str(int sub = 0) const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      sub += 2;
-      string_type result;
-      if(sub < (int)m_subs.size() && (sub > 0))
-      {
-         const sub_match<BidiIterator>& s = m_subs[sub];
-         if(s.matched)
-         {
-            result = s.str();
-         }
-      }
-      return result;
-   }
-   string_type str(const char_type* sub) const
-   {
-      return (*this)[sub].str();
-   }
-   template <class Traits, class A>
-   string_type str(const std::basic_string<char_type, Traits, A>& sub) const
-   {
-      return (*this)[sub].str();
-   }
-   template <class charT>
-   string_type str(const charT* sub) const
-   {
-      return (*this)[sub].str();
-   }
-   template <class charT, class Traits, class A>
-   string_type str(const std::basic_string<charT, Traits, A>& sub) const
-   {
-      return (*this)[sub].str();
-   }
-   const_reference operator[](int sub) const
-   {
-      if(m_is_singular && m_subs.empty())
-         raise_logic_error();
-      sub += 2;
-      if(sub < (int)m_subs.size() && (sub >= 0))
-      {
-         return m_subs[sub];
-      }
-      return m_null;
-   }
-   //
-   // Named sub-expressions:
-   //
-   const_reference named_subexpression(const char_type* i, const char_type* j) const
-   {
-      //
-      // Scan for the leftmost *matched* subexpression with the specified named:
-      //
-      if(m_is_singular)
-         raise_logic_error();
-      re_detail::named_subexpressions::range_type r = m_named_subs->equal_range(i, j);
-      while((r.first != r.second) && ((*this)[r.first->index].matched == false))
-         ++r.first;
-      return r.first != r.second ? (*this)[r.first->index] : m_null;
-   }
-   template <class charT>
-   const_reference named_subexpression(const charT* i, const charT* j) const
-   {
-      NDNBOOST_STATIC_ASSERT(sizeof(charT) <= sizeof(char_type));
-      if(i == j)
-         return m_null;
-      std::vector<char_type> s;
-      while(i != j)
-         s.insert(s.end(), *i++);
-      return named_subexpression(&*s.begin(), &*s.begin() + s.size());
-   }
-   int named_subexpression_index(const char_type* i, const char_type* j) const
-   {
-      //
-      // Scan for the leftmost *matched* subexpression with the specified named.
-      // If none found then return the leftmost expression with that name,
-      // otherwise an invalid index:
-      //
-      if(m_is_singular)
-         raise_logic_error();
-      re_detail::named_subexpressions::range_type s, r;
-      s = r = m_named_subs->equal_range(i, j);
-      while((r.first != r.second) && ((*this)[r.first->index].matched == false))
-         ++r.first;
-      if(r.first == r.second)
-         r = s;
-      return r.first != r.second ? r.first->index : -20;
-   }
-   template <class charT>
-   int named_subexpression_index(const charT* i, const charT* j) const
-   {
-      NDNBOOST_STATIC_ASSERT(sizeof(charT) <= sizeof(char_type));
-      if(i == j)
-         return -20;
-      std::vector<char_type> s;
-      while(i != j)
-         s.insert(s.end(), *i++);
-      return named_subexpression_index(&*s.begin(), &*s.begin() + s.size());
-   }
-   template <class Traits, class A>
-   const_reference operator[](const std::basic_string<char_type, Traits, A>& s) const
-   {
-      return named_subexpression(s.c_str(), s.c_str() + s.size());
-   }
-   const_reference operator[](const char_type* p) const
-   {
-      const char_type* e = p;
-      while(*e) ++e;
-      return named_subexpression(p, e);
-   }
-
-   template <class charT>
-   const_reference operator[](const charT* p) const
-   {
-      NDNBOOST_STATIC_ASSERT(sizeof(charT) <= sizeof(char_type));
-      if(*p == 0)
-         return m_null;
-      std::vector<char_type> s;
-      while(*p)
-         s.insert(s.end(), *p++);
-      return named_subexpression(&*s.begin(), &*s.begin() + s.size());
-   }
-   template <class charT, class Traits, class A>
-   const_reference operator[](const std::basic_string<charT, Traits, A>& ns) const
-   {
-      NDNBOOST_STATIC_ASSERT(sizeof(charT) <= sizeof(char_type));
-      if(ns.empty())
-         return m_null;
-      std::vector<char_type> s;
-      for(unsigned i = 0; i < ns.size(); ++i)
-         s.insert(s.end(), ns[i]);
-      return named_subexpression(&*s.begin(), &*s.begin() + s.size());
-   }
-
-   const_reference prefix() const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      return (*this)[-1];
-   }
-
-   const_reference suffix() const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      return (*this)[-2];
-   }
-   const_iterator begin() const
-   {
-      return (m_subs.size() > 2) ? (m_subs.begin() + 2) : m_subs.end();
-   }
-   const_iterator end() const
-   {
-      return m_subs.end();
-   }
-   // format:
-   template <class OutputIterator, class Functor>
-   OutputIterator format(OutputIterator out,
-                         Functor fmt,
-                         match_flag_type flags = format_default) const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      typedef typename re_detail::compute_functor_type<Functor, match_results<BidiIterator, Allocator>, OutputIterator>::type F;
-      F func(fmt);
-      return func(*this, out, flags);
-   }
-   template <class Functor>
-   string_type format(Functor fmt, match_flag_type flags = format_default) const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      std::basic_string<char_type> result;
-      re_detail::string_out_iterator<std::basic_string<char_type> > i(result);
-
-      typedef typename re_detail::compute_functor_type<Functor, match_results<BidiIterator, Allocator>, re_detail::string_out_iterator<std::basic_string<char_type> > >::type F;
-      F func(fmt);
-
-      func(*this, i, flags);
-      return result;
-   }
-   // format with locale:
-   template <class OutputIterator, class Functor, class RegexT>
-   OutputIterator format(OutputIterator out,
-                         Functor fmt,
-                         match_flag_type flags,
-                         const RegexT& re) const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      typedef ::ndnboost::regex_traits_wrapper<typename RegexT::traits_type> traits_type;
-      typedef typename re_detail::compute_functor_type<Functor, match_results<BidiIterator, Allocator>, OutputIterator, traits_type>::type F;
-      F func(fmt);
-      return func(*this, out, flags, re.get_traits());
-   }
-   template <class RegexT, class Functor>
-   string_type format(Functor fmt,
-                      match_flag_type flags,
-                      const RegexT& re) const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      typedef ::ndnboost::regex_traits_wrapper<typename RegexT::traits_type> traits_type;
-      std::basic_string<char_type> result;
-      re_detail::string_out_iterator<std::basic_string<char_type> > i(result);
-
-      typedef typename re_detail::compute_functor_type<Functor, match_results<BidiIterator, Allocator>, re_detail::string_out_iterator<std::basic_string<char_type> >, traits_type >::type F;
-      F func(fmt);
-
-      func(*this, i, flags, re.get_traits());
-      return result;
-   }
-
-   const_reference get_last_closed_paren()const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      return m_last_closed_paren == 0 ? m_null : (*this)[m_last_closed_paren];
-   }
-
-   allocator_type get_allocator() const
-   {
-#ifndef NDNBOOST_NO_STD_ALLOCATOR
-      return m_subs.get_allocator();
-#else
-     return allocator_type();
-#endif
-   }
-   void swap(match_results& that)
-   {
-      std::swap(m_subs, that.m_subs);
-      std::swap(m_named_subs, that.m_named_subs);
-      std::swap(m_last_closed_paren, that.m_last_closed_paren);
-      if(m_is_singular)
-      {
-         if(!that.m_is_singular)
-         {
-            m_base = that.m_base;
-            m_null = that.m_null;
-         }
-      }
-      else if(that.m_is_singular)
-      {
-         that.m_base = m_base;
-         that.m_null = m_null;
-      }
-      else
-      {
-         std::swap(m_base, that.m_base);
-         std::swap(m_null, that.m_null);
-      }
-      std::swap(m_is_singular, that.m_is_singular);
-   }
-   bool operator==(const match_results& that)const
-   {
-      if(m_is_singular)
-      {
-         return that.m_is_singular;
-      }
-      else if(that.m_is_singular)
-      {
-         return false;
-      }
-      return (m_subs == that.m_subs) && (m_base == that.m_base) && (m_last_closed_paren == that.m_last_closed_paren);
-   }
-   bool operator!=(const match_results& that)const
-   { return !(*this == that); }
-
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-   typedef typename sub_match<BidiIterator>::capture_sequence_type capture_sequence_type;
-
-   const capture_sequence_type& captures(int i)const
-   {
-      if(m_is_singular)
-         raise_logic_error();
-      return (*this)[i].captures();
-   }
-#endif
-
-   //
-   // private access functions:
-   void NDNBOOST_REGEX_CALL set_second(BidiIterator i)
-   {
-      NDNBOOST_ASSERT(m_subs.size() > 2);
-      m_subs[2].second = i;
-      m_subs[2].matched = true;
-      m_subs[0].first = i;
-      m_subs[0].matched = (m_subs[0].first != m_subs[0].second);
-      m_null.first = i;
-      m_null.second = i;
-      m_null.matched = false;
-      m_is_singular = false;
-   }
-
-   void NDNBOOST_REGEX_CALL set_second(BidiIterator i, size_type pos, bool m = true, bool escape_k = false)
-   {
-      if(pos)
-         m_last_closed_paren = static_cast<int>(pos);
-      pos += 2;
-      NDNBOOST_ASSERT(m_subs.size() > pos);
-      m_subs[pos].second = i;
-      m_subs[pos].matched = m;
-      if((pos == 2) && !escape_k)
-      {
-         m_subs[0].first = i;
-         m_subs[0].matched = (m_subs[0].first != m_subs[0].second);
-         m_null.first = i;
-         m_null.second = i;
-         m_null.matched = false;
-         m_is_singular = false;
-      }
-   }
-   void NDNBOOST_REGEX_CALL set_size(size_type n, BidiIterator i, BidiIterator j)
-   {
-      value_type v(j);
-      size_type len = m_subs.size();
-      if(len > n + 2)
-      {
-         m_subs.erase(m_subs.begin()+n+2, m_subs.end());
-         std::fill(m_subs.begin(), m_subs.end(), v);
-      }
-      else
-      {
-         std::fill(m_subs.begin(), m_subs.end(), v);
-         if(n+2 != len)
-            m_subs.insert(m_subs.end(), n+2-len, v);
-      }
-      m_subs[1].first = i;
-      m_last_closed_paren = 0;
-   }
-   void NDNBOOST_REGEX_CALL set_base(BidiIterator pos)
-   {
-      m_base = pos;
-   }
-   BidiIterator base()const
-   {
-      return m_base;
-   }
-   void NDNBOOST_REGEX_CALL set_first(BidiIterator i)
-   {
-      NDNBOOST_ASSERT(m_subs.size() > 2);
-      // set up prefix:
-      m_subs[1].second = i;
-      m_subs[1].matched = (m_subs[1].first != i);
-      // set up $0:
-      m_subs[2].first = i;
-      // zero out everything else:
-      for(size_type n = 3; n < m_subs.size(); ++n)
-      {
-         m_subs[n].first = m_subs[n].second = m_subs[0].second;
-         m_subs[n].matched = false;
-      }
-   }
-   void NDNBOOST_REGEX_CALL set_first(BidiIterator i, size_type pos, bool escape_k = false)
-   {
-      NDNBOOST_ASSERT(pos+2 < m_subs.size());
-      if(pos || escape_k)
-      {
-         m_subs[pos+2].first = i;
-         if(escape_k)
-         {
-            m_subs[1].second = i;
-            m_subs[1].matched = (m_subs[1].first != m_subs[1].second);
-         }
-      }
-      else
-         set_first(i);
-   }
-   void NDNBOOST_REGEX_CALL maybe_assign(const match_results<BidiIterator, Allocator>& m);
-
-   void NDNBOOST_REGEX_CALL set_named_subs(ndnboost::shared_ptr<named_sub_type> subs)
-   {
-      m_named_subs = subs;
-   }
-
-private:
-   //
-   // Error handler called when an uninitialized match_results is accessed:
-   //
-   static void raise_logic_error()
-   {
-      std::logic_error e("Attempt to access an uninitialzed ndnboost::match_results<> class.");
-      ndnboost::throw_exception(e);
-   }
-
-
-   vector_type            m_subs;                      // subexpressions
-   BidiIterator   m_base;                              // where the search started from
-   sub_match<BidiIterator> m_null;                     // a null match
-   ndnboost::shared_ptr<named_sub_type> m_named_subs;     // Shared copy of named subs in the regex object
-   int m_last_closed_paren;                            // Last ) to be seen - used for formatting
-   bool m_is_singular;                                 // True if our stored iterators are singular
-};
-
-template <class BidiIterator, class Allocator>
-void NDNBOOST_REGEX_CALL match_results<BidiIterator, Allocator>::maybe_assign(const match_results<BidiIterator, Allocator>& m)
-{
-   if(m_is_singular)
-   {
-      *this = m;
-      return;
-   }
-   const_iterator p1, p2;
-   p1 = begin();
-   p2 = m.begin();
-   //
-   // Distances are measured from the start of *this* match, unless this isn't
-   // a valid match in which case we use the start of the whole sequence.  Note that
-   // no subsequent match-candidate can ever be to the left of the first match found.
-   // This ensures that when we are using bidirectional iterators, that distances 
-   // measured are as short as possible, and therefore as efficient as possible
-   // to compute.  Finally note that we don't use the "matched" data member to test
-   // whether a sub-expression is a valid match, because partial matches set this
-   // to false for sub-expression 0.
-   //
-   BidiIterator l_end = this->suffix().second;
-   BidiIterator l_base = (p1->first == l_end) ? this->prefix().first : (*this)[0].first;
-   difference_type len1 = 0;
-   difference_type len2 = 0;
-   difference_type base1 = 0;
-   difference_type base2 = 0;
-   std::size_t i;
-   for(i = 0; i < size(); ++i, ++p1, ++p2)
-   {
-      //
-      // Leftmost takes priority over longest; handle special cases
-      // where distances need not be computed first (an optimisation
-      // for bidirectional iterators: ensure that we don't accidently
-      // compute the length of the whole sequence, as this can be really
-      // expensive).
-      //
-      if(p1->first == l_end)
-      {
-         if(p2->first != l_end)
-         {
-            // p2 must be better than p1, and no need to calculate
-            // actual distances:
-            base1 = 1;
-            base2 = 0;
-            break;
-         }
-         else
-         {
-            // *p1 and *p2 are either unmatched or match end-of sequence,
-            // either way no need to calculate distances:
-            if((p1->matched == false) && (p2->matched == true))
-               break;
-            if((p1->matched == true) && (p2->matched == false))
-               return;
-            continue;
-         }
-      }
-      else if(p2->first == l_end)
-      {
-         // p1 better than p2, and no need to calculate distances:
-         return;
-      }
-      base1 = ::ndnboost::re_detail::distance(l_base, p1->first);
-      base2 = ::ndnboost::re_detail::distance(l_base, p2->first);
-      NDNBOOST_ASSERT(base1 >= 0);
-      NDNBOOST_ASSERT(base2 >= 0);
-      if(base1 < base2) return;
-      if(base2 < base1) break;
-
-      len1 = ::ndnboost::re_detail::distance((BidiIterator)p1->first, (BidiIterator)p1->second);
-      len2 = ::ndnboost::re_detail::distance((BidiIterator)p2->first, (BidiIterator)p2->second);
-      NDNBOOST_ASSERT(len1 >= 0);
-      NDNBOOST_ASSERT(len2 >= 0);
-      if((len1 != len2) || ((p1->matched == false) && (p2->matched == true)))
-         break;
-      if((p1->matched == true) && (p2->matched == false))
-         return;
-   }
-   if(i == size())
-      return;
-   if(base2 < base1)
-      *this = m;
-   else if((len2 > len1) || ((p1->matched == false) && (p2->matched == true)) )
-      *this = m;
-}
-
-template <class BidiIterator, class Allocator>
-void swap(match_results<BidiIterator, Allocator>& a, match_results<BidiIterator, Allocator>& b)
-{
-   a.swap(b);
-}
-
-#ifndef NDNBOOST_NO_STD_LOCALE
-template <class charT, class traits, class BidiIterator, class Allocator>
-std::basic_ostream<charT, traits>&
-   operator << (std::basic_ostream<charT, traits>& os,
-                const match_results<BidiIterator, Allocator>& s)
-{
-   return (os << s.str());
-}
-#else
-template <class BidiIterator, class Allocator>
-std::ostream& operator << (std::ostream& os,
-                           const match_results<BidiIterator, Allocator>& s)
-{
-   return (os << s.str());
-}
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
-
diff --git a/include/ndnboost/regex/v4/mem_block_cache.hpp b/include/ndnboost/regex/v4/mem_block_cache.hpp
deleted file mode 100644
index fe71a3b..0000000
--- a/include/ndnboost/regex/v4/mem_block_cache.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
- /*
- * Copyright (c) 2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         mem_block_cache.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: memory block cache used by the non-recursive matcher.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_MEM_BLOCK_CACHE_HPP
-#define NDNBOOST_REGEX_V4_MEM_BLOCK_CACHE_HPP
-
-#include <new>
-#ifdef NDNBOOST_HAS_THREADS
-#include <ndnboost/regex/pending/static_mutex.hpp>
-#endif
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-
-namespace ndnboost{
-namespace re_detail{
-
-struct mem_block_node
-{
-   mem_block_node* next;
-};
-
-struct mem_block_cache
-{
-   // this member has to be statically initialsed:
-   mem_block_node* next;
-   unsigned cached_blocks;
-#ifdef NDNBOOST_HAS_THREADS
-   ndnboost::static_mutex mut;
-#endif
-
-   ~mem_block_cache()
-   {
-      while(next)
-      {
-         mem_block_node* old = next;
-         next = next->next;
-         ::operator delete(old);
-      }
-   }
-   void* get()
-   {
-#ifdef NDNBOOST_HAS_THREADS
-      ndnboost::static_mutex::scoped_lock g(mut);
-#endif
-     if(next)
-      {
-         mem_block_node* result = next;
-         next = next->next;
-         --cached_blocks;
-         return result;
-      }
-      return ::operator new(NDNBOOST_REGEX_BLOCKSIZE);
-   }
-   void put(void* p)
-   {
-#ifdef NDNBOOST_HAS_THREADS
-      ndnboost::static_mutex::scoped_lock g(mut);
-#endif
-      if(cached_blocks >= NDNBOOST_REGEX_MAX_CACHE_BLOCKS)
-      {
-         ::operator delete(p);
-      }
-      else
-      {
-         mem_block_node* old = static_cast<mem_block_node*>(p);
-         old->next = next;
-         next = old;
-         ++cached_blocks;
-      }
-   }
-};
-
-extern mem_block_cache block_cache;
-
-}
-} // namespace ndnboost
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/perl_matcher.hpp b/include/ndnboost/regex/v4/perl_matcher.hpp
deleted file mode 100644
index 24cf0af..0000000
--- a/include/ndnboost/regex/v4/perl_matcher.hpp
+++ /dev/null
@@ -1,587 +0,0 @@
-/*
- *
- * Copyright (c) 2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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 NDNBOOST_REGEX_MATCHER_HPP
-#define NDNBOOST_REGEX_MATCHER_HPP
-
-#include <ndnboost/regex/v4/iterator_category.hpp>
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable: 4800)
-#endif
-
-namespace ndnboost{
-namespace re_detail{
-
-//
-// error checking API:
-//
-NDNBOOST_REGEX_DECL void NDNBOOST_REGEX_CALL verify_options(ndnboost::regex_constants::syntax_option_type ef, match_flag_type mf);
-//
-// function can_start:
-//
-template <class charT>
-inline bool can_start(charT c, const unsigned char* map, unsigned char mask)
-{
-   return ((c < static_cast<charT>(0)) ? true : ((c >= static_cast<charT>(1 << CHAR_BIT)) ? true : map[c] & mask));
-}
-inline bool can_start(char c, const unsigned char* map, unsigned char mask)
-{
-   return map[(unsigned char)c] & mask;
-}
-inline bool can_start(signed char c, const unsigned char* map, unsigned char mask)
-{
-   return map[(unsigned char)c] & mask;
-}
-inline bool can_start(unsigned char c, const unsigned char* map, unsigned char mask)
-{
-   return map[c] & mask;
-}
-inline bool can_start(unsigned short c, const unsigned char* map, unsigned char mask)
-{
-   return ((c >= (1 << CHAR_BIT)) ? true : map[c] & mask);
-}
-#if !defined(__hpux) && !defined(__WINSCW__)// WCHAR_MIN not usable in pp-directives.
-#if defined(WCHAR_MIN) && (WCHAR_MIN == 0) && !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
-inline bool can_start(wchar_t c, const unsigned char* map, unsigned char mask)
-{
-   return ((c >= static_cast<wchar_t>(1u << CHAR_BIT)) ? true : map[c] & mask);
-}
-#endif
-#endif
-#if !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
-inline bool can_start(unsigned int c, const unsigned char* map, unsigned char mask)
-{
-   return (((c >= static_cast<unsigned int>(1u << CHAR_BIT)) ? true : map[c] & mask));
-}
-#endif
-
-
-//
-// Unfortunately Rogue Waves standard library appears to have a bug
-// in std::basic_string::compare that results in eroneous answers
-// in some cases (tested with Borland C++ 5.1, Rogue Wave lib version
-// 0x020101) the test case was:
-// {39135,0} < {0xff,0}
-// which succeeds when it should not.
-//
-#ifndef _RWSTD_VER
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-template <class C, class T, class A>
-inline int string_compare(const std::basic_string<C,T,A>& s, const C* p)
-{ 
-   if(0 == *p)
-   {
-      if(s.empty() || ((s.size() == 1) && (s[0] == 0)))
-         return 0;
-   }
-   return s.compare(p); 
-}
-#endif
-#else
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)
-template <class C, class T, class A>
-inline int string_compare(const std::basic_string<C,T,A>& s, const C* p)
-{ 
-   if(0 == *p)
-   {
-      if(s.empty() || ((s.size() == 1) && (s[0] == 0)))
-         return 0;
-   }
-   return s.compare(p); 
-}
-#endif
-inline int string_compare(const std::string& s, const char* p)
-{ return std::strcmp(s.c_str(), p); }
-# ifndef NDNBOOST_NO_WREGEX
-inline int string_compare(const std::wstring& s, const wchar_t* p)
-{ return std::wcscmp(s.c_str(), p); }
-#endif
-#endif
-template <class Seq, class C>
-inline int string_compare(const Seq& s, const C* p)
-{
-   std::size_t i = 0;
-   while((i < s.size()) && (p[i] == s[i]))
-   {
-      ++i;
-   }
-   return (i == s.size()) ? -p[i] : s[i] - p[i];
-}
-# define STR_COMP(s,p) string_compare(s,p)
-
-template<class charT>
-inline const charT* re_skip_past_null(const charT* p)
-{
-  while (*p != static_cast<charT>(0)) ++p;
-  return ++p;
-}
-
-template <class iterator, class charT, class traits_type, class char_classT>
-iterator NDNBOOST_REGEX_CALL re_is_set_member(iterator next, 
-                          iterator last, 
-                          const re_set_long<char_classT>* set_, 
-                          const regex_data<charT, traits_type>& e, bool icase)
-{   
-   const charT* p = reinterpret_cast<const charT*>(set_+1);
-   iterator ptr;
-   unsigned int i;
-   //bool icase = e.m_flags & regex_constants::icase;
-
-   if(next == last) return next;
-
-   typedef typename traits_type::string_type traits_string_type;
-   const ::ndnboost::regex_traits_wrapper<traits_type>& traits_inst = *(e.m_ptraits);
-   
-   // dwa 9/13/00 suppress incorrect MSVC warning - it claims this is never
-   // referenced
-   (void)traits_inst;
-
-   // try and match a single character, could be a multi-character
-   // collating element...
-   for(i = 0; i < set_->csingles; ++i)
-   {
-      ptr = next;
-      if(*p == static_cast<charT>(0))
-      {
-         // treat null string as special case:
-         if(traits_inst.translate(*ptr, icase) != *p)
-         {
-            while(*p == static_cast<charT>(0))++p;
-            continue;
-         }
-         return set_->isnot ? next : (ptr == next) ? ++next : ptr;
-      }
-      else
-      {
-         while(*p && (ptr != last))
-         {
-            if(traits_inst.translate(*ptr, icase) != *p)
-               break;
-            ++p;
-            ++ptr;
-         }
-
-         if(*p == static_cast<charT>(0)) // if null we've matched
-            return set_->isnot ? next : (ptr == next) ? ++next : ptr;
-
-         p = re_skip_past_null(p);     // skip null
-      }
-   }
-
-   charT col = traits_inst.translate(*next, icase);
-
-
-   if(set_->cranges || set_->cequivalents)
-   {
-      traits_string_type s1;
-      //
-      // try and match a range, NB only a single character can match
-      if(set_->cranges)
-      {
-         if((e.m_flags & regex_constants::collate) == 0)
-            s1.assign(1, col);
-         else
-         {
-            charT a[2] = { col, charT(0), };
-            s1 = traits_inst.transform(a, a + 1);
-         }
-         for(i = 0; i < set_->cranges; ++i)
-         {
-            if(STR_COMP(s1, p) >= 0)
-            {
-               do{ ++p; }while(*p);
-               ++p;
-               if(STR_COMP(s1, p) <= 0)
-                  return set_->isnot ? next : ++next;
-            }
-            else
-            {
-               // skip first string
-               do{ ++p; }while(*p);
-               ++p;
-            }
-            // skip second string
-            do{ ++p; }while(*p);
-            ++p;
-         }
-      }
-      //
-      // try and match an equivalence class, NB only a single character can match
-      if(set_->cequivalents)
-      {
-         charT a[2] = { col, charT(0), };
-         s1 = traits_inst.transform_primary(a, a +1);
-         for(i = 0; i < set_->cequivalents; ++i)
-         {
-            if(STR_COMP(s1, p) == 0)
-               return set_->isnot ? next : ++next;
-            // skip string
-            do{ ++p; }while(*p);
-            ++p;
-         }
-      }
-   }
-   if(traits_inst.isctype(col, set_->cclasses) == true)
-      return set_->isnot ? next : ++next;
-   if((set_->cnclasses != 0) && (traits_inst.isctype(col, set_->cnclasses) == false))
-      return set_->isnot ? next : ++next;
-   return set_->isnot ? ++next : next;
-}
-
-template <class BidiIterator>
-class repeater_count
-{
-   repeater_count** stack;
-   repeater_count* next;
-   int state_id;
-   std::size_t count;        // the number of iterations so far
-   BidiIterator start_pos;   // where the last repeat started
-public:
-   repeater_count(repeater_count** s)
-   {
-      stack = s;
-      next = 0;
-      state_id = -1;
-      count = 0;
-   }
-   repeater_count(int i, repeater_count** s, BidiIterator start)
-      : start_pos(start)
-   {
-      state_id = i;
-      stack = s;
-      next = *stack;
-      *stack = this;
-      if(state_id > next->state_id)
-         count = 0;
-      else
-      {
-         repeater_count* p = next;
-         while(p && (p->state_id != state_id))
-            p = p->next;
-         if(p)
-         {
-            count = p->count;
-            start_pos = p->start_pos;
-         }
-         else
-            count = 0;
-      }
-   }
-   ~repeater_count()
-   {
-      if(next)
-         *stack = next;
-   }
-   std::size_t get_count() { return count; }
-   int get_id() { return state_id; }
-   std::size_t operator++() { return ++count; }
-   bool check_null_repeat(const BidiIterator& pos, std::size_t max)
-   {
-      // this is called when we are about to start a new repeat,
-      // if the last one was NULL move our count to max,
-      // otherwise save the current position.
-      bool result = (count == 0) ? false : (pos == start_pos);
-      if(result)
-         count = max;
-      else
-         start_pos = pos;
-      return result;
-   }
-};
-
-struct saved_state;
-
-enum saved_state_type
-{
-   saved_type_end = 0,
-   saved_type_paren = 1,
-   saved_type_recurse = 2,
-   saved_type_assertion = 3,
-   saved_state_alt = 4,
-   saved_state_repeater_count = 5,
-   saved_state_extra_block = 6,
-   saved_state_greedy_single_repeat = 7,
-   saved_state_rep_slow_dot = 8,
-   saved_state_rep_fast_dot = 9,
-   saved_state_rep_char = 10,
-   saved_state_rep_short_set = 11,
-   saved_state_rep_long_set = 12,
-   saved_state_non_greedy_long_repeat = 13, 
-   saved_state_count = 14
-};
-
-template <class Results>
-struct recursion_info
-{
-   typedef typename Results::value_type value_type;
-   typedef typename value_type::iterator iterator;
-   int idx;
-   const re_syntax_base* preturn_address;
-   Results results;
-   repeater_count<iterator>* repeater_stack;
-};
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable : 4251 4231)
-#  if NDNBOOST_MSVC < 1600
-#     pragma warning(disable : 4660)
-#  endif
-#endif
-
-template <class BidiIterator, class Allocator, class traits>
-class perl_matcher
-{
-public:
-   typedef typename traits::char_type char_type;
-   typedef perl_matcher<BidiIterator, Allocator, traits> self_type;
-   typedef bool (self_type::*matcher_proc_type)(void);
-   typedef std::size_t traits_size_type;
-   typedef typename is_byte<char_type>::width_type width_type;
-   typedef typename regex_iterator_traits<BidiIterator>::difference_type difference_type;
-   typedef match_results<BidiIterator, Allocator> results_type;
-
-   perl_matcher(BidiIterator first, BidiIterator end, 
-      match_results<BidiIterator, Allocator>& what, 
-      const basic_regex<char_type, traits>& e,
-      match_flag_type f,
-      BidiIterator l_base)
-      :  m_result(what), base(first), last(end), 
-         position(first), backstop(l_base), re(e), traits_inst(e.get_traits()), 
-         m_independent(false), next_count(&rep_obj), rep_obj(&next_count)
-   {
-      construct_init(e, f);
-   }
-
-   bool match();
-   bool find();
-
-   void setf(match_flag_type f)
-   { m_match_flags |= f; }
-   void unsetf(match_flag_type f)
-   { m_match_flags &= ~f; }
-
-private:
-   void construct_init(const basic_regex<char_type, traits>& e, match_flag_type f);
-
-   bool find_imp();
-   bool match_imp();
-#ifdef NDNBOOST_REGEX_HAS_MS_STACK_GUARD
-   typedef bool (perl_matcher::*protected_proc_type)();
-   bool protected_call(protected_proc_type);
-#endif
-   void estimate_max_state_count(std::random_access_iterator_tag*);
-   void estimate_max_state_count(void*);
-   bool match_prefix();
-   bool match_all_states();
-
-   // match procs, stored in s_match_vtable:
-   bool match_startmark();
-   bool match_endmark();
-   bool match_literal();
-   bool match_start_line();
-   bool match_end_line();
-   bool match_wild();
-   bool match_match();
-   bool match_word_boundary();
-   bool match_within_word();
-   bool match_word_start();
-   bool match_word_end();
-   bool match_buffer_start();
-   bool match_buffer_end();
-   bool match_backref();
-   bool match_long_set();
-   bool match_set();
-   bool match_jump();
-   bool match_alt();
-   bool match_rep();
-   bool match_combining();
-   bool match_soft_buffer_end();
-   bool match_restart_continue();
-   bool match_long_set_repeat();
-   bool match_set_repeat();
-   bool match_char_repeat();
-   bool match_dot_repeat_fast();
-   bool match_dot_repeat_slow();
-   bool match_dot_repeat_dispatch()
-   {
-      return ::ndnboost::is_random_access_iterator<BidiIterator>::value ? match_dot_repeat_fast() : match_dot_repeat_slow();
-   }
-   bool match_backstep();
-   bool match_assert_backref();
-   bool match_toggle_case();
-#ifdef NDNBOOST_REGEX_RECURSIVE
-   bool backtrack_till_match(std::size_t count);
-#endif
-   bool match_recursion();
-
-   // find procs stored in s_find_vtable:
-   bool find_restart_any();
-   bool find_restart_word();
-   bool find_restart_line();
-   bool find_restart_buf();
-   bool find_restart_lit();
-
-private:
-   // final result structure to be filled in:
-   match_results<BidiIterator, Allocator>& m_result;
-   // temporary result for POSIX matches:
-   scoped_ptr<match_results<BidiIterator, Allocator> > m_temp_match;
-   // pointer to actual result structure to fill in:
-   match_results<BidiIterator, Allocator>* m_presult;
-   // start of sequence being searched:
-   BidiIterator base;
-   // end of sequence being searched:
-   BidiIterator last; 
-   // current character being examined:
-   BidiIterator position;
-   // where to restart next search after failed match attempt:
-   BidiIterator restart;
-   // where the current search started from, acts as base for $` during grep:
-   BidiIterator search_base;
-   // how far we can go back when matching lookbehind:
-   BidiIterator backstop;
-   // the expression being examined:
-   const basic_regex<char_type, traits>& re;
-   // the expression's traits class:
-   const ::ndnboost::regex_traits_wrapper<traits>& traits_inst;
-   // the next state in the machine being matched:
-   const re_syntax_base* pstate;
-   // matching flags in use:
-   match_flag_type m_match_flags;
-   // how many states we have examined so far:
-   std::ptrdiff_t state_count;
-   // max number of states to examine before giving up:
-   std::ptrdiff_t max_state_count;
-   // whether we should ignore case or not:
-   bool icase;
-   // set to true when (position == last), indicates that we may have a partial match:
-   bool m_has_partial_match;
-   // set to true whenever we get a match:
-   bool m_has_found_match;
-   // set to true whenever we're inside an independent sub-expression:
-   bool m_independent;
-   // the current repeat being examined:
-   repeater_count<BidiIterator>* next_count;
-   // the first repeat being examined (top of linked list):
-   repeater_count<BidiIterator> rep_obj;
-   // the mask to pass when matching word boundaries:
-   typename traits::char_class_type m_word_mask;
-   // the bitmask to use when determining whether a match_any matches a newline or not:
-   unsigned char match_any_mask;
-   // recursion information:
-   std::vector<recursion_info<results_type> > recursion_stack;
-
-#ifdef NDNBOOST_REGEX_NON_RECURSIVE
-   //
-   // additional members for non-recursive version:
-   //
-   typedef bool (self_type::*unwind_proc_type)(bool);
-
-   void extend_stack();
-   bool unwind(bool);
-   bool unwind_end(bool);
-   bool unwind_paren(bool);
-   bool unwind_recursion_stopper(bool);
-   bool unwind_assertion(bool);
-   bool unwind_alt(bool);
-   bool unwind_repeater_counter(bool);
-   bool unwind_extra_block(bool);
-   bool unwind_greedy_single_repeat(bool);
-   bool unwind_slow_dot_repeat(bool);
-   bool unwind_fast_dot_repeat(bool);
-   bool unwind_char_repeat(bool);
-   bool unwind_short_set_repeat(bool);
-   bool unwind_long_set_repeat(bool);
-   bool unwind_non_greedy_repeat(bool);
-   bool unwind_recursion(bool);
-   bool unwind_recursion_pop(bool);
-   void destroy_single_repeat();
-   void push_matched_paren(int index, const sub_match<BidiIterator>& sub);
-   void push_recursion_stopper();
-   void push_assertion(const re_syntax_base* ps, bool positive);
-   void push_alt(const re_syntax_base* ps);
-   void push_repeater_count(int i, repeater_count<BidiIterator>** s);
-   void push_single_repeat(std::size_t c, const re_repeat* r, BidiIterator last_position, int state_id);
-   void push_non_greedy_repeat(const re_syntax_base* ps);
-   void push_recursion(int idx, const re_syntax_base* p, results_type* presults);
-   void push_recursion_pop();
-
-   // pointer to base of stack:
-   saved_state* m_stack_base;
-   // pointer to current stack position:
-   saved_state* m_backup_state;
-   // determines what value to return when unwinding from recursion,
-   // allows for mixed recursive/non-recursive algorithm:
-   bool m_recursive_result;
-   // how many memory blocks have we used up?:
-   unsigned used_block_count;
-#endif
-
-   // these operations aren't allowed, so are declared private,
-   // bodies are provided to keep explicit-instantiation requests happy:
-   perl_matcher& operator=(const perl_matcher&)
-   {
-      return *this;
-   }
-   perl_matcher(const perl_matcher& that)
-      : m_result(that.m_result), re(that.re), traits_inst(that.traits_inst), rep_obj(0) {}
-};
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace re_detail
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-//
-// include the implementation of perl_matcher:
-//
-#ifdef NDNBOOST_REGEX_RECURSIVE
-#include <ndnboost/regex/v4/perl_matcher_recursive.hpp>
-#else
-#include <ndnboost/regex/v4/perl_matcher_non_recursive.hpp>
-#endif
-// this one has to be last:
-#include <ndnboost/regex/v4/perl_matcher_common.hpp>
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/perl_matcher_common.hpp b/include/ndnboost/regex/v4/perl_matcher_common.hpp
deleted file mode 100644
index 5d5fed0..0000000
--- a/include/ndnboost/regex/v4/perl_matcher_common.hpp
+++ /dev/null
@@ -1,996 +0,0 @@
-/*
- *
- * Copyright (c) 2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         perl_matcher_common.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Definitions of perl_matcher member functions that are 
-  *                common to both the recursive and non-recursive versions.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_PERL_MATCHER_COMMON_HPP
-#define NDNBOOST_REGEX_V4_PERL_MATCHER_COMMON_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef __BORLANDC__
-#  pragma option push -w-8008 -w-8066
-#endif
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable: 4800)
-#endif
-
-namespace ndnboost{
-namespace re_detail{
-
-template <class BidiIterator, class Allocator, class traits>
-void perl_matcher<BidiIterator, Allocator, traits>::construct_init(const basic_regex<char_type, traits>& e, match_flag_type f)
-{ 
-   typedef typename regex_iterator_traits<BidiIterator>::iterator_category category;
-   typedef typename basic_regex<char_type, traits>::flag_type expression_flag_type;
-   
-   if(e.empty())
-   {
-      // precondition failure: e is not a valid regex.
-      std::invalid_argument ex("Invalid regular expression object");
-      ndnboost::throw_exception(ex);
-   }
-   pstate = 0;
-   m_match_flags = f;
-   estimate_max_state_count(static_cast<category*>(0));
-   expression_flag_type re_f = re.flags();
-   icase = re_f & regex_constants::icase;
-   if(!(m_match_flags & (match_perl|match_posix)))
-   {
-      if((re_f & (regbase::main_option_type|regbase::no_perl_ex)) == 0)
-         m_match_flags |= match_perl;
-      else if((re_f & (regbase::main_option_type|regbase::emacs_ex)) == (regbase::basic_syntax_group|regbase::emacs_ex))
-         m_match_flags |= match_perl;
-      else if((re_f & (regbase::main_option_type|regbase::literal)) == (regbase::literal))
-         m_match_flags |= match_perl;
-      else
-         m_match_flags |= match_posix;
-   }
-   if(m_match_flags & match_posix)
-   {
-      m_temp_match.reset(new match_results<BidiIterator, Allocator>());
-      m_presult = m_temp_match.get();
-   }
-   else
-      m_presult = &m_result;
-#ifdef NDNBOOST_REGEX_NON_RECURSIVE
-   m_stack_base = 0;
-   m_backup_state = 0;
-#endif
-   // find the value to use for matching word boundaries:
-   m_word_mask = re.get_data().m_word_mask; 
-   // find bitmask to use for matching '.':
-   match_any_mask = static_cast<unsigned char>((f & match_not_dot_newline) ? re_detail::test_not_newline : re_detail::test_newline);
-}
-
-template <class BidiIterator, class Allocator, class traits>
-void perl_matcher<BidiIterator, Allocator, traits>::estimate_max_state_count(std::random_access_iterator_tag*)
-{
-   //
-   // How many states should we allow our machine to visit before giving up?
-   // This is a heuristic: it takes the greater of O(N^2) and O(NS^2)
-   // where N is the length of the string, and S is the number of states
-   // in the machine.  It's tempting to up this to O(N^2S) or even O(N^2S^2)
-   // but these take unreasonably amounts of time to bale out in pathological
-   // cases.
-   //
-   // Calculate NS^2 first:
-   //
-   static const std::ptrdiff_t k = 100000;
-   std::ptrdiff_t dist = ndnboost::re_detail::distance(base, last);
-   if(dist == 0)
-      dist = 1;
-   std::ptrdiff_t states = re.size();
-   if(states == 0)
-      states = 1;
-   states *= states;
-   if((std::numeric_limits<std::ptrdiff_t>::max)() / dist < states)
-   {
-      max_state_count = (std::min)((std::ptrdiff_t)NDNBOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
-      return;
-   }
-   states *= dist;
-   if((std::numeric_limits<std::ptrdiff_t>::max)() - k < states)
-   {
-      max_state_count = (std::min)((std::ptrdiff_t)NDNBOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
-      return;
-   }
-   states += k;
-
-   max_state_count = states;
-
-   //
-   // Now calculate N^2:
-   //
-   states = dist;
-   if((std::numeric_limits<std::ptrdiff_t>::max)() / dist < states)
-   {
-      max_state_count = (std::min)((std::ptrdiff_t)NDNBOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
-      return;
-   }
-   states *= dist;
-   if((std::numeric_limits<std::ptrdiff_t>::max)() - k < states)
-   {
-      max_state_count = (std::min)((std::ptrdiff_t)NDNBOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits<std::ptrdiff_t>::max)() - 2);
-      return;
-   }
-   states += k;
-   //
-   // N^2 can be a very large number indeed, to prevent things getting out
-   // of control, cap the max states:
-   //
-   if(states > NDNBOOST_REGEX_MAX_STATE_COUNT)
-      states = NDNBOOST_REGEX_MAX_STATE_COUNT;
-   //
-   // If (the possibly capped) N^2 is larger than our first estimate,
-   // use this instead:
-   //
-   if(states > max_state_count)
-      max_state_count = states;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::estimate_max_state_count(void*)
-{
-   // we don't know how long the sequence is:
-   max_state_count = NDNBOOST_REGEX_MAX_STATE_COUNT;
-}
-
-#ifdef NDNBOOST_REGEX_HAS_MS_STACK_GUARD
-template <class BidiIterator, class Allocator, class traits>
-inline bool perl_matcher<BidiIterator, Allocator, traits>::protected_call(
-   protected_proc_type proc)
-{
-   ::ndnboost::re_detail::concrete_protected_call
-      <perl_matcher<BidiIterator, Allocator, traits> >
-      obj(this, proc);
-   return obj.execute();
-
-}
-#endif
-
-template <class BidiIterator, class Allocator, class traits>
-inline bool perl_matcher<BidiIterator, Allocator, traits>::match()
-{
-#ifdef NDNBOOST_REGEX_HAS_MS_STACK_GUARD
-   return protected_call(&perl_matcher<BidiIterator, Allocator, traits>::match_imp);
-#else
-   return match_imp();
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_imp()
-{
-   // initialise our stack if we are non-recursive:
-#ifdef NDNBOOST_REGEX_NON_RECURSIVE
-   save_state_init init(&m_stack_base, &m_backup_state);
-   used_block_count = NDNBOOST_REGEX_MAX_BLOCKS;
-#if !defined(NDNBOOST_NO_EXCEPTIONS)
-   try{
-#endif
-#endif
-
-   // reset our state machine:
-   position = base;
-   search_base = base;
-   state_count = 0;
-   m_match_flags |= regex_constants::match_all;
-   m_presult->set_size((m_match_flags & match_nosubs) ? 1 : re.mark_count(), search_base, last);
-   m_presult->set_base(base);
-   m_presult->set_named_subs(this->re.get_named_subs());
-   if(m_match_flags & match_posix)
-      m_result = *m_presult;
-   verify_options(re.flags(), m_match_flags);
-   if(0 == match_prefix())
-      return false;
-   return (m_result[0].second == last) && (m_result[0].first == base);
-
-#if defined(NDNBOOST_REGEX_NON_RECURSIVE) && !defined(NDNBOOST_NO_EXCEPTIONS)
-   }
-   catch(...)
-   {
-      // unwind all pushed states, apart from anything else this
-      // ensures that all the states are correctly destructed
-      // not just the memory freed.
-      while(unwind(true)){}
-      throw;
-   }
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline bool perl_matcher<BidiIterator, Allocator, traits>::find()
-{
-#ifdef NDNBOOST_REGEX_HAS_MS_STACK_GUARD
-   return protected_call(&perl_matcher<BidiIterator, Allocator, traits>::find_imp);
-#else
-   return find_imp();
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::find_imp()
-{
-   static matcher_proc_type const s_find_vtable[7] = 
-   {
-      &perl_matcher<BidiIterator, Allocator, traits>::find_restart_any,
-      &perl_matcher<BidiIterator, Allocator, traits>::find_restart_word,
-      &perl_matcher<BidiIterator, Allocator, traits>::find_restart_line,
-      &perl_matcher<BidiIterator, Allocator, traits>::find_restart_buf,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_prefix,
-      &perl_matcher<BidiIterator, Allocator, traits>::find_restart_lit,
-      &perl_matcher<BidiIterator, Allocator, traits>::find_restart_lit,
-   };
-
-   // initialise our stack if we are non-recursive:
-#ifdef NDNBOOST_REGEX_NON_RECURSIVE
-   save_state_init init(&m_stack_base, &m_backup_state);
-   used_block_count = NDNBOOST_REGEX_MAX_BLOCKS;
-#if !defined(NDNBOOST_NO_EXCEPTIONS)
-   try{
-#endif
-#endif
-
-   state_count = 0;
-   if((m_match_flags & regex_constants::match_init) == 0)
-   {
-      // reset our state machine:
-      search_base = position = base;
-      pstate = re.get_first_state();
-      m_presult->set_size((m_match_flags & match_nosubs) ? 1 : re.mark_count(), base, last);
-      m_presult->set_base(base);
-      m_presult->set_named_subs(this->re.get_named_subs());
-      m_match_flags |= regex_constants::match_init;
-   }
-   else
-   {
-      // start again:
-      search_base = position = m_result[0].second;
-      // If last match was null and match_not_null was not set then increment
-      // our start position, otherwise we go into an infinite loop:
-      if(((m_match_flags & match_not_null) == 0) && (m_result.length() == 0))
-      {
-         if(position == last)
-            return false;
-         else 
-            ++position;
-      }
-      // reset $` start:
-      m_presult->set_size((m_match_flags & match_nosubs) ? 1 : re.mark_count(), search_base, last);
-      //if((base != search_base) && (base == backstop))
-      //   m_match_flags |= match_prev_avail;
-   }
-   if(m_match_flags & match_posix)
-   {
-      m_result.set_size(re.mark_count(), base, last);
-      m_result.set_base(base);
-   }
-
-   verify_options(re.flags(), m_match_flags);
-   // find out what kind of expression we have:
-   unsigned type = (m_match_flags & match_continuous) ? 
-      static_cast<unsigned int>(regbase::restart_continue) 
-         : static_cast<unsigned int>(re.get_restart_type());
-
-   // call the appropriate search routine:
-   matcher_proc_type proc = s_find_vtable[type];
-   return (this->*proc)();
-
-#if defined(NDNBOOST_REGEX_NON_RECURSIVE) && !defined(NDNBOOST_NO_EXCEPTIONS)
-   }
-   catch(...)
-   {
-      // unwind all pushed states, apart from anything else this
-      // ensures that all the states are correctly destructed
-      // not just the memory freed.
-      while(unwind(true)){}
-      throw;
-   }
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_prefix()
-{
-   m_has_partial_match = false;
-   m_has_found_match = false;
-   pstate = re.get_first_state();
-   m_presult->set_first(position);
-   restart = position;
-   match_all_states();
-   if(!m_has_found_match && m_has_partial_match && (m_match_flags & match_partial))
-   {
-      m_has_found_match = true;
-      m_presult->set_second(last, 0, false);
-      position = last;
-      if((m_match_flags & match_posix) == match_posix)
-      {
-         m_result.maybe_assign(*m_presult);
-      }
-   }
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-   if(m_has_found_match && (match_extra & m_match_flags))
-   {
-      //
-      // we have a match, reverse the capture information:
-      //
-      for(unsigned i = 0; i < m_presult->size(); ++i)
-      {
-         typename sub_match<BidiIterator>::capture_sequence_type & seq = ((*m_presult)[i]).get_captures();
-         std::reverse(seq.begin(), seq.end());
-      }
-   }
-#endif
-   if(!m_has_found_match)
-      position = restart; // reset search postion
-   return m_has_found_match;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_literal()
-{
-   unsigned int len = static_cast<const re_literal*>(pstate)->length;
-   const char_type* what = reinterpret_cast<const char_type*>(static_cast<const re_literal*>(pstate) + 1);
-   //
-   // compare string with what we stored in
-   // our records:
-   for(unsigned int i = 0; i < len; ++i, ++position)
-   {
-      if((position == last) || (traits_inst.translate(*position, icase) != what[i]))
-         return false;
-   }
-   pstate = pstate->next.p;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_start_line()
-{
-   if(position == backstop)
-   {
-      if((m_match_flags & match_prev_avail) == 0)
-      {
-         if((m_match_flags & match_not_bol) == 0)
-         {
-            pstate = pstate->next.p;
-            return true;
-         }
-         return false;
-      }
-   }
-   else if(m_match_flags & match_single_line)
-      return false;
-
-   // check the previous value character:
-   BidiIterator t(position);
-   --t;
-   if(position != last)
-   {
-      if(is_separator(*t) && !((*t == static_cast<char_type>('\r')) && (*position == static_cast<char_type>('\n'))) )
-      {
-         pstate = pstate->next.p;
-         return true;
-      }
-   }
-   else if(is_separator(*t))
-   {
-      pstate = pstate->next.p;
-      return true;
-   }
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_end_line()
-{
-   if(position != last)
-   {
-      if(m_match_flags & match_single_line)
-         return false;
-      // we're not yet at the end so *first is always valid:
-      if(is_separator(*position))
-      {
-         if((position != backstop) || (m_match_flags & match_prev_avail))
-         {
-            // check that we're not in the middle of \r\n sequence
-            BidiIterator t(position);
-            --t;
-            if((*t == static_cast<char_type>('\r')) && (*position == static_cast<char_type>('\n')))
-            {
-               return false;
-            }
-         }
-         pstate = pstate->next.p;
-         return true;
-      }
-   }
-   else if((m_match_flags & match_not_eol) == 0)
-   {
-      pstate = pstate->next.p;
-      return true;
-   }
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_wild()
-{
-   if(position == last) 
-      return false;
-   if(is_separator(*position) && ((match_any_mask & static_cast<const re_dot*>(pstate)->mask) == 0))
-      return false;
-   if((*position == char_type(0)) && (m_match_flags & match_not_dot_null))
-      return false;
-   pstate = pstate->next.p;
-   ++position;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_word_boundary()
-{
-   bool b; // indcates whether next character is a word character
-   if(position != last)
-   {
-      // prev and this character must be opposites:
-   #if defined(NDNBOOST_REGEX_USE_C_LOCALE) && defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ < 95)
-      b = traits::isctype(*position, m_word_mask);
-   #else
-      b = traits_inst.isctype(*position, m_word_mask);
-   #endif
-   }
-   else
-   {
-      b = (m_match_flags & match_not_eow) ? true : false;
-   }
-   if((position == backstop) && ((m_match_flags & match_prev_avail) == 0))
-   {
-      if(m_match_flags & match_not_bow)
-         b ^= true;
-      else
-         b ^= false;
-   }
-   else
-   {
-      --position;
-      b ^= traits_inst.isctype(*position, m_word_mask);
-      ++position;
-   }
-   if(b)
-   {
-      pstate = pstate->next.p;
-      return true;
-   }
-   return false; // no match if we get to here...
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_within_word()
-{
-   if(position == last)
-      return false;
-   // both prev and this character must be m_word_mask:
-   bool prev = traits_inst.isctype(*position, m_word_mask);
-   {
-      bool b;
-      if((position == backstop) && ((m_match_flags & match_prev_avail) == 0)) 
-         return false;
-      else
-      {
-         --position;
-         b = traits_inst.isctype(*position, m_word_mask);
-         ++position;
-      }
-      if(b == prev)
-      {
-         pstate = pstate->next.p;
-         return true;
-      }
-   }
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_word_start()
-{
-   if(position == last)
-      return false; // can't be starting a word if we're already at the end of input
-   if(!traits_inst.isctype(*position, m_word_mask))
-      return false; // next character isn't a word character
-   if((position == backstop) && ((m_match_flags & match_prev_avail) == 0))
-   {
-      if(m_match_flags & match_not_bow)
-         return false; // no previous input
-   }
-   else
-   {
-      // otherwise inside buffer:
-      BidiIterator t(position);
-      --t;
-      if(traits_inst.isctype(*t, m_word_mask))
-         return false; // previous character not non-word
-   }
-   // OK we have a match:
-   pstate = pstate->next.p;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_word_end()
-{
-   if((position == backstop) && ((m_match_flags & match_prev_avail) == 0))
-      return false;  // start of buffer can't be end of word
-   BidiIterator t(position);
-   --t;
-   if(traits_inst.isctype(*t, m_word_mask) == false)
-      return false;  // previous character wasn't a word character
-
-   if(position == last)
-   {
-      if(m_match_flags & match_not_eow)
-         return false; // end of buffer but not end of word
-   }
-   else
-   {
-      // otherwise inside buffer:
-      if(traits_inst.isctype(*position, m_word_mask))
-         return false; // next character is a word character
-   }
-   pstate = pstate->next.p;
-   return true;      // if we fall through to here then we've succeeded
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_buffer_start()
-{
-   if((position != backstop) || (m_match_flags & match_not_bob))
-      return false;
-   // OK match:
-   pstate = pstate->next.p;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_buffer_end()
-{
-   if((position != last) || (m_match_flags & match_not_eob))
-      return false;
-   // OK match:
-   pstate = pstate->next.p;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_backref()
-{
-   //
-   // Compare with what we previously matched.
-   // Note that this succeeds if the backref did not partisipate
-   // in the match, this is in line with ECMAScript, but not Perl
-   // or PCRE.
-   //
-   int index = static_cast<const re_brace*>(pstate)->index;
-   if(index >= 10000)
-   {
-      named_subexpressions::range_type r = re.get_data().equal_range(index);
-      NDNBOOST_ASSERT(r.first != r.second);
-      do
-      {
-         index = r.first->index;
-         ++r.first;
-      }while((r.first != r.second) && ((*m_presult)[index].matched != true));
-   }
-
-   if((m_match_flags & match_perl) && !(*m_presult)[index].matched)
-      return false;
-
-   BidiIterator i = (*m_presult)[index].first;
-   BidiIterator j = (*m_presult)[index].second;
-   while(i != j)
-   {
-      if((position == last) || (traits_inst.translate(*position, icase) != traits_inst.translate(*i, icase)))
-         return false;
-      ++i;
-      ++position;
-   }
-   pstate = pstate->next.p;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_long_set()
-{
-   typedef typename traits::char_class_type char_class_type;
-   // let the traits class do the work:
-   if(position == last)
-      return false;
-   BidiIterator t = re_is_set_member(position, last, static_cast<const re_set_long<char_class_type>*>(pstate), re.get_data(), icase);
-   if(t != position)
-   {
-      pstate = pstate->next.p;
-      position = t;
-      return true;
-   }
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_set()
-{
-   if(position == last)
-      return false;
-   if(static_cast<const re_set*>(pstate)->_map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
-   {
-      pstate = pstate->next.p;
-      ++position;
-      return true;
-   }
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_jump()
-{
-   pstate = static_cast<const re_jump*>(pstate)->alt.p;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_combining()
-{
-   if(position == last)
-      return false;
-   if(is_combining(traits_inst.translate(*position, icase)))
-      return false;
-   ++position;
-   while((position != last) && is_combining(traits_inst.translate(*position, icase)))
-      ++position;
-   pstate = pstate->next.p;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_soft_buffer_end()
-{
-   if(m_match_flags & match_not_eob)
-      return false;
-   BidiIterator p(position);
-   while((p != last) && is_separator(traits_inst.translate(*p, icase)))++p;
-   if(p != last)
-      return false;
-   pstate = pstate->next.p;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_restart_continue()
-{
-   if(position == search_base)
-   {
-      pstate = pstate->next.p;
-      return true;
-   }
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_backstep()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-   if( ::ndnboost::is_random_access_iterator<BidiIterator>::value)
-   {
-      std::ptrdiff_t maxlen = ::ndnboost::re_detail::distance(backstop, position);
-      if(maxlen < static_cast<const re_brace*>(pstate)->index)
-         return false;
-      std::advance(position, -static_cast<const re_brace*>(pstate)->index);
-   }
-   else
-   {
-      int c = static_cast<const re_brace*>(pstate)->index;
-      while(c--)
-      {
-         if(position == backstop)
-            return false;
-         --position;
-      }
-   }
-   pstate = pstate->next.p;
-   return true;
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline bool perl_matcher<BidiIterator, Allocator, traits>::match_assert_backref()
-{
-   // return true if marked sub-expression N has been matched:
-   int index = static_cast<const re_brace*>(pstate)->index;
-   bool result = false;
-   if(index == 9999)
-   {
-      // Magic value for a (DEFINE) block:
-      return false;
-   }
-   else if(index > 0)
-   {
-      // Have we matched subexpression "index"?
-      // Check if index is a hash value:
-      if(index >= 10000)
-      {
-         named_subexpressions::range_type r = re.get_data().equal_range(index);
-         while(r.first != r.second)
-         {
-            if((*m_presult)[r.first->index].matched)
-            {
-               result = true;
-               break;
-            }
-            ++r.first;
-         }
-      }
-      else
-      {
-         result = (*m_presult)[index].matched;
-      }
-      pstate = pstate->next.p;
-   }
-   else
-   {
-      // Have we recursed into subexpression "index"?
-      // If index == 0 then check for any recursion at all, otherwise for recursion to -index-1.
-      int idx = -index-1;
-      if(idx >= 10000)
-      {
-         named_subexpressions::range_type r = re.get_data().equal_range(idx);
-         int stack_index = recursion_stack.empty() ? -1 : recursion_stack.back().idx;
-         while(r.first != r.second)
-         {
-            result |= (stack_index == r.first->index);
-            if(result)break;
-            ++r.first;
-         }
-      }
-      else
-      {
-         result = !recursion_stack.empty() && ((recursion_stack.back().idx == idx) || (index == 0));
-      }
-      pstate = pstate->next.p;
-   }
-   return result;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_toggle_case()
-{
-   // change our case sensitivity:
-   this->icase = static_cast<const re_case*>(pstate)->icase;
-   pstate = pstate->next.p;
-   return true;
-}
-
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_any()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-   const unsigned char* _map = re.get_map();
-   while(true)
-   {
-      // skip everything we can't match:
-      while((position != last) && !can_start(*position, _map, (unsigned char)mask_any) )
-         ++position;
-      if(position == last)
-      {
-         // run out of characters, try a null match if possible:
-         if(re.can_be_null())
-            return match_prefix();
-         break;
-      }
-      // now try and obtain a match:
-      if(match_prefix())
-         return true;
-      if(position == last)
-         return false;
-      ++position;
-   }
-   return false;
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_word()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-   // do search optimised for word starts:
-   const unsigned char* _map = re.get_map();
-   if((m_match_flags & match_prev_avail) || (position != base))
-      --position;
-   else if(match_prefix())
-      return true;
-   do
-   {
-      while((position != last) && traits_inst.isctype(*position, m_word_mask))
-         ++position;
-      while((position != last) && !traits_inst.isctype(*position, m_word_mask))
-         ++position;
-      if(position == last)
-         break;
-
-      if(can_start(*position, _map, (unsigned char)mask_any) )
-      {
-         if(match_prefix())
-            return true;
-      }
-      if(position == last)
-         break;
-   } while(true);
-   return false;
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_line()
-{
-   // do search optimised for line starts:
-   const unsigned char* _map = re.get_map();
-   if(match_prefix())
-      return true;
-   while(position != last)
-   {
-      while((position != last) && !is_separator(*position))
-         ++position;
-      if(position == last)
-         return false;
-      ++position;
-      if(position == last)
-      {
-         if(re.can_be_null() && match_prefix())
-            return true;
-         return false;
-      }
-
-      if( can_start(*position, _map, (unsigned char)mask_any) )
-      {
-         if(match_prefix())
-            return true;
-      }
-      if(position == last)
-         return false;
-      //++position;
-   }
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_buf()
-{
-   if((position == base) && ((m_match_flags & match_not_bob) == 0))
-      return match_prefix();
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::find_restart_lit()
-{
-#if 0
-   if(position == last)
-      return false; // can't possibly match if we're at the end already
-
-   unsigned type = (m_match_flags & match_continuous) ? 
-      static_cast<unsigned int>(regbase::restart_continue) 
-         : static_cast<unsigned int>(re.get_restart_type());
-
-   const kmp_info<char_type>* info = access::get_kmp(re);
-   int len = info->len;
-   const char_type* x = info->pstr;
-   int j = 0; 
-   while (position != last) 
-   {
-      while((j > -1) && (x[j] != traits_inst.translate(*position, icase))) 
-         j = info->kmp_next[j];
-      ++position;
-      ++j;
-      if(j >= len) 
-      {
-         if(type == regbase::restart_fixed_lit)
-         {
-            std::advance(position, -j);
-            restart = position;
-            std::advance(restart, len);
-            m_result.set_first(position);
-            m_result.set_second(restart);
-            position = restart;
-            return true;
-         }
-         else
-         {
-            restart = position;
-            std::advance(position, -j);
-            if(match_prefix())
-               return true;
-            else
-            {
-               for(int k = 0; (restart != position) && (k < j); ++k, --restart)
-                     {} // dwa 10/20/2000 - warning suppression for MWCW
-               if(restart != last)
-                  ++restart;
-               position = restart;
-               j = 0;  //we could do better than this...
-            }
-         }
-      }
-   }
-   if((m_match_flags & match_partial) && (position == last) && j)
-   {
-      // we need to check for a partial match:
-      restart = position;
-      std::advance(position, -j);
-      return match_prefix();
-   }
-#endif
-   return false;
-}
-
-} // namespace re_detail
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-#ifdef __BORLANDC__
-#  pragma option pop
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/perl_matcher_non_recursive.hpp b/include/ndnboost/regex/v4/perl_matcher_non_recursive.hpp
deleted file mode 100644
index c28856c..0000000
--- a/include/ndnboost/regex/v4/perl_matcher_non_recursive.hpp
+++ /dev/null
@@ -1,1642 +0,0 @@
-/*
- *
- * Copyright (c) 2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         perl_matcher_common.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Definitions of perl_matcher member functions that are 
-  *                specific to the non-recursive implementation.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_PERL_MATCHER_NON_RECURSIVE_HPP
-#define NDNBOOST_REGEX_V4_PERL_MATCHER_NON_RECURSIVE_HPP
-
-#include <new>
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable: 4800)
-#endif
-
-namespace ndnboost{
-namespace re_detail{
-
-template <class T>
-inline void inplace_destroy(T* p)
-{
-   (void)p;  // warning suppression
-   p->~T();
-}
-
-struct saved_state
-{
-   union{
-      unsigned int state_id;
-      // this padding ensures correct alignment on 64-bit platforms:
-      std::size_t padding1;
-      std::ptrdiff_t padding2;
-      void* padding3;
-   };
-   saved_state(unsigned i) : state_id(i) {}
-};
-
-template <class BidiIterator>
-struct saved_matched_paren : public saved_state
-{
-   int index;
-   sub_match<BidiIterator> sub;
-   saved_matched_paren(int i, const sub_match<BidiIterator>& s) : saved_state(1), index(i), sub(s){};
-};
-
-template <class BidiIterator>
-struct saved_position : public saved_state
-{
-   const re_syntax_base* pstate;
-   BidiIterator position;
-   saved_position(const re_syntax_base* ps, BidiIterator pos, int i) : saved_state(i), pstate(ps), position(pos){};
-};
-
-template <class BidiIterator>
-struct saved_assertion : public saved_position<BidiIterator>
-{
-   bool positive;
-   saved_assertion(bool p, const re_syntax_base* ps, BidiIterator pos) 
-      : saved_position<BidiIterator>(ps, pos, saved_type_assertion), positive(p){};
-};
-
-template <class BidiIterator>
-struct saved_repeater : public saved_state
-{
-   repeater_count<BidiIterator> count;
-   saved_repeater(int i, repeater_count<BidiIterator>** s, BidiIterator start) 
-      : saved_state(saved_state_repeater_count), count(i,s,start){}
-};
-
-struct saved_extra_block : public saved_state
-{
-   saved_state *base, *end;
-   saved_extra_block(saved_state* b, saved_state* e) 
-      : saved_state(saved_state_extra_block), base(b), end(e) {}
-};
-
-struct save_state_init
-{
-   saved_state** stack;
-   save_state_init(saved_state** base, saved_state** end)
-      : stack(base)
-   {
-      *base = static_cast<saved_state*>(get_mem_block());
-      *end = reinterpret_cast<saved_state*>(reinterpret_cast<char*>(*base)+NDNBOOST_REGEX_BLOCKSIZE);
-      --(*end);
-      (void) new (*end)saved_state(0);
-      NDNBOOST_ASSERT(*end > *base);
-   }
-   ~save_state_init()
-   {
-      put_mem_block(*stack);
-      *stack = 0;
-   }
-};
-
-template <class BidiIterator>
-struct saved_single_repeat : public saved_state
-{
-   std::size_t count;
-   const re_repeat* rep;
-   BidiIterator last_position;
-   saved_single_repeat(std::size_t c, const re_repeat* r, BidiIterator lp, int arg_id) 
-      : saved_state(arg_id), count(c), rep(r), last_position(lp){}
-};
-
-template <class Results>
-struct saved_recursion : public saved_state
-{
-   saved_recursion(int idx, const re_syntax_base* p, Results* pr) 
-      : saved_state(14), recursion_id(idx), preturn_address(p), results(*pr)
-   {}
-   int recursion_id;
-   const re_syntax_base* preturn_address;
-   Results results;
-};
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_all_states()
-{
-   static matcher_proc_type const s_match_vtable[30] = 
-   {
-      (&perl_matcher<BidiIterator, Allocator, traits>::match_startmark),
-      &perl_matcher<BidiIterator, Allocator, traits>::match_endmark,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_literal,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_start_line,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_end_line,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_wild,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_match,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_word_boundary,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_within_word,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_word_start,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_word_end,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_buffer_start,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_buffer_end,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_backref,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_long_set,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_set,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_jump,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_alt,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_rep,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_combining,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_soft_buffer_end,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_restart_continue,
-      // Although this next line *should* be evaluated at compile time, in practice
-      // some compilers (VC++) emit run-time initialisation which breaks thread
-      // safety, so use a dispatch function instead:
-      //(::ndnboost::is_random_access_iterator<BidiIterator>::value ? &perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_fast : &perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_slow),
-      &perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_dispatch,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_char_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_set_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_long_set_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_backstep,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_assert_backref,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_toggle_case,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_recursion,
-   };
-
-   push_recursion_stopper();
-   do{
-      while(pstate)
-      {
-         matcher_proc_type proc = s_match_vtable[pstate->type];
-         ++state_count;
-         if(!(this->*proc)())
-         {
-            if(state_count > max_state_count)
-               raise_error(traits_inst, regex_constants::error_complexity);
-            if((m_match_flags & match_partial) && (position == last) && (position != search_base))
-               m_has_partial_match = true;
-            bool successful_unwind = unwind(false);
-            if((m_match_flags & match_partial) && (position == last) && (position != search_base))
-               m_has_partial_match = true;
-            if(false == successful_unwind)
-               return m_recursive_result;
-         }
-      }
-   }while(unwind(true));
-   return m_recursive_result;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-void perl_matcher<BidiIterator, Allocator, traits>::extend_stack()
-{
-   if(used_block_count)
-   {
-      --used_block_count;
-      saved_state* stack_base;
-      saved_state* backup_state;
-      stack_base = static_cast<saved_state*>(get_mem_block());
-      backup_state = reinterpret_cast<saved_state*>(reinterpret_cast<char*>(stack_base)+NDNBOOST_REGEX_BLOCKSIZE);
-      saved_extra_block* block = static_cast<saved_extra_block*>(backup_state);
-      --block;
-      (void) new (block) saved_extra_block(m_stack_base, m_backup_state);
-      m_stack_base = stack_base;
-      m_backup_state = block;
-   }
-   else
-      raise_error(traits_inst, regex_constants::error_stack);
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::push_matched_paren(int index, const sub_match<BidiIterator>& sub)
-{
-   //NDNBOOST_ASSERT(index);
-   saved_matched_paren<BidiIterator>* pmp = static_cast<saved_matched_paren<BidiIterator>*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_matched_paren<BidiIterator>*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_matched_paren<BidiIterator>(index, sub);
-   m_backup_state = pmp;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::push_recursion_stopper()
-{
-   saved_state* pmp = m_backup_state;
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = m_backup_state;
-      --pmp;
-   }
-   (void) new (pmp)saved_state(saved_type_recurse);
-   m_backup_state = pmp;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::push_assertion(const re_syntax_base* ps, bool positive)
-{
-   saved_assertion<BidiIterator>* pmp = static_cast<saved_assertion<BidiIterator>*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_assertion<BidiIterator>*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_assertion<BidiIterator>(positive, ps, position);
-   m_backup_state = pmp;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::push_alt(const re_syntax_base* ps)
-{
-   saved_position<BidiIterator>* pmp = static_cast<saved_position<BidiIterator>*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_position<BidiIterator>*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_position<BidiIterator>(ps, position, saved_state_alt);
-   m_backup_state = pmp;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::push_non_greedy_repeat(const re_syntax_base* ps)
-{
-   saved_position<BidiIterator>* pmp = static_cast<saved_position<BidiIterator>*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_position<BidiIterator>*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_position<BidiIterator>(ps, position, saved_state_non_greedy_long_repeat);
-   m_backup_state = pmp;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::push_repeater_count(int i, repeater_count<BidiIterator>** s)
-{
-   saved_repeater<BidiIterator>* pmp = static_cast<saved_repeater<BidiIterator>*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_repeater<BidiIterator>*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_repeater<BidiIterator>(i, s, position);
-   m_backup_state = pmp;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::push_single_repeat(std::size_t c, const re_repeat* r, BidiIterator last_position, int state_id)
-{
-   saved_single_repeat<BidiIterator>* pmp = static_cast<saved_single_repeat<BidiIterator>*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_single_repeat<BidiIterator>*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_single_repeat<BidiIterator>(c, r, last_position, state_id);
-   m_backup_state = pmp;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::push_recursion(int idx, const re_syntax_base* p, results_type* presults)
-{
-   saved_recursion<results_type>* pmp = static_cast<saved_recursion<results_type>*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_recursion<results_type>*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_recursion<results_type>(idx, p, presults);
-   m_backup_state = pmp;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_startmark()
-{
-   int index = static_cast<const re_brace*>(pstate)->index;
-   icase = static_cast<const re_brace*>(pstate)->icase;
-   switch(index)
-   {
-   case 0:
-      pstate = pstate->next.p;
-      break;
-   case -1:
-   case -2:
-      {
-         // forward lookahead assert:
-         const re_syntax_base* next_pstate = static_cast<const re_jump*>(pstate->next.p)->alt.p->next.p;
-         pstate = pstate->next.p->next.p;
-         push_assertion(next_pstate, index == -1);
-         break;
-      }
-   case -3:
-      {
-         // independent sub-expression, currently this is always recursive:
-         bool old_independent = m_independent;
-         m_independent = true;
-         const re_syntax_base* next_pstate = static_cast<const re_jump*>(pstate->next.p)->alt.p->next.p;
-         pstate = pstate->next.p->next.p;
-         bool r = match_all_states();
-         pstate = next_pstate;
-         m_independent = old_independent;
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-         if(r && (m_match_flags & match_extra))
-         {
-            //
-            // our captures have been stored in *m_presult
-            // we need to unpack them, and insert them
-            // back in the right order when we unwind the stack:
-            //
-            match_results<BidiIterator, Allocator> temp_match(*m_presult);
-            unsigned i;
-            for(i = 0; i < temp_match.size(); ++i)
-               (*m_presult)[i].get_captures().clear();
-            // match everything else:
-            r = match_all_states();
-            // now place the stored captures back:
-            for(i = 0; i < temp_match.size(); ++i)
-            {
-               typedef typename sub_match<BidiIterator>::capture_sequence_type seq;
-               seq& s1 = (*m_presult)[i].get_captures();
-               const seq& s2 = temp_match[i].captures();
-               s1.insert(
-                  s1.end(), 
-                  s2.begin(), 
-                  s2.end());
-            }
-         }
-#endif
-         return r;
-      }
-   case -4:
-      {
-      // conditional expression:
-      const re_alt* alt = static_cast<const re_alt*>(pstate->next.p);
-      NDNBOOST_ASSERT(alt->type == syntax_element_alt);
-      pstate = alt->next.p;
-      if(pstate->type == syntax_element_assert_backref)
-      {
-         if(!match_assert_backref())
-            pstate = alt->alt.p;
-         break;
-      }
-      else
-      {
-         // zero width assertion, have to match this recursively:
-         NDNBOOST_ASSERT(pstate->type == syntax_element_startmark);
-         bool negated = static_cast<const re_brace*>(pstate)->index == -2;
-         BidiIterator saved_position = position;
-         const re_syntax_base* next_pstate = static_cast<const re_jump*>(pstate->next.p)->alt.p->next.p;
-         pstate = pstate->next.p->next.p;
-         bool r = match_all_states();
-         position = saved_position;
-         if(negated)
-            r = !r;
-         if(r)
-            pstate = next_pstate;
-         else
-            pstate = alt->alt.p;
-         break;
-      }
-      }
-   case -5:
-      {
-         push_matched_paren(0, (*m_presult)[0]);
-         m_presult->set_first(position, 0, true);
-         pstate = pstate->next.p;
-         break;
-      }
-   default:
-   {
-      NDNBOOST_ASSERT(index > 0);
-      if((m_match_flags & match_nosubs) == 0)
-      {
-         push_matched_paren(index, (*m_presult)[index]);
-         m_presult->set_first(position, index);
-      }
-      pstate = pstate->next.p;
-      break;
-   }
-   }
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_alt()
-{
-   bool take_first, take_second;
-   const re_alt* jmp = static_cast<const re_alt*>(pstate);
-
-   // find out which of these two alternatives we need to take:
-   if(position == last)
-   {
-      take_first = jmp->can_be_null & mask_take;
-      take_second = jmp->can_be_null & mask_skip;
-   }
-   else
-   {
-      take_first = can_start(*position, jmp->_map, (unsigned char)mask_take);
-      take_second = can_start(*position, jmp->_map, (unsigned char)mask_skip);
-  }
-
-   if(take_first)
-   {
-      // we can take the first alternative,
-      // see if we need to push next alternative:
-      if(take_second)
-      {
-         push_alt(jmp->alt.p);
-      }
-      pstate = pstate->next.p;
-      return true;
-   }
-   if(take_second)
-   {
-      pstate = jmp->alt.p;
-      return true;
-   }
-   return false;  // neither option is possible
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_rep()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127 4244)
-#endif
-#ifdef __BORLANDC__
-#pragma option push -w-8008 -w-8066 -w-8004
-#endif
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-
-   // find out which of these two alternatives we need to take:
-   bool take_first, take_second;
-   if(position == last)
-   {
-      take_first = rep->can_be_null & mask_take;
-      take_second = rep->can_be_null & mask_skip;
-   }
-   else
-   {
-      take_first = can_start(*position, rep->_map, (unsigned char)mask_take);
-      take_second = can_start(*position, rep->_map, (unsigned char)mask_skip);
-   }
-
-   if((m_backup_state->state_id != saved_state_repeater_count) 
-      || (static_cast<saved_repeater<BidiIterator>*>(m_backup_state)->count.get_id() != rep->state_id)
-      || (next_count->get_id() != rep->state_id))
-   {
-      // we're moving to a different repeat from the last
-      // one, so set up a counter object:
-      push_repeater_count(rep->state_id, &next_count);
-   }
-   //
-   // If we've had at least one repeat already, and the last one 
-   // matched the NULL string then set the repeat count to
-   // maximum:
-   //
-   next_count->check_null_repeat(position, rep->max);
-
-   if(next_count->get_count() < rep->min)
-   {
-      // we must take the repeat:
-      if(take_first)
-      {
-         // increase the counter:
-         ++(*next_count);
-         pstate = rep->next.p;
-         return true;
-      }
-      return false;
-   }
-
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   if(greedy)
-   {
-      // try and take the repeat if we can:
-      if((next_count->get_count() < rep->max) && take_first)
-      {
-         if(take_second)
-         {
-            // store position in case we fail:
-            push_alt(rep->alt.p);
-         }
-         // increase the counter:
-         ++(*next_count);
-         pstate = rep->next.p;
-         return true;
-      }
-      else if(take_second)
-      {
-         pstate = rep->alt.p;
-         return true;
-      }
-      return false; // can't take anything, fail...
-   }
-   else // non-greedy
-   {
-      // try and skip the repeat if we can:
-      if(take_second)
-      {
-         if((next_count->get_count() < rep->max) && take_first)
-         {
-            // store position in case we fail:
-            push_non_greedy_repeat(rep->next.p);
-         }
-         pstate = rep->alt.p;
-         return true;
-      }
-      if((next_count->get_count() < rep->max) && take_first)
-      {
-         // increase the counter:
-         ++(*next_count);
-         pstate = rep->next.p;
-         return true;
-      }
-   }
-   return false;
-#ifdef __BORLANDC__
-#pragma option pop
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_slow()
-{
-   unsigned count = 0;
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   re_syntax_base* psingle = rep->next.p;
-   // match compulsary repeats first:
-   while(count < rep->min)
-   {
-      pstate = psingle;
-      if(!match_wild())
-         return false;
-      ++count;
-   }
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   if(greedy)
-   {
-      // repeat for as long as we can:
-      while(count < rep->max)
-      {
-         pstate = psingle;
-         if(!match_wild())
-            break;
-         ++count;
-      }
-      // remember where we got to if this is a leading repeat:
-      if((rep->leading) && (count < rep->max))
-         restart = position;
-      // push backtrack info if available:
-      if(count - rep->min)
-         push_single_repeat(count, rep, position, saved_state_greedy_single_repeat);
-      // jump to next state:
-      pstate = rep->alt.p;
-      return true;
-   }
-   else
-   {
-      // non-greedy, push state and return true if we can skip:
-      if(count < rep->max)
-         push_single_repeat(count, rep, position, saved_state_rep_slow_dot);
-      pstate = rep->alt.p;
-      return (position == last) ? (rep->can_be_null & mask_skip) : can_start(*position, rep->_map, mask_skip);
-   }
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_fast()
-{
-   if(m_match_flags & match_not_dot_null)
-      return match_dot_repeat_slow();
-   if((static_cast<const re_dot*>(pstate->next.p)->mask & match_any_mask) == 0)
-      return match_dot_repeat_slow();
-
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   unsigned count = static_cast<unsigned>((std::min)(static_cast<unsigned>(::ndnboost::re_detail::distance(position, last)), static_cast<unsigned>(greedy ? rep->max : rep->min)));
-   if(rep->min > count)
-   {
-      position = last;
-      return false;  // not enough text left to match
-   }
-   std::advance(position, count);
-
-   if(greedy)
-   {
-      if((rep->leading) && (count < rep->max))
-         restart = position;
-      // push backtrack info if available:
-      if(count - rep->min)
-         push_single_repeat(count, rep, position, saved_state_greedy_single_repeat);
-      // jump to next state:
-      pstate = rep->alt.p;
-      return true;
-   }
-   else
-   {
-      // non-greedy, push state and return true if we can skip:
-      if(count < rep->max)
-         push_single_repeat(count, rep, position, saved_state_rep_fast_dot);
-      pstate = rep->alt.p;
-      return (position == last) ? (rep->can_be_null & mask_skip) : can_start(*position, rep->_map, mask_skip);
-   }
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_char_repeat()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-#ifdef __BORLANDC__
-#pragma option push -w-8008 -w-8066 -w-8004
-#endif
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   NDNBOOST_ASSERT(1 == static_cast<const re_literal*>(rep->next.p)->length);
-   const char_type what = *reinterpret_cast<const char_type*>(static_cast<const re_literal*>(rep->next.p) + 1);
-   std::size_t count = 0;
-   //
-   // start by working out how much we can skip:
-   //
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   std::size_t desired = greedy ? rep->max : rep->min;
-   if(::ndnboost::is_random_access_iterator<BidiIterator>::value)
-   {
-      BidiIterator end = position;
-      std::advance(end, (std::min)((std::size_t)::ndnboost::re_detail::distance(position, last), desired));
-      BidiIterator origin(position);
-      while((position != end) && (traits_inst.translate(*position, icase) == what))
-      {
-         ++position;
-      }
-      count = (unsigned)::ndnboost::re_detail::distance(origin, position);
-   }
-   else
-   {
-      while((count < desired) && (position != last) && (traits_inst.translate(*position, icase) == what))
-      {
-         ++position;
-         ++count;
-      }
-   }
-
-   if(count < rep->min)
-      return false;
-
-   if(greedy)
-   {
-      if((rep->leading) && (count < rep->max))
-         restart = position;
-      // push backtrack info if available:
-      if(count - rep->min)
-         push_single_repeat(count, rep, position, saved_state_greedy_single_repeat);
-      // jump to next state:
-      pstate = rep->alt.p;
-      return true;
-   }
-   else
-   {
-      // non-greedy, push state and return true if we can skip:
-      if(count < rep->max)
-         push_single_repeat(count, rep, position, saved_state_rep_char);
-      pstate = rep->alt.p;
-      return (position == last) ? (rep->can_be_null & mask_skip) : can_start(*position, rep->_map, mask_skip);
-   }
-#ifdef __BORLANDC__
-#pragma option pop
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_set_repeat()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-#ifdef __BORLANDC__
-#pragma option push -w-8008 -w-8066 -w-8004
-#endif
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   const unsigned char* map = static_cast<const re_set*>(rep->next.p)->_map;
-   std::size_t count = 0;
-   //
-   // start by working out how much we can skip:
-   //
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   std::size_t desired = greedy ? rep->max : rep->min;
-   if(::ndnboost::is_random_access_iterator<BidiIterator>::value)
-   {
-      BidiIterator end = position;
-      std::advance(end, (std::min)((std::size_t)::ndnboost::re_detail::distance(position, last), desired));
-      BidiIterator origin(position);
-      while((position != end) && map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
-      {
-         ++position;
-      }
-      count = (unsigned)::ndnboost::re_detail::distance(origin, position);
-   }
-   else
-   {
-      while((count < desired) && (position != last) && map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
-      {
-         ++position;
-         ++count;
-      }
-   }
-
-   if(count < rep->min)
-      return false;
-
-   if(greedy)
-   {
-      if((rep->leading) && (count < rep->max))
-         restart = position;
-      // push backtrack info if available:
-      if(count - rep->min)
-         push_single_repeat(count, rep, position, saved_state_greedy_single_repeat);
-      // jump to next state:
-      pstate = rep->alt.p;
-      return true;
-   }
-   else
-   {
-      // non-greedy, push state and return true if we can skip:
-      if(count < rep->max)
-         push_single_repeat(count, rep, position, saved_state_rep_short_set);
-      pstate = rep->alt.p;
-      return (position == last) ? (rep->can_be_null & mask_skip) : can_start(*position, rep->_map, mask_skip);
-   }
-#ifdef __BORLANDC__
-#pragma option pop
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_long_set_repeat()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-#ifdef __BORLANDC__
-#pragma option push -w-8008 -w-8066 -w-8004
-#endif
-   typedef typename traits::char_class_type m_type;
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   const re_set_long<m_type>* set = static_cast<const re_set_long<m_type>*>(pstate->next.p);
-   std::size_t count = 0;
-   //
-   // start by working out how much we can skip:
-   //
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   std::size_t desired = greedy ? rep->max : rep->min;
-   if(::ndnboost::is_random_access_iterator<BidiIterator>::value)
-   {
-      BidiIterator end = position;
-      std::advance(end, (std::min)((std::size_t)::ndnboost::re_detail::distance(position, last), desired));
-      BidiIterator origin(position);
-      while((position != end) && (position != re_is_set_member(position, last, set, re.get_data(), icase)))
-      {
-         ++position;
-      }
-      count = (unsigned)::ndnboost::re_detail::distance(origin, position);
-   }
-   else
-   {
-      while((count < desired) && (position != last) && (position != re_is_set_member(position, last, set, re.get_data(), icase)))
-      {
-         ++position;
-         ++count;
-      }
-   }
-
-   if(count < rep->min)
-      return false;
-
-   if(greedy)
-   {
-      if((rep->leading) && (count < rep->max))
-         restart = position;
-      // push backtrack info if available:
-      if(count - rep->min)
-         push_single_repeat(count, rep, position, saved_state_greedy_single_repeat);
-      // jump to next state:
-      pstate = rep->alt.p;
-      return true;
-   }
-   else
-   {
-      // non-greedy, push state and return true if we can skip:
-      if(count < rep->max)
-         push_single_repeat(count, rep, position, saved_state_rep_long_set);
-      pstate = rep->alt.p;
-      return (position == last) ? (rep->can_be_null & mask_skip) : can_start(*position, rep->_map, mask_skip);
-   }
-#ifdef __BORLANDC__
-#pragma option pop
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_recursion()
-{
-   NDNBOOST_ASSERT(pstate->type == syntax_element_recurse);
-   //
-   // Backup call stack:
-   //
-   push_recursion_pop();
-   //
-   // Set new call stack:
-   //
-   if(recursion_stack.capacity() == 0)
-   {
-      recursion_stack.reserve(50);
-   }
-   recursion_stack.push_back(recursion_info<results_type>());
-   recursion_stack.back().preturn_address = pstate->next.p;
-   recursion_stack.back().results = *m_presult;
-   if(static_cast<const re_recurse*>(pstate)->state_id > 0)
-   {
-      push_repeater_count(static_cast<const re_recurse*>(pstate)->state_id, &next_count);
-   }
-   pstate = static_cast<const re_jump*>(pstate)->alt.p;
-   recursion_stack.back().idx = static_cast<const re_brace*>(pstate)->index;
-
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_endmark()
-{
-   int index = static_cast<const re_brace*>(pstate)->index;
-   icase = static_cast<const re_brace*>(pstate)->icase;
-   if(index > 0)
-   {
-      if((m_match_flags & match_nosubs) == 0)
-      {
-         m_presult->set_second(position, index);
-      }
-      if(!recursion_stack.empty())
-      {
-         if(index == recursion_stack.back().idx)
-         {
-            pstate = recursion_stack.back().preturn_address;
-            *m_presult = recursion_stack.back().results;
-            push_recursion(recursion_stack.back().idx, recursion_stack.back().preturn_address, &recursion_stack.back().results);
-            recursion_stack.pop_back();
-         }
-      }
-   }
-   else if((index < 0) && (index != -4))
-   {
-      // matched forward lookahead:
-      pstate = 0;
-      return true;
-   }
-   pstate = pstate->next.p;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_match()
-{
-   if(!recursion_stack.empty())
-   {
-      NDNBOOST_ASSERT(0 == recursion_stack.back().idx);
-      pstate = recursion_stack.back().preturn_address;
-      *m_presult = recursion_stack.back().results;
-      push_recursion(recursion_stack.back().idx, recursion_stack.back().preturn_address, &recursion_stack.back().results);
-      recursion_stack.pop_back();
-      return true;
-   }
-   if((m_match_flags & match_not_null) && (position == (*m_presult)[0].first))
-      return false;
-   if((m_match_flags & match_all) && (position != last))
-      return false;
-   if((m_match_flags & regex_constants::match_not_initial_null) && (position == search_base))
-      return false;
-   m_presult->set_second(position);
-   pstate = 0;
-   m_has_found_match = true;
-   if((m_match_flags & match_posix) == match_posix)
-   {
-      m_result.maybe_assign(*m_presult);
-      if((m_match_flags & match_any) == 0)
-         return false;
-   }
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-   if(match_extra & m_match_flags)
-   {
-      for(unsigned i = 0; i < m_presult->size(); ++i)
-         if((*m_presult)[i].matched)
-            ((*m_presult)[i]).get_captures().push_back((*m_presult)[i]);
-   }
-#endif
-   return true;
-}
-
-/****************************************************************************
-
-Unwind and associated proceedures follow, these perform what normal stack
-unwinding does in the recursive implementation.
-
-****************************************************************************/
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind(bool have_match)
-{
-   static unwind_proc_type const s_unwind_table[18] = 
-   {
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_end,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_paren,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_recursion_stopper,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_assertion,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_alt,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_repeater_counter,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_extra_block,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_greedy_single_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_slow_dot_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_fast_dot_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_char_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_short_set_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_long_set_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_non_greedy_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_recursion,
-      &perl_matcher<BidiIterator, Allocator, traits>::unwind_recursion_pop,
-   };
-
-   m_recursive_result = have_match;
-   unwind_proc_type unwinder;
-   bool cont;
-   //
-   // keep unwinding our stack until we have something to do:
-   //
-   do
-   {
-      unwinder = s_unwind_table[m_backup_state->state_id];
-      cont = (this->*unwinder)(m_recursive_result);
-   }while(cont);
-   //
-   // return true if we have more states to try:
-   //
-   return pstate ? true : false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_end(bool)
-{
-   pstate = 0;   // nothing left to search
-   return false; // end of stack nothing more to search
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_paren(bool have_match)
-{
-   saved_matched_paren<BidiIterator>* pmp = static_cast<saved_matched_paren<BidiIterator>*>(m_backup_state);
-   // restore previous values if no match was found:
-   if(have_match == false)
-   {
-      m_presult->set_first(pmp->sub.first, pmp->index, pmp->index == 0);
-      m_presult->set_second(pmp->sub.second, pmp->index, pmp->sub.matched, pmp->index == 0);
-   }
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-   //
-   // we have a match, push the capture information onto the stack:
-   //
-   else if(pmp->sub.matched && (match_extra & m_match_flags))
-      ((*m_presult)[pmp->index]).get_captures().push_back(pmp->sub);
-#endif
-   // unwind stack:
-   m_backup_state = pmp+1;
-   ndnboost::re_detail::inplace_destroy(pmp);
-   return true; // keep looking
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_recursion_stopper(bool)
-{
-   ndnboost::re_detail::inplace_destroy(m_backup_state++);
-   pstate = 0;   // nothing left to search
-   return false; // end of stack nothing more to search
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_assertion(bool r)
-{
-   saved_assertion<BidiIterator>* pmp = static_cast<saved_assertion<BidiIterator>*>(m_backup_state);
-   pstate = pmp->pstate;
-   position = pmp->position;
-   bool result = (r == pmp->positive);
-   m_recursive_result = pmp->positive ? r : !r;
-   ndnboost::re_detail::inplace_destroy(pmp++);
-   m_backup_state = pmp;
-   return !result; // return false if the assertion was matched to stop search.
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_alt(bool r)
-{
-   saved_position<BidiIterator>* pmp = static_cast<saved_position<BidiIterator>*>(m_backup_state);
-   if(!r)
-   {
-      pstate = pmp->pstate;
-      position = pmp->position;
-   }
-   ndnboost::re_detail::inplace_destroy(pmp++);
-   m_backup_state = pmp;
-   return r; 
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_repeater_counter(bool)
-{
-   saved_repeater<BidiIterator>* pmp = static_cast<saved_repeater<BidiIterator>*>(m_backup_state);
-   ndnboost::re_detail::inplace_destroy(pmp++);
-   m_backup_state = pmp;
-   return true; // keep looking
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_extra_block(bool)
-{
-   saved_extra_block* pmp = static_cast<saved_extra_block*>(m_backup_state);
-   void* condemmed = m_stack_base;
-   m_stack_base = pmp->base;
-   m_backup_state = pmp->end;
-   ndnboost::re_detail::inplace_destroy(pmp);
-   put_mem_block(condemmed);
-   return true; // keep looking
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::destroy_single_repeat()
-{
-   saved_single_repeat<BidiIterator>* p = static_cast<saved_single_repeat<BidiIterator>*>(m_backup_state);
-   ndnboost::re_detail::inplace_destroy(p++);
-   m_backup_state = p;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_greedy_single_repeat(bool r)
-{
-   saved_single_repeat<BidiIterator>* pmp = static_cast<saved_single_repeat<BidiIterator>*>(m_backup_state);
-
-   // if we have a match, just discard this state:
-   if(r) 
-   {
-      destroy_single_repeat();
-      return true;
-   }
-
-   const re_repeat* rep = pmp->rep;
-   std::size_t count = pmp->count;
-   NDNBOOST_ASSERT(rep->next.p != 0);
-   NDNBOOST_ASSERT(rep->alt.p != 0);
-
-   count -= rep->min;
-   
-   if((m_match_flags & match_partial) && (position == last))
-      m_has_partial_match = true;
-
-   NDNBOOST_ASSERT(count);
-   position = pmp->last_position;
-
-   // backtrack till we can skip out:
-   do
-   {
-      --position;
-      --count;
-      ++state_count;
-   }while(count && !can_start(*position, rep->_map, mask_skip));
-
-   // if we've hit base, destroy this state:
-   if(count == 0)
-   {
-         destroy_single_repeat();
-         if(!can_start(*position, rep->_map, mask_skip))
-            return true;
-   }
-   else
-   {
-      pmp->count = count + rep->min;
-      pmp->last_position = position;
-   }
-   pstate = rep->alt.p;
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_slow_dot_repeat(bool r)
-{
-   saved_single_repeat<BidiIterator>* pmp = static_cast<saved_single_repeat<BidiIterator>*>(m_backup_state);
-
-   // if we have a match, just discard this state:
-   if(r) 
-   {
-      destroy_single_repeat();
-      return true;
-   }
-
-   const re_repeat* rep = pmp->rep;
-   std::size_t count = pmp->count;
-   NDNBOOST_ASSERT(rep->type == syntax_element_dot_rep);
-   NDNBOOST_ASSERT(rep->next.p != 0);
-   NDNBOOST_ASSERT(rep->alt.p != 0);
-   NDNBOOST_ASSERT(rep->next.p->type == syntax_element_wild);
-
-   NDNBOOST_ASSERT(count < rep->max);
-   pstate = rep->next.p;
-   position = pmp->last_position;
-
-   if(position != last)
-   {
-      // wind forward until we can skip out of the repeat:
-      do
-      {
-         if(!match_wild())
-         {
-            // failed repeat match, discard this state and look for another:
-            destroy_single_repeat();
-            return true;
-         }
-         ++count;
-         ++state_count;
-         pstate = rep->next.p;
-      }while((count < rep->max) && (position != last) && !can_start(*position, rep->_map, mask_skip));
-   }   
-   if(position == last)
-   {
-      // can't repeat any more, remove the pushed state: 
-      destroy_single_repeat();
-      if((m_match_flags & match_partial) && (position == last) && (position != search_base))
-         m_has_partial_match = true;
-      if(0 == (rep->can_be_null & mask_skip))
-         return true;
-   }
-   else if(count == rep->max)
-   {
-      // can't repeat any more, remove the pushed state: 
-      destroy_single_repeat();
-      if(!can_start(*position, rep->_map, mask_skip))
-         return true;
-   }
-   else
-   {
-      pmp->count = count;
-      pmp->last_position = position;
-   }
-   pstate = rep->alt.p;
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_fast_dot_repeat(bool r)
-{
-   saved_single_repeat<BidiIterator>* pmp = static_cast<saved_single_repeat<BidiIterator>*>(m_backup_state);
-
-   // if we have a match, just discard this state:
-   if(r) 
-   {
-      destroy_single_repeat();
-      return true;
-   }
-
-   const re_repeat* rep = pmp->rep;
-   std::size_t count = pmp->count;
-
-   NDNBOOST_ASSERT(count < rep->max);
-   position = pmp->last_position;
-   if(position != last)
-   {
-
-      // wind forward until we can skip out of the repeat:
-      do
-      {
-         ++position;
-         ++count;
-         ++state_count;
-      }while((count < rep->max) && (position != last) && !can_start(*position, rep->_map, mask_skip));
-   }
-
-   // remember where we got to if this is a leading repeat:
-   if((rep->leading) && (count < rep->max))
-      restart = position;
-   if(position == last)
-   {
-      // can't repeat any more, remove the pushed state: 
-      destroy_single_repeat();
-      if((m_match_flags & match_partial) && (position == last) && (position != search_base))
-         m_has_partial_match = true;
-      if(0 == (rep->can_be_null & mask_skip))
-         return true;
-   }
-   else if(count == rep->max)
-   {
-      // can't repeat any more, remove the pushed state: 
-      destroy_single_repeat();
-      if(!can_start(*position, rep->_map, mask_skip))
-         return true;
-   }
-   else
-   {
-      pmp->count = count;
-      pmp->last_position = position;
-   }
-   pstate = rep->alt.p;
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_char_repeat(bool r)
-{
-   saved_single_repeat<BidiIterator>* pmp = static_cast<saved_single_repeat<BidiIterator>*>(m_backup_state);
-
-   // if we have a match, just discard this state:
-   if(r) 
-   {
-      destroy_single_repeat();
-      return true;
-   }
-
-   const re_repeat* rep = pmp->rep;
-   std::size_t count = pmp->count;
-   pstate = rep->next.p;
-   const char_type what = *reinterpret_cast<const char_type*>(static_cast<const re_literal*>(pstate) + 1);
-   position = pmp->last_position;
-
-   NDNBOOST_ASSERT(rep->type == syntax_element_char_rep);
-   NDNBOOST_ASSERT(rep->next.p != 0);
-   NDNBOOST_ASSERT(rep->alt.p != 0);
-   NDNBOOST_ASSERT(rep->next.p->type == syntax_element_literal);
-   NDNBOOST_ASSERT(count < rep->max);
-
-   if(position != last)
-   {
-      // wind forward until we can skip out of the repeat:
-      do
-      {
-         if(traits_inst.translate(*position, icase) != what)
-         {
-            // failed repeat match, discard this state and look for another:
-            destroy_single_repeat();
-            return true;
-         }
-         ++count;
-         ++ position;
-         ++state_count;
-         pstate = rep->next.p;
-      }while((count < rep->max) && (position != last) && !can_start(*position, rep->_map, mask_skip));
-   }   
-   // remember where we got to if this is a leading repeat:
-   if((rep->leading) && (count < rep->max))
-      restart = position;
-   if(position == last)
-   {
-      // can't repeat any more, remove the pushed state: 
-      destroy_single_repeat();
-      if((m_match_flags & match_partial) && (position == last) && (position != search_base))
-         m_has_partial_match = true;
-      if(0 == (rep->can_be_null & mask_skip))
-         return true;
-   }
-   else if(count == rep->max)
-   {
-      // can't repeat any more, remove the pushed state: 
-      destroy_single_repeat();
-      if(!can_start(*position, rep->_map, mask_skip))
-         return true;
-   }
-   else
-   {
-      pmp->count = count;
-      pmp->last_position = position;
-   }
-   pstate = rep->alt.p;
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_short_set_repeat(bool r)
-{
-   saved_single_repeat<BidiIterator>* pmp = static_cast<saved_single_repeat<BidiIterator>*>(m_backup_state);
-
-   // if we have a match, just discard this state:
-   if(r) 
-   {
-      destroy_single_repeat();
-      return true;
-   }
-
-   const re_repeat* rep = pmp->rep;
-   std::size_t count = pmp->count;
-   pstate = rep->next.p;
-   const unsigned char* map = static_cast<const re_set*>(rep->next.p)->_map;
-   position = pmp->last_position;
-
-   NDNBOOST_ASSERT(rep->type == syntax_element_short_set_rep);
-   NDNBOOST_ASSERT(rep->next.p != 0);
-   NDNBOOST_ASSERT(rep->alt.p != 0);
-   NDNBOOST_ASSERT(rep->next.p->type == syntax_element_set);
-   NDNBOOST_ASSERT(count < rep->max);
-   
-   if(position != last)
-   {
-      // wind forward until we can skip out of the repeat:
-      do
-      {
-         if(!map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
-         {
-            // failed repeat match, discard this state and look for another:
-            destroy_single_repeat();
-            return true;
-         }
-         ++count;
-         ++ position;
-         ++state_count;
-         pstate = rep->next.p;
-      }while((count < rep->max) && (position != last) && !can_start(*position, rep->_map, mask_skip));
-   }   
-   // remember where we got to if this is a leading repeat:
-   if((rep->leading) && (count < rep->max))
-      restart = position;
-   if(position == last)
-   {
-      // can't repeat any more, remove the pushed state: 
-      destroy_single_repeat();
-      if((m_match_flags & match_partial) && (position == last) && (position != search_base))
-         m_has_partial_match = true;
-      if(0 == (rep->can_be_null & mask_skip))
-         return true;
-   }
-   else if(count == rep->max)
-   {
-      // can't repeat any more, remove the pushed state: 
-      destroy_single_repeat();
-      if(!can_start(*position, rep->_map, mask_skip))
-         return true;
-   }
-   else
-   {
-      pmp->count = count;
-      pmp->last_position = position;
-   }
-   pstate = rep->alt.p;
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_long_set_repeat(bool r)
-{
-   typedef typename traits::char_class_type m_type;
-   saved_single_repeat<BidiIterator>* pmp = static_cast<saved_single_repeat<BidiIterator>*>(m_backup_state);
-
-   // if we have a match, just discard this state:
-   if(r)
-   {
-      destroy_single_repeat();
-      return true;
-   }
-
-   const re_repeat* rep = pmp->rep;
-   std::size_t count = pmp->count;
-   pstate = rep->next.p;
-   const re_set_long<m_type>* set = static_cast<const re_set_long<m_type>*>(pstate);
-   position = pmp->last_position;
-
-   NDNBOOST_ASSERT(rep->type == syntax_element_long_set_rep);
-   NDNBOOST_ASSERT(rep->next.p != 0);
-   NDNBOOST_ASSERT(rep->alt.p != 0);
-   NDNBOOST_ASSERT(rep->next.p->type == syntax_element_long_set);
-   NDNBOOST_ASSERT(count < rep->max);
-
-   if(position != last)
-   {
-      // wind forward until we can skip out of the repeat:
-      do
-      {
-         if(position == re_is_set_member(position, last, set, re.get_data(), icase))
-         {
-            // failed repeat match, discard this state and look for another:
-            destroy_single_repeat();
-            return true;
-         }
-         ++position;
-         ++count;
-         ++state_count;
-         pstate = rep->next.p;
-      }while((count < rep->max) && (position != last) && !can_start(*position, rep->_map, mask_skip));
-   }   
-   // remember where we got to if this is a leading repeat:
-   if((rep->leading) && (count < rep->max))
-      restart = position;
-   if(position == last)
-   {
-      // can't repeat any more, remove the pushed state:
-      destroy_single_repeat();
-      if((m_match_flags & match_partial) && (position == last) && (position != search_base))
-         m_has_partial_match = true;
-      if(0 == (rep->can_be_null & mask_skip))
-         return true;
-   }
-   else if(count == rep->max)
-   {
-      // can't repeat any more, remove the pushed state: 
-      destroy_single_repeat();
-      if(!can_start(*position, rep->_map, mask_skip))
-         return true;
-   }
-   else
-   {
-      pmp->count = count;
-      pmp->last_position = position;
-   }
-   pstate = rep->alt.p;
-   return false;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_non_greedy_repeat(bool r)
-{
-   saved_position<BidiIterator>* pmp = static_cast<saved_position<BidiIterator>*>(m_backup_state);
-   if(!r)
-   {
-      position = pmp->position;
-      pstate = pmp->pstate;
-      ++(*next_count);
-   }
-   ndnboost::re_detail::inplace_destroy(pmp++);
-   m_backup_state = pmp;
-   return r;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_recursion(bool r)
-{
-   saved_recursion<results_type>* pmp = static_cast<saved_recursion<results_type>*>(m_backup_state);
-   if(!r)
-   {
-      recursion_stack.push_back(recursion_info<results_type>());
-      recursion_stack.back().idx = pmp->recursion_id;
-      recursion_stack.back().preturn_address = pmp->preturn_address;
-      recursion_stack.back().results = pmp->results;
-   }
-   ndnboost::re_detail::inplace_destroy(pmp++);
-   m_backup_state = pmp;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_recursion_pop(bool r)
-{
-   saved_state* pmp = static_cast<saved_state*>(m_backup_state);
-   if(!r)
-   {
-      recursion_stack.pop_back();
-   }
-   ndnboost::re_detail::inplace_destroy(pmp++);
-   m_backup_state = pmp;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-void perl_matcher<BidiIterator, Allocator, traits>::push_recursion_pop()
-{
-   saved_state* pmp = static_cast<saved_state*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_state*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_state(15);
-   m_backup_state = pmp;
-}
-/*
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_parenthesis_pop(bool r)
-{
-   saved_state* pmp = static_cast<saved_state*>(m_backup_state);
-   if(!r)
-   {
-      --parenthesis_stack_position;
-   }
-   ndnboost::re_detail::inplace_destroy(pmp++);
-   m_backup_state = pmp;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-void perl_matcher<BidiIterator, Allocator, traits>::push_parenthesis_pop()
-{
-   saved_state* pmp = static_cast<saved_state*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_state*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_state(16);
-   m_backup_state = pmp;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::unwind_parenthesis_push(bool r)
-{
-   saved_position<BidiIterator>* pmp = static_cast<saved_position<BidiIterator>*>(m_backup_state);
-   if(!r)
-   {
-      parenthesis_stack[parenthesis_stack_position++] = pmp->position;
-   }
-   ndnboost::re_detail::inplace_destroy(pmp++);
-   m_backup_state = pmp;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-inline void perl_matcher<BidiIterator, Allocator, traits>::push_parenthesis_push(BidiIterator p)
-{
-   saved_position<BidiIterator>* pmp = static_cast<saved_position<BidiIterator>*>(m_backup_state);
-   --pmp;
-   if(pmp < m_stack_base)
-   {
-      extend_stack();
-      pmp = static_cast<saved_position<BidiIterator>*>(m_backup_state);
-      --pmp;
-   }
-   (void) new (pmp)saved_position<BidiIterator>(0, p, 17);
-   m_backup_state = pmp;
-}
-*/
-} // namespace re_detail
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
-
diff --git a/include/ndnboost/regex/v4/perl_matcher_recursive.hpp b/include/ndnboost/regex/v4/perl_matcher_recursive.hpp
deleted file mode 100644
index d5ee6bb..0000000
--- a/include/ndnboost/regex/v4/perl_matcher_recursive.hpp
+++ /dev/null
@@ -1,991 +0,0 @@
-/*
- *
- * Copyright (c) 2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         perl_matcher_common.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Definitions of perl_matcher member functions that are 
-  *                specific to the recursive implementation.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_PERL_MATCHER_RECURSIVE_HPP
-#define NDNBOOST_REGEX_V4_PERL_MATCHER_RECURSIVE_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4800)
-#endif
-
-namespace ndnboost{
-namespace re_detail{
-
-template <class BidiIterator>
-class backup_subex
-{
-   int index;
-   sub_match<BidiIterator> sub;
-public:
-   template <class A>
-   backup_subex(const match_results<BidiIterator, A>& w, int i)
-      : index(i), sub(w[i], false) {}
-   template <class A>
-   void restore(match_results<BidiIterator, A>& w)
-   {
-      w.set_first(sub.first, index, index == 0);
-      w.set_second(sub.second, index, sub.matched, index == 0);
-   }
-   const sub_match<BidiIterator>& get() { return sub; }
-};
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_all_states()
-{
-   static matcher_proc_type const s_match_vtable[30] = 
-   {
-      (&perl_matcher<BidiIterator, Allocator, traits>::match_startmark),
-      &perl_matcher<BidiIterator, Allocator, traits>::match_endmark,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_literal,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_start_line,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_end_line,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_wild,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_match,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_word_boundary,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_within_word,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_word_start,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_word_end,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_buffer_start,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_buffer_end,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_backref,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_long_set,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_set,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_jump,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_alt,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_rep,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_combining,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_soft_buffer_end,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_restart_continue,
-      // Although this next line *should* be evaluated at compile time, in practice
-      // some compilers (VC++) emit run-time initialisation which breaks thread
-      // safety, so use a dispatch function instead:
-      //(::ndnboost::is_random_access_iterator<BidiIterator>::value ? &perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_fast : &perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_slow),
-      &perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_dispatch,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_char_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_set_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_long_set_repeat,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_backstep,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_assert_backref,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_toggle_case,
-      &perl_matcher<BidiIterator, Allocator, traits>::match_recursion,
-   };
-
-   if(state_count > max_state_count)
-      raise_error(traits_inst, regex_constants::error_complexity);
-   while(pstate)
-   {
-      matcher_proc_type proc = s_match_vtable[pstate->type];
-      ++state_count;
-      if(!(this->*proc)())
-      {
-         if((m_match_flags & match_partial) && (position == last) && (position != search_base))
-            m_has_partial_match = true;
-         return 0;
-      }
-   }
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_startmark()
-{
-   int index = static_cast<const re_brace*>(pstate)->index;
-   icase = static_cast<const re_brace*>(pstate)->icase;
-   bool r = true;
-   switch(index)
-   {
-   case 0:
-      pstate = pstate->next.p;
-      break;
-   case -1:
-   case -2:
-      {
-         // forward lookahead assert:
-         BidiIterator old_position(position);
-         const re_syntax_base* next_pstate = static_cast<const re_jump*>(pstate->next.p)->alt.p->next.p;
-         pstate = pstate->next.p->next.p;
-         r = match_all_states();
-         pstate = next_pstate;
-         position = old_position;
-         if((r && (index != -1)) || (!r && (index != -2)))
-            r = false;
-         else
-            r = true;
-         break;
-      }
-   case -3:
-      {
-         // independent sub-expression:
-         bool old_independent = m_independent;
-         m_independent = true;
-         const re_syntax_base* next_pstate = static_cast<const re_jump*>(pstate->next.p)->alt.p->next.p;
-         pstate = pstate->next.p->next.p;
-         r = match_all_states();
-         pstate = next_pstate;
-         m_independent = old_independent;
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-         if(r && (m_match_flags & match_extra))
-         {
-            //
-            // our captures have been stored in *m_presult
-            // we need to unpack them, and insert them
-            // back in the right order when we unwind the stack:
-            //
-            unsigned i;
-            match_results<BidiIterator, Allocator> tm(*m_presult);
-            for(i = 0; i < tm.size(); ++i)
-               (*m_presult)[i].get_captures().clear();
-            // match everything else:
-            r = match_all_states();
-            // now place the stored captures back:
-            for(i = 0; i < tm.size(); ++i)
-            {
-               typedef typename sub_match<BidiIterator>::capture_sequence_type seq;
-               seq& s1 = (*m_presult)[i].get_captures();
-               const seq& s2 = tm[i].captures();
-               s1.insert(
-                  s1.end(), 
-                  s2.begin(), 
-                  s2.end());
-            }
-         }
-#endif
-         break;
-      }
-   case -4:
-      {
-      // conditional expression:
-      const re_alt* alt = static_cast<const re_alt*>(pstate->next.p);
-      NDNBOOST_ASSERT(alt->type == syntax_element_alt);
-      pstate = alt->next.p;
-      if(pstate->type == syntax_element_assert_backref)
-      {
-         if(!match_assert_backref())
-            pstate = alt->alt.p;
-         break;
-      }
-      else
-      {
-         // zero width assertion, have to match this recursively:
-         NDNBOOST_ASSERT(pstate->type == syntax_element_startmark);
-         bool negated = static_cast<const re_brace*>(pstate)->index == -2;
-         BidiIterator saved_position = position;
-         const re_syntax_base* next_pstate = static_cast<const re_jump*>(pstate->next.p)->alt.p->next.p;
-         pstate = pstate->next.p->next.p;
-         bool res = match_all_states();
-         position = saved_position;
-         if(negated)
-            res = !res;
-         if(res)
-            pstate = next_pstate;
-         else
-            pstate = alt->alt.p;
-         break;
-      }
-      }
-   case -5:
-      {
-         // Reset start of $0, since we have a \K escape
-         backup_subex<BidiIterator> sub(*m_presult, 0);
-         m_presult->set_first(position, 0, true);
-         pstate = pstate->next.p;
-         r = match_all_states();
-         if(r == false)
-            sub.restore(*m_presult);
-         break;
-      }
-   default:
-   {
-      NDNBOOST_ASSERT(index > 0);
-      if((m_match_flags & match_nosubs) == 0)
-      {
-         backup_subex<BidiIterator> sub(*m_presult, index);
-         m_presult->set_first(position, index);
-         pstate = pstate->next.p;
-         r = match_all_states();
-         if(r == false)
-            sub.restore(*m_presult);
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-         //
-         // we have a match, push the capture information onto the stack:
-         //
-         else if(sub.get().matched && (match_extra & m_match_flags))
-            ((*m_presult)[index]).get_captures().push_back(sub.get());
-#endif
-      }
-      else
-      {
-         pstate = pstate->next.p;
-      }
-      break;
-   }
-   }
-   return r;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_alt()
-{
-   bool take_first, take_second;
-   const re_alt* jmp = static_cast<const re_alt*>(pstate);
-
-   // find out which of these two alternatives we need to take:
-   if(position == last)
-   {
-      take_first = jmp->can_be_null & mask_take;
-      take_second = jmp->can_be_null & mask_skip;
-   }
-   else
-   {
-      take_first = can_start(*position, jmp->_map, (unsigned char)mask_take);
-      take_second = can_start(*position, jmp->_map, (unsigned char)mask_skip);
-  }
-
-   if(take_first)
-   {
-      // we can take the first alternative,
-      // see if we need to push next alternative:
-      if(take_second)
-      {
-         BidiIterator oldposition(position);
-         const re_syntax_base* old_pstate = jmp->alt.p;
-         pstate = pstate->next.p;
-         if(!match_all_states())
-         {
-            pstate = old_pstate;
-            position = oldposition;
-         }
-         return true;
-      }
-      pstate = pstate->next.p;
-      return true;
-   }
-   if(take_second)
-   {
-      pstate = jmp->alt.p;
-      return true;
-   }
-   return false;  // neither option is possible
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_rep()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127 4244)
-#endif
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   //
-   // Always copy the repeat count, so that the state is restored
-   // when we exit this scope:
-   //
-   repeater_count<BidiIterator> r(rep->state_id, &next_count, position);
-   //
-   // If we've had at least one repeat already, and the last one 
-   // matched the NULL string then set the repeat count to
-   // maximum:
-   //
-   next_count->check_null_repeat(position, rep->max);
-
-   // find out which of these two alternatives we need to take:
-   bool take_first, take_second;
-   if(position == last)
-   {
-      take_first = rep->can_be_null & mask_take;
-      take_second = rep->can_be_null & mask_skip;
-   }
-   else
-   {
-      take_first = can_start(*position, rep->_map, (unsigned char)mask_take);
-      take_second = can_start(*position, rep->_map, (unsigned char)mask_skip);
-   }
-
-   if(next_count->get_count() < rep->min)
-   {
-      // we must take the repeat:
-      if(take_first)
-      {
-         // increase the counter:
-         ++(*next_count);
-         pstate = rep->next.p;
-         return match_all_states();
-      }
-      return false;
-   }
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   if(greedy)
-   {
-      // try and take the repeat if we can:
-      if((next_count->get_count() < rep->max) && take_first)
-      {
-         // store position in case we fail:
-         BidiIterator pos = position;
-         // increase the counter:
-         ++(*next_count);
-         pstate = rep->next.p;
-         if(match_all_states())
-            return true;
-         // failed repeat, reset posistion and fall through for alternative:
-         position = pos;
-      }
-      if(take_second)
-      {
-         pstate = rep->alt.p;
-         return true;
-      }
-      return false; // can't take anything, fail...
-   }
-   else // non-greedy
-   {
-      // try and skip the repeat if we can:
-      if(take_second)
-      {
-         // store position in case we fail:
-         BidiIterator pos = position;
-         pstate = rep->alt.p;
-         if(match_all_states())
-            return true;
-         // failed alternative, reset posistion and fall through for repeat:
-         position = pos;
-      }
-      if((next_count->get_count() < rep->max) && take_first)
-      {
-         // increase the counter:
-         ++(*next_count);
-         pstate = rep->next.p;
-         return match_all_states();
-      }
-   }
-   return false;
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_slow()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-   unsigned count = 0;
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   re_syntax_base* psingle = rep->next.p;
-   // match compulsary repeats first:
-   while(count < rep->min)
-   {
-      pstate = psingle;
-      if(!match_wild())
-         return false;
-      ++count;
-   }
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   if(greedy)
-   {
-      // normal repeat:
-      while(count < rep->max)
-      {
-         pstate = psingle;
-         if(!match_wild())
-            break;
-         ++count;
-      }
-      if((rep->leading) && (count < rep->max))
-         restart = position;
-      pstate = rep;
-      return backtrack_till_match(count - rep->min);
-   }
-   else
-   {
-      // non-greedy, keep trying till we get a match:
-      BidiIterator save_pos;
-      do
-      {
-         if((rep->leading) && (rep->max == UINT_MAX))
-            restart = position;
-         pstate = rep->alt.p;
-         save_pos = position;
-         ++state_count;
-         if(match_all_states())
-            return true;
-         if(count >= rep->max)
-            return false;
-         ++count;
-         pstate = psingle;
-         position = save_pos;
-         if(!match_wild())
-            return false;
-      }while(true);
-   }
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_dot_repeat_fast()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-   if(m_match_flags & match_not_dot_null)
-      return match_dot_repeat_slow();
-   if((static_cast<const re_dot*>(pstate->next.p)->mask & match_any_mask) == 0)
-      return match_dot_repeat_slow();
-   //
-   // start by working out how much we can skip:
-   //
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4267)
-#endif
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   std::size_t count = (std::min)(static_cast<std::size_t>(::ndnboost::re_detail::distance(position, last)), static_cast<std::size_t>(greedy ? rep->max : rep->min));
-   if(rep->min > count)
-   {
-      position = last;
-      return false;  // not enough text left to match
-   }
-   std::advance(position, count);
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-   if((rep->leading) && (count < rep->max) && greedy)
-      restart = position;
-   if(greedy)
-      return backtrack_till_match(count - rep->min);
-
-   // non-greedy, keep trying till we get a match:
-   BidiIterator save_pos;
-   do
-   {
-      while((position != last) && (count < rep->max) && !can_start(*position, rep->_map, mask_skip))
-      {
-         ++position;
-         ++count;
-      }
-      if((rep->leading) && (rep->max == UINT_MAX))
-         restart = position;
-      pstate = rep->alt.p;
-      save_pos = position;
-      ++state_count;
-      if(match_all_states())
-         return true;
-      if(count >= rep->max)
-         return false;
-      if(save_pos == last)
-         return false;
-      position = ++save_pos;
-      ++count;
-   }while(true);
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_char_repeat()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#pragma warning(disable:4267)
-#endif
-#ifdef __BORLANDC__
-#pragma option push -w-8008 -w-8066 -w-8004
-#endif
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   NDNBOOST_ASSERT(1 == static_cast<const re_literal*>(rep->next.p)->length);
-   const char_type what = *reinterpret_cast<const char_type*>(static_cast<const re_literal*>(rep->next.p) + 1);
-   //
-   // start by working out how much we can skip:
-   //
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   std::size_t count, desired;
-   if(::ndnboost::is_random_access_iterator<BidiIterator>::value)
-   {
-      desired = 
-         (std::min)(
-            (std::size_t)(greedy ? rep->max : rep->min),
-            (std::size_t)::ndnboost::re_detail::distance(position, last));
-      count = desired;
-      ++desired;
-      if(icase)
-      {
-         while(--desired && (traits_inst.translate_nocase(*position) == what))
-         {
-            ++position;
-         }
-      }
-      else
-      {
-         while(--desired && (traits_inst.translate(*position) == what))
-         {
-            ++position;
-         }
-      }
-      count = count - desired;
-   }
-   else
-   {
-      count = 0;
-      desired = greedy ? rep->max : rep->min;
-      while((count < desired) && (position != last) && (traits_inst.translate(*position, icase) == what))
-      {
-         ++position;
-         ++count;
-      }
-   }
-   if((rep->leading) && (count < rep->max) && greedy)
-      restart = position;
-   if(count < rep->min)
-      return false;
-
-   if(greedy)
-      return backtrack_till_match(count - rep->min);
-
-   // non-greedy, keep trying till we get a match:
-   BidiIterator save_pos;
-   do
-   {
-      while((position != last) && (count < rep->max) && !can_start(*position, rep->_map, mask_skip))
-      {
-         if((traits_inst.translate(*position, icase) == what))
-         {
-            ++position;
-            ++count;
-         }
-         else
-            return false;  // counldn't repeat even though it was the only option
-      }
-      if((rep->leading) && (rep->max == UINT_MAX))
-         restart = position;
-      pstate = rep->alt.p;
-      save_pos = position;
-      ++state_count;
-      if(match_all_states())
-         return true;
-      if(count >= rep->max)
-         return false;
-      position = save_pos;
-      if(position == last)
-         return false;
-      if(traits_inst.translate(*position, icase) == what)
-      {
-         ++position;
-         ++count;
-      }
-      else
-      {
-         return false;
-      }
-   }while(true);
-#ifdef __BORLANDC__
-#pragma option pop
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_set_repeat()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-#ifdef __BORLANDC__
-#pragma option push -w-8008 -w-8066 -w-8004
-#endif
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   const unsigned char* map = static_cast<const re_set*>(rep->next.p)->_map;
-   unsigned count = 0;
-   //
-   // start by working out how much we can skip:
-   //
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   std::size_t desired = greedy ? rep->max : rep->min;
-   if(::ndnboost::is_random_access_iterator<BidiIterator>::value)
-   {
-      BidiIterator end = position;
-      std::advance(end, (std::min)((std::size_t)::ndnboost::re_detail::distance(position, last), desired));
-      BidiIterator origin(position);
-      while((position != end) && map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
-      {
-         ++position;
-      }
-      count = (unsigned)::ndnboost::re_detail::distance(origin, position);
-   }
-   else
-   {
-      while((count < desired) && (position != last) && map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
-      {
-         ++position;
-         ++count;
-      }
-   }
-   if((rep->leading) && (count < rep->max) && greedy)
-      restart = position;
-   if(count < rep->min)
-      return false;
-
-   if(greedy)
-      return backtrack_till_match(count - rep->min);
-
-   // non-greedy, keep trying till we get a match:
-   BidiIterator save_pos;
-   do
-   {
-      while((position != last) && (count < rep->max) && !can_start(*position, rep->_map, mask_skip))
-      {
-         if(map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
-         {
-            ++position;
-            ++count;
-         }
-         else
-            return false;  // counldn't repeat even though it was the only option
-      }
-      if((rep->leading) && (rep->max == UINT_MAX))
-         restart = position;
-      pstate = rep->alt.p;
-      save_pos = position;
-      ++state_count;
-      if(match_all_states())
-         return true;
-      if(count >= rep->max)
-         return false;
-      position = save_pos;
-      if(position == last)
-         return false;
-      if(map[static_cast<unsigned char>(traits_inst.translate(*position, icase))])
-      {
-         ++position;
-         ++count;
-      }
-      else
-      {
-         return false;
-      }
-   }while(true);
-#ifdef __BORLANDC__
-#pragma option pop
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_long_set_repeat()
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-#ifdef __BORLANDC__
-#pragma option push -w-8008 -w-8066 -w-8004
-#endif
-   typedef typename traits::char_class_type char_class_type;
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   const re_set_long<char_class_type>* set = static_cast<const re_set_long<char_class_type>*>(pstate->next.p);
-   unsigned count = 0;
-   //
-   // start by working out how much we can skip:
-   //
-   bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent);   
-   std::size_t desired = greedy ? rep->max : rep->min;
-   if(::ndnboost::is_random_access_iterator<BidiIterator>::value)
-   {
-      BidiIterator end = position;
-      std::advance(end, (std::min)((std::size_t)::ndnboost::re_detail::distance(position, last), desired));
-      BidiIterator origin(position);
-      while((position != end) && (position != re_is_set_member(position, last, set, re.get_data(), icase)))
-      {
-         ++position;
-      }
-      count = (unsigned)::ndnboost::re_detail::distance(origin, position);
-   }
-   else
-   {
-      while((count < desired) && (position != last) && (position != re_is_set_member(position, last, set, re.get_data(), icase)))
-      {
-         ++position;
-         ++count;
-      }
-   }
-   if((rep->leading) && (count < rep->max) && greedy)
-      restart = position;
-   if(count < rep->min)
-      return false;
-
-   if(greedy)
-      return backtrack_till_match(count - rep->min);
-
-   // non-greedy, keep trying till we get a match:
-   BidiIterator save_pos;
-   do
-   {
-      while((position != last) && (count < rep->max) && !can_start(*position, rep->_map, mask_skip))
-      {
-         if(position != re_is_set_member(position, last, set, re.get_data(), icase))
-         {
-            ++position;
-            ++count;
-         }
-         else
-            return false;  // counldn't repeat even though it was the only option
-      }
-      if((rep->leading) && (rep->max == UINT_MAX))
-         restart = position;
-      pstate = rep->alt.p;
-      save_pos = position;
-      ++state_count;
-      if(match_all_states())
-         return true;
-      if(count >= rep->max)
-         return false;
-      position = save_pos;
-      if(position == last)
-         return false;
-      if(position != re_is_set_member(position, last, set, re.get_data(), icase))
-      {
-         ++position;
-         ++count;
-      }
-      else
-      {
-         return false;
-      }
-   }while(true);
-#ifdef __BORLANDC__
-#pragma option pop
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::backtrack_till_match(std::size_t count)
-{
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4127)
-#endif
-   if((m_match_flags & match_partial) && (position == last))
-      m_has_partial_match = true;
-
-   const re_repeat* rep = static_cast<const re_repeat*>(pstate);
-   BidiIterator backtrack = position;
-   if(position == last)
-   {
-      if(rep->can_be_null & mask_skip) 
-      {
-         pstate = rep->alt.p;
-         if(match_all_states())
-            return true;
-      }
-      if(count)
-      {
-         position = --backtrack;
-         --count;
-      }
-      else
-         return false;
-   }
-   do
-   {
-      while(count && !can_start(*position, rep->_map, mask_skip))
-      {
-         --position;
-         --count;
-         ++state_count;
-      }
-      pstate = rep->alt.p;
-      backtrack = position;
-      if(match_all_states())
-         return true;
-      if(count == 0)
-         return false;
-      position = --backtrack;
-      ++state_count;
-      --count;
-   }while(true);
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_recursion()
-{
-   NDNBOOST_ASSERT(pstate->type == syntax_element_recurse);
-   //
-   // Set new call stack:
-   //
-   if(recursion_stack.capacity() == 0)
-   {
-      recursion_stack.reserve(50);
-   }
-   recursion_stack.push_back(recursion_info<results_type>());
-   recursion_stack.back().preturn_address = pstate->next.p;
-   recursion_stack.back().results = *m_presult;
-   recursion_stack.back().repeater_stack = next_count;
-   pstate = static_cast<const re_jump*>(pstate)->alt.p;
-   recursion_stack.back().idx = static_cast<const re_brace*>(pstate)->index;
-
-   repeater_count<BidiIterator>* saved = next_count;
-   repeater_count<BidiIterator> r(&next_count); // resets all repeat counts since we're recursing and starting fresh on those
-   next_count = &r;
-   bool result = match_all_states();
-   next_count = saved;
-
-   if(!result)
-   {
-      next_count = recursion_stack.back().repeater_stack;
-      *m_presult = recursion_stack.back().results;
-      recursion_stack.pop_back();
-      return false;
-   }
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_endmark()
-{
-   int index = static_cast<const re_brace*>(pstate)->index;
-   icase = static_cast<const re_brace*>(pstate)->icase;
-   if(index > 0)
-   {
-      if((m_match_flags & match_nosubs) == 0)
-      {
-         m_presult->set_second(position, index);
-      }
-      if(!recursion_stack.empty())
-      {
-         if(index == recursion_stack.back().idx)
-         {
-            recursion_info<results_type> saved = recursion_stack.back();
-            recursion_stack.pop_back();
-            pstate = saved.preturn_address;
-            repeater_count<BidiIterator>* saved_count = next_count;
-            next_count = saved.repeater_stack;
-            *m_presult = saved.results;
-            if(!match_all_states())
-            {
-               recursion_stack.push_back(saved);
-               next_count = saved_count;
-               return false;
-            }
-         }
-      }
-   }
-   else if((index < 0) && (index != -4))
-   {
-      // matched forward lookahead:
-      pstate = 0;
-      return true;
-   }
-   pstate = pstate ? pstate->next.p : 0;
-   return true;
-}
-
-template <class BidiIterator, class Allocator, class traits>
-bool perl_matcher<BidiIterator, Allocator, traits>::match_match()
-{
-   if(!recursion_stack.empty())
-   {
-      NDNBOOST_ASSERT(0 == recursion_stack.back().idx);
-      const re_syntax_base* saved_state = pstate = recursion_stack.back().preturn_address;
-      *m_presult = recursion_stack.back().results;
-      recursion_stack.pop_back();
-      if(!match_all_states())
-      {
-         recursion_stack.push_back(recursion_info<results_type>());
-         recursion_stack.back().preturn_address = saved_state;
-         recursion_stack.back().results = *m_presult;
-         return false;
-      }
-      return true;
-   }
-   if((m_match_flags & match_not_null) && (position == (*m_presult)[0].first))
-      return false;
-   if((m_match_flags & match_all) && (position != last))
-      return false;
-   if((m_match_flags & regex_constants::match_not_initial_null) && (position == search_base))
-      return false;
-   m_presult->set_second(position);
-   pstate = 0;
-   m_has_found_match = true;
-   if((m_match_flags & match_posix) == match_posix)
-   {
-      m_result.maybe_assign(*m_presult);
-      if((m_match_flags & match_any) == 0)
-         return false;
-   }
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-   if(match_extra & m_match_flags)
-   {
-      for(unsigned i = 0; i < m_presult->size(); ++i)
-         if((*m_presult)[i].matched)
-            ((*m_presult)[i]).get_captures().push_back((*m_presult)[i]);
-   }
-#endif
-   return true;
-}
-
-
-
-} // namespace re_detail
-} // namespace ndnboost
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/primary_transform.hpp b/include/ndnboost/regex/v4/primary_transform.hpp
deleted file mode 100644
index 0c9bc68..0000000
--- a/include/ndnboost/regex/v4/primary_transform.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE:        primary_transform.hpp
-  *   VERSION:     see <ndnboost/version.hpp>
-  *   DESCRIPTION: Heuristically determines the sort string format in use
-  *                by the current locale.
-  */
-
-#ifndef NDNBOOST_REGEX_PRIMARY_TRANSFORM
-#define NDNBOOST_REGEX_PRIMARY_TRANSFORM
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-   namespace re_detail{
-
-
-enum{
-   sort_C,
-   sort_fixed,
-   sort_delim,
-   sort_unknown
-};
-
-template <class S, class charT>
-unsigned count_chars(const S& s, charT c)
-{
-   //
-   // Count how many occurances of character c occur
-   // in string s: if c is a delimeter between collation
-   // fields, then this should be the same value for all
-   // sort keys:
-   //
-   unsigned int count = 0;
-   for(unsigned pos = 0; pos < s.size(); ++pos)
-   {
-      if(s[pos] == c) ++count;
-   }
-   return count;
-}
-
-
-template <class traits, class charT>
-unsigned find_sort_syntax(const traits* pt, charT* delim)
-{
-   //
-   // compare 'a' with 'A' to see how similar they are,
-   // should really use a-accute but we can't portably do that,
-   //
-   typedef typename traits::string_type string_type;
-   typedef typename traits::char_type char_type;
-
-   // Suppress incorrect warning for MSVC
-   (void)pt;
-
-   char_type a[2] = {'a', '\0', };
-   string_type sa(pt->transform(a, a+1));
-   if(sa == a)
-   {
-      *delim = 0;
-      return sort_C;
-   }
-   char_type A[2] = { 'A', '\0', };
-   string_type sA(pt->transform(A, A+1));
-   char_type c[2] = { ';', '\0', };
-   string_type sc(pt->transform(c, c+1));
-
-   int pos = 0;
-   while((pos <= static_cast<int>(sa.size())) && (pos <= static_cast<int>(sA.size())) && (sa[pos] == sA[pos])) ++pos;
-   --pos;
-   if(pos < 0)
-   {
-      *delim = 0;
-      return sort_unknown;
-   }
-   //
-   // at this point sa[pos] is either the end of a fixed width field
-   // or the character that acts as a delimiter:
-   //
-   charT maybe_delim = sa[pos];
-   if((pos != 0) && (count_chars(sa, maybe_delim) == count_chars(sA, maybe_delim)) && (count_chars(sa, maybe_delim) == count_chars(sc, maybe_delim)))
-   {
-      *delim = maybe_delim;
-      return sort_delim;
-   }
-   //
-   // OK doen't look like a delimiter, try for fixed width field:
-   //
-   if((sa.size() == sA.size()) && (sa.size() == sc.size()))
-   {
-      // note assumes that the fixed width field is less than
-      // (numeric_limits<charT>::max)(), should be true for all types
-      // I can't imagine 127 character fields...
-      *delim = static_cast<charT>(++pos);
-      return sort_fixed;
-   }
-   //
-   // don't know what it is:
-   //
-   *delim = 0;
-   return sort_unknown;
-}
-
-
-   } // namespace re_detail
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
-
-
-
-
-
-
diff --git a/include/ndnboost/regex/v4/protected_call.hpp b/include/ndnboost/regex/v4/protected_call.hpp
deleted file mode 100644
index 88615de..0000000
--- a/include/ndnboost/regex/v4/protected_call.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         basic_regex_creator.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares template class basic_regex_creator which fills in
-  *                the data members of a regex_data object.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_PROTECTED_CALL_HPP
-#define NDNBOOST_REGEX_V4_PROTECTED_CALL_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-namespace re_detail{
-
-class NDNBOOST_REGEX_DECL abstract_protected_call
-{
-public:
-   bool NDNBOOST_REGEX_CALL execute()const;
-   // this stops gcc-4 from complaining:
-   virtual ~abstract_protected_call(){}
-private:
-   virtual bool call()const = 0;
-};
-
-template <class T>
-class concrete_protected_call
-   : public abstract_protected_call
-{
-public:
-   typedef bool (T::*proc_type)();
-   concrete_protected_call(T* o, proc_type p)
-      : obj(o), proc(p) {}
-private:
-   virtual bool call()const;
-   T* obj;
-   proc_type proc;
-};
-
-template <class T>
-bool concrete_protected_call<T>::call()const
-{
-   return (obj->*proc)();
-}
-
-}
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/include/ndnboost/regex/v4/regbase.hpp b/include/ndnboost/regex/v4/regbase.hpp
deleted file mode 100644
index 7c52468..0000000
--- a/include/ndnboost/regex/v4/regbase.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regbase.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares class regbase.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_REGBASE_HPP
-#define NDNBOOST_REGEX_V4_REGBASE_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-//
-// class regbase
-// handles error codes and flags
-//
-class NDNBOOST_REGEX_DECL regbase
-{
-public:
-   enum flag_type_
-   {
-      //
-      // Divide the flags up into logical groups:
-      // bits 0-7 indicate main synatx type.
-      // bits 8-15 indicate syntax subtype.
-      // bits 16-31 indicate options that are common to all
-      // regex syntaxes.
-      // In all cases the default is 0.
-      //
-      // Main synatx group:
-      //
-      perl_syntax_group = 0,                      // default
-      basic_syntax_group = 1,                     // POSIX basic
-      literal = 2,                                // all characters are literals
-      main_option_type = literal | basic_syntax_group | perl_syntax_group, // everything!
-      //
-      // options specific to perl group:
-      //
-      no_bk_refs = 1 << 8,                        // \d not allowed
-      no_perl_ex = 1 << 9,                        // disable perl extensions
-      no_mod_m = 1 << 10,                         // disable Perl m modifier
-      mod_x = 1 << 11,                            // Perl x modifier
-      mod_s = 1 << 12,                            // force s modifier on (overrides match_not_dot_newline)
-      no_mod_s = 1 << 13,                         // force s modifier off (overrides match_not_dot_newline)
-
-      //
-      // options specific to basic group:
-      //
-      no_char_classes = 1 << 8,                   // [[:CLASS:]] not allowed
-      no_intervals = 1 << 9,                      // {x,y} not allowed
-      bk_plus_qm = 1 << 10,                       // uses \+ and \?
-      bk_vbar = 1 << 11,                          // use \| for alternatives
-      emacs_ex = 1 << 12,                         // enables emacs extensions
-
-      //
-      // options common to all groups:
-      //
-      no_escape_in_lists = 1 << 16,                     // '\' not special inside [...]
-      newline_alt = 1 << 17,                            // \n is the same as |
-      no_except = 1 << 18,                              // no exception on error
-      failbit = 1 << 19,                                // error flag
-      icase = 1 << 20,                                  // characters are matched regardless of case
-      nocollate = 0,                                    // don't use locale specific collation (deprecated)
-      collate = 1 << 21,                                // use locale specific collation
-      nosubs = 1 << 22,                                 // don't mark sub-expressions
-      save_subexpression_location = 1 << 23,            // save subexpression locations
-      no_empty_expressions = 1 << 24,                   // no empty expressions allowed
-      optimize = 0,                                     // not really supported
-      
-
-
-      basic = basic_syntax_group | collate | no_escape_in_lists,
-      extended = no_bk_refs | collate | no_perl_ex | no_escape_in_lists,
-      normal = 0,
-      emacs = basic_syntax_group | collate | emacs_ex | bk_vbar,
-      awk = no_bk_refs | collate | no_perl_ex,
-      grep = basic | newline_alt,
-      egrep = extended | newline_alt,
-      sed = basic,
-      perl = normal,
-      ECMAScript = normal,
-      JavaScript = normal,
-      JScript = normal
-   };
-   typedef unsigned int flag_type;
-
-   enum restart_info
-   {
-      restart_any = 0,
-      restart_word = 1,
-      restart_line = 2,
-      restart_buf = 3,
-      restart_continue = 4,
-      restart_lit = 5,
-      restart_fixed_lit = 6, 
-      restart_count = 7
-   };
-};
-
-//
-// provide std lib proposal compatible constants:
-//
-namespace regex_constants{
-
-   enum flag_type_
-   {
-
-      no_except = ::ndnboost::regbase::no_except,
-      failbit = ::ndnboost::regbase::failbit,
-      literal = ::ndnboost::regbase::literal,
-      icase = ::ndnboost::regbase::icase,
-      nocollate = ::ndnboost::regbase::nocollate,
-      collate = ::ndnboost::regbase::collate,
-      nosubs = ::ndnboost::regbase::nosubs,
-      optimize = ::ndnboost::regbase::optimize,
-      bk_plus_qm = ::ndnboost::regbase::bk_plus_qm,
-      bk_vbar = ::ndnboost::regbase::bk_vbar,
-      no_intervals = ::ndnboost::regbase::no_intervals,
-      no_char_classes = ::ndnboost::regbase::no_char_classes,
-      no_escape_in_lists = ::ndnboost::regbase::no_escape_in_lists,
-      no_mod_m = ::ndnboost::regbase::no_mod_m,
-      mod_x = ::ndnboost::regbase::mod_x,
-      mod_s = ::ndnboost::regbase::mod_s,
-      no_mod_s = ::ndnboost::regbase::no_mod_s,
-      save_subexpression_location = ::ndnboost::regbase::save_subexpression_location,
-      no_empty_expressions = ::ndnboost::regbase::no_empty_expressions,
-
-      basic = ::ndnboost::regbase::basic,
-      extended = ::ndnboost::regbase::extended,
-      normal = ::ndnboost::regbase::normal,
-      emacs = ::ndnboost::regbase::emacs,
-      awk = ::ndnboost::regbase::awk,
-      grep = ::ndnboost::regbase::grep,
-      egrep = ::ndnboost::regbase::egrep,
-      sed = basic,
-      perl = normal,
-      ECMAScript = normal,
-      JavaScript = normal,
-      JScript = normal
-   };
-   typedef ::ndnboost::regbase::flag_type syntax_option_type;
-
-} // namespace regex_constants
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/regex.hpp b/include/ndnboost/regex/v4/regex.hpp
deleted file mode 100644
index e6d3111..0000000
--- a/include/ndnboost/regex/v4/regex.hpp
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares ndnboost::basic_regex<> and associated
-  *                functions and classes. This header is the main
-  *                entry point for the template regex code.
-  */
-
-#ifndef NDNBOOST_RE_REGEX_HPP_INCLUDED
-#define NDNBOOST_RE_REGEX_HPP_INCLUDED
-
-#ifdef __cplusplus
-
-// what follows is all C++ don't include in C builds!!
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_WORKAROUND_HPP
-#include <ndnboost/regex/v4/regex_workaround.hpp>
-#endif
-
-#ifndef NDNBOOST_REGEX_FWD_HPP
-#include <ndnboost/regex_fwd.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_TRAITS_HPP
-#include <ndnboost/regex/regex_traits.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_RAW_BUFFER_HPP
-#include <ndnboost/regex/v4/error_type.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_MATCH_FLAGS
-#include <ndnboost/regex/v4/match_flags.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_RAW_BUFFER_HPP
-#include <ndnboost/regex/v4/regex_raw_buffer.hpp>
-#endif
-#ifndef NDNBOOST_RE_PAT_EXCEPT_HPP
-#include <ndnboost/regex/pattern_except.hpp>
-#endif
-
-#ifndef NDNBOOST_REGEX_V4_CHAR_REGEX_TRAITS_HPP
-#include <ndnboost/regex/v4/char_regex_traits.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_STATES_HPP
-#include <ndnboost/regex/v4/states.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_REGBASE_HPP
-#include <ndnboost/regex/v4/regbase.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_ITERATOR_TRAITS_HPP
-#include <ndnboost/regex/v4/iterator_traits.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_BASIC_REGEX_HPP
-#include <ndnboost/regex/v4/basic_regex.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_BASIC_REGEX_CREATOR_HPP
-#include <ndnboost/regex/v4/basic_regex_creator.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_BASIC_REGEX_PARSER_HPP
-#include <ndnboost/regex/v4/basic_regex_parser.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_SUB_MATCH_HPP
-#include <ndnboost/regex/v4/sub_match.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_FORMAT_HPP
-#include <ndnboost/regex/v4/regex_format.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_MATCH_RESULTS_HPP
-#include <ndnboost/regex/v4/match_results.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_PROTECTED_CALL_HPP
-#include <ndnboost/regex/v4/protected_call.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_MATCHER_HPP
-#include <ndnboost/regex/v4/perl_matcher.hpp>
-#endif
-//
-// template instances:
-//
-#define NDNBOOST_REGEX_CHAR_T char
-#ifdef NDNBOOST_REGEX_NARROW_INSTANTIATE
-#  define NDNBOOST_REGEX_INSTANTIATE
-#endif
-#include <ndnboost/regex/v4/instances.hpp>
-#undef NDNBOOST_REGEX_CHAR_T
-#ifdef NDNBOOST_REGEX_INSTANTIATE
-#  undef NDNBOOST_REGEX_INSTANTIATE
-#endif
-
-#ifndef NDNBOOST_NO_WREGEX
-#define NDNBOOST_REGEX_CHAR_T wchar_t
-#ifdef NDNBOOST_REGEX_WIDE_INSTANTIATE
-#  define NDNBOOST_REGEX_INSTANTIATE
-#endif
-#include <ndnboost/regex/v4/instances.hpp>
-#undef NDNBOOST_REGEX_CHAR_T
-#ifdef NDNBOOST_REGEX_INSTANTIATE
-#  undef NDNBOOST_REGEX_INSTANTIATE
-#endif
-#endif
-
-#if !defined(NDNBOOST_NO_WREGEX) && defined(NDNBOOST_REGEX_HAS_OTHER_WCHAR_T)
-#define NDNBOOST_REGEX_CHAR_T unsigned short
-#ifdef NDNBOOST_REGEX_US_INSTANTIATE
-#  define NDNBOOST_REGEX_INSTANTIATE
-#endif
-#include <ndnboost/regex/v4/instances.hpp>
-#undef NDNBOOST_REGEX_CHAR_T
-#ifdef NDNBOOST_REGEX_INSTANTIATE
-#  undef NDNBOOST_REGEX_INSTANTIATE
-#endif
-#endif
-
-
-namespace ndnboost{
-#ifdef NDNBOOST_REGEX_NO_FWD
-typedef basic_regex<char, regex_traits<char> > regex;
-#ifndef NDNBOOST_NO_WREGEX
-typedef basic_regex<wchar_t, regex_traits<wchar_t> > wregex;
-#endif
-#endif
-
-typedef match_results<const char*> cmatch;
-typedef match_results<std::string::const_iterator> smatch;
-#ifndef NDNBOOST_NO_WREGEX
-typedef match_results<const wchar_t*> wcmatch;
-typedef match_results<std::wstring::const_iterator> wsmatch;
-#endif
-
-} // namespace ndnboost
-#ifndef NDNBOOST_REGEX_MATCH_HPP
-#include <ndnboost/regex/v4/regex_match.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_REGEX_SEARCH_HPP
-#include <ndnboost/regex/v4/regex_search.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_ITERATOR_HPP
-#include <ndnboost/regex/v4/regex_iterator.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_TOKEN_ITERATOR_HPP
-#include <ndnboost/regex/v4/regex_token_iterator.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_REGEX_GREP_HPP
-#include <ndnboost/regex/v4/regex_grep.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_REGEX_REPLACE_HPP
-#include <ndnboost/regex/v4/regex_replace.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_V4_REGEX_MERGE_HPP
-#include <ndnboost/regex/v4/regex_merge.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_SPLIT_HPP
-#include <ndnboost/regex/v4/regex_split.hpp>
-#endif
-
-#endif  // __cplusplus
-
-#endif  // include
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/include/ndnboost/regex/v4/regex_format.hpp b/include/ndnboost/regex/v4/regex_format.hpp
deleted file mode 100644
index 01397a2..0000000
--- a/include/ndnboost/regex/v4/regex_format.hpp
+++ /dev/null
@@ -1,1156 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2009 John Maddock
- * Copyright 2008 Eric Niebler. 
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_format.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Provides formatting output routines for search and replace
-  *                operations.  Note this is an internal header file included
-  *                by regex.hpp, do not include on its own.
-  */
-
-#ifndef NDNBOOST_REGEX_FORMAT_HPP
-#define NDNBOOST_REGEX_FORMAT_HPP
-
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_function.hpp>
-#include <ndnboost/type_traits/is_class.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/remove_pointer.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/not.hpp>
-#ifndef NDNBOOST_NO_SFINAE
-#include <ndnboost/mpl/has_xxx.hpp>
-#endif
-#include <ndnboost/ref.hpp>
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-//
-// Forward declaration:
-//
-   template <class BidiIterator, class Allocator = NDNBOOST_DEDUCED_TYPENAME std::vector<sub_match<BidiIterator> >::allocator_type >
-class match_results;
-
-namespace re_detail{
-
-//
-// struct trivial_format_traits:
-// defines minimum localisation support for formatting
-// in the case that the actual regex traits is unavailable.
-//
-template <class charT>
-struct trivial_format_traits
-{
-   typedef charT char_type;
-
-   static std::ptrdiff_t length(const charT* p)
-   {
-      return global_length(p);
-   }
-   static charT tolower(charT c)
-   {
-      return ::ndnboost::re_detail::global_lower(c);
-   }
-   static charT toupper(charT c)
-   {
-      return ::ndnboost::re_detail::global_upper(c);
-   }
-   static int value(const charT c, int radix)
-   {
-      int result = global_value(c);
-      return result >= radix ? -1 : result;
-   }
-   int toi(const charT*& p1, const charT* p2, int radix)const
-   {
-      return global_toi(p1, p2, radix, *this);
-   }
-};
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-class basic_regex_formatter
-{
-public:
-   typedef typename traits::char_type char_type;
-   basic_regex_formatter(OutputIterator o, const Results& r, const traits& t)
-      : m_traits(t), m_results(r), m_out(o), m_state(output_copy), m_restore_state(output_copy), m_have_conditional(false) {}
-   OutputIterator format(ForwardIter p1, ForwardIter p2, match_flag_type f);
-   OutputIterator format(ForwardIter p1, match_flag_type f)
-   {
-      return format(p1, p1 + m_traits.length(p1), f);
-   }
-private:
-   typedef typename Results::value_type sub_match_type;
-   enum output_state
-   {
-      output_copy,
-      output_next_lower,
-      output_next_upper,
-      output_lower,
-      output_upper,
-      output_none
-   };
-
-   void put(char_type c);
-   void put(const sub_match_type& sub);
-   void format_all();
-   void format_perl();
-   void format_escape();
-   void format_conditional();
-   void format_until_scope_end();
-   bool handle_perl_verb(bool have_brace);
-
-   inline typename Results::value_type const& get_named_sub(ForwardIter i, ForwardIter j, const mpl::false_&)
-   {
-      std::vector<char_type> v(i, j);
-      return (i != j) ? this->m_results.named_subexpression(&v[0], &v[0] + v.size())
-         : this->m_results.named_subexpression(static_cast<const char_type*>(0), static_cast<const char_type*>(0));
-   }
-   inline typename Results::value_type const& get_named_sub(ForwardIter i, ForwardIter j, const mpl::true_&)
-   {
-      return this->m_results.named_subexpression(i, j);
-   }
-   inline typename Results::value_type const& get_named_sub(ForwardIter i, ForwardIter j)
-   {
-      typedef typename ndnboost::is_convertible<ForwardIter, const char_type*>::type tag_type;
-      return get_named_sub(i, j, tag_type());
-   }
-   inline int get_named_sub_index(ForwardIter i, ForwardIter j, const mpl::false_&)
-   {
-      std::vector<char_type> v(i, j);
-      return (i != j) ? this->m_results.named_subexpression_index(&v[0], &v[0] + v.size())
-         : this->m_results.named_subexpression_index(static_cast<const char_type*>(0), static_cast<const char_type*>(0));
-   }
-   inline int get_named_sub_index(ForwardIter i, ForwardIter j, const mpl::true_&)
-   {
-      return this->m_results.named_subexpression_index(i, j);
-   }
-   inline int get_named_sub_index(ForwardIter i, ForwardIter j)
-   {
-      typedef typename ndnboost::is_convertible<ForwardIter, const char_type*>::type tag_type;
-      return get_named_sub_index(i, j, tag_type());
-   }
-#ifdef NDNBOOST_MSVC
-   // msvc-8.0 issues a spurious warning on the call to std::advance here:
-#pragma warning(push)
-#pragma warning(disable:4244)
-#endif
-   inline int toi(ForwardIter& i, ForwardIter j, int base, const ndnboost::mpl::false_&)
-   {
-      if(i != j)
-      {
-         std::vector<char_type> v(i, j);
-         const char_type* start = &v[0];
-         const char_type* pos = start;
-         int r = m_traits.toi(pos, &v[0] + v.size(), base);
-         std::advance(i, pos - start);
-         return r;
-      }
-      return -1;
-   }
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-   inline int toi(ForwardIter& i, ForwardIter j, int base, const ndnboost::mpl::true_&)
-   {
-      return m_traits.toi(i, j, base);
-   }
-   inline int toi(ForwardIter& i, ForwardIter j, int base)
-   {
-#if defined(_MSC_VER) && defined(__INTEL_COMPILER) && ((__INTEL_COMPILER == 9999) || (__INTEL_COMPILER == 1210))
-      // Workaround for Intel support issue #656654.
-      // See also https://svn.boost.org/trac/boost/ticket/6359
-      return toi(i, j, base, mpl::false_());
-#else
-      typedef typename ndnboost::is_convertible<ForwardIter, const char_type*&>::type tag_type;
-      return toi(i, j, base, tag_type());
-#endif
-   }
-
-   const traits&    m_traits;       // the traits class for localised formatting operations
-   const Results&   m_results;     // the match_results being used.
-   OutputIterator   m_out;         // where to send output.
-   ForwardIter      m_position;  // format string, current position
-   ForwardIter      m_end;       // format string end
-   match_flag_type  m_flags;      // format flags to use
-   output_state     m_state;      // what to do with the next character
-   output_state     m_restore_state;  // what state to restore to.
-   bool             m_have_conditional; // we are parsing a conditional
-private:
-   basic_regex_formatter(const basic_regex_formatter&);
-   basic_regex_formatter& operator=(const basic_regex_formatter&);
-};
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-OutputIterator basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format(ForwardIter p1, ForwardIter p2, match_flag_type f)
-{
-   m_position = p1;
-   m_end = p2;
-   m_flags = f;
-   format_all();
-   return m_out;
-}
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_all()
-{
-   // over and over:
-   while(m_position != m_end)
-   {
-      switch(*m_position)
-      {
-      case '&':
-         if(m_flags & ::ndnboost::regex_constants::format_sed)
-         {
-            ++m_position;
-            put(m_results[0]);
-            break;
-         }
-         put(*m_position++);
-         break;
-      case '\\':
-         format_escape();
-         break;
-      case '(':
-         if(m_flags & ndnboost::regex_constants::format_all)
-         {
-            ++m_position;
-            bool have_conditional = m_have_conditional;
-            m_have_conditional = false;
-            format_until_scope_end();
-            m_have_conditional = have_conditional;
-            if(m_position == m_end)
-               return;
-            NDNBOOST_ASSERT(*m_position == static_cast<char_type>(')'));
-            ++m_position;  // skip the closing ')'
-            break;
-         }
-         put(*m_position);
-         ++m_position;
-         break;
-      case ')':
-         if(m_flags & ndnboost::regex_constants::format_all)
-         {
-            return;
-         }
-         put(*m_position);
-         ++m_position;
-         break;
-      case ':':
-         if((m_flags & ndnboost::regex_constants::format_all) && m_have_conditional)
-         {
-            return;
-         }
-         put(*m_position);
-         ++m_position;
-         break;
-      case '?':
-         if(m_flags & ndnboost::regex_constants::format_all)
-         {
-            ++m_position;
-            format_conditional();
-            break;
-         }
-         put(*m_position);
-         ++m_position;
-         break;
-      case '$':
-         if((m_flags & format_sed) == 0)
-         {
-            format_perl();
-            break;
-         }
-         // not a special character:
-         NDNBOOST_FALLTHROUGH;
-      default:
-         put(*m_position);
-         ++m_position;
-         break;
-      }
-   }
-}
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_perl()
-{
-   //
-   // On entry *m_position points to a '$' character
-   // output the information that goes with it:
-   //
-   NDNBOOST_ASSERT(*m_position == '$');
-   //
-   // see if this is a trailing '$':
-   //
-   if(++m_position == m_end)
-   {
-      --m_position;
-      put(*m_position);
-      ++m_position;
-      return;
-   }
-   //
-   // OK find out what kind it is:
-   //
-   bool have_brace = false;
-   ForwardIter save_position = m_position;
-   switch(*m_position)
-   {
-   case '&':
-      ++m_position;
-      put(this->m_results[0]);
-      break;
-   case '`':
-      ++m_position;
-      put(this->m_results.prefix());
-      break;
-   case '\'':
-      ++m_position;
-      put(this->m_results.suffix());
-      break;
-   case '$':
-      put(*m_position++);
-      break;
-   case '+':
-      if((++m_position != m_end) && (*m_position == '{'))
-      {
-         ForwardIter base = ++m_position;
-         while((m_position != m_end) && (*m_position != '}')) ++m_position;
-         if(m_position != m_end)
-         {
-            // Named sub-expression:
-            put(get_named_sub(base, m_position));
-            ++m_position;
-            break;
-         }
-         else
-         {
-            m_position = --base;
-         }
-      }
-      put((this->m_results)[this->m_results.size() > 1 ? static_cast<int>(this->m_results.size() - 1) : 1]);
-      break;
-   case '{':
-      have_brace = true;
-      ++m_position;
-      NDNBOOST_FALLTHROUGH;
-   default:
-      // see if we have a number:
-      {
-         std::ptrdiff_t len = ::ndnboost::re_detail::distance(m_position, m_end);
-         //len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
-         int v = this->toi(m_position, m_position + len, 10);
-         if((v < 0) || (have_brace && ((m_position == m_end) || (*m_position != '}'))))
-         {
-            // Look for a Perl-5.10 verb:
-            if(!handle_perl_verb(have_brace))
-            {
-               // leave the $ as is, and carry on:
-               m_position = --save_position;
-               put(*m_position);
-               ++m_position;
-            }
-            break;
-         }
-         // otherwise output sub v:
-         put(this->m_results[v]);
-         if(have_brace)
-            ++m_position;
-      }
-   }
-}
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-bool basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::handle_perl_verb(bool have_brace)
-{
-   // 
-   // We may have a capitalised string containing a Perl action:
-   //
-   static const char_type MATCH[] = { 'M', 'A', 'T', 'C', 'H' };
-   static const char_type PREMATCH[] = { 'P', 'R', 'E', 'M', 'A', 'T', 'C', 'H' };
-   static const char_type POSTMATCH[] = { 'P', 'O', 'S', 'T', 'M', 'A', 'T', 'C', 'H' };
-   static const char_type LAST_PAREN_MATCH[] = { 'L', 'A', 'S', 'T', '_', 'P', 'A', 'R', 'E', 'N', '_', 'M', 'A', 'T', 'C', 'H' };
-   static const char_type LAST_SUBMATCH_RESULT[] = { 'L', 'A', 'S', 'T', '_', 'S', 'U', 'B', 'M', 'A', 'T', 'C', 'H', '_', 'R', 'E', 'S', 'U', 'L', 'T' };
-   static const char_type LAST_SUBMATCH_RESULT_ALT[] = { '^', 'N' };
-
-   if(m_position == m_end)
-      return false;
-   if(have_brace && (*m_position == '^'))
-      ++m_position;
-
-   std::ptrdiff_t max_len = m_end - m_position;
-
-   if((max_len >= 5) && std::equal(m_position, m_position + 5, MATCH))
-   {
-      m_position += 5;
-      if(have_brace)
-      {
-         if((m_position != m_end) && (*m_position == '}'))
-            ++m_position;
-         else
-         {
-            m_position -= 5;
-            return false;
-         }
-      }
-      put(this->m_results[0]);
-      return true;
-   }
-   if((max_len >= 8) && std::equal(m_position, m_position + 8, PREMATCH))
-   {
-      m_position += 8;
-      if(have_brace)
-      {
-         if((m_position != m_end) && (*m_position == '}'))
-            ++m_position;
-         else
-         {
-            m_position -= 8;
-            return false;
-         }
-      }
-      put(this->m_results.prefix());
-      return true;
-   }
-   if((max_len >= 9) && std::equal(m_position, m_position + 9, POSTMATCH))
-   {
-      m_position += 9;
-      if(have_brace)
-      {
-         if((m_position != m_end) && (*m_position == '}'))
-            ++m_position;
-         else
-         {
-            m_position -= 9;
-            return false;
-         }
-      }
-      put(this->m_results.suffix());
-      return true;
-   }
-   if((max_len >= 16) && std::equal(m_position, m_position + 16, LAST_PAREN_MATCH))
-   {
-      m_position += 16;
-      if(have_brace)
-      {
-         if((m_position != m_end) && (*m_position == '}'))
-            ++m_position;
-         else
-         {
-            m_position -= 16;
-            return false;
-         }
-      }
-      put((this->m_results)[this->m_results.size() > 1 ? static_cast<int>(this->m_results.size() - 1) : 1]);
-      return true;
-   }
-   if((max_len >= 20) && std::equal(m_position, m_position + 20, LAST_SUBMATCH_RESULT))
-   {
-      m_position += 20;
-      if(have_brace)
-      {
-         if((m_position != m_end) && (*m_position == '}'))
-            ++m_position;
-         else
-         {
-            m_position -= 20;
-            return false;
-         }
-      }
-      put(this->m_results.get_last_closed_paren());
-      return true;
-   }
-   if((max_len >= 2) && std::equal(m_position, m_position + 2, LAST_SUBMATCH_RESULT_ALT))
-   {
-      m_position += 2;
-      if(have_brace)
-      {
-         if((m_position != m_end) && (*m_position == '}'))
-            ++m_position;
-         else
-         {
-            m_position -= 2;
-            return false;
-         }
-      }
-      put(this->m_results.get_last_closed_paren());
-      return true;
-   }
-   return false;
-}
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_escape()
-{
-   // skip the escape and check for trailing escape:
-   if(++m_position == m_end)
-   {
-      put(static_cast<char_type>('\\'));
-      return;
-   }
-   // now switch on the escape type:
-   switch(*m_position)
-   {
-   case 'a':
-      put(static_cast<char_type>('\a'));
-      ++m_position;
-      break;
-   case 'f':
-      put(static_cast<char_type>('\f'));
-      ++m_position;
-      break;
-   case 'n':
-      put(static_cast<char_type>('\n'));
-      ++m_position;
-      break;
-   case 'r':
-      put(static_cast<char_type>('\r'));
-      ++m_position;
-      break;
-   case 't':
-      put(static_cast<char_type>('\t'));
-      ++m_position;
-      break;
-   case 'v':
-      put(static_cast<char_type>('\v'));
-      ++m_position;
-      break;
-   case 'x':
-      if(++m_position == m_end)
-      {
-         put(static_cast<char_type>('x'));
-         return;
-      }
-      // maybe have \x{ddd}
-      if(*m_position == static_cast<char_type>('{'))
-      {
-         ++m_position;
-         int val = this->toi(m_position, m_end, 16);
-         if(val < 0)
-         {
-            // invalid value treat everything as literals:
-            put(static_cast<char_type>('x'));
-            put(static_cast<char_type>('{'));
-            return;
-         }
-         if((m_position == m_end) || (*m_position != static_cast<char_type>('}')))
-         {
-            --m_position;
-            while(*m_position != static_cast<char_type>('\\'))
-               --m_position;
-            ++m_position;
-            put(*m_position++);
-            return;
-         }
-         ++m_position;
-         put(static_cast<char_type>(val));
-         return;
-      }
-      else
-      {
-         std::ptrdiff_t len = ::ndnboost::re_detail::distance(m_position, m_end);
-         len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
-         int val = this->toi(m_position, m_position + len, 16);
-         if(val < 0)
-         {
-            --m_position;
-            put(*m_position++);
-            return;
-         }
-         put(static_cast<char_type>(val));
-      }
-      break;
-   case 'c':
-      if(++m_position == m_end)
-      {
-         --m_position;
-         put(*m_position++);
-         return;
-      }
-      put(static_cast<char_type>(*m_position++ % 32));
-      break;
-   case 'e':
-      put(static_cast<char_type>(27));
-      ++m_position;
-      break;
-   default:
-      // see if we have a perl specific escape:
-      if((m_flags & ndnboost::regex_constants::format_sed) == 0)
-      {
-         bool breakout = false;
-         switch(*m_position)
-         {
-         case 'l':
-            ++m_position;
-            m_restore_state = m_state;
-            m_state = output_next_lower;
-            breakout = true;
-            break;
-         case 'L':
-            ++m_position;
-            m_state = output_lower;
-            breakout = true;
-            break;
-         case 'u':
-            ++m_position;
-            m_restore_state = m_state;
-            m_state = output_next_upper;
-            breakout = true;
-            break;
-         case 'U':
-            ++m_position;
-            m_state = output_upper;
-            breakout = true;
-            break;
-         case 'E':
-            ++m_position;
-            m_state = output_copy;
-            breakout = true;
-            break;
-         }
-         if(breakout)
-            break;
-      }
-      // see if we have a \n sed style backreference:
-      std::ptrdiff_t len = ::ndnboost::re_detail::distance(m_position, m_end);
-      len = (std::min)(static_cast<std::ptrdiff_t>(1), len);
-      int v = this->toi(m_position, m_position+len, 10);
-      if((v > 0) || ((v == 0) && (m_flags & ::ndnboost::regex_constants::format_sed)))
-      {
-         put(m_results[v]);
-         break;
-      }
-      else if(v == 0)
-      {
-         // octal ecape sequence:
-         --m_position;
-         len = ::ndnboost::re_detail::distance(m_position, m_end);
-         len = (std::min)(static_cast<std::ptrdiff_t>(4), len);
-         v = this->toi(m_position, m_position + len, 8);
-         NDNBOOST_ASSERT(v >= 0);
-         put(static_cast<char_type>(v));
-         break;
-      }
-      // Otherwise output the character "as is":
-      put(*m_position++);
-      break;
-   }
-}
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_conditional()
-{
-   if(m_position == m_end)
-   {
-      // oops trailing '?':
-      put(static_cast<char_type>('?'));
-      return;
-   }
-   int v;
-   if(*m_position == '{')
-   {
-      ForwardIter base = m_position;
-      ++m_position;
-      v = this->toi(m_position, m_end, 10);
-      if(v < 0)
-      {
-         // Try a named subexpression:
-         while((m_position != m_end) && (*m_position != '}'))
-            ++m_position;
-         v = this->get_named_sub_index(base + 1, m_position);
-      }
-      if((v < 0) || (*m_position != '}'))
-      {
-         m_position = base;
-         // oops trailing '?':
-         put(static_cast<char_type>('?'));
-         return;
-      }
-      // Skip trailing '}':
-      ++m_position;
-   }
-   else
-   {
-      std::ptrdiff_t len = ::ndnboost::re_detail::distance(m_position, m_end);
-      len = (std::min)(static_cast<std::ptrdiff_t>(2), len);
-      v = this->toi(m_position, m_position + len, 10);
-   }
-   if(v < 0)
-   {
-      // oops not a number:
-      put(static_cast<char_type>('?'));
-      return;
-   }
-
-   // output varies depending upon whether sub-expression v matched or not:
-   if(m_results[v].matched)
-   {
-      m_have_conditional = true;
-      format_all();
-      m_have_conditional = false;
-      if((m_position != m_end) && (*m_position == static_cast<char_type>(':')))
-      {
-         // skip the ':':
-         ++m_position;
-         // save output state, then turn it off:
-         output_state saved_state = m_state;
-         m_state = output_none;
-         // format the rest of this scope:
-         format_until_scope_end();
-         // restore output state:
-         m_state = saved_state;
-      }
-   }
-   else
-   {
-      // save output state, then turn it off:
-      output_state saved_state = m_state;
-      m_state = output_none;
-      // format until ':' or ')':
-      m_have_conditional = true;
-      format_all();
-      m_have_conditional = false;
-      // restore state:
-      m_state = saved_state;
-      if((m_position != m_end) && (*m_position == static_cast<char_type>(':')))
-      {
-         // skip the ':':
-         ++m_position;
-         // format the rest of this scope:
-         format_until_scope_end();
-      }
-   }
-}
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::format_until_scope_end()
-{
-   do
-   {
-      format_all();
-      if((m_position == m_end) || (*m_position == static_cast<char_type>(')')))
-         return;
-      put(*m_position++);
-   }while(m_position != m_end);
-}
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::put(char_type c)
-{
-   // write a single character to output
-   // according to which case translation mode we are in:
-   switch(this->m_state)
-   {
-   case output_none:
-      return;
-   case output_next_lower:
-      c = m_traits.tolower(c);
-      this->m_state = m_restore_state;
-      break;
-   case output_next_upper:
-      c = m_traits.toupper(c);
-      this->m_state = m_restore_state;
-      break;
-   case output_lower:
-      c = m_traits.tolower(c);
-      break;
-   case output_upper:
-      c = m_traits.toupper(c);
-      break;
-   default:
-      break;
-   }
-   *m_out = c;
-   ++m_out;
-}
-
-template <class OutputIterator, class Results, class traits, class ForwardIter>
-void basic_regex_formatter<OutputIterator, Results, traits, ForwardIter>::put(const sub_match_type& sub)
-{
-   typedef typename sub_match_type::iterator iterator_type;
-   iterator_type i = sub.first;
-   while(i != sub.second)
-   {
-      put(*i);
-      ++i;
-   }
-}
-
-template <class S>
-class string_out_iterator
-#ifndef NDNBOOST_NO_STD_ITERATOR
-   : public std::iterator<std::output_iterator_tag, typename S::value_type>
-#endif
-{
-   S* out;
-public:
-   string_out_iterator(S& s) : out(&s) {}
-   string_out_iterator& operator++() { return *this; }
-   string_out_iterator& operator++(int) { return *this; }
-   string_out_iterator& operator*() { return *this; }
-   string_out_iterator& operator=(typename S::value_type v) 
-   { 
-      out->append(1, v); 
-      return *this; 
-   }
-
-#ifdef NDNBOOST_NO_STD_ITERATOR
-   typedef std::ptrdiff_t difference_type;
-   typedef typename S::value_type value_type;
-   typedef value_type* pointer;
-   typedef value_type& reference;
-   typedef std::output_iterator_tag iterator_category;
-#endif
-};
-
-template <class OutputIterator, class Iterator, class Alloc, class ForwardIter, class traits>
-OutputIterator regex_format_imp(OutputIterator out,
-                          const match_results<Iterator, Alloc>& m,
-                          ForwardIter p1, ForwardIter p2,
-                          match_flag_type flags,
-                          const traits& t
-                         )
-{
-   if(flags & regex_constants::format_literal)
-   {
-      return re_detail::copy(p1, p2, out);
-   }
-
-   re_detail::basic_regex_formatter<
-      OutputIterator, 
-      match_results<Iterator, Alloc>, 
-      traits, ForwardIter> f(out, m, t);
-   return f.format(p1, p2, flags);
-}
-
-#ifndef NDNBOOST_NO_SFINAE
-
-NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(const_iterator)
-
-struct any_type 
-{
-   template <class T>
-   any_type(const T&); 
-   template <class T, class U>
-   any_type(const T&, const U&); 
-   template <class T, class U, class V>
-   any_type(const T&, const U&, const V&); 
-};
-typedef char no_type;
-typedef char (&unary_type)[2];
-typedef char (&binary_type)[3];
-typedef char (&ternary_type)[4];
-
-no_type check_is_formatter(unary_type, binary_type, ternary_type);
-template<typename T>
-unary_type check_is_formatter(T const &, binary_type, ternary_type);
-template<typename T>
-binary_type check_is_formatter(unary_type, T const &, ternary_type);
-template<typename T, typename U>
-binary_type check_is_formatter(T const &, U const &, ternary_type);
-template<typename T>
-ternary_type check_is_formatter(unary_type, binary_type, T const &);
-template<typename T, typename U>
-ternary_type check_is_formatter(T const &, binary_type, U const &);
-template<typename T, typename U>
-ternary_type check_is_formatter(unary_type, T const &, U const &);
-template<typename T, typename U, typename V>
-ternary_type check_is_formatter(T const &, U const &, V const &);
-
-struct unary_binary_ternary
-{
-    typedef unary_type (*unary_fun)(any_type);
-    typedef binary_type (*binary_fun)(any_type, any_type);
-    typedef ternary_type (*ternary_fun)(any_type, any_type, any_type);
-    operator unary_fun();
-    operator binary_fun();
-    operator ternary_fun();
-};
-
-template<typename Formatter, bool IsFunction = ndnboost::is_function<Formatter>::value>
-struct formatter_wrapper
-  : Formatter
-  , unary_binary_ternary
-{
-   formatter_wrapper(){}
-};
-
-template<typename Formatter>
-struct formatter_wrapper<Formatter, true>
-  : unary_binary_ternary
-{
-    operator Formatter *();
-};
-
-template<typename Formatter>
-struct formatter_wrapper<Formatter *, false>
-  : unary_binary_ternary
-{
-    operator Formatter *();
-};
-
-template <class F, class M, class O>
-struct format_traits_imp
-{
-private:
-   //
-   // F must be a pointer, a function, or a class with a function call operator:
-   //
-   NDNBOOST_STATIC_ASSERT((::ndnboost::is_pointer<F>::value || ::ndnboost::is_function<F>::value || ::ndnboost::is_class<F>::value));
-   static formatter_wrapper<typename unwrap_reference<F>::type> f;
-   static M m;
-   static O out;
-   static ndnboost::regex_constants::match_flag_type flags;
-public:
-   NDNBOOST_STATIC_CONSTANT(int, value = sizeof(check_is_formatter(f(m), f(m, out), f(m, out, flags))));
-};
-
-template <class F, class M, class O>
-struct format_traits
-{
-public:
-   // 
-   // Type is mpl::int_<N> where N is one of:
-   //
-   // 0 : F is a pointer to a presumably null-terminated string.
-   // 1 : F is a character-container such as a std::string.
-   // 2 : F is a Unary Functor.
-   // 3 : F is a Binary Functor.
-   // 4 : F is a Ternary Functor.
-   //
-   typedef typename ndnboost::mpl::if_<
-      ndnboost::mpl::and_<ndnboost::is_pointer<F>, ndnboost::mpl::not_<ndnboost::is_function<typename ndnboost::remove_pointer<F>::type> > >,
-      ndnboost::mpl::int_<0>,
-      typename ndnboost::mpl::if_<
-         has_const_iterator<F>,
-         ndnboost::mpl::int_<1>,
-         ndnboost::mpl::int_<format_traits_imp<F, M, O>::value>
-      >::type
-   >::type type;
-   //
-   // This static assertion will fail if the functor passed does not accept
-   // the same type of arguments passed.
-   //
-   NDNBOOST_STATIC_ASSERT( ndnboost::is_class<F>::value && !has_const_iterator<F>::value ? (type::value > 1) : true);
-};
-
-#else // NDNBOOST_NO_SFINAE
-
-template <class F, class M, class O>
-struct format_traits
-{
-public:
-   // 
-   // Type is mpl::int_<N> where N is one of:
-   //
-   // 0 : F is a pointer to a presumably null-terminated string.
-   // 1 : F is a character-container such as a std::string.
-   //
-   // Other options such as F being a Functor are not supported without
-   // SFINAE support.
-   //
-   typedef typename ndnboost::mpl::if_<
-      ndnboost::is_pointer<F>,
-      ndnboost::mpl::int_<0>,
-      ndnboost::mpl::int_<1>
-   >::type type;
-};
-
-#endif // NDNBOOST_NO_SFINAE
-
-template <class Base, class Match>
-struct format_functor3
-{
-   format_functor3(Base b) : func(b) {}
-   template <class OutputIter>
-   OutputIter operator()(const Match& m, OutputIter i, ndnboost::regex_constants::match_flag_type f)
-   {
-      return ndnboost::unwrap_ref(func)(m, i, f);
-   }
-   template <class OutputIter, class Traits>
-   OutputIter operator()(const Match& m, OutputIter i, ndnboost::regex_constants::match_flag_type f, const Traits&)
-   {
-      return (*this)(m, i, f);
-   }
-private:
-   Base func;
-   format_functor3(const format_functor3&);
-   format_functor3& operator=(const format_functor3&);
-};
-
-template <class Base, class Match>
-struct format_functor2
-{
-   format_functor2(Base b) : func(b) {}
-   template <class OutputIter>
-   OutputIter operator()(const Match& m, OutputIter i, ndnboost::regex_constants::match_flag_type /*f*/)
-   {
-      return ndnboost::unwrap_ref(func)(m, i);
-   }
-   template <class OutputIter, class Traits>
-   OutputIter operator()(const Match& m, OutputIter i, ndnboost::regex_constants::match_flag_type f, const Traits&)
-   {
-      return (*this)(m, i, f);
-   }
-private:
-   Base func;
-   format_functor2(const format_functor2&);
-   format_functor2& operator=(const format_functor2&);
-};
-
-template <class Base, class Match>
-struct format_functor1
-{
-   format_functor1(Base b) : func(b) {}
-
-   template <class S, class OutputIter>
-   OutputIter do_format_string(const S& s, OutputIter i)
-   {
-      return re_detail::copy(s.begin(), s.end(), i);
-   }
-   template <class S, class OutputIter>
-   inline OutputIter do_format_string(const S* s, OutputIter i)
-   {
-      while(s && *s)
-      {
-         *i = *s;
-         ++i;
-         ++s;
-      }
-      return i;
-   }
-   template <class OutputIter>
-   OutputIter operator()(const Match& m, OutputIter i, ndnboost::regex_constants::match_flag_type /*f*/)
-   {
-      return do_format_string(ndnboost::unwrap_ref(func)(m), i);
-   }
-   template <class OutputIter, class Traits>
-   OutputIter operator()(const Match& m, OutputIter i, ndnboost::regex_constants::match_flag_type f, const Traits&)
-   {
-      return (*this)(m, i, f);
-   }
-private:
-   Base func;
-   format_functor1(const format_functor1&);
-   format_functor1& operator=(const format_functor1&);
-};
-
-template <class charT, class Match, class Traits>
-struct format_functor_c_string
-{
-   format_functor_c_string(const charT* ps) : func(ps) {}
-
-   template <class OutputIter>
-   OutputIter operator()(const Match& m, OutputIter i, ndnboost::regex_constants::match_flag_type f, const Traits& t = Traits())
-   {
-      //typedef typename Match::char_type char_type;
-      const charT* end = func;
-      while(*end) ++end;
-      return regex_format_imp(i, m, func, end, f, t);
-   }
-private:
-   const charT* func;
-   format_functor_c_string(const format_functor_c_string&);
-   format_functor_c_string& operator=(const format_functor_c_string&);
-};
-
-template <class Container, class Match, class Traits>
-struct format_functor_container
-{
-   format_functor_container(const Container& c) : func(c) {}
-
-   template <class OutputIter>
-   OutputIter operator()(const Match& m, OutputIter i, ndnboost::regex_constants::match_flag_type f, const Traits& t = Traits())
-   {
-      //typedef typename Match::char_type char_type;
-      return re_detail::regex_format_imp(i, m, func.begin(), func.end(), f, t);
-   }
-private:
-   const Container& func;
-   format_functor_container(const format_functor_container&);
-   format_functor_container& operator=(const format_functor_container&);
-};
-
-template <class Func, class Match, class OutputIterator, class Traits = re_detail::trivial_format_traits<typename Match::char_type> >
-struct compute_functor_type
-{
-   typedef typename format_traits<Func, Match, OutputIterator>::type tag;
-   typedef typename ndnboost::remove_cv< typename ndnboost::remove_pointer<Func>::type>::type maybe_char_type;
-
-   typedef typename mpl::if_<
-      ::ndnboost::is_same<tag, mpl::int_<0> >, format_functor_c_string<maybe_char_type, Match, Traits>,
-      typename mpl::if_<
-         ::ndnboost::is_same<tag, mpl::int_<1> >, format_functor_container<Func, Match, Traits>,
-         typename mpl::if_<
-            ::ndnboost::is_same<tag, mpl::int_<2> >, format_functor1<Func, Match>,
-            typename mpl::if_<
-               ::ndnboost::is_same<tag, mpl::int_<3> >, format_functor2<Func, Match>, 
-               format_functor3<Func, Match>
-            >::type
-         >::type
-      >::type
-   >::type type;
-};
-
-} // namespace re_detail
-
-template <class OutputIterator, class Iterator, class Allocator, class Functor>
-inline OutputIterator regex_format(OutputIterator out,
-                          const match_results<Iterator, Allocator>& m,
-                          Functor fmt,
-                          match_flag_type flags = format_all
-                         )
-{
-   return m.format(out, fmt, flags);
-}
-
-template <class Iterator, class Allocator, class Functor>
-inline std::basic_string<typename match_results<Iterator, Allocator>::char_type> regex_format(const match_results<Iterator, Allocator>& m, 
-                                      Functor fmt, 
-                                      match_flag_type flags = format_all)
-{
-   return m.format(fmt, flags);
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_REGEX_FORMAT_HPP
-
-
-
-
-
-
diff --git a/include/ndnboost/regex/v4/regex_fwd.hpp b/include/ndnboost/regex/v4/regex_fwd.hpp
deleted file mode 100644
index e98050f..0000000
--- a/include/ndnboost/regex/v4/regex_fwd.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_fwd.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Forward declares ndnboost::basic_regex<> and
-  *                associated typedefs.
-  */
-
-#ifndef NDNBOOST_REGEX_FWD_HPP_INCLUDED
-#define NDNBOOST_REGEX_FWD_HPP_INCLUDED
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-
-//
-// define NDNBOOST_REGEX_NO_FWD if this
-// header doesn't work!
-//
-#ifdef NDNBOOST_REGEX_NO_FWD
-#  ifndef NDNBOOST_RE_REGEX_HPP
-#     include <ndnboost/regex.hpp>
-#  endif
-#else
-
-namespace ndnboost{
-
-template <class charT>
-class cpp_regex_traits;
-template <class charT>
-struct c_regex_traits;
-template <class charT>
-class w32_regex_traits;
-
-#ifdef NDNBOOST_REGEX_USE_WIN32_LOCALE
-template <class charT, class implementationT = w32_regex_traits<charT> >
-struct regex_traits;
-#elif defined(NDNBOOST_REGEX_USE_CPP_LOCALE)
-template <class charT, class implementationT = cpp_regex_traits<charT> >
-struct regex_traits;
-#else
-template <class charT, class implementationT = c_regex_traits<charT> >
-struct regex_traits;
-#endif
-
-template <class charT, class traits = regex_traits<charT> >
-class basic_regex;
-
-typedef basic_regex<char, regex_traits<char> > regex;
-#ifndef NDNBOOST_NO_WREGEX
-typedef basic_regex<wchar_t, regex_traits<wchar_t> > wregex;
-#endif
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_REGEX_NO_FWD
-
-#endif
-
-
-
-
diff --git a/include/ndnboost/regex/v4/regex_grep.hpp b/include/ndnboost/regex/v4/regex_grep.hpp
deleted file mode 100644
index ee789d2..0000000
--- a/include/ndnboost/regex/v4/regex_grep.hpp
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_grep.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Provides regex_grep implementation.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_REGEX_GREP_HPP
-#define NDNBOOST_REGEX_V4_REGEX_GREP_HPP
-
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-//
-// regex_grep:
-// find all non-overlapping matches within the sequence first last:
-//
-template <class Predicate, class BidiIterator, class charT, class traits>
-inline unsigned int regex_grep(Predicate foo, 
-                               BidiIterator first, 
-                               BidiIterator last, 
-                               const basic_regex<charT, traits>& e, 
-                               match_flag_type flags = match_default)
-{
-   if(e.flags() & regex_constants::failbit)
-      return false;
-
-   typedef typename match_results<BidiIterator>::allocator_type match_allocator_type;
-
-   match_results<BidiIterator> m;
-   re_detail::perl_matcher<BidiIterator, match_allocator_type, traits> matcher(first, last, m, e, flags, first);
-   unsigned int count = 0;
-   while(matcher.find())
-   {
-      ++count;
-      if(0 == foo(m))
-         return count; // caller doesn't want to go on
-      if(m[0].second == last)
-         return count; // we've reached the end, don't try and find an extra null match.
-      if(m.length() == 0)
-      {
-         if(m[0].second == last)
-            return count;
-         // we found a NULL-match, now try to find
-         // a non-NULL one at the same position:
-         match_results<BidiIterator, match_allocator_type> m2(m);
-         matcher.setf(match_not_null | match_continuous);
-         if(matcher.find())
-         {
-            ++count;
-            if(0 == foo(m))
-               return count;
-         }
-         else
-         {
-            // reset match back to where it was:
-            m = m2;
-         }
-         matcher.unsetf((match_not_null | match_continuous) & ~flags);
-      }
-   }
-   return count;
-}
-
-//
-// regex_grep convenience interfaces:
-#ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-//
-// this isn't really a partial specialisation, but template function
-// overloading - if the compiler doesn't support partial specialisation
-// then it really won't support this either:
-template <class Predicate, class charT, class traits>
-inline unsigned int regex_grep(Predicate foo, const charT* str, 
-                        const basic_regex<charT, traits>& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_grep(foo, str, str + traits::length(str), e, flags);
-}
-
-template <class Predicate, class ST, class SA, class charT, class traits>
-inline unsigned int regex_grep(Predicate foo, const std::basic_string<charT, ST, SA>& s, 
-                 const basic_regex<charT, traits>& e, 
-                 match_flag_type flags = match_default)
-{
-   return regex_grep(foo, s.begin(), s.end(), e, flags);
-}
-#else  // partial specialisation
-inline unsigned int regex_grep(bool (*foo)(const cmatch&), const char* str, 
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_grep(foo, str, str + regex::traits_type::length(str), e, flags);
-}
-#ifndef NDNBOOST_NO_WREGEX
-inline unsigned int regex_grep(bool (*foo)(const wcmatch&), const wchar_t* str, 
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_grep(foo, str, str + wregex::traits_type::length(str), e, flags);
-}
-#endif
-inline unsigned int regex_grep(bool (*foo)(const match_results<std::string::const_iterator>&), const std::string& s,
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_grep(foo, s.begin(), s.end(), e, flags);
-}
-#if !defined(NDNBOOST_NO_WREGEX)
-inline unsigned int regex_grep(bool (*foo)(const match_results<std::basic_string<wchar_t>::const_iterator>&), 
-                     const std::basic_string<wchar_t>& s, 
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_grep(foo, s.begin(), s.end(), e, flags);
-}
-#endif
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_REGEX_V4_REGEX_GREP_HPP
-
diff --git a/include/ndnboost/regex/v4/regex_iterator.hpp b/include/ndnboost/regex/v4/regex_iterator.hpp
deleted file mode 100644
index 0c0136e..0000000
--- a/include/ndnboost/regex/v4/regex_iterator.hpp
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- *
- * Copyright (c) 2003
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_iterator.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Provides regex_iterator implementation.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_REGEX_ITERATOR_HPP
-#define NDNBOOST_REGEX_V4_REGEX_ITERATOR_HPP
-
-#include <ndnboost/shared_ptr.hpp>
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <class BidirectionalIterator, 
-          class charT,
-          class traits>
-class regex_iterator_implementation 
-{
-   typedef basic_regex<charT, traits> regex_type;
-
-   match_results<BidirectionalIterator> what;  // current match
-   BidirectionalIterator                base;  // start of sequence
-   BidirectionalIterator                end;   // end of sequence
-   const regex_type                     re;   // the expression
-   match_flag_type                      flags; // flags for matching
-
-public:
-   regex_iterator_implementation(const regex_type* p, BidirectionalIterator last, match_flag_type f)
-      : base(), end(last), re(*p), flags(f){}
-   bool init(BidirectionalIterator first)
-   {
-      base = first;
-      return regex_search(first, end, what, re, flags);
-   }
-   bool compare(const regex_iterator_implementation& that)
-   {
-      if(this == &that) return true;
-      return (&re.get_data() == &that.re.get_data()) && (end == that.end) && (flags == that.flags) && (what[0].first == that.what[0].first) && (what[0].second == that.what[0].second);
-   }
-   const match_results<BidirectionalIterator>& get()
-   { return what; }
-   bool next()
-   {
-      //if(what.prefix().first != what[0].second)
-      //   flags |= match_prev_avail;
-      BidirectionalIterator next_start = what[0].second;
-      match_flag_type f(flags);
-      if(!what.length() || (f & regex_constants::match_posix))
-         f |= regex_constants::match_not_initial_null;
-      //if(base != next_start)
-      //   f |= regex_constants::match_not_bob;
-      bool result = regex_search(next_start, end, what, re, f, base);
-      if(result)
-         what.set_base(base);
-      return result;
-   }
-private:
-   regex_iterator_implementation& operator=(const regex_iterator_implementation&);
-};
-
-template <class BidirectionalIterator, 
-          class charT = NDNBOOST_DEDUCED_TYPENAME re_detail::regex_iterator_traits<BidirectionalIterator>::value_type,
-          class traits = regex_traits<charT> >
-class regex_iterator 
-#ifndef NDNBOOST_NO_STD_ITERATOR
-   : public std::iterator<
-         std::forward_iterator_tag, 
-         match_results<BidirectionalIterator>,
-         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,
-         const match_results<BidirectionalIterator>*,
-         const match_results<BidirectionalIterator>& >         
-#endif
-{
-private:
-   typedef regex_iterator_implementation<BidirectionalIterator, charT, traits> impl;
-   typedef shared_ptr<impl> pimpl;
-public:
-   typedef          basic_regex<charT, traits>                   regex_type;
-   typedef          match_results<BidirectionalIterator>                    value_type;
-   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type 
-                                                                            difference_type;
-   typedef          const value_type*                                       pointer;
-   typedef          const value_type&                                       reference; 
-   typedef          std::forward_iterator_tag                               iterator_category;
-   
-   regex_iterator(){}
-   regex_iterator(BidirectionalIterator a, BidirectionalIterator b, 
-                  const regex_type& re, 
-                  match_flag_type m = match_default)
-                  : pdata(new impl(&re, b, m))
-   {
-      if(!pdata->init(a))
-      {
-         pdata.reset();
-      }
-   }
-   regex_iterator(const regex_iterator& that)
-      : pdata(that.pdata) {}
-   regex_iterator& operator=(const regex_iterator& that)
-   {
-      pdata = that.pdata;
-      return *this;
-   }
-   bool operator==(const regex_iterator& that)const
-   { 
-      if((pdata.get() == 0) || (that.pdata.get() == 0))
-         return pdata.get() == that.pdata.get();
-      return pdata->compare(*(that.pdata.get())); 
-   }
-   bool operator!=(const regex_iterator& that)const
-   { return !(*this == that); }
-   const value_type& operator*()const
-   { return pdata->get(); }
-   const value_type* operator->()const
-   { return &(pdata->get()); }
-   regex_iterator& operator++()
-   {
-      cow();
-      if(0 == pdata->next())
-      {
-         pdata.reset();
-      }
-      return *this;
-   }
-   regex_iterator operator++(int)
-   {
-      regex_iterator result(*this);
-      ++(*this);
-      return result;
-   }
-private:
-
-   pimpl pdata;
-
-   void cow()
-   {
-      // copy-on-write
-      if(pdata.get() && !pdata.unique())
-      {
-         pdata.reset(new impl(*(pdata.get())));
-      }
-   }
-};
-
-typedef regex_iterator<const char*> cregex_iterator;
-typedef regex_iterator<std::string::const_iterator> sregex_iterator;
-#ifndef NDNBOOST_NO_WREGEX
-typedef regex_iterator<const wchar_t*> wcregex_iterator;
-typedef regex_iterator<std::wstring::const_iterator> wsregex_iterator;
-#endif
-
-// make_regex_iterator:
-template <class charT, class traits>
-inline regex_iterator<const charT*, charT, traits> make_regex_iterator(const charT* p, const basic_regex<charT, traits>& e, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return regex_iterator<const charT*, charT, traits>(p, p+traits::length(p), e, m);
-}
-template <class charT, class traits, class ST, class SA>
-inline regex_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits> make_regex_iterator(const std::basic_string<charT, ST, SA>& p, const basic_regex<charT, traits>& e, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return regex_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits>(p.begin(), p.end(), e, m);
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_REGEX_V4_REGEX_ITERATOR_HPP
-
diff --git a/include/ndnboost/regex/v4/regex_match.hpp b/include/ndnboost/regex/v4/regex_match.hpp
deleted file mode 100644
index 81f9b9b..0000000
--- a/include/ndnboost/regex/v4/regex_match.hpp
+++ /dev/null
@@ -1,382 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_match.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Regular expression matching algorithms.
-  *                Note this is an internal header file included
-  *                by regex.hpp, do not include on its own.
-  */
-
-
-#ifndef NDNBOOST_REGEX_MATCH_HPP
-#define NDNBOOST_REGEX_MATCH_HPP
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-//
-// proc regex_match
-// returns true if the specified regular expression matches
-// the whole of the input.  Fills in what matched in m.
-//
-template <class BidiIterator, class Allocator, class charT, class traits>
-bool regex_match(BidiIterator first, BidiIterator last, 
-                 match_results<BidiIterator, Allocator>& m, 
-                 const basic_regex<charT, traits>& e, 
-                 match_flag_type flags = match_default)
-{
-   re_detail::perl_matcher<BidiIterator, Allocator, traits> matcher(first, last, m, e, flags, first);
-   return matcher.match();
-}
-template <class iterator, class charT, class traits>
-bool regex_match(iterator first, iterator last, 
-                 const basic_regex<charT, traits>& e, 
-                 match_flag_type flags = match_default)
-{
-   match_results<iterator> m;
-   return regex_match(first, last, m, e, flags | regex_constants::match_any);
-}
-//
-// query_match convenience interfaces:
-#ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-//
-// this isn't really a partial specialisation, but template function
-// overloading - if the compiler doesn't support partial specialisation
-// then it really won't support this either:
-template <class charT, class Allocator, class traits>
-inline bool regex_match(const charT* str, 
-                        match_results<const charT*, Allocator>& m, 
-                        const basic_regex<charT, traits>& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(str, str + traits::length(str), m, e, flags);
-}
-
-template <class ST, class SA, class Allocator, class charT, class traits>
-inline bool regex_match(const std::basic_string<charT, ST, SA>& s, 
-                 match_results<typename std::basic_string<charT, ST, SA>::const_iterator, Allocator>& m, 
-                 const basic_regex<charT, traits>& e, 
-                 match_flag_type flags = match_default)
-{
-   return regex_match(s.begin(), s.end(), m, e, flags);
-}
-template <class charT, class traits>
-inline bool regex_match(const charT* str, 
-                        const basic_regex<charT, traits>& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const charT*> m;
-   return regex_match(str, str + traits::length(str), m, e, flags | regex_constants::match_any);
-}
-
-template <class ST, class SA, class charT, class traits>
-inline bool regex_match(const std::basic_string<charT, ST, SA>& s, 
-                 const basic_regex<charT, traits>& e, 
-                 match_flag_type flags = match_default)
-{
-   typedef typename std::basic_string<charT, ST, SA>::const_iterator iterator;
-   match_results<iterator> m;
-   return regex_match(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#else  // partial ordering
-inline bool regex_match(const char* str, 
-                        cmatch& m, 
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(str, str + regex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_match(const char* str, 
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const char*> m;
-   return regex_match(str, str + regex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#ifndef NDNBOOST_NO_STD_LOCALE
-inline bool regex_match(const char* str, 
-                        cmatch& m, 
-                        const basic_regex<char, cpp_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(str, str + regex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_match(const char* str, 
-                        const basic_regex<char, cpp_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const char*> m;
-   return regex_match(str, str + regex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#endif
-inline bool regex_match(const char* str, 
-                        cmatch& m, 
-                        const basic_regex<char, c_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(str, str + regex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_match(const char* str, 
-                        const basic_regex<char, c_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const char*> m;
-   return regex_match(str, str + regex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#if defined(_WIN32) && !defined(NDNBOOST_REGEX_NO_W32)
-inline bool regex_match(const char* str, 
-                        cmatch& m, 
-                        const basic_regex<char, w32_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(str, str + regex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_match(const char* str, 
-                        const basic_regex<char, w32_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const char*> m;
-   return regex_match(str, str + regex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#endif
-#ifndef NDNBOOST_NO_WREGEX
-inline bool regex_match(const wchar_t* str, 
-                        wcmatch& m, 
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(str, str + wregex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_match(const wchar_t* str, 
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const wchar_t*> m;
-   return regex_match(str, str + wregex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#ifndef NDNBOOST_NO_STD_LOCALE
-inline bool regex_match(const wchar_t* str, 
-                        wcmatch& m, 
-                        const basic_regex<wchar_t, cpp_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(str, str + wregex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_match(const wchar_t* str, 
-                        const basic_regex<wchar_t, cpp_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const wchar_t*> m;
-   return regex_match(str, str + wregex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#endif
-inline bool regex_match(const wchar_t* str, 
-                        wcmatch& m, 
-                        const basic_regex<wchar_t, c_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(str, str + wregex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_match(const wchar_t* str, 
-                        const basic_regex<wchar_t, c_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const wchar_t*> m;
-   return regex_match(str, str + wregex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#if defined(_WIN32) && !defined(NDNBOOST_REGEX_NO_W32)
-inline bool regex_match(const wchar_t* str, 
-                        wcmatch& m, 
-                        const basic_regex<wchar_t, w32_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(str, str + wregex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_match(const wchar_t* str, 
-                        const basic_regex<wchar_t, w32_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<const wchar_t*> m;
-   return regex_match(str, str + wregex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#endif
-#endif
-inline bool regex_match(const std::string& s, 
-                        smatch& m,
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(s.begin(), s.end(), m, e, flags);
-}
-inline bool regex_match(const std::string& s, 
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::string::const_iterator> m;
-   return regex_match(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#ifndef NDNBOOST_NO_STD_LOCALE
-inline bool regex_match(const std::string& s, 
-                        smatch& m,
-                        const basic_regex<char, cpp_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(s.begin(), s.end(), m, e, flags);
-}
-inline bool regex_match(const std::string& s, 
-                        const basic_regex<char, cpp_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::string::const_iterator> m;
-   return regex_match(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#endif
-inline bool regex_match(const std::string& s, 
-                        smatch& m,
-                        const basic_regex<char, c_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(s.begin(), s.end(), m, e, flags);
-}
-inline bool regex_match(const std::string& s, 
-                        const basic_regex<char, c_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::string::const_iterator> m;
-   return regex_match(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#if defined(_WIN32) && !defined(NDNBOOST_REGEX_NO_W32)
-inline bool regex_match(const std::string& s, 
-                        smatch& m,
-                        const basic_regex<char, w32_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(s.begin(), s.end(), m, e, flags);
-}
-inline bool regex_match(const std::string& s, 
-                        const basic_regex<char, w32_regex_traits<char> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::string::const_iterator> m;
-   return regex_match(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#endif
-#if !defined(NDNBOOST_NO_WREGEX)
-inline bool regex_match(const std::basic_string<wchar_t>& s, 
-                        match_results<std::basic_string<wchar_t>::const_iterator>& m,
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(s.begin(), s.end(), m, e, flags);
-}
-inline bool regex_match(const std::basic_string<wchar_t>& s, 
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::basic_string<wchar_t>::const_iterator> m;
-   return regex_match(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#ifndef NDNBOOST_NO_STD_LOCALE
-inline bool regex_match(const std::basic_string<wchar_t>& s, 
-                        match_results<std::basic_string<wchar_t>::const_iterator>& m,
-                        const basic_regex<wchar_t, cpp_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(s.begin(), s.end(), m, e, flags);
-}
-inline bool regex_match(const std::basic_string<wchar_t>& s, 
-                        const basic_regex<wchar_t, cpp_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::basic_string<wchar_t>::const_iterator> m;
-   return regex_match(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#endif
-inline bool regex_match(const std::basic_string<wchar_t>& s, 
-                        match_results<std::basic_string<wchar_t>::const_iterator>& m,
-                        const basic_regex<wchar_t, c_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(s.begin(), s.end(), m, e, flags);
-}
-inline bool regex_match(const std::basic_string<wchar_t>& s, 
-                        const basic_regex<wchar_t, c_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::basic_string<wchar_t>::const_iterator> m;
-   return regex_match(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#if defined(_WIN32) && !defined(NDNBOOST_REGEX_NO_W32)
-inline bool regex_match(const std::basic_string<wchar_t>& s, 
-                        match_results<std::basic_string<wchar_t>::const_iterator>& m,
-                        const basic_regex<wchar_t, w32_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_match(s.begin(), s.end(), m, e, flags);
-}
-inline bool regex_match(const std::basic_string<wchar_t>& s, 
-                        const basic_regex<wchar_t, w32_regex_traits<wchar_t> >& e, 
-                        match_flag_type flags = match_default)
-{
-   match_results<std::basic_string<wchar_t>::const_iterator> m;
-   return regex_match(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#endif
-#endif
-
-#endif
-
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif   // NDNBOOST_REGEX_MATCH_HPP
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/include/ndnboost/regex/v4/regex_merge.hpp b/include/ndnboost/regex/v4/regex_merge.hpp
deleted file mode 100644
index 21b914f..0000000
--- a/include/ndnboost/regex/v4/regex_merge.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_format.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Provides formatting output routines for search and replace
-  *                operations.  Note this is an internal header file included
-  *                by regex.hpp, do not include on its own.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_REGEX_MERGE_HPP
-#define NDNBOOST_REGEX_V4_REGEX_MERGE_HPP
-
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <class OutputIterator, class Iterator, class traits, class charT>
-inline OutputIterator regex_merge(OutputIterator out,
-                         Iterator first,
-                         Iterator last,
-                         const basic_regex<charT, traits>& e, 
-                         const charT* fmt, 
-                         match_flag_type flags = match_default)
-{
-   return regex_replace(out, first, last, e, fmt, flags);
-}
-
-template <class OutputIterator, class Iterator, class traits, class charT>
-inline OutputIterator regex_merge(OutputIterator out,
-                         Iterator first,
-                         Iterator last,
-                         const basic_regex<charT, traits>& e, 
-                         const std::basic_string<charT>& fmt,
-                         match_flag_type flags = match_default)
-{
-   return regex_merge(out, first, last, e, fmt.c_str(), flags);
-}
-
-template <class traits, class charT>
-inline std::basic_string<charT> regex_merge(const std::basic_string<charT>& s,
-                         const basic_regex<charT, traits>& e, 
-                         const charT* fmt,
-                         match_flag_type flags = match_default)
-{
-   return regex_replace(s, e, fmt, flags);
-}
-
-template <class traits, class charT>
-inline std::basic_string<charT> regex_merge(const std::basic_string<charT>& s,
-                         const basic_regex<charT, traits>& e, 
-                         const std::basic_string<charT>& fmt,
-                         match_flag_type flags = match_default)
-{
-   return regex_replace(s, e, fmt, flags);
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_REGEX_V4_REGEX_MERGE_HPP
-
-
diff --git a/include/ndnboost/regex/v4/regex_raw_buffer.hpp b/include/ndnboost/regex/v4/regex_raw_buffer.hpp
deleted file mode 100644
index 1990359..0000000
--- a/include/ndnboost/regex/v4/regex_raw_buffer.hpp
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_raw_buffer.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Raw character buffer for regex code.
-  *                Note this is an internal header file included
-  *                by regex.hpp, do not include on its own.
-  */
-
-#ifndef NDNBOOST_REGEX_RAW_BUFFER_HPP
-#define NDNBOOST_REGEX_RAW_BUFFER_HPP
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-
-#include <algorithm>
-#include <cstddef>
-
-namespace ndnboost{
-   namespace re_detail{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-struct empty_padding{};
-
-union padding
-{
-   void* p;
-   unsigned int i;
-};
-
-template <int N>
-struct padding3
-{
-   enum{
-      padding_size = 8,
-      padding_mask = 7
-   };
-};
-
-template<>
-struct padding3<2>
-{
-   enum{
-      padding_size = 2,
-      padding_mask = 1
-   };
-};
-
-template<>
-struct padding3<4>
-{
-   enum{
-      padding_size = 4,
-      padding_mask = 3
-   };
-};
-
-template<>
-struct padding3<8>
-{
-   enum{
-      padding_size = 8,
-      padding_mask = 7
-   };
-};
-
-template<>
-struct padding3<16>
-{
-   enum{
-      padding_size = 16,
-      padding_mask = 15
-   };
-};
-
-enum{
-   padding_size = padding3<sizeof(padding)>::padding_size,
-   padding_mask = padding3<sizeof(padding)>::padding_mask
-};
-
-//
-// class raw_storage
-// basically this is a simplified vector<unsigned char>
-// this is used by basic_regex for expression storage
-//
-
-class NDNBOOST_REGEX_DECL raw_storage
-{
-public:
-   typedef std::size_t           size_type;
-   typedef unsigned char*        pointer;
-private:
-   pointer last, start, end;
-public:
-
-   raw_storage();
-   raw_storage(size_type n);
-
-   ~raw_storage()
-   {
-      ::operator delete(start);
-   }
-
-   void NDNBOOST_REGEX_CALL resize(size_type n);
-   
-   void* NDNBOOST_REGEX_CALL extend(size_type n)
-   {
-      if(size_type(last - end) < n)
-         resize(n + (end - start));
-      register pointer result = end;
-      end += n;
-      return result;
-   }
-
-   void* NDNBOOST_REGEX_CALL insert(size_type pos, size_type n);
-
-   size_type NDNBOOST_REGEX_CALL size()
-   {
-      return end - start;
-   }
-
-   size_type NDNBOOST_REGEX_CALL capacity()
-   {
-      return last - start;
-   }
-
-   void* NDNBOOST_REGEX_CALL data()const
-   {
-      return start;
-   }
-
-   size_type NDNBOOST_REGEX_CALL index(void* ptr)
-   {
-      return static_cast<pointer>(ptr) - static_cast<pointer>(data());
-   }
-
-   void NDNBOOST_REGEX_CALL clear()
-   {
-      end = start;
-   }
-
-   void NDNBOOST_REGEX_CALL align()
-   {
-      // move end up to a boundary:
-      end = start + (((end - start) + padding_mask) & ~padding_mask);
-   }
-   void swap(raw_storage& that)
-   {
-      std::swap(start, that.start);
-      std::swap(end, that.end);
-      std::swap(last, that.last);
-  }
-};
-
-inline raw_storage::raw_storage()
-{
-   last = start = end = 0;
-}
-
-inline raw_storage::raw_storage(size_type n)
-{
-   start = end = static_cast<pointer>(::operator new(n));
-   NDNBOOST_REGEX_NOEH_ASSERT(start)
-   last = start + n;
-}
-
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace re_detail
-} // namespace ndnboost
-
-#endif
-
-
-
-
-
-
diff --git a/include/ndnboost/regex/v4/regex_replace.hpp b/include/ndnboost/regex/v4/regex_replace.hpp
deleted file mode 100644
index bb24fa8..0000000
--- a/include/ndnboost/regex/v4/regex_replace.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2009
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_format.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Provides formatting output routines for search and replace
-  *                operations.  Note this is an internal header file included
-  *                by regex.hpp, do not include on its own.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_REGEX_REPLACE_HPP
-#define NDNBOOST_REGEX_V4_REGEX_REPLACE_HPP
-
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <class OutputIterator, class BidirectionalIterator, class traits, class charT, class Formatter>
-OutputIterator regex_replace(OutputIterator out,
-                         BidirectionalIterator first,
-                         BidirectionalIterator last,
-                         const basic_regex<charT, traits>& e, 
-                         Formatter fmt, 
-                         match_flag_type flags = match_default)
-{
-   regex_iterator<BidirectionalIterator, charT, traits> i(first, last, e, flags);
-   regex_iterator<BidirectionalIterator, charT, traits> j;
-   if(i == j)
-   {
-      if(!(flags & regex_constants::format_no_copy))
-         out = re_detail::copy(first, last, out);
-   }
-   else
-   {
-      BidirectionalIterator last_m(first);
-      while(i != j)
-      {
-         if(!(flags & regex_constants::format_no_copy))
-            out = re_detail::copy(i->prefix().first, i->prefix().second, out); 
-         out = i->format(out, fmt, flags, e);
-         last_m = (*i)[0].second;
-         if(flags & regex_constants::format_first_only)
-            break;
-         ++i;
-      }
-      if(!(flags & regex_constants::format_no_copy))
-         out = re_detail::copy(last_m, last, out);
-   }
-   return out;
-}
-
-template <class traits, class charT, class Formatter>
-std::basic_string<charT> regex_replace(const std::basic_string<charT>& s,
-                         const basic_regex<charT, traits>& e, 
-                         Formatter fmt,
-                         match_flag_type flags = match_default)
-{
-   std::basic_string<charT> result;
-   re_detail::string_out_iterator<std::basic_string<charT> > i(result);
-   regex_replace(i, s.begin(), s.end(), e, fmt, flags);
-   return result;
-}
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_REGEX_V4_REGEX_REPLACE_HPP
-
-
diff --git a/include/ndnboost/regex/v4/regex_search.hpp b/include/ndnboost/regex/v4/regex_search.hpp
deleted file mode 100644
index 2a480fd..0000000
--- a/include/ndnboost/regex/v4/regex_search.hpp
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_search.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Provides regex_search implementation.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_REGEX_SEARCH_HPP
-#define NDNBOOST_REGEX_V4_REGEX_SEARCH_HPP
-
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <class BidiIterator, class Allocator, class charT, class traits>
-bool regex_search(BidiIterator first, BidiIterator last, 
-                  match_results<BidiIterator, Allocator>& m, 
-                  const basic_regex<charT, traits>& e, 
-                  match_flag_type flags = match_default)
-{
-   return regex_search(first, last, m, e, flags, first);
-}
-
-template <class BidiIterator, class Allocator, class charT, class traits>
-bool regex_search(BidiIterator first, BidiIterator last, 
-                  match_results<BidiIterator, Allocator>& m, 
-                  const basic_regex<charT, traits>& e, 
-                  match_flag_type flags,
-                  BidiIterator base)
-{
-   if(e.flags() & regex_constants::failbit)
-      return false;
-
-   re_detail::perl_matcher<BidiIterator, Allocator, traits> matcher(first, last, m, e, flags, base);
-   return matcher.find();
-}
-
-//
-// regex_search convenience interfaces:
-#ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-//
-// this isn't really a partial specialisation, but template function
-// overloading - if the compiler doesn't support partial specialisation
-// then it really won't support this either:
-template <class charT, class Allocator, class traits>
-inline bool regex_search(const charT* str, 
-                        match_results<const charT*, Allocator>& m, 
-                        const basic_regex<charT, traits>& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_search(str, str + traits::length(str), m, e, flags);
-}
-
-template <class ST, class SA, class Allocator, class charT, class traits>
-inline bool regex_search(const std::basic_string<charT, ST, SA>& s, 
-                 match_results<typename std::basic_string<charT, ST, SA>::const_iterator, Allocator>& m, 
-                 const basic_regex<charT, traits>& e, 
-                 match_flag_type flags = match_default)
-{
-   return regex_search(s.begin(), s.end(), m, e, flags);
-}
-#else  // partial overloads:
-inline bool regex_search(const char* str, 
-                        cmatch& m, 
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_search(str, str + regex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_search(const char* first, const char* last, 
-                  const regex& e, 
-                  match_flag_type flags = match_default)
-{
-   cmatch m;
-   return regex_search(first, last, m, e, flags | regex_constants::match_any);
-}
-
-#ifndef NDNBOOST_NO_WREGEX
-inline bool regex_search(const wchar_t* str, 
-                        wcmatch& m, 
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_search(str, str + wregex::traits_type::length(str), m, e, flags);
-}
-inline bool regex_search(const wchar_t* first, const wchar_t* last, 
-                  const wregex& e, 
-                  match_flag_type flags = match_default)
-{
-   wcmatch m;
-   return regex_search(first, last, m, e, flags | regex_constants::match_any);
-}
-#endif
-inline bool regex_search(const std::string& s, 
-                        smatch& m,
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_search(s.begin(), s.end(), m, e, flags);
-}
-#if !defined(NDNBOOST_NO_WREGEX)
-inline bool regex_search(const std::basic_string<wchar_t>& s, 
-                        wsmatch& m,
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_search(s.begin(), s.end(), m, e, flags);
-}
-#endif
-
-#endif
-
-template <class BidiIterator, class charT, class traits>
-bool regex_search(BidiIterator first, BidiIterator last, 
-                  const basic_regex<charT, traits>& e, 
-                  match_flag_type flags = match_default)
-{
-   if(e.flags() & regex_constants::failbit)
-      return false;
-
-   match_results<BidiIterator> m;
-   typedef typename match_results<BidiIterator>::allocator_type match_alloc_type;
-   re_detail::perl_matcher<BidiIterator, match_alloc_type, traits> matcher(first, last, m, e, flags | regex_constants::match_any, first);
-   return matcher.find();
-}
-
-#ifndef NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-template <class charT, class traits>
-inline bool regex_search(const charT* str, 
-                        const basic_regex<charT, traits>& e, 
-                        match_flag_type flags = match_default)
-{
-   return regex_search(str, str + traits::length(str), e, flags);
-}
-
-template <class ST, class SA, class charT, class traits>
-inline bool regex_search(const std::basic_string<charT, ST, SA>& s, 
-                 const basic_regex<charT, traits>& e, 
-                 match_flag_type flags = match_default)
-{
-   return regex_search(s.begin(), s.end(), e, flags);
-}
-#else  // non-template function overloads
-inline bool regex_search(const char* str, 
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   cmatch m;
-   return regex_search(str, str + regex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#ifndef NDNBOOST_NO_WREGEX
-inline bool regex_search(const wchar_t* str, 
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   wcmatch m;
-   return regex_search(str, str + wregex::traits_type::length(str), m, e, flags | regex_constants::match_any);
-}
-#endif
-inline bool regex_search(const std::string& s, 
-                        const regex& e, 
-                        match_flag_type flags = match_default)
-{
-   smatch m;
-   return regex_search(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-#if !defined(NDNBOOST_NO_WREGEX)
-inline bool regex_search(const std::basic_string<wchar_t>& s, 
-                        const wregex& e, 
-                        match_flag_type flags = match_default)
-{
-   wsmatch m;
-   return regex_search(s.begin(), s.end(), m, e, flags | regex_constants::match_any);
-}
-
-#endif // NDNBOOST_NO_WREGEX
-
-#endif // partial overload
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_REGEX_V4_REGEX_SEARCH_HPP
-
-
diff --git a/include/ndnboost/regex/v4/regex_split.hpp b/include/ndnboost/regex/v4/regex_split.hpp
deleted file mode 100644
index cdc67b3..0000000
--- a/include/ndnboost/regex/v4/regex_split.hpp
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_split.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Implements regex_split and associated functions.
-  *                Note this is an internal header file included
-  *                by regex.hpp, do not include on its own.
-  */
-
-#ifndef NDNBOOST_REGEX_SPLIT_HPP
-#define NDNBOOST_REGEX_SPLIT_HPP
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable: 4800)
-#endif
-
-namespace re_detail{
-
-template <class charT>
-const basic_regex<charT>& get_default_expression(charT)
-{
-   static const charT expression_text[4] = { '\\', 's', '+', '\00', };
-   static const basic_regex<charT> e(expression_text);
-   return e;
-}
-
-template <class OutputIterator, class charT, class Traits1, class Alloc1>
-class split_pred
-{
-   typedef std::basic_string<charT, Traits1, Alloc1> string_type;
-   typedef typename string_type::const_iterator iterator_type;
-   iterator_type* p_last;
-   OutputIterator* p_out;
-   std::size_t* p_max;
-   std::size_t initial_max;
-public:
-   split_pred(iterator_type* a, OutputIterator* b, std::size_t* c)
-      : p_last(a), p_out(b), p_max(c), initial_max(*c) {}
-
-   bool operator()(const match_results<iterator_type>& what);
-};
-
-template <class OutputIterator, class charT, class Traits1, class Alloc1>
-bool split_pred<OutputIterator, charT, Traits1, Alloc1>::operator()
-   (const match_results<iterator_type>& what)
-{
-   *p_last = what[0].second;
-   if(what.size() > 1)
-   {
-      // output sub-expressions only:
-      for(unsigned i = 1; i < what.size(); ++i)
-      {
-         *(*p_out) = what.str(i);
-         ++(*p_out);
-         if(0 == --*p_max) return false;
-      }
-      return *p_max != 0;
-   }
-   else
-   {
-      // output $` only if it's not-null or not at the start of the input:
-      const sub_match<iterator_type>& sub = what[-1];
-      if((sub.first != sub.second) || (*p_max != initial_max))
-      {
-         *(*p_out) = sub.str();
-         ++(*p_out);
-         return --*p_max;
-      }
-   }
-   //
-   // initial null, do nothing:
-   return true;
-}
-
-} // namespace re_detail
-
-template <class OutputIterator, class charT, class Traits1, class Alloc1, class Traits2>
-std::size_t regex_split(OutputIterator out,
-                   std::basic_string<charT, Traits1, Alloc1>& s, 
-                   const basic_regex<charT, Traits2>& e,
-                   match_flag_type flags,
-                   std::size_t max_split)
-{
-   typedef typename std::basic_string<charT, Traits1, Alloc1>::const_iterator  ci_t;
-   //typedef typename match_results<ci_t>::allocator_type                        match_allocator;
-   ci_t last = s.begin();
-   std::size_t init_size = max_split;
-   re_detail::split_pred<OutputIterator, charT, Traits1, Alloc1> pred(&last, &out, &max_split);
-   ci_t i, j;
-   i = s.begin();
-   j = s.end();
-   regex_grep(pred, i, j, e, flags);
-   //
-   // if there is still input left, do a final push as long as max_split
-   // is not exhausted, and we're not splitting sub-expressions rather 
-   // than whitespace:
-   if(max_split && (last != s.end()) && (e.mark_count() == 1))
-   {
-      *out = std::basic_string<charT, Traits1, Alloc1>((ci_t)last, (ci_t)s.end());
-      ++out;
-      last = s.end();
-      --max_split;
-   }
-   //
-   // delete from the string everything that has been processed so far:
-   s.erase(0, last - s.begin());
-   //
-   // return the number of new records pushed:
-   return init_size - max_split;
-}
-
-template <class OutputIterator, class charT, class Traits1, class Alloc1, class Traits2>
-inline std::size_t regex_split(OutputIterator out,
-                   std::basic_string<charT, Traits1, Alloc1>& s, 
-                   const basic_regex<charT, Traits2>& e,
-                   match_flag_type flags = match_default)
-{
-   return regex_split(out, s, e, flags, UINT_MAX);
-}
-
-template <class OutputIterator, class charT, class Traits1, class Alloc1>
-inline std::size_t regex_split(OutputIterator out,
-                   std::basic_string<charT, Traits1, Alloc1>& s)
-{
-   return regex_split(out, s, re_detail::get_default_expression(charT(0)), match_default, UINT_MAX);
-}
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif
-
-
diff --git a/include/ndnboost/regex/v4/regex_token_iterator.hpp b/include/ndnboost/regex/v4/regex_token_iterator.hpp
deleted file mode 100644
index 7b61c9c..0000000
--- a/include/ndnboost/regex/v4/regex_token_iterator.hpp
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- *
- * Copyright (c) 2003
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_token_iterator.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Provides regex_token_iterator implementation.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_REGEX_TOKEN_ITERATOR_HPP
-#define NDNBOOST_REGEX_V4_REGEX_TOKEN_ITERATOR_HPP
-
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#if (NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x560) && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x570)))\
-      || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
-      || NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003))
-//
-// Borland C++ Builder 6, and Visual C++ 6,
-// can't cope with the array template constructor
-// so we have a template member that will accept any type as 
-// argument, and then assert that is really is an array:
-//
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-#endif
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, > 1300)
-#  pragma warning(push)
-#  pragma warning(disable:4700)
-#endif
-
-template <class BidirectionalIterator,
-          class charT,
-          class traits>
-class regex_token_iterator_implementation 
-{
-   typedef basic_regex<charT, traits> regex_type;
-   typedef sub_match<BidirectionalIterator>      value_type;
-
-   match_results<BidirectionalIterator> what;   // current match
-   BidirectionalIterator                base;    // start of search area
-   BidirectionalIterator                end;    // end of search area
-   const regex_type                     re;    // the expression
-   match_flag_type                      flags;  // match flags
-   value_type                           result; // the current string result
-   int                                  N;      // the current sub-expression being enumerated
-   std::vector<int>                     subs;   // the sub-expressions to enumerate
-
-public:
-   regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, int sub, match_flag_type f)
-      : end(last), re(*p), flags(f){ subs.push_back(sub); }
-   regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const std::vector<int>& v, match_flag_type f)
-      : end(last), re(*p), flags(f), subs(v){}
-#if !NDNBOOST_WORKAROUND(__HP_aCC, < 60700)
-#if (NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x560) && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x570)))\
-      || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
-      || NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003)) \
-      || NDNBOOST_WORKAROUND(__HP_aCC, < 60700)
-   template <class T>
-   regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const T& submatches, match_flag_type f)
-      : end(last), re(*p), flags(f)
-   {
-      // assert that T really is an array:
-      NDNBOOST_STATIC_ASSERT(::ndnboost::is_array<T>::value);
-      const std::size_t array_size = sizeof(T) / sizeof(submatches[0]);
-      for(std::size_t i = 0; i < array_size; ++i)
-      {
-         subs.push_back(submatches[i]);
-      }
-   }
-#else
-   template <std::size_t CN>
-   regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const int (&submatches)[CN], match_flag_type f)
-      : end(last), re(*p), flags(f)
-   {
-      for(std::size_t i = 0; i < CN; ++i)
-      {
-         subs.push_back(submatches[i]);
-      }
-   }
-#endif
-#endif
-   bool init(BidirectionalIterator first)
-   {
-      N = 0;
-      base = first;
-      if(regex_search(first, end, what, re, flags, base) == true)
-      {
-         N = 0;
-         result = ((subs[N] == -1) ? what.prefix() : what[(int)subs[N]]);
-         return true;
-      }
-      else if((subs[N] == -1) && (first != end))
-      {
-         result.first = first;
-         result.second = end;
-         result.matched = (first != end);
-         N = -1;
-         return true;
-      }
-      return false;
-   }
-   bool compare(const regex_token_iterator_implementation& that)
-   {
-      if(this == &that) return true;
-      return (&re.get_data() == &that.re.get_data()) 
-         && (end == that.end) 
-         && (flags == that.flags) 
-         && (N == that.N) 
-         && (what[0].first == that.what[0].first) 
-         && (what[0].second == that.what[0].second);
-   }
-   const value_type& get()
-   { return result; }
-   bool next()
-   {
-      if(N == -1)
-         return false;
-      if(N+1 < (int)subs.size())
-      {
-         ++N;
-         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);
-         return true;
-      }
-      //if(what.prefix().first != what[0].second)
-      //   flags |= /*match_prev_avail |*/ regex_constants::match_not_bob;
-      BidirectionalIterator last_end(what[0].second);
-      if(regex_search(last_end, end, what, re, ((what[0].first == what[0].second) ? flags | regex_constants::match_not_initial_null : flags), base))
-      {
-         N =0;
-         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);
-         return true;
-      }
-      else if((last_end != end) && (subs[0] == -1))
-      {
-         N =-1;
-         result.first = last_end;
-         result.second = end;
-         result.matched = (last_end != end);
-         return true;
-      }
-      return false;
-   }
-private:
-   regex_token_iterator_implementation& operator=(const regex_token_iterator_implementation&);
-};
-
-template <class BidirectionalIterator, 
-          class charT = NDNBOOST_DEDUCED_TYPENAME re_detail::regex_iterator_traits<BidirectionalIterator>::value_type,
-          class traits = regex_traits<charT> >
-class regex_token_iterator 
-#ifndef NDNBOOST_NO_STD_ITERATOR
-   : public std::iterator<
-         std::forward_iterator_tag, 
-         sub_match<BidirectionalIterator>,
-         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,
-         const sub_match<BidirectionalIterator>*,
-         const sub_match<BidirectionalIterator>& >         
-#endif
-{
-private:
-   typedef regex_token_iterator_implementation<BidirectionalIterator, charT, traits> impl;
-   typedef shared_ptr<impl> pimpl;
-public:
-   typedef          basic_regex<charT, traits>                   regex_type;
-   typedef          sub_match<BidirectionalIterator>                        value_type;
-   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type 
-                                                                            difference_type;
-   typedef          const value_type*                                       pointer;
-   typedef          const value_type&                                       reference; 
-   typedef          std::forward_iterator_tag                               iterator_category;
-   
-   regex_token_iterator(){}
-   regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, 
-                        int submatch = 0, match_flag_type m = match_default)
-                        : pdata(new impl(&re, b, submatch, m))
-   {
-      if(!pdata->init(a))
-         pdata.reset();
-   }
-   regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, 
-                        const std::vector<int>& submatches, match_flag_type m = match_default)
-                        : pdata(new impl(&re, b, submatches, m))
-   {
-      if(!pdata->init(a))
-         pdata.reset();
-   }
-#if !NDNBOOST_WORKAROUND(__HP_aCC, < 60700)
-#if (NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x560) && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x570)))\
-      || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
-      || NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003)) \
-      || NDNBOOST_WORKAROUND(__HP_aCC, < 60700)
-   template <class T>
-   regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,
-                        const T& submatches, match_flag_type m = match_default)
-                        : pdata(new impl(&re, b, submatches, m))
-   {
-      if(!pdata->init(a))
-         pdata.reset();
-   }
-#else
-   template <std::size_t N>
-   regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,
-                        const int (&submatches)[N], match_flag_type m = match_default)
-                        : pdata(new impl(&re, b, submatches, m))
-   {
-      if(!pdata->init(a))
-         pdata.reset();
-   }
-#endif
-#endif
-   regex_token_iterator(const regex_token_iterator& that)
-      : pdata(that.pdata) {}
-   regex_token_iterator& operator=(const regex_token_iterator& that)
-   {
-      pdata = that.pdata;
-      return *this;
-   }
-   bool operator==(const regex_token_iterator& that)const
-   { 
-      if((pdata.get() == 0) || (that.pdata.get() == 0))
-         return pdata.get() == that.pdata.get();
-      return pdata->compare(*(that.pdata.get())); 
-   }
-   bool operator!=(const regex_token_iterator& that)const
-   { return !(*this == that); }
-   const value_type& operator*()const
-   { return pdata->get(); }
-   const value_type* operator->()const
-   { return &(pdata->get()); }
-   regex_token_iterator& operator++()
-   {
-      cow();
-      if(0 == pdata->next())
-      {
-         pdata.reset();
-      }
-      return *this;
-   }
-   regex_token_iterator operator++(int)
-   {
-      regex_token_iterator result(*this);
-      ++(*this);
-      return result;
-   }
-private:
-
-   pimpl pdata;
-
-   void cow()
-   {
-      // copy-on-write
-      if(pdata.get() && !pdata.unique())
-      {
-         pdata.reset(new impl(*(pdata.get())));
-      }
-   }
-};
-
-typedef regex_token_iterator<const char*> cregex_token_iterator;
-typedef regex_token_iterator<std::string::const_iterator> sregex_token_iterator;
-#ifndef NDNBOOST_NO_WREGEX
-typedef regex_token_iterator<const wchar_t*> wcregex_token_iterator;
-typedef regex_token_iterator<std::wstring::const_iterator> wsregex_token_iterator;
-#endif
-
-template <class charT, class traits>
-inline regex_token_iterator<const charT*, charT, traits> make_regex_token_iterator(const charT* p, const basic_regex<charT, traits>& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return regex_token_iterator<const charT*, charT, traits>(p, p+traits::length(p), e, submatch, m);
-}
-template <class charT, class traits, class ST, class SA>
-inline regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits> make_regex_token_iterator(const std::basic_string<charT, ST, SA>& p, const basic_regex<charT, traits>& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits>(p.begin(), p.end(), e, submatch, m);
-}
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-template <class charT, class traits, std::size_t N>
-inline regex_token_iterator<const charT*, charT, traits> make_regex_token_iterator(const charT* p, const basic_regex<charT, traits>& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return regex_token_iterator<const charT*, charT, traits>(p, p+traits::length(p), e, submatch, m);
-}
-template <class charT, class traits, class ST, class SA, std::size_t N>
-inline regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits> make_regex_token_iterator(const std::basic_string<charT, ST, SA>& p, const basic_regex<charT, traits>& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits>(p.begin(), p.end(), e, submatch, m);
-}
-#endif
-template <class charT, class traits>
-inline regex_token_iterator<const charT*, charT, traits> make_regex_token_iterator(const charT* p, const basic_regex<charT, traits>& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return regex_token_iterator<const charT*, charT, traits>(p, p+traits::length(p), e, submatch, m);
-}
-template <class charT, class traits, class ST, class SA>
-inline regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits> make_regex_token_iterator(const std::basic_string<charT, ST, SA>& p, const basic_regex<charT, traits>& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return regex_token_iterator<typename std::basic_string<charT, ST, SA>::const_iterator, charT, traits>(p.begin(), p.end(), e, submatch, m);
-}
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, > 1300)
-#  pragma warning(pop)
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_REGEX_V4_REGEX_TOKEN_ITERATOR_HPP
-
-
-
-
diff --git a/include/ndnboost/regex/v4/regex_traits.hpp b/include/ndnboost/regex/v4/regex_traits.hpp
deleted file mode 100644
index e991bb6..0000000
--- a/include/ndnboost/regex/v4/regex_traits.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- *
- * Copyright (c) 2003
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_traits.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares regular expression traits classes.
-  */
-
-#ifndef NDNBOOST_REGEX_TRAITS_HPP_INCLUDED
-#define NDNBOOST_REGEX_TRAITS_HPP_INCLUDED
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_WORKAROUND_HPP
-#include <ndnboost/regex/v4/regex_workaround.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_SYNTAX_TYPE_HPP
-#include <ndnboost/regex/v4/syntax_type.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_ERROR_TYPE_HPP
-#include <ndnboost/regex/v4/error_type.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_TRAITS_DEFAULTS_HPP_INCLUDED
-#include <ndnboost/regex/v4/regex_traits_defaults.hpp>
-#endif
-#ifndef NDNBOOST_NO_STD_LOCALE
-#  ifndef NDNBOOST_CPP_REGEX_TRAITS_HPP_INCLUDED
-#     include <ndnboost/regex/v4/cpp_regex_traits.hpp>
-#  endif
-#endif
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x560)
-#  ifndef NDNBOOST_C_REGEX_TRAITS_HPP_INCLUDED
-#     include <ndnboost/regex/v4/c_regex_traits.hpp>
-#  endif
-#endif
-#if defined(_WIN32) && !defined(NDNBOOST_REGEX_NO_W32)
-#  ifndef NDNBOOST_W32_REGEX_TRAITS_HPP_INCLUDED
-#     include <ndnboost/regex/v4/w32_regex_traits.hpp>
-#  endif
-#endif
-#ifndef NDNBOOST_REGEX_FWD_HPP_INCLUDED
-#include <ndnboost/regex_fwd.hpp>
-#endif
-
-#include "ndnboost/mpl/has_xxx.hpp"
-#include <ndnboost/static_assert.hpp>
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-
-template <class charT, class implementationT >
-struct regex_traits : public implementationT
-{
-   regex_traits() : implementationT() {}
-};
-
-//
-// class regex_traits_wrapper.
-// this is what our implementation will actually store;
-// it provides default implementations of the "optional"
-// interfaces that we support, in addition to the
-// required "standard" ones:
-//
-namespace re_detail{
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !NDNBOOST_WORKAROUND(__HP_aCC, < 60000)
-NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(boost_extensions_tag)
-#else
-template<class T>
-struct has_boost_extensions_tag
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-#endif
-
-template <class BaseT>
-struct default_wrapper : public BaseT
-{
-   typedef typename BaseT::char_type char_type;
-   std::string error_string(::ndnboost::regex_constants::error_type e)const
-   {
-      return ::ndnboost::re_detail::get_default_error_string(e);
-   }
-   ::ndnboost::regex_constants::syntax_type syntax_type(char_type c)const
-   {
-      return ((c & 0x7f) == c) ? get_default_syntax_type(static_cast<char>(c)) : ::ndnboost::regex_constants::syntax_char;
-   }
-   ::ndnboost::regex_constants::escape_syntax_type escape_syntax_type(char_type c)const
-   {
-      return ((c & 0x7f) == c) ? get_default_escape_syntax_type(static_cast<char>(c)) : ::ndnboost::regex_constants::escape_type_identity;
-   }
-   int toi(const char_type*& p1, const char_type* p2, int radix)const
-   {
-      return ::ndnboost::re_detail::global_toi(p1, p2, radix, *this);
-   }
-   char_type translate(char_type c, bool icase)const
-   {
-      return (icase ? this->translate_nocase(c) : this->translate(c));
-   }
-   char_type translate(char_type c)const
-   {
-      return BaseT::translate(c);
-   }
-   char_type tolower(char_type c)const
-   {
-      return ::ndnboost::re_detail::global_lower(c);
-   }
-   char_type toupper(char_type c)const
-   {
-      return ::ndnboost::re_detail::global_upper(c);
-   }
-};
-
-template <class BaseT, bool has_extensions>
-struct compute_wrapper_base
-{
-   typedef BaseT type;
-};
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !NDNBOOST_WORKAROUND(__HP_aCC, < 60000)
-template <class BaseT>
-struct compute_wrapper_base<BaseT, false>
-{
-   typedef default_wrapper<BaseT> type;
-};
-#else
-template <>
-struct compute_wrapper_base<c_regex_traits<char>, false>
-{
-   typedef default_wrapper<c_regex_traits<char> > type;
-};
-#ifndef NDNBOOST_NO_WREGEX
-template <>
-struct compute_wrapper_base<c_regex_traits<wchar_t>, false>
-{
-   typedef default_wrapper<c_regex_traits<wchar_t> > type;
-};
-#endif
-#endif
-
-} // namespace re_detail
-
-template <class BaseT>
-struct regex_traits_wrapper 
-   : public ::ndnboost::re_detail::compute_wrapper_base<
-               BaseT, 
-               ::ndnboost::re_detail::has_boost_extensions_tag<BaseT>::value
-            >::type
-{
-   regex_traits_wrapper(){}
-private:
-   regex_traits_wrapper(const regex_traits_wrapper&);
-   regex_traits_wrapper& operator=(const regex_traits_wrapper&);
-};
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif // include
-
diff --git a/include/ndnboost/regex/v4/regex_traits_defaults.hpp b/include/ndnboost/regex/v4/regex_traits_defaults.hpp
deleted file mode 100644
index 2b4fc28..0000000
--- a/include/ndnboost/regex/v4/regex_traits_defaults.hpp
+++ /dev/null
@@ -1,371 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_traits_defaults.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares API's for access to regex_traits default properties.
-  */
-
-#ifndef NDNBOOST_REGEX_TRAITS_DEFAULTS_HPP_INCLUDED
-#define NDNBOOST_REGEX_TRAITS_DEFAULTS_HPP_INCLUDED
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifndef NDNBOOST_REGEX_SYNTAX_TYPE_HPP
-#include <ndnboost/regex/v4/syntax_type.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_ERROR_TYPE_HPP
-#include <ndnboost/regex/v4/error_type.hpp>
-#endif
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std{
-   using ::strlen;
-}
-#endif
-
-namespace ndnboost{ namespace re_detail{
-
-
-//
-// helpers to suppress warnings:
-//
-template <class charT>
-inline bool is_extended(charT c)
-{ return c > 256; }
-inline bool is_extended(char)
-{ return false; }
-
-
-NDNBOOST_REGEX_DECL const char* NDNBOOST_REGEX_CALL get_default_syntax(regex_constants::syntax_type n);
-NDNBOOST_REGEX_DECL const char* NDNBOOST_REGEX_CALL get_default_error_string(regex_constants::error_type n);
-NDNBOOST_REGEX_DECL regex_constants::syntax_type NDNBOOST_REGEX_CALL get_default_syntax_type(char c);
-NDNBOOST_REGEX_DECL regex_constants::escape_syntax_type NDNBOOST_REGEX_CALL get_default_escape_syntax_type(char c);
-
-// is charT c a combining character?
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL is_combining_implementation(uint_least16_t s);
-
-template <class charT>
-inline bool is_combining(charT c)
-{
-   return (c <= static_cast<charT>(0)) ? false : ((c >= static_cast<charT>((std::numeric_limits<uint_least16_t>::max)())) ? false : is_combining_implementation(static_cast<unsigned short>(c)));
-}
-template <>
-inline bool is_combining<char>(char)
-{
-   return false;
-}
-template <>
-inline bool is_combining<signed char>(signed char)
-{
-   return false;
-}
-template <>
-inline bool is_combining<unsigned char>(unsigned char)
-{
-   return false;
-}
-#if !defined(__hpux) && !defined(__WINSCW__) // can't use WCHAR_MAX/MIN in pp-directives
-#ifdef _MSC_VER
-template<>
-inline bool is_combining<wchar_t>(wchar_t c)
-{
-   return is_combining_implementation(static_cast<unsigned short>(c));
-}
-#elif !defined(__DECCXX) && !defined(__osf__) && !defined(__OSF__) && defined(WCHAR_MIN) && (WCHAR_MIN == 0) && !defined(NDNBOOST_NO_INTRINSIC_WCHAR_T)
-#if defined(WCHAR_MAX) && (WCHAR_MAX <= USHRT_MAX)
-template<>
-inline bool is_combining<wchar_t>(wchar_t c)
-{
-   return is_combining_implementation(static_cast<unsigned short>(c));
-}
-#else
-template<>
-inline bool is_combining<wchar_t>(wchar_t c)
-{
-   return (c >= (std::numeric_limits<uint_least16_t>::max)()) ? false : is_combining_implementation(static_cast<unsigned short>(c));
-}
-#endif
-#endif
-#endif
-
-//
-// is a charT c a line separator?
-//
-template <class charT>
-inline bool is_separator(charT c)
-{
-   return NDNBOOST_REGEX_MAKE_BOOL(
-      (c == static_cast<charT>('\n'))
-      || (c == static_cast<charT>('\r'))
-      || (c == static_cast<charT>('\f'))
-      || (static_cast<ndnboost::uint16_t>(c) == 0x2028u)
-      || (static_cast<ndnboost::uint16_t>(c) == 0x2029u)
-      || (static_cast<ndnboost::uint16_t>(c) == 0x85u));
-}
-template <>
-inline bool is_separator<char>(char c)
-{
-   return NDNBOOST_REGEX_MAKE_BOOL((c == '\n') || (c == '\r') || (c == '\f'));
-}
-
-//
-// get a default collating element:
-//
-NDNBOOST_REGEX_DECL std::string NDNBOOST_REGEX_CALL lookup_default_collate_name(const std::string& name);
-
-//
-// get the state_id of a character clasification, the individual
-// traits classes then transform that state_id into a bitmask:
-//
-template <class charT>
-struct character_pointer_range
-{
-   const charT* p1;
-   const charT* p2;
-
-   bool operator < (const character_pointer_range& r)const
-   {
-      return std::lexicographical_compare(p1, p2, r.p1, r.p2);
-   }
-   bool operator == (const character_pointer_range& r)const
-   {
-      // Not only do we check that the ranges are of equal size before
-      // calling std::equal, but there is no other algorithm available:
-      // not even a non-standard MS one.  So forward to unchecked_equal
-      // in the MS case.
-      return ((p2 - p1) == (r.p2 - r.p1)) && re_detail::equal(p1, p2, r.p1);
-   }
-};
-template <class charT>
-int get_default_class_id(const charT* p1, const charT* p2)
-{
-   static const charT data[73] = {
-      'a', 'l', 'n', 'u', 'm',
-      'a', 'l', 'p', 'h', 'a',
-      'b', 'l', 'a', 'n', 'k',
-      'c', 'n', 't', 'r', 'l',
-      'd', 'i', 'g', 'i', 't',
-      'g', 'r', 'a', 'p', 'h',
-      'l', 'o', 'w', 'e', 'r',
-      'p', 'r', 'i', 'n', 't',
-      'p', 'u', 'n', 'c', 't',
-      's', 'p', 'a', 'c', 'e',
-      'u', 'n', 'i', 'c', 'o', 'd', 'e',
-      'u', 'p', 'p', 'e', 'r',
-      'v',
-      'w', 'o', 'r', 'd',
-      'x', 'd', 'i', 'g', 'i', 't',
-   };
-
-   static const character_pointer_range<charT> ranges[21] =
-   {
-      {data+0, data+5,}, // alnum
-      {data+5, data+10,}, // alpha
-      {data+10, data+15,}, // blank
-      {data+15, data+20,}, // cntrl
-      {data+20, data+21,}, // d
-      {data+20, data+25,}, // digit
-      {data+25, data+30,}, // graph
-      {data+29, data+30,}, // h
-      {data+30, data+31,}, // l
-      {data+30, data+35,}, // lower
-      {data+35, data+40,}, // print
-      {data+40, data+45,}, // punct
-      {data+45, data+46,}, // s
-      {data+45, data+50,}, // space
-      {data+57, data+58,}, // u
-      {data+50, data+57,}, // unicode
-      {data+57, data+62,}, // upper
-      {data+62, data+63,}, // v
-      {data+63, data+64,}, // w
-      {data+63, data+67,}, // word
-      {data+67, data+73,}, // xdigit
-   };
-   static const character_pointer_range<charT>* ranges_begin = ranges;
-   static const character_pointer_range<charT>* ranges_end = ranges + (sizeof(ranges)/sizeof(ranges[0]));
-
-   character_pointer_range<charT> t = { p1, p2, };
-   const character_pointer_range<charT>* p = std::lower_bound(ranges_begin, ranges_end, t);
-   if((p != ranges_end) && (t == *p))
-      return static_cast<int>(p - ranges);
-   return -1;
-}
-
-//
-// helper functions:
-//
-template <class charT>
-std::ptrdiff_t global_length(const charT* p)
-{
-   std::ptrdiff_t n = 0;
-   while(*p)
-   {
-      ++p;
-      ++n;
-   }
-   return n;
-}
-template<>
-inline std::ptrdiff_t global_length<char>(const char* p)
-{
-   return (std::strlen)(p);
-}
-#ifndef NDNBOOST_NO_WREGEX
-template<>
-inline std::ptrdiff_t global_length<wchar_t>(const wchar_t* p)
-{
-   return (std::wcslen)(p);
-}
-#endif
-template <class charT>
-inline charT NDNBOOST_REGEX_CALL global_lower(charT c)
-{
-   return c;
-}
-template <class charT>
-inline charT NDNBOOST_REGEX_CALL global_upper(charT c)
-{
-   return c;
-}
-
-NDNBOOST_REGEX_DECL char NDNBOOST_REGEX_CALL do_global_lower(char c);
-NDNBOOST_REGEX_DECL char NDNBOOST_REGEX_CALL do_global_upper(char c);
-#ifndef NDNBOOST_NO_WREGEX
-NDNBOOST_REGEX_DECL wchar_t NDNBOOST_REGEX_CALL do_global_lower(wchar_t c);
-NDNBOOST_REGEX_DECL wchar_t NDNBOOST_REGEX_CALL do_global_upper(wchar_t c);
-#endif
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-NDNBOOST_REGEX_DECL unsigned short NDNBOOST_REGEX_CALL do_global_lower(unsigned short c);
-NDNBOOST_REGEX_DECL unsigned short NDNBOOST_REGEX_CALL do_global_upper(unsigned short c);
-#endif
-//
-// This sucks: declare template specialisations of global_lower/global_upper
-// that just forward to the non-template implementation functions.  We do
-// this because there is one compiler (Compaq Tru64 C++) that doesn't seem
-// to differentiate between templates and non-template overloads....
-// what's more, the primary template, plus all overloads have to be
-// defined in the same translation unit (if one is inline they all must be)
-// otherwise the "local template instantiation" compiler option can pick
-// the wrong instantiation when linking:
-//
-template<> inline char NDNBOOST_REGEX_CALL global_lower<char>(char c){ return do_global_lower(c); }
-template<> inline char NDNBOOST_REGEX_CALL global_upper<char>(char c){ return do_global_upper(c); }
-#ifndef NDNBOOST_NO_WREGEX
-template<> inline wchar_t NDNBOOST_REGEX_CALL global_lower<wchar_t>(wchar_t c){ return do_global_lower(c); }
-template<> inline wchar_t NDNBOOST_REGEX_CALL global_upper<wchar_t>(wchar_t c){ return do_global_upper(c); }
-#endif
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-template<> inline unsigned short NDNBOOST_REGEX_CALL global_lower<unsigned short>(unsigned short c){ return do_global_lower(c); }
-template<> inline unsigned short NDNBOOST_REGEX_CALL global_upper<unsigned short>(unsigned short c){ return do_global_upper(c); }
-#endif
-
-template <class charT>
-int global_value(charT c)
-{
-   static const charT zero = '0';
-   static const charT nine = '9';
-   static const charT a = 'a';
-   static const charT f = 'f';
-   static const charT A = 'A';
-   static const charT F = 'F';
-
-   if(c > f) return -1;
-   if(c >= a) return 10 + (c - a);
-   if(c > F) return -1;
-   if(c >= A) return 10 + (c - A);
-   if(c > nine) return -1;
-   if(c >= zero) return c - zero;
-   return -1;
-}
-template <class charT, class traits>
-int global_toi(const charT*& p1, const charT* p2, int radix, const traits& t)
-{
-   (void)t; // warning suppression
-   int next_value = t.value(*p1, radix);
-   if((p1 == p2) || (next_value < 0) || (next_value >= radix))
-      return -1;
-   int result = 0;
-   while(p1 != p2)
-   {
-      next_value = t.value(*p1, radix);
-      if((next_value < 0) || (next_value >= radix))
-         break;
-      result *= radix;
-      result += next_value;
-      ++p1;
-   }
-   return result;
-}
-
-template <class charT>
-inline const charT* get_escape_R_string()
-{
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable:4309 4245)
-#endif
-   static const charT e1[] = { '(', '?', '>', '\x0D', '\x0A', '?',
-      '|', '[', '\x0A', '\x0B', '\x0C', static_cast<unsigned char>('\x85'), '\\', 'x', '{', '2', '0', '2', '8', '}',
-                '\\', 'x', '{', '2', '0', '2', '9', '}', ']', ')', '\0' };
-   static const charT e2[] = { '(', '?', '>', '\x0D', '\x0A', '?',
-      '|', '[', '\x0A', '\x0B', '\x0C', static_cast<unsigned char>('\x85'), ']', ')', '\0' };
-
-   charT c = static_cast<charT>(0x2029u);
-   bool b = (static_cast<unsigned>(c) == 0x2029u);
-
-   return (b ? e1 : e2);
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-}
-
-template <>
-inline const char* get_escape_R_string<char>()
-{
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable:4309)
-#endif
-   static const char e2[] = { '(', '?', '>', '\x0D', '\x0A', '?',
-      '|', '[', '\x0A', '\x0B', '\x0C', '\x85', ']', ')', '\0' };
-   return e2;
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-}
-
-} // re_detail
-} // boost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/include/ndnboost/regex/v4/regex_workaround.hpp b/include/ndnboost/regex/v4/regex_workaround.hpp
deleted file mode 100644
index c9d4385..0000000
--- a/include/ndnboost/regex/v4/regex_workaround.hpp
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2005
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         regex_workarounds.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares Misc workarounds.
-  */
-
-#ifndef NDNBOOST_REGEX_WORKAROUND_HPP
-#define NDNBOOST_REGEX_WORKAROUND_HPP
-
-
-#include <new>
-#include <cstring>
-#include <cstdlib>
-#include <cstddef>
-#include <cassert>
-#include <cstdio>
-#include <climits>
-#include <string>
-#include <stdexcept>
-#include <iterator>
-#include <algorithm>
-#include <iosfwd>
-#include <vector>
-#include <map>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/scoped_ptr.hpp>
-#include <ndnboost/scoped_array.hpp>
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/mpl/bool_fwd.hpp>
-#ifndef NDNBOOST_NO_STD_LOCALE
-#   include <locale>
-#endif
-
-#if defined(NDNBOOST_NO_STDC_NAMESPACE)
-namespace std{
-   using ::sprintf; using ::strcpy; using ::strcat; using ::strlen;
-}
-#endif
-
-namespace ndnboost{ namespace re_detail{
-#ifdef NDNBOOST_NO_STD_DISTANCE
-template <class T>
-std::ptrdiff_t distance(const T& x, const T& y)
-{ return y - x; }
-#else
-using std::distance;
-#endif
-}}
-
-
-#ifdef NDNBOOST_REGEX_NO_BOOL
-#  define NDNBOOST_REGEX_MAKE_BOOL(x) static_cast<bool>((x) ? true : false)
-#else
-#  define NDNBOOST_REGEX_MAKE_BOOL(x) static_cast<bool>(x)
-#endif
-
-/*****************************************************************************
- *
- *  Fix broken broken namespace support:
- *
- ****************************************************************************/
-
-#if defined(NDNBOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
-
-namespace std{
-   using ::ptrdiff_t;
-   using ::size_t;
-   using ::abs;
-   using ::memset;
-   using ::memcpy;
-}
-
-#endif
-
-/*****************************************************************************
- *
- *  helper functions pointer_construct/pointer_destroy:
- *
- ****************************************************************************/
-
-#ifdef __cplusplus
-namespace ndnboost{ namespace re_detail{
-
-#ifdef NDNBOOST_MSVC
-#pragma warning (push)
-#pragma warning (disable : 4100)
-#endif
-
-template <class T>
-inline void pointer_destroy(T* p)
-{ p->~T(); (void)p; }
-
-#ifdef NDNBOOST_MSVC
-#pragma warning (pop)
-#endif
-
-template <class T>
-inline void pointer_construct(T* p, const T& t)
-{ new (p) T(t); }
-
-}} // namespaces
-#endif
-
-/*****************************************************************************
- *
- *  helper function copy:
- *
- ****************************************************************************/
-
-#ifdef __cplusplus
-namespace ndnboost{ namespace re_detail{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,>=1400) && NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <1600) && defined(_CPPLIB_VER) && defined(NDNBOOST_DINKUMWARE_STDLIB) && !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
-   //
-   // MSVC 8 will either emit warnings or else refuse to compile
-   // code that makes perfectly legitimate use of std::copy, when
-   // the OutputIterator type is a user-defined class (apparently all user 
-   // defined iterators are "unsafe").  This code works around that:
-   //
-   template<class InputIterator, class OutputIterator>
-   inline OutputIterator copy(
-      InputIterator first, 
-      InputIterator last, 
-      OutputIterator dest
-   )
-   {
-      return stdext::unchecked_copy(first, last, dest);
-   }
-   template<class InputIterator1, class InputIterator2>
-   inline bool equal(
-      InputIterator1 first, 
-      InputIterator1 last, 
-      InputIterator2 with
-   )
-   {
-      return stdext::unchecked_equal(first, last, with);
-   }
-#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC, > 1500)
-   //
-   // MSVC 10 will either emit warnings or else refuse to compile
-   // code that makes perfectly legitimate use of std::copy, when
-   // the OutputIterator type is a user-defined class (apparently all user 
-   // defined iterators are "unsafe").  What's more Microsoft have removed their
-   // non-standard "unchecked" versions, even though their still in the MS
-   // documentation!! Work around this as best we can: 
-   //
-   template<class InputIterator, class OutputIterator>
-   inline OutputIterator copy(
-      InputIterator first, 
-      InputIterator last, 
-      OutputIterator dest
-   )
-   {
-      while(first != last)
-         *dest++ = *first++;
-      return dest;
-   }
-   template<class InputIterator1, class InputIterator2>
-   inline bool equal(
-      InputIterator1 first, 
-      InputIterator1 last, 
-      InputIterator2 with
-   )
-   {
-      while(first != last)
-         if(*first++ != *with++) return false;
-      return true;
-   }
-#else 
-   using std::copy; 
-   using std::equal; 
-#endif 
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,>=1400) && defined(__STDC_WANT_SECURE_LIB__) && __STDC_WANT_SECURE_LIB__ 
-
-   // use safe versions of strcpy etc:
-   using ::strcpy_s;
-   using ::strcat_s;
-#else
-   inline std::size_t strcpy_s(
-      char *strDestination,
-      std::size_t sizeInBytes,
-      const char *strSource 
-   )
-   {
-      if(std::strlen(strSource)+1 > sizeInBytes)
-         return 1;
-      std::strcpy(strDestination, strSource);
-      return 0;
-   }
-   inline std::size_t strcat_s(
-      char *strDestination,
-      std::size_t sizeInBytes,
-      const char *strSource 
-   )
-   {
-      if(std::strlen(strSource) + std::strlen(strDestination) + 1 > sizeInBytes)
-         return 1;
-      std::strcat(strDestination, strSource);
-      return 0;
-   }
-
-#endif
-
-   inline void overflow_error_if_not_zero(std::size_t i)
-   {
-      if(i)
-      {
-         std::overflow_error e("String buffer too small");
-         ndnboost::throw_exception(e);
-      }
-   }
-
-}} // namespaces
-
-#endif // __cplusplus
-
-#endif // include guard
-
diff --git a/include/ndnboost/regex/v4/states.hpp b/include/ndnboost/regex/v4/states.hpp
deleted file mode 100644
index 0698fa0..0000000
--- a/include/ndnboost/regex/v4/states.hpp
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         states.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares internal state machine structures.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_STATES_HPP
-#define NDNBOOST_REGEX_V4_STATES_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-namespace re_detail{
-
-/*** mask_type *******************************************************
-Whenever we have a choice of two alternatives, we use an array of bytes
-to indicate which of the two alternatives it is possible to take for any
-given input character.  If mask_take is set, then we can take the next 
-state, and if mask_skip is set then we can take the alternative.
-***********************************************************************/
-enum mask_type
-{
-   mask_take = 1,
-   mask_skip = 2,
-   mask_init = 4,
-   mask_any = mask_skip | mask_take,
-   mask_all = mask_any
-};
-
-/*** helpers **********************************************************
-These helpers let us use function overload resolution to detect whether
-we have narrow or wide character strings:
-***********************************************************************/
-struct _narrow_type{};
-struct _wide_type{};
-template <class charT> struct is_byte;
-template<>             struct is_byte<char>         { typedef _narrow_type width_type; };
-template<>             struct is_byte<unsigned char>{ typedef _narrow_type width_type; };
-template<>             struct is_byte<signed char>  { typedef _narrow_type width_type; };
-template <class charT> struct is_byte               { typedef _wide_type width_type; };
-
-/*** enum syntax_element_type ******************************************
-Every record in the state machine falls into one of the following types:
-***********************************************************************/
-enum syntax_element_type
-{
-   // start of a marked sub-expression, or perl-style (?...) extension
-   syntax_element_startmark = 0,
-   // end of a marked sub-expression, or perl-style (?...) extension
-   syntax_element_endmark = syntax_element_startmark + 1,
-   // any sequence of literal characters
-   syntax_element_literal = syntax_element_endmark + 1,
-   // start of line assertion: ^
-   syntax_element_start_line = syntax_element_literal + 1,
-   // end of line assertion $
-   syntax_element_end_line = syntax_element_start_line + 1,
-   // match any character: .
-   syntax_element_wild = syntax_element_end_line + 1,
-   // end of expression: we have a match when we get here
-   syntax_element_match = syntax_element_wild + 1,
-   // perl style word boundary: \b
-   syntax_element_word_boundary = syntax_element_match + 1,
-   // perl style within word boundary: \B
-   syntax_element_within_word = syntax_element_word_boundary + 1,
-   // start of word assertion: \<
-   syntax_element_word_start = syntax_element_within_word + 1,
-   // end of word assertion: \>
-   syntax_element_word_end = syntax_element_word_start + 1,
-   // start of buffer assertion: \`
-   syntax_element_buffer_start = syntax_element_word_end + 1,
-   // end of buffer assertion: \'
-   syntax_element_buffer_end = syntax_element_buffer_start + 1,
-   // backreference to previously matched sub-expression
-   syntax_element_backref = syntax_element_buffer_end + 1,
-   // either a wide character set [..] or one with multicharacter collating elements:
-   syntax_element_long_set = syntax_element_backref + 1,
-   // narrow character set: [...]
-   syntax_element_set = syntax_element_long_set + 1,
-   // jump to a new state in the machine:
-   syntax_element_jump = syntax_element_set + 1,
-   // choose between two production states:
-   syntax_element_alt = syntax_element_jump + 1,
-   // a repeat
-   syntax_element_rep = syntax_element_alt + 1,
-   // match a combining character sequence
-   syntax_element_combining = syntax_element_rep + 1,
-   // perl style soft buffer end: \z
-   syntax_element_soft_buffer_end = syntax_element_combining + 1,
-   // perl style continuation: \G
-   syntax_element_restart_continue = syntax_element_soft_buffer_end + 1,
-   // single character repeats:
-   syntax_element_dot_rep = syntax_element_restart_continue + 1,
-   syntax_element_char_rep = syntax_element_dot_rep + 1,
-   syntax_element_short_set_rep = syntax_element_char_rep + 1,
-   syntax_element_long_set_rep = syntax_element_short_set_rep + 1,
-   // a backstep for lookbehind repeats:
-   syntax_element_backstep = syntax_element_long_set_rep + 1,
-   // an assertion that a mark was matched:
-   syntax_element_assert_backref = syntax_element_backstep + 1,
-   syntax_element_toggle_case = syntax_element_assert_backref + 1,
-   // a recursive expression:
-   syntax_element_recurse = syntax_element_toggle_case + 1
-};
-
-#ifdef NDNBOOST_REGEX_DEBUG
-// dwa 09/26/00 - This is needed to suppress warnings about an ambiguous conversion
-std::ostream& operator<<(std::ostream&, syntax_element_type);
-#endif
-
-struct re_syntax_base;
-
-/*** union offset_type ************************************************
-Points to another state in the machine.  During machine construction
-we use integral offsets, but these are converted to pointers before
-execution of the machine.
-***********************************************************************/
-union offset_type
-{
-   re_syntax_base*   p;
-   std::ptrdiff_t    i;
-};
-
-/*** struct re_syntax_base ********************************************
-Base class for all states in the machine.
-***********************************************************************/
-struct re_syntax_base
-{
-   syntax_element_type   type;         // what kind of state this is
-   offset_type           next;         // next state in the machine
-};
-
-/*** struct re_brace **************************************************
-A marked parenthesis.
-***********************************************************************/
-struct re_brace : public re_syntax_base
-{
-   // The index to match, can be zero (don't mark the sub-expression)
-   // or negative (for perl style (?...) extentions):
-   int index;
-   bool icase;
-};
-
-/*** struct re_dot **************************************************
-Match anything.
-***********************************************************************/
-enum
-{
-   dont_care = 1,
-   force_not_newline = 0,
-   force_newline = 2,
-
-   test_not_newline = 2,
-   test_newline = 3
-};
-struct re_dot : public re_syntax_base
-{
-   unsigned char mask;
-};
-
-/*** struct re_literal ************************************************
-A string of literals, following this structure will be an 
-array of characters: charT[length]
-***********************************************************************/
-struct re_literal : public re_syntax_base
-{
-   unsigned int length;
-};
-
-/*** struct re_case ************************************************
-Indicates whether we are moving to a case insensive block or not
-***********************************************************************/
-struct re_case : public re_syntax_base
-{
-   bool icase;
-};
-
-/*** struct re_set_long ***********************************************
-A wide character set of characters, following this structure will be
-an array of type charT:
-First csingles null-terminated strings
-Then 2 * cranges NULL terminated strings
-Then cequivalents NULL terminated strings
-***********************************************************************/
-template <class mask_type>
-struct re_set_long : public re_syntax_base
-{
-   unsigned int            csingles, cranges, cequivalents;
-   mask_type               cclasses;
-   mask_type               cnclasses;
-   bool                    isnot;
-   bool                    singleton;
-};
-
-/*** struct re_set ****************************************************
-A set of narrow-characters, matches any of _map which is none-zero
-***********************************************************************/
-struct re_set : public re_syntax_base
-{
-   unsigned char _map[1 << CHAR_BIT];
-};
-
-/*** struct re_jump ***************************************************
-Jump to a new location in the machine (not next).
-***********************************************************************/
-struct re_jump : public re_syntax_base
-{
-   offset_type     alt;                 // location to jump to
-};
-
-/*** struct re_alt ***************************************************
-Jump to a new location in the machine (possibly next).
-***********************************************************************/
-struct re_alt : public re_jump
-{
-   unsigned char   _map[1 << CHAR_BIT]; // which characters can take the jump
-   unsigned int    can_be_null;         // true if we match a NULL string
-};
-
-/*** struct re_repeat *************************************************
-Repeat a section of the machine
-***********************************************************************/
-struct re_repeat : public re_alt
-{
-   std::size_t   min, max;  // min and max allowable repeats
-   int           state_id;        // Unique identifier for this repeat
-   bool          leading;   // True if this repeat is at the start of the machine (lets us optimize some searches)
-   bool          greedy;    // True if this is a greedy repeat
-};
-
-/*** struct re_recurse ************************************************
-Recurse to a particular subexpression.
-**********************************************************************/
-struct re_recurse : public re_jump
-{
-   int state_id;             // identifier of first nested repeat within the recursion.
-};
-
-/*** enum re_jump_size_type *******************************************
-Provides compiled size of re_jump structure (allowing for trailing alignment).
-We provide this so we know how manybytes to insert when constructing the machine
-(The value of padding_mask is defined in regex_raw_buffer.hpp).
-***********************************************************************/
-enum re_jump_size_type
-{
-   re_jump_size = (sizeof(re_jump) + padding_mask) & ~(padding_mask),
-   re_repeater_size = (sizeof(re_repeat) + padding_mask) & ~(padding_mask),
-   re_alt_size = (sizeof(re_alt) + padding_mask) & ~(padding_mask)
-};
-
-/*** proc re_is_set_member *********************************************
-Forward declaration: we'll need this one later...
-***********************************************************************/
-
-template<class charT, class traits>
-struct regex_data;
-
-template <class iterator, class charT, class traits_type, class char_classT>
-iterator NDNBOOST_REGEX_CALL re_is_set_member(iterator next, 
-                          iterator last, 
-                          const re_set_long<char_classT>* set_, 
-                          const regex_data<charT, traits_type>& e, bool icase);
-
-} // namespace re_detail
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
-
diff --git a/include/ndnboost/regex/v4/sub_match.hpp b/include/ndnboost/regex/v4/sub_match.hpp
deleted file mode 100644
index 621cc83..0000000
--- a/include/ndnboost/regex/v4/sub_match.hpp
+++ /dev/null
@@ -1,512 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         sub_match.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares template class sub_match.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_SUB_MATCH_HPP
-#define NDNBOOST_REGEX_V4_SUB_MATCH_HPP
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-namespace ndnboost{
-
-template <class BidiIterator>
-struct sub_match : public std::pair<BidiIterator, BidiIterator>
-{
-   typedef typename re_detail::regex_iterator_traits<BidiIterator>::value_type       value_type;
-#if defined(NDNBOOST_NO_STD_ITERATOR_TRAITS) || defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-   typedef          std::ptrdiff_t                                                   difference_type;
-#else
-   typedef typename re_detail::regex_iterator_traits<BidiIterator>::difference_type  difference_type;
-#endif
-   typedef          BidiIterator                                                     iterator_type;
-   typedef          BidiIterator                                                     iterator;
-   typedef          BidiIterator                                                     const_iterator;
-
-   bool matched;
-
-   sub_match() : std::pair<BidiIterator, BidiIterator>(), matched(false) {}
-   sub_match(BidiIterator i) : std::pair<BidiIterator, BidiIterator>(i, i), matched(false) {}
-#if !defined(NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)\
-               && !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)\
-               && !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x0551)\
-               && !NDNBOOST_WORKAROUND(__DECCXX_VER, NDNBOOST_TESTED_AT(60590042))
-   template <class T, class A>
-   operator std::basic_string<value_type, T, A> ()const
-   {
-      return matched ? std::basic_string<value_type, T, A>(this->first, this->second) : std::basic_string<value_type, T, A>();
-   }
-#else
-   operator std::basic_string<value_type> ()const
-   {
-      return str();
-   }
-#endif
-   difference_type NDNBOOST_REGEX_CALL length()const
-   {
-      difference_type n = matched ? ::ndnboost::re_detail::distance((BidiIterator)this->first, (BidiIterator)this->second) : 0;
-      return n;
-   }
-   std::basic_string<value_type> str()const
-   {
-      std::basic_string<value_type> result;
-      if(matched)
-      {
-         std::size_t len = ::ndnboost::re_detail::distance((BidiIterator)this->first, (BidiIterator)this->second);
-         result.reserve(len);
-         BidiIterator i = this->first;
-         while(i != this->second)
-         {
-            result.append(1, *i);
-            ++i;
-         }
-      }
-      return result;
-   }
-   int compare(const sub_match& s)const
-   {
-      if(matched != s.matched)
-         return static_cast<int>(matched) - static_cast<int>(s.matched);
-      return str().compare(s.str());
-   }
-   int compare(const std::basic_string<value_type>& s)const
-   {
-      return str().compare(s);
-   }
-   int compare(const value_type* p)const
-   {
-      return str().compare(p);
-   }
-
-   bool operator==(const sub_match& that)const
-   { return compare(that) == 0; }
-   bool NDNBOOST_REGEX_CALL operator !=(const sub_match& that)const
-   { return compare(that) != 0; }
-   bool operator<(const sub_match& that)const
-   { return compare(that) < 0; }
-   bool operator>(const sub_match& that)const
-   { return compare(that) > 0; }
-   bool operator<=(const sub_match& that)const
-   { return compare(that) <= 0; }
-   bool operator>=(const sub_match& that)const
-   { return compare(that) >= 0; }
-
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-   typedef std::vector<sub_match<BidiIterator> > capture_sequence_type;
-
-   const capture_sequence_type& captures()const
-   {
-      if(!m_captures) 
-         m_captures.reset(new capture_sequence_type());
-      return *m_captures;
-   }
-   //
-   // Private implementation API: DO NOT USE!
-   //
-   capture_sequence_type& get_captures()const
-   {
-      if(!m_captures) 
-         m_captures.reset(new capture_sequence_type());
-      return *m_captures;
-   }
-
-private:
-   mutable ndnboost::scoped_ptr<capture_sequence_type> m_captures;
-public:
-
-#endif
-   sub_match(const sub_match& that, bool 
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-      deep_copy
-#endif
-      = true
-      ) 
-      : std::pair<BidiIterator, BidiIterator>(that), 
-        matched(that.matched) 
-   {
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-      if(that.m_captures)
-         if(deep_copy)
-            m_captures.reset(new capture_sequence_type(*(that.m_captures)));
-#endif
-   }
-   sub_match& operator=(const sub_match& that)
-   {
-      this->first = that.first;
-      this->second = that.second;
-      matched = that.matched;
-#ifdef NDNBOOST_REGEX_MATCH_EXTRA
-      if(that.m_captures)
-         get_captures() = *(that.m_captures);
-#endif
-      return *this;
-   }
-
-
-#ifdef NDNBOOST_OLD_REGEX_H
-   //
-   // the following are deprecated, do not use!!
-   //
-   operator int()const;
-   operator unsigned int()const;
-   operator short()const
-   {
-      return (short)(int)(*this);
-   }
-   operator unsigned short()const
-   {
-      return (unsigned short)(unsigned int)(*this);
-   }
-#endif
-};
-
-typedef sub_match<const char*> csub_match;
-typedef sub_match<std::string::const_iterator> ssub_match;
-#ifndef NDNBOOST_NO_WREGEX
-typedef sub_match<const wchar_t*> wcsub_match;
-typedef sub_match<std::wstring::const_iterator> wssub_match;
-#endif
-
-// comparison to std::basic_string<> part 1:
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator == (const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return s.compare(m.str()) == 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator != (const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return s.compare(m.str()) != 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator < (const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s,
-                 const sub_match<RandomAccessIterator>& m)
-{ return s.compare(m.str()) < 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator <= (const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return s.compare(m.str()) <= 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator >= (const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return s.compare(m.str()) >= 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator > (const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s,
-                 const sub_match<RandomAccessIterator>& m)
-{ return s.compare(m.str()) > 0; }
-// comparison to std::basic_string<> part 2:
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator == (const sub_match<RandomAccessIterator>& m,
-                  const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s)
-{ return m.str().compare(s) == 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator != (const sub_match<RandomAccessIterator>& m,
-                  const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s)
-{ return m.str().compare(s) != 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator < (const sub_match<RandomAccessIterator>& m,
-                  const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s)
-{ return m.str().compare(s) < 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator > (const sub_match<RandomAccessIterator>& m,
-                  const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s)
-{ return m.str().compare(s) > 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator <= (const sub_match<RandomAccessIterator>& m,
-                  const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s)
-{ return m.str().compare(s) <= 0; }
-template <class RandomAccessIterator, class traits, class Allocator>
-inline bool operator >= (const sub_match<RandomAccessIterator>& m,
-                  const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s)
-{ return m.str().compare(s) >= 0; }
-// comparison to const charT* part 1:
-template <class RandomAccessIterator>
-inline bool operator == (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s)
-{ return m.str().compare(s) == 0; }
-template <class RandomAccessIterator>
-inline bool operator != (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s)
-{ return m.str().compare(s) != 0; }
-template <class RandomAccessIterator>
-inline bool operator > (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s)
-{ return m.str().compare(s) > 0; }
-template <class RandomAccessIterator>
-inline bool operator < (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s)
-{ return m.str().compare(s) < 0; }
-template <class RandomAccessIterator>
-inline bool operator >= (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s)
-{ return m.str().compare(s) >= 0; }
-template <class RandomAccessIterator>
-inline bool operator <= (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s)
-{ return m.str().compare(s) <= 0; }
-// comparison to const charT* part 2:
-template <class RandomAccessIterator>
-inline bool operator == (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(s) == 0; }
-template <class RandomAccessIterator>
-inline bool operator != (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(s) != 0; }
-template <class RandomAccessIterator>
-inline bool operator < (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(s) > 0; }
-template <class RandomAccessIterator>
-inline bool operator > (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(s) < 0; }
-template <class RandomAccessIterator>
-inline bool operator <= (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(s) >= 0; }
-template <class RandomAccessIterator>
-inline bool operator >= (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(s) <= 0; }
-
-// comparison to const charT& part 1:
-template <class RandomAccessIterator>
-inline bool operator == (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s)
-{ return m.str().compare(0, m.length(), &s, 1) == 0; }
-template <class RandomAccessIterator>
-inline bool operator != (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s)
-{ return m.str().compare(0, m.length(), &s, 1) != 0; }
-template <class RandomAccessIterator>
-inline bool operator > (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s)
-{ return m.str().compare(0, m.length(), &s, 1) > 0; }
-template <class RandomAccessIterator>
-inline bool operator < (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s)
-{ return m.str().compare(0, m.length(), &s, 1) < 0; }
-template <class RandomAccessIterator>
-inline bool operator >= (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s)
-{ return m.str().compare(0, m.length(), &s, 1) >= 0; }
-template <class RandomAccessIterator>
-inline bool operator <= (const sub_match<RandomAccessIterator>& m,
-                  typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s)
-{ return m.str().compare(0, m.length(), &s, 1) <= 0; }
-// comparison to const charT* part 2:
-template <class RandomAccessIterator>
-inline bool operator == (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(0, m.length(), &s, 1) == 0; }
-template <class RandomAccessIterator>
-inline bool operator != (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(0, m.length(), &s, 1) != 0; }
-template <class RandomAccessIterator>
-inline bool operator < (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(0, m.length(), &s, 1) > 0; }
-template <class RandomAccessIterator>
-inline bool operator > (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(0, m.length(), &s, 1) < 0; }
-template <class RandomAccessIterator>
-inline bool operator <= (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(0, m.length(), &s, 1) >= 0; }
-template <class RandomAccessIterator>
-inline bool operator >= (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s,
-                  const sub_match<RandomAccessIterator>& m)
-{ return m.str().compare(0, m.length(), &s, 1) <= 0; }
-
-// addition operators:
-template <class RandomAccessIterator, class traits, class Allocator>
-inline std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator> 
-operator + (const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s,
-                  const sub_match<RandomAccessIterator>& m)
-{
-   std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator> result;
-   result.reserve(s.size() + m.length() + 1);
-   return result.append(s).append(m.first, m.second);
-}
-template <class RandomAccessIterator, class traits, class Allocator>
-inline std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator> 
-operator + (const sub_match<RandomAccessIterator>& m,
-            const std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator>& s)
-{
-   std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type, traits, Allocator> result;
-   result.reserve(s.size() + m.length() + 1);
-   return result.append(m.first, m.second).append(s);
-}
-#if !(defined(__GNUC__) && defined(NDNBOOST_NO_STD_LOCALE))
-template <class RandomAccessIterator>
-inline std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> 
-operator + (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s,
-                  const sub_match<RandomAccessIterator>& m)
-{
-   std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> result;
-   result.reserve(std::char_traits<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type>::length(s) + m.length() + 1);
-   return result.append(s).append(m.first, m.second);
-}
-template <class RandomAccessIterator>
-inline std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> 
-operator + (const sub_match<RandomAccessIterator>& m,
-            typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const * s)
-{
-   std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> result;
-   result.reserve(std::char_traits<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type>::length(s) + m.length() + 1);
-   return result.append(m.first, m.second).append(s);
-}
-#else
-// worwaround versions:
-template <class RandomAccessIterator>
-inline std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> 
-operator + (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const* s,
-                  const sub_match<RandomAccessIterator>& m)
-{
-   return s + m.str();
-}
-template <class RandomAccessIterator>
-inline std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> 
-operator + (const sub_match<RandomAccessIterator>& m,
-            typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const * s)
-{
-   return m.str() + s;
-}
-#endif
-template <class RandomAccessIterator>
-inline std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> 
-operator + (typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s,
-                  const sub_match<RandomAccessIterator>& m)
-{
-   std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> result;
-   result.reserve(m.length() + 2);
-   return result.append(1, s).append(m.first, m.second);
-}
-template <class RandomAccessIterator>
-inline std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> 
-operator + (const sub_match<RandomAccessIterator>& m,
-            typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type const& s)
-{
-   std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> result;
-   result.reserve(m.length() + 2);
-   return result.append(m.first, m.second).append(1, s);
-}
-template <class RandomAccessIterator>
-inline std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> 
-operator + (const sub_match<RandomAccessIterator>& m1,
-            const sub_match<RandomAccessIterator>& m2)
-{
-   std::basic_string<typename re_detail::regex_iterator_traits<RandomAccessIterator>::value_type> result;
-   result.reserve(m1.length() + m2.length() + 1);
-   return result.append(m1.first, m1.second).append(m2.first, m2.second);
-}
-#ifndef NDNBOOST_NO_STD_LOCALE
-template <class charT, class traits, class RandomAccessIterator>
-std::basic_ostream<charT, traits>&
-   operator << (std::basic_ostream<charT, traits>& os,
-                const sub_match<RandomAccessIterator>& s)
-{
-   return (os << s.str());
-}
-#else
-template <class RandomAccessIterator>
-std::ostream& operator << (std::ostream& os,
-                           const sub_match<RandomAccessIterator>& s)
-{
-   return (os << s.str());
-}
-#endif
-
-#ifdef NDNBOOST_OLD_REGEX_H
-namespace re_detail{
-template <class BidiIterator, class charT>
-int do_toi(BidiIterator i, BidiIterator j, char c, int radix)
-{
-   std::string s(i, j);
-   char* p;
-   int result = std::strtol(s.c_str(), &p, radix);
-   if(*p)raise_regex_exception("Bad sub-expression");
-   return result;
-}
-
-//
-// helper:
-template <class I, class charT>
-int do_toi(I& i, I j, charT c)
-{
-   int result = 0;
-   while((i != j) && (isdigit(*i)))
-   {
-      result = result*10 + (*i - '0');
-      ++i;
-   }
-   return result;
-}
-}
-
-
-template <class BidiIterator>
-sub_match<BidiIterator>::operator int()const
-{
-   BidiIterator i = first;
-   BidiIterator j = second;
-   if(i == j)raise_regex_exception("Bad sub-expression");
-   int neg = 1;
-   if((i != j) && (*i == '-'))
-   {
-      neg = -1;
-      ++i;
-   }
-   neg *= re_detail::do_toi(i, j, *i);
-   if(i != j)raise_regex_exception("Bad sub-expression");
-   return neg;
-}
-template <class BidiIterator>
-sub_match<BidiIterator>::operator unsigned int()const
-{
-   BidiIterator i = first;
-   BidiIterator j = second;
-   if(i == j)
-      raise_regex_exception("Bad sub-expression");
-   return re_detail::do_toi(i, j, *first);
-}
-#endif
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
-
diff --git a/include/ndnboost/regex/v4/syntax_type.hpp b/include/ndnboost/regex/v4/syntax_type.hpp
deleted file mode 100644
index e8c5170..0000000
--- a/include/ndnboost/regex/v4/syntax_type.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *
- * Copyright (c) 2003
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         syntax_type.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares regular expression synatx type enumerator.
-  */
-
-#ifndef NDNBOOST_REGEX_SYNTAX_TYPE_HPP
-#define NDNBOOST_REGEX_SYNTAX_TYPE_HPP
-
-namespace ndnboost{
-namespace regex_constants{
-
-typedef unsigned char syntax_type;
-
-//
-// values chosen are binary compatible with previous version:
-//
-static const syntax_type syntax_char = 0;
-static const syntax_type syntax_open_mark = 1;
-static const syntax_type syntax_close_mark = 2;
-static const syntax_type syntax_dollar = 3;
-static const syntax_type syntax_caret = 4;
-static const syntax_type syntax_dot = 5;
-static const syntax_type syntax_star = 6;
-static const syntax_type syntax_plus = 7;
-static const syntax_type syntax_question = 8;
-static const syntax_type syntax_open_set = 9;
-static const syntax_type syntax_close_set = 10;
-static const syntax_type syntax_or = 11;
-static const syntax_type syntax_escape = 12;
-static const syntax_type syntax_dash = 14;
-static const syntax_type syntax_open_brace = 15;
-static const syntax_type syntax_close_brace = 16;
-static const syntax_type syntax_digit = 17;
-static const syntax_type syntax_comma = 27;
-static const syntax_type syntax_equal = 37;
-static const syntax_type syntax_colon = 36;
-static const syntax_type syntax_not = 53;
-
-// extensions:
-
-static const syntax_type syntax_hash = 13;
-static const syntax_type syntax_newline = 26;
-
-// escapes:
-
-typedef syntax_type escape_syntax_type;
-
-static const escape_syntax_type escape_type_word_assert = 18;
-static const escape_syntax_type escape_type_not_word_assert = 19;
-static const escape_syntax_type escape_type_control_f = 29;
-static const escape_syntax_type escape_type_control_n = 30;
-static const escape_syntax_type escape_type_control_r = 31;
-static const escape_syntax_type escape_type_control_t = 32;
-static const escape_syntax_type escape_type_control_v = 33;
-static const escape_syntax_type escape_type_ascii_control = 35;
-static const escape_syntax_type escape_type_hex = 34;
-static const escape_syntax_type escape_type_unicode = 0; // not used
-static const escape_syntax_type escape_type_identity = 0; // not used
-static const escape_syntax_type escape_type_backref = syntax_digit;
-static const escape_syntax_type escape_type_decimal = syntax_digit; // not used
-static const escape_syntax_type escape_type_class = 22; 
-static const escape_syntax_type escape_type_not_class = 23; 
-
-// extensions:
-
-static const escape_syntax_type escape_type_left_word = 20;
-static const escape_syntax_type escape_type_right_word = 21;
-static const escape_syntax_type escape_type_start_buffer = 24;                 // for \`
-static const escape_syntax_type escape_type_end_buffer = 25;                   // for \'
-static const escape_syntax_type escape_type_control_a = 28;                    // for \a
-static const escape_syntax_type escape_type_e = 38;                            // for \e
-static const escape_syntax_type escape_type_E = 47;                            // for \Q\E
-static const escape_syntax_type escape_type_Q = 48;                            // for \Q\E
-static const escape_syntax_type escape_type_X = 49;                            // for \X
-static const escape_syntax_type escape_type_C = 50;                            // for \C
-static const escape_syntax_type escape_type_Z = 51;                            // for \Z
-static const escape_syntax_type escape_type_G = 52;                            // for \G
-
-static const escape_syntax_type escape_type_property = 54;                     // for \p
-static const escape_syntax_type escape_type_not_property = 55;                 // for \P
-static const escape_syntax_type escape_type_named_char = 56;                   // for \N
-static const escape_syntax_type escape_type_extended_backref = 57;             // for \g
-static const escape_syntax_type escape_type_reset_start_mark = 58;             // for \K
-static const escape_syntax_type escape_type_line_ending = 59;                  // for \R
-
-static const escape_syntax_type syntax_max = 60;
-
-}
-}
-
-
-#endif
diff --git a/include/ndnboost/regex/v4/u32regex_iterator.hpp b/include/ndnboost/regex/v4/u32regex_iterator.hpp
deleted file mode 100644
index 27149f6..0000000
--- a/include/ndnboost/regex/v4/u32regex_iterator.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- *
- * Copyright (c) 2003
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         u32regex_iterator.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Provides u32regex_iterator implementation.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_U32REGEX_ITERATOR_HPP
-#define NDNBOOST_REGEX_V4_U32REGEX_ITERATOR_HPP
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-
-template <class BidirectionalIterator>
-class u32regex_iterator_implementation 
-{
-   typedef u32regex regex_type;
-
-   match_results<BidirectionalIterator> what;  // current match
-   BidirectionalIterator                base;  // start of sequence
-   BidirectionalIterator                end;   // end of sequence
-   const regex_type                     re;   // the expression
-   match_flag_type                      flags; // flags for matching
-
-public:
-   u32regex_iterator_implementation(const regex_type* p, BidirectionalIterator last, match_flag_type f)
-      : base(), end(last), re(*p), flags(f){}
-   bool init(BidirectionalIterator first)
-   {
-      base = first;
-      return u32regex_search(first, end, what, re, flags, base);
-   }
-   bool compare(const u32regex_iterator_implementation& that)
-   {
-      if(this == &that) return true;
-      return (&re.get_data() == &that.re.get_data()) && (end == that.end) && (flags == that.flags) && (what[0].first == that.what[0].first) && (what[0].second == that.what[0].second);
-   }
-   const match_results<BidirectionalIterator>& get()
-   { return what; }
-   bool next()
-   {
-      //if(what.prefix().first != what[0].second)
-      //   flags |= match_prev_avail;
-      BidirectionalIterator next_start = what[0].second;
-      match_flag_type f(flags);
-      if(!what.length())
-         f |= regex_constants::match_not_initial_null;
-      //if(base != next_start)
-      //   f |= regex_constants::match_not_bob;
-      bool result = u32regex_search(next_start, end, what, re, f, base);
-      if(result)
-         what.set_base(base);
-      return result;
-   }
-private:
-   u32regex_iterator_implementation& operator=(const u32regex_iterator_implementation&);
-};
-
-template <class BidirectionalIterator>
-class u32regex_iterator 
-#ifndef NDNBOOST_NO_STD_ITERATOR
-   : public std::iterator<
-         std::forward_iterator_tag, 
-         match_results<BidirectionalIterator>,
-         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,
-         const match_results<BidirectionalIterator>*,
-         const match_results<BidirectionalIterator>& >         
-#endif
-{
-private:
-   typedef u32regex_iterator_implementation<BidirectionalIterator> impl;
-   typedef shared_ptr<impl> pimpl;
-public:
-   typedef          u32regex                                                regex_type;
-   typedef          match_results<BidirectionalIterator>                    value_type;
-   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type 
-                                                                            difference_type;
-   typedef          const value_type*                                       pointer;
-   typedef          const value_type&                                       reference; 
-   typedef          std::forward_iterator_tag                               iterator_category;
-   
-   u32regex_iterator(){}
-   u32regex_iterator(BidirectionalIterator a, BidirectionalIterator b, 
-                  const regex_type& re, 
-                  match_flag_type m = match_default)
-                  : pdata(new impl(&re, b, m))
-   {
-      if(!pdata->init(a))
-      {
-         pdata.reset();
-      }
-   }
-   u32regex_iterator(const u32regex_iterator& that)
-      : pdata(that.pdata) {}
-   u32regex_iterator& operator=(const u32regex_iterator& that)
-   {
-      pdata = that.pdata;
-      return *this;
-   }
-   bool operator==(const u32regex_iterator& that)const
-   { 
-      if((pdata.get() == 0) || (that.pdata.get() == 0))
-         return pdata.get() == that.pdata.get();
-      return pdata->compare(*(that.pdata.get())); 
-   }
-   bool operator!=(const u32regex_iterator& that)const
-   { return !(*this == that); }
-   const value_type& operator*()const
-   { return pdata->get(); }
-   const value_type* operator->()const
-   { return &(pdata->get()); }
-   u32regex_iterator& operator++()
-   {
-      cow();
-      if(0 == pdata->next())
-      {
-         pdata.reset();
-      }
-      return *this;
-   }
-   u32regex_iterator operator++(int)
-   {
-      u32regex_iterator result(*this);
-      ++(*this);
-      return result;
-   }
-private:
-
-   pimpl pdata;
-
-   void cow()
-   {
-      // copy-on-write
-      if(pdata.get() && !pdata.unique())
-      {
-         pdata.reset(new impl(*(pdata.get())));
-      }
-   }
-};
-
-typedef u32regex_iterator<const char*> utf8regex_iterator;
-typedef u32regex_iterator<const UChar*> utf16regex_iterator;
-typedef u32regex_iterator<const UChar32*> utf32regex_iterator;
-
-inline u32regex_iterator<const char*> make_u32regex_iterator(const char* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_iterator<const char*>(p, p+std::strlen(p), e, m);
-}
-#ifndef NDNBOOST_NO_WREGEX
-inline u32regex_iterator<const wchar_t*> make_u32regex_iterator(const wchar_t* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_iterator<const wchar_t*>(p, p+std::wcslen(p), e, m);
-}
-#endif
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
-inline u32regex_iterator<const UChar*> make_u32regex_iterator(const UChar* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_iterator<const UChar*>(p, p+u_strlen(p), e, m);
-}
-#endif
-template <class charT, class Traits, class Alloc>
-inline u32regex_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
-   return u32regex_iterator<iter_type>(p.begin(), p.end(), e, m);
-}
-inline u32regex_iterator<const UChar*> make_u32regex_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, m);
-}
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_REGEX_V4_REGEX_ITERATOR_HPP
-
diff --git a/include/ndnboost/regex/v4/u32regex_token_iterator.hpp b/include/ndnboost/regex/v4/u32regex_token_iterator.hpp
deleted file mode 100644
index 08d40cf..0000000
--- a/include/ndnboost/regex/v4/u32regex_token_iterator.hpp
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- *
- * Copyright (c) 2003
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         u32regex_token_iterator.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Provides u32regex_token_iterator implementation.
-  */
-
-#ifndef NDNBOOST_REGEX_V4_U32REGEX_TOKEN_ITERATOR_HPP
-#define NDNBOOST_REGEX_V4_U32REGEX_TOKEN_ITERATOR_HPP
-
-#if (NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x560) && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x570)))\
-      || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
-      || NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003))
-//
-// Borland C++ Builder 6, and Visual C++ 6,
-// can't cope with the array template constructor
-// so we have a template member that will accept any type as 
-// argument, and then assert that is really is an array:
-//
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-#endif
-
-namespace ndnboost{
-
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, > 1300)
-#  pragma warning(push)
-#  pragma warning(disable:4700)
-#endif
-
-template <class BidirectionalIterator>
-class u32regex_token_iterator_implementation 
-{
-   typedef u32regex                              regex_type;
-   typedef sub_match<BidirectionalIterator>      value_type;
-
-   match_results<BidirectionalIterator> what;   // current match
-   BidirectionalIterator                end;    // end of search area
-   BidirectionalIterator                base;   // start of search area
-   const regex_type                     re;     // the expression
-   match_flag_type                      flags;  // match flags
-   value_type                           result; // the current string result
-   int                                  N;      // the current sub-expression being enumerated
-   std::vector<int>                     subs;   // the sub-expressions to enumerate
-
-public:
-   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, int sub, match_flag_type f)
-      : end(last), re(*p), flags(f){ subs.push_back(sub); }
-   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const std::vector<int>& v, match_flag_type f)
-      : end(last), re(*p), flags(f), subs(v){}
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-      // can't reliably get this to work....
-#elif (NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x560) && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x570)))\
-      || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
-      || NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003)) \
-      || NDNBOOST_WORKAROUND(__HP_aCC, < 60700)
-   template <class T>
-   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const T& submatches, match_flag_type f)
-      : end(last), re(*p), flags(f)
-   {
-      // assert that T really is an array:
-      NDNBOOST_STATIC_ASSERT(::ndnboost::is_array<T>::value);
-      const std::size_t array_size = sizeof(T) / sizeof(submatches[0]);
-      for(std::size_t i = 0; i < array_size; ++i)
-      {
-         subs.push_back(submatches[i]);
-      }
-   }
-#else
-   template <std::size_t CN>
-   u32regex_token_iterator_implementation(const regex_type* p, BidirectionalIterator last, const int (&submatches)[CN], match_flag_type f)
-      : end(last), re(*p), flags(f)
-   {
-      for(std::size_t i = 0; i < CN; ++i)
-      {
-         subs.push_back(submatches[i]);
-      }
-   }
-#endif
-
-   bool init(BidirectionalIterator first)
-   {
-      base = first;
-      N = 0;
-      if(u32regex_search(first, end, what, re, flags, base) == true)
-      {
-         N = 0;
-         result = ((subs[N] == -1) ? what.prefix() : what[(int)subs[N]]);
-         return true;
-      }
-      else if((subs[N] == -1) && (first != end))
-      {
-         result.first = first;
-         result.second = end;
-         result.matched = (first != end);
-         N = -1;
-         return true;
-      }
-      return false;
-   }
-   bool compare(const u32regex_token_iterator_implementation& that)
-   {
-      if(this == &that) return true;
-      return (&re.get_data() == &that.re.get_data()) 
-         && (end == that.end) 
-         && (flags == that.flags) 
-         && (N == that.N) 
-         && (what[0].first == that.what[0].first) 
-         && (what[0].second == that.what[0].second);
-   }
-   const value_type& get()
-   { return result; }
-   bool next()
-   {
-      if(N == -1)
-         return false;
-      if(N+1 < (int)subs.size())
-      {
-         ++N;
-         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);
-         return true;
-      }
-      //if(what.prefix().first != what[0].second)
-      //   flags |= match_prev_avail | regex_constants::match_not_bob;
-      BidirectionalIterator last_end(what[0].second);
-      if(u32regex_search(last_end, end, what, re, ((what[0].first == what[0].second) ? flags | regex_constants::match_not_initial_null : flags), base))
-      {
-         N =0;
-         result =((subs[N] == -1) ? what.prefix() : what[subs[N]]);
-         return true;
-      }
-      else if((last_end != end) && (subs[0] == -1))
-      {
-         N =-1;
-         result.first = last_end;
-         result.second = end;
-         result.matched = (last_end != end);
-         return true;
-      }
-      return false;
-   }
-private:
-   u32regex_token_iterator_implementation& operator=(const u32regex_token_iterator_implementation&);
-};
-
-template <class BidirectionalIterator>
-class u32regex_token_iterator 
-#ifndef NDNBOOST_NO_STD_ITERATOR
-   : public std::iterator<
-         std::forward_iterator_tag, 
-         sub_match<BidirectionalIterator>,
-         typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type,
-         const sub_match<BidirectionalIterator>*,
-         const sub_match<BidirectionalIterator>& >         
-#endif
-{
-private:
-   typedef u32regex_token_iterator_implementation<BidirectionalIterator> impl;
-   typedef shared_ptr<impl> pimpl;
-public:
-   typedef          u32regex                                                regex_type;
-   typedef          sub_match<BidirectionalIterator>                        value_type;
-   typedef typename re_detail::regex_iterator_traits<BidirectionalIterator>::difference_type 
-                                                                            difference_type;
-   typedef          const value_type*                                       pointer;
-   typedef          const value_type&                                       reference; 
-   typedef          std::forward_iterator_tag                               iterator_category;
-   
-   u32regex_token_iterator(){}
-   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, 
-                        int submatch = 0, match_flag_type m = match_default)
-                        : pdata(new impl(&re, b, submatch, m))
-   {
-      if(!pdata->init(a))
-         pdata.reset();
-   }
-   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re, 
-                        const std::vector<int>& submatches, match_flag_type m = match_default)
-                        : pdata(new impl(&re, b, submatches, m))
-   {
-      if(!pdata->init(a))
-         pdata.reset();
-   }
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-      // can't reliably get this to work....
-#elif (NDNBOOST_WORKAROUND(__BORLANDC__, >= 0x560) && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x570)))\
-      || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) \
-      || NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3003)) \
-      || NDNBOOST_WORKAROUND(__HP_aCC, < 60700)
-   template <class T>
-   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,
-                        const T& submatches, match_flag_type m = match_default)
-                        : pdata(new impl(&re, b, submatches, m))
-   {
-      if(!pdata->init(a))
-         pdata.reset();
-   }
-#else
-   template <std::size_t N>
-   u32regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type& re,
-                        const int (&submatches)[N], match_flag_type m = match_default)
-                        : pdata(new impl(&re, b, submatches, m))
-   {
-      if(!pdata->init(a))
-         pdata.reset();
-   }
-#endif
-   u32regex_token_iterator(const u32regex_token_iterator& that)
-      : pdata(that.pdata) {}
-   u32regex_token_iterator& operator=(const u32regex_token_iterator& that)
-   {
-      pdata = that.pdata;
-      return *this;
-   }
-   bool operator==(const u32regex_token_iterator& that)const
-   { 
-      if((pdata.get() == 0) || (that.pdata.get() == 0))
-         return pdata.get() == that.pdata.get();
-      return pdata->compare(*(that.pdata.get())); 
-   }
-   bool operator!=(const u32regex_token_iterator& that)const
-   { return !(*this == that); }
-   const value_type& operator*()const
-   { return pdata->get(); }
-   const value_type* operator->()const
-   { return &(pdata->get()); }
-   u32regex_token_iterator& operator++()
-   {
-      cow();
-      if(0 == pdata->next())
-      {
-         pdata.reset();
-      }
-      return *this;
-   }
-   u32regex_token_iterator operator++(int)
-   {
-      u32regex_token_iterator result(*this);
-      ++(*this);
-      return result;
-   }
-private:
-
-   pimpl pdata;
-
-   void cow()
-   {
-      // copy-on-write
-      if(pdata.get() && !pdata.unique())
-      {
-         pdata.reset(new impl(*(pdata.get())));
-      }
-   }
-};
-
-typedef u32regex_token_iterator<const char*> utf8regex_token_iterator;
-typedef u32regex_token_iterator<const UChar*> utf16regex_token_iterator;
-typedef u32regex_token_iterator<const UChar32*> utf32regex_token_iterator;
-
-// construction from an integral sub_match state_id:
-inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);
-}
-#ifndef NDNBOOST_NO_WREGEX
-inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);
-}
-#endif
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, submatch, m);
-}
-#endif
-template <class charT, class Traits, class Alloc>
-inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
-   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, submatch, m);
-}
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);
-}
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-// construction from a reference to an array:
-template <std::size_t N>
-inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);
-}
-#ifndef NDNBOOST_NO_WREGEX
-template <std::size_t N>
-inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);
-}
-#endif
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
-template <std::size_t N>
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, submatch, m);
-}
-#endif
-template <class charT, class Traits, class Alloc, std::size_t N>
-inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
-   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, submatch, m);
-}
-template <std::size_t N>
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);
-}
-#endif // NDNBOOST_MSVC < 1300
-
-// construction from a vector of sub_match state_id's:
-inline u32regex_token_iterator<const char*> make_u32regex_token_iterator(const char* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const char*>(p, p+std::strlen(p), e, submatch, m);
-}
-#ifndef NDNBOOST_NO_WREGEX
-inline u32regex_token_iterator<const wchar_t*> make_u32regex_token_iterator(const wchar_t* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const wchar_t*>(p, p+std::wcslen(p), e, submatch, m);
-}
-#endif
-#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2)
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const UChar* p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const UChar*>(p, p+u_strlen(p), e, submatch, m);
-}
-#endif
-template <class charT, class Traits, class Alloc>
-inline u32regex_token_iterator<typename std::basic_string<charT, Traits, Alloc>::const_iterator> make_u32regex_token_iterator(const std::basic_string<charT, Traits, Alloc>& p, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   typedef typename std::basic_string<charT, Traits, Alloc>::const_iterator iter_type;
-   return u32regex_token_iterator<iter_type>(p.begin(), p.end(), e, submatch, m);
-}
-inline u32regex_token_iterator<const UChar*> make_u32regex_token_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, const std::vector<int>& submatch, regex_constants::match_flag_type m = regex_constants::match_default)
-{
-   return u32regex_token_iterator<const UChar*>(s.getBuffer(), s.getBuffer() + s.length(), e, submatch, m);
-}
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, > 1300)
-#  pragma warning(pop)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_REGEX_V4_REGEX_TOKEN_ITERATOR_HPP
-
-
-
-
diff --git a/include/ndnboost/regex/v4/w32_regex_traits.hpp b/include/ndnboost/regex/v4/w32_regex_traits.hpp
deleted file mode 100644
index dafb189..0000000
--- a/include/ndnboost/regex/v4/w32_regex_traits.hpp
+++ /dev/null
@@ -1,741 +0,0 @@
-/*
- *
- * Copyright (c) 2004
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
- 
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         w32_regex_traits.hpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Declares regular expression traits class w32_regex_traits.
-  */
-
-#ifndef NDNBOOST_W32_REGEX_TRAITS_HPP_INCLUDED
-#define NDNBOOST_W32_REGEX_TRAITS_HPP_INCLUDED
-
-#ifndef NDNBOOST_RE_PAT_EXCEPT_HPP
-#include <ndnboost/regex/pattern_except.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_TRAITS_DEFAULTS_HPP_INCLUDED
-#include <ndnboost/regex/v4/regex_traits_defaults.hpp>
-#endif
-#ifdef NDNBOOST_HAS_THREADS
-#include <ndnboost/regex/pending/static_mutex.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_PRIMARY_TRANSFORM
-#include <ndnboost/regex/v4/primary_transform.hpp>
-#endif
-#ifndef NDNBOOST_REGEX_OBJECT_CACHE_HPP
-#include <ndnboost/regex/pending/object_cache.hpp>
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_PREFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4786)
-#pragma warning(disable:4800)
-#endif
-
-namespace ndnboost{ 
-
-//
-// forward declaration is needed by some compilers:
-//
-template <class charT>
-class w32_regex_traits;
-   
-namespace re_detail{
-
-//
-// start by typedeffing the types we'll need:
-//
-typedef ::ndnboost::uint32_t lcid_type;   // placeholder for LCID.
-typedef ::ndnboost::shared_ptr<void> cat_type; // placeholder for dll HANDLE.
-
-//
-// then add wrappers around the actual Win32 API's (ie implementation hiding):
-//
-NDNBOOST_REGEX_DECL lcid_type NDNBOOST_REGEX_CALL w32_get_default_locale();
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL w32_is_lower(char, lcid_type);
-#ifndef NDNBOOST_NO_WREGEX
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL w32_is_lower(wchar_t, lcid_type);
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL w32_is_lower(unsigned short ca, lcid_type state_id);
-#endif
-#endif
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL w32_is_upper(char, lcid_type);
-#ifndef NDNBOOST_NO_WREGEX
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL w32_is_upper(wchar_t, lcid_type);
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL w32_is_upper(unsigned short ca, lcid_type state_id);
-#endif
-#endif
-NDNBOOST_REGEX_DECL cat_type NDNBOOST_REGEX_CALL w32_cat_open(const std::string& name);
-NDNBOOST_REGEX_DECL std::string NDNBOOST_REGEX_CALL w32_cat_get(const cat_type& cat, lcid_type state_id, int i, const std::string& def);
-#ifndef NDNBOOST_NO_WREGEX
-NDNBOOST_REGEX_DECL std::wstring NDNBOOST_REGEX_CALL w32_cat_get(const cat_type& cat, lcid_type state_id, int i, const std::wstring& def);
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-NDNBOOST_REGEX_DECL std::basic_string<unsigned short> NDNBOOST_REGEX_CALL w32_cat_get(const cat_type& cat, lcid_type, int i, const std::basic_string<unsigned short>& def);
-#endif
-#endif
-NDNBOOST_REGEX_DECL std::string NDNBOOST_REGEX_CALL w32_transform(lcid_type state_id, const char* p1, const char* p2);
-#ifndef NDNBOOST_NO_WREGEX
-NDNBOOST_REGEX_DECL std::wstring NDNBOOST_REGEX_CALL w32_transform(lcid_type state_id, const wchar_t* p1, const wchar_t* p2);
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-NDNBOOST_REGEX_DECL std::basic_string<unsigned short> NDNBOOST_REGEX_CALL w32_transform(lcid_type state_id, const unsigned short* p1, const unsigned short* p2);
-#endif
-#endif
-NDNBOOST_REGEX_DECL char NDNBOOST_REGEX_CALL w32_tolower(char c, lcid_type);
-#ifndef NDNBOOST_NO_WREGEX
-NDNBOOST_REGEX_DECL wchar_t NDNBOOST_REGEX_CALL w32_tolower(wchar_t c, lcid_type);
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-NDNBOOST_REGEX_DECL unsigned short NDNBOOST_REGEX_CALL w32_tolower(unsigned short c, lcid_type state_id);
-#endif
-#endif
-NDNBOOST_REGEX_DECL char NDNBOOST_REGEX_CALL w32_toupper(char c, lcid_type);
-#ifndef NDNBOOST_NO_WREGEX
-NDNBOOST_REGEX_DECL wchar_t NDNBOOST_REGEX_CALL w32_toupper(wchar_t c, lcid_type);
-#endif
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL w32_is(lcid_type, ndnboost::uint32_t mask, char c);
-#ifndef NDNBOOST_NO_WREGEX
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL w32_is(lcid_type, ndnboost::uint32_t mask, wchar_t c);
-#ifdef NDNBOOST_REGEX_HAS_OTHER_WCHAR_T
-NDNBOOST_REGEX_DECL bool NDNBOOST_REGEX_CALL w32_is(lcid_type state_id, ndnboost::uint32_t m, unsigned short c);
-#endif
-#endif
-//
-// class w32_regex_traits_base:
-// acts as a container for locale and the facets we are using.
-//
-template <class charT>
-struct w32_regex_traits_base
-{
-   w32_regex_traits_base(lcid_type l)
-   { imbue(l); }
-   lcid_type imbue(lcid_type l);
-
-   lcid_type m_locale;
-};
-
-template <class charT>
-inline lcid_type w32_regex_traits_base<charT>::imbue(lcid_type l)
-{
-   lcid_type result(m_locale);
-   m_locale = l;
-   return result;
-}
-
-//
-// class w32_regex_traits_char_layer:
-// implements methods that require specialisation for narrow characters:
-//
-template <class charT>
-class w32_regex_traits_char_layer : public w32_regex_traits_base<charT>
-{
-   typedef std::basic_string<charT> string_type;
-   typedef std::map<charT, regex_constants::syntax_type> map_type;
-   typedef typename map_type::const_iterator map_iterator_type;
-public:
-   w32_regex_traits_char_layer(const lcid_type l);
-
-   regex_constants::syntax_type syntax_type(charT c)const
-   {
-      map_iterator_type i = m_char_map.find(c);
-      return ((i == m_char_map.end()) ? 0 : i->second);
-   }
-   regex_constants::escape_syntax_type escape_syntax_type(charT c) const
-   {
-      map_iterator_type i = m_char_map.find(c);
-      if(i == m_char_map.end())
-      {
-         if(::ndnboost::re_detail::w32_is_lower(c, this->m_locale)) return regex_constants::escape_type_class;
-         if(::ndnboost::re_detail::w32_is_upper(c, this->m_locale)) return regex_constants::escape_type_not_class;
-         return 0;
-      }
-      return i->second;
-   }
-   charT tolower(charT c)const
-   {
-      return ::ndnboost::re_detail::w32_tolower(c, this->m_locale);
-   }
-   bool isctype(ndnboost::uint32_t mask, charT c)const
-   {
-      return ::ndnboost::re_detail::w32_is(this->m_locale, mask, c);
-   }
-
-private:
-   string_type get_default_message(regex_constants::syntax_type);
-   // TODO: use a hash table when available!
-   map_type m_char_map;
-};
-
-template <class charT>
-w32_regex_traits_char_layer<charT>::w32_regex_traits_char_layer(::ndnboost::re_detail::lcid_type l) 
-   : w32_regex_traits_base<charT>(l)
-{
-   // we need to start by initialising our syntax map so we know which
-   // character is used for which purpose:
-   cat_type cat;
-   std::string cat_name(w32_regex_traits<charT>::get_catalog_name());
-   if(cat_name.size())
-   {
-      cat = ::ndnboost::re_detail::w32_cat_open(cat_name);
-      if(!cat)
-      {
-         std::string m("Unable to open message catalog: ");
-         std::runtime_error err(m + cat_name);
-         ndnboost::re_detail::raise_runtime_error(err);
-      }
-   }
-   //
-   // if we have a valid catalog then load our messages:
-   //
-   if(cat)
-   {
-      for(regex_constants::syntax_type i = 1; i < regex_constants::syntax_max; ++i)
-      {
-         string_type mss = ::ndnboost::re_detail::w32_cat_get(cat, this->m_locale, i, get_default_message(i));
-         for(typename string_type::size_type j = 0; j < mss.size(); ++j)
-         {
-            this->m_char_map[mss[j]] = i;
-         }
-      }
-   }
-   else
-   {
-      for(regex_constants::syntax_type i = 1; i < regex_constants::syntax_max; ++i)
-      {
-         const char* ptr = get_default_syntax(i);
-         while(ptr && *ptr)
-         {
-            this->m_char_map[static_cast<charT>(*ptr)] = i;
-            ++ptr;
-         }
-      }
-   }
-}
-
-template <class charT>
-typename w32_regex_traits_char_layer<charT>::string_type 
-   w32_regex_traits_char_layer<charT>::get_default_message(regex_constants::syntax_type i)
-{
-   const char* ptr = get_default_syntax(i);
-   string_type result;
-   while(ptr && *ptr)
-   {
-      result.append(1, static_cast<charT>(*ptr));
-      ++ptr;
-   }
-   return result;
-}
-
-//
-// specialised version for narrow characters:
-//
-template <>
-class NDNBOOST_REGEX_DECL w32_regex_traits_char_layer<char> : public w32_regex_traits_base<char>
-{
-   typedef std::string string_type;
-public:
-   w32_regex_traits_char_layer(::ndnboost::re_detail::lcid_type l)
-   : w32_regex_traits_base<char>(l)
-   {
-      init();
-   }
-
-   regex_constants::syntax_type syntax_type(char c)const
-   {
-      return m_char_map[static_cast<unsigned char>(c)];
-   }
-   regex_constants::escape_syntax_type escape_syntax_type(char c) const
-   {
-      return m_char_map[static_cast<unsigned char>(c)];
-   }
-   char tolower(char c)const
-   {
-      return m_lower_map[static_cast<unsigned char>(c)];
-   }
-   bool isctype(ndnboost::uint32_t mask, char c)const
-   {
-      return m_type_map[static_cast<unsigned char>(c)] & mask;
-   }
-
-private:
-   regex_constants::syntax_type m_char_map[1u << CHAR_BIT];
-   char m_lower_map[1u << CHAR_BIT];
-   ndnboost::uint16_t m_type_map[1u << CHAR_BIT];
-   void init();
-};
-
-//
-// class w32_regex_traits_implementation:
-// provides pimpl implementation for w32_regex_traits.
-//
-template <class charT>
-class w32_regex_traits_implementation : public w32_regex_traits_char_layer<charT>
-{
-public:
-   typedef typename w32_regex_traits<charT>::char_class_type char_class_type;
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_word = 0x0400); // must be C1_DEFINED << 1
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_unicode = 0x0800); // must be C1_DEFINED << 2
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_horizontal = 0x1000); // must be C1_DEFINED << 3
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_vertical = 0x2000); // must be C1_DEFINED << 4
-   NDNBOOST_STATIC_CONSTANT(char_class_type, mask_base = 0x3ff);  // all the masks used by the CT_CTYPE1 group
-
-   typedef std::basic_string<charT> string_type;
-   typedef charT char_type;
-   w32_regex_traits_implementation(::ndnboost::re_detail::lcid_type l);
-   std::string error_string(regex_constants::error_type n) const
-   {
-      if(!m_error_strings.empty())
-      {
-         std::map<int, std::string>::const_iterator p = m_error_strings.find(n);
-         return (p == m_error_strings.end()) ? std::string(get_default_error_string(n)) : p->second;
-      }
-      return get_default_error_string(n);
-   }
-   char_class_type lookup_classname(const charT* p1, const charT* p2) const
-   {
-      char_class_type result = lookup_classname_imp(p1, p2);
-      if(result == 0)
-      {
-         typedef typename string_type::size_type size_type;
-         string_type temp(p1, p2);
-         for(size_type i = 0; i < temp.size(); ++i)
-            temp[i] = this->tolower(temp[i]);
-         result = lookup_classname_imp(&*temp.begin(), &*temp.begin() + temp.size());
-      }
-      return result;
-   }
-   string_type lookup_collatename(const charT* p1, const charT* p2) const;
-   string_type transform_primary(const charT* p1, const charT* p2) const;
-   string_type transform(const charT* p1, const charT* p2) const
-   {
-      return ::ndnboost::re_detail::w32_transform(this->m_locale, p1, p2);
-   }
-private:
-   std::map<int, std::string>     m_error_strings;   // error messages indexed by numberic ID
-   std::map<string_type, char_class_type>  m_custom_class_names; // character class names
-   std::map<string_type, string_type>      m_custom_collate_names; // collating element names
-   unsigned                       m_collate_type;    // the form of the collation string
-   charT                          m_collate_delim;   // the collation group delimiter
-   //
-   // helpers:
-   //
-   char_class_type lookup_classname_imp(const charT* p1, const charT* p2) const;
-};
-
-template <class charT>
-typename w32_regex_traits_implementation<charT>::string_type 
-   w32_regex_traits_implementation<charT>::transform_primary(const charT* p1, const charT* p2) const
-{
-   string_type result;
-   //
-   // What we do here depends upon the format of the sort key returned by
-   // sort key returned by this->transform:
-   //
-   switch(m_collate_type)
-   {
-   case sort_C:
-   case sort_unknown:
-      // the best we can do is translate to lower case, then get a regular sort key:
-      {
-         result.assign(p1, p2);
-         typedef typename string_type::size_type size_type;
-         for(size_type i = 0; i < result.size(); ++i)
-            result[i] = this->tolower(result[i]);
-         result = this->transform(&*result.begin(), &*result.begin() + result.size());
-         break;
-      }
-   case sort_fixed:
-      {
-         // get a regular sort key, and then truncate it:
-         result.assign(this->transform(p1, p2));
-         result.erase(this->m_collate_delim);
-         break;
-      }
-   case sort_delim:
-         // get a regular sort key, and then truncate everything after the delim:
-         result.assign(this->transform(p1, p2));
-         std::size_t i;
-         for(i = 0; i < result.size(); ++i)
-         {
-            if(result[i] == m_collate_delim)
-               break;
-         }
-         result.erase(i);
-         break;
-   }
-   if(result.empty())
-      result = string_type(1, charT(0));
-   return result;
-}
-
-template <class charT>
-typename w32_regex_traits_implementation<charT>::string_type 
-   w32_regex_traits_implementation<charT>::lookup_collatename(const charT* p1, const charT* p2) const
-{
-   typedef typename std::map<string_type, string_type>::const_iterator iter_type;
-   if(m_custom_collate_names.size())
-   {
-      iter_type pos = m_custom_collate_names.find(string_type(p1, p2));
-      if(pos != m_custom_collate_names.end())
-         return pos->second;
-   }
-#if !defined(NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)\
-               && !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)\
-               && !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
-   std::string name(p1, p2);
-#else
-   std::string name;
-   const charT* p0 = p1;
-   while(p0 != p2)
-      name.append(1, char(*p0++));
-#endif
-   name = lookup_default_collate_name(name);
-#if !defined(NDNBOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)\
-               && !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)\
-               && !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x0551)
-   if(name.size())
-      return string_type(name.begin(), name.end());
-#else
-   if(name.size())
-   {
-      string_type result;
-      typedef std::string::const_iterator iter;
-      iter b = name.begin();
-      iter e = name.end();
-      while(b != e)
-         result.append(1, charT(*b++));
-      return result;
-   }
-#endif
-   if(p2 - p1 == 1)
-      return string_type(1, *p1);
-   return string_type();
-}
-
-template <class charT>
-w32_regex_traits_implementation<charT>::w32_regex_traits_implementation(::ndnboost::re_detail::lcid_type l)
-: w32_regex_traits_char_layer<charT>(l)
-{
-   cat_type cat;
-   std::string cat_name(w32_regex_traits<charT>::get_catalog_name());
-   if(cat_name.size())
-   {
-      cat = ::ndnboost::re_detail::w32_cat_open(cat_name);
-      if(!cat)
-      {
-         std::string m("Unable to open message catalog: ");
-         std::runtime_error err(m + cat_name);
-         ndnboost::re_detail::raise_runtime_error(err);
-      }
-   }
-   //
-   // if we have a valid catalog then load our messages:
-   //
-   if(cat)
-   {
-      //
-      // Error messages:
-      //
-      for(ndnboost::regex_constants::error_type i = static_cast<ndnboost::regex_constants::error_type>(0); 
-         i <= ndnboost::regex_constants::error_unknown; 
-         i = static_cast<ndnboost::regex_constants::error_type>(i + 1))
-      {
-         const char* p = get_default_error_string(i);
-         string_type default_message;
-         while(*p)
-         {
-            default_message.append(1, static_cast<charT>(*p));
-            ++p;
-         }
-         string_type s = ::ndnboost::re_detail::w32_cat_get(cat, this->m_locale, i+200, default_message);
-         std::string result;
-         for(std::string::size_type j = 0; j < s.size(); ++j)
-         {
-            result.append(1, static_cast<char>(s[j]));
-         }
-         m_error_strings[i] = result;
-      }
-      //
-      // Custom class names:
-      //
-      static const char_class_type masks[14] = 
-      {
-         0x0104u, // C1_ALPHA | C1_DIGIT
-         0x0100u, // C1_ALPHA
-         0x0020u, // C1_CNTRL
-         0x0004u, // C1_DIGIT
-         (~(0x0020u|0x0008u) & 0x01ffu) | 0x0400u, // not C1_CNTRL or C1_SPACE
-         0x0002u, // C1_LOWER
-         (~0x0020u & 0x01ffu) | 0x0400, // not C1_CNTRL
-         0x0010u, // C1_PUNCT
-         0x0008u, // C1_SPACE
-         0x0001u, // C1_UPPER
-         0x0080u, // C1_XDIGIT
-         0x0040u, // C1_BLANK
-         w32_regex_traits_implementation<charT>::mask_word,
-         w32_regex_traits_implementation<charT>::mask_unicode,
-      };
-      static const string_type null_string;
-      for(unsigned int j = 0; j <= 13; ++j)
-      {
-         string_type s(::ndnboost::re_detail::w32_cat_get(cat, this->m_locale, j+300, null_string));
-         if(s.size())
-            this->m_custom_class_names[s] = masks[j];
-      }
-   }
-   //
-   // get the collation format used by m_pcollate:
-   //
-   m_collate_type = re_detail::find_sort_syntax(this, &m_collate_delim);
-}
-
-template <class charT>
-typename w32_regex_traits_implementation<charT>::char_class_type 
-   w32_regex_traits_implementation<charT>::lookup_classname_imp(const charT* p1, const charT* p2) const
-{
-   static const char_class_type masks[22] = 
-   {
-      0,
-      0x0104u, // C1_ALPHA | C1_DIGIT
-      0x0100u, // C1_ALPHA
-      0x0040u, // C1_BLANK
-      0x0020u, // C1_CNTRL
-      0x0004u, // C1_DIGIT
-      0x0004u, // C1_DIGIT
-      (~(0x0020u|0x0008u|0x0040) & 0x01ffu) | 0x0400u, // not C1_CNTRL or C1_SPACE or C1_BLANK
-      w32_regex_traits_implementation<charT>::mask_horizontal, 
-      0x0002u, // C1_LOWER
-      0x0002u, // C1_LOWER
-      (~0x0020u & 0x01ffu) | 0x0400, // not C1_CNTRL
-      0x0010u, // C1_PUNCT
-      0x0008u, // C1_SPACE
-      0x0008u, // C1_SPACE
-      0x0001u, // C1_UPPER
-      w32_regex_traits_implementation<charT>::mask_unicode,
-      0x0001u, // C1_UPPER
-      w32_regex_traits_implementation<charT>::mask_vertical, 
-      0x0104u | w32_regex_traits_implementation<charT>::mask_word, 
-      0x0104u | w32_regex_traits_implementation<charT>::mask_word, 
-      0x0080u, // C1_XDIGIT
-   };
-   if(m_custom_class_names.size())
-   {
-      typedef typename std::map<std::basic_string<charT>, char_class_type>::const_iterator map_iter;
-      map_iter pos = m_custom_class_names.find(string_type(p1, p2));
-      if(pos != m_custom_class_names.end())
-         return pos->second;
-   }
-   std::size_t state_id = 1 + re_detail::get_default_class_id(p1, p2);
-   if(state_id < sizeof(masks) / sizeof(masks[0]))
-      return masks[state_id];
-   return masks[0];
-}
-
-
-template <class charT>
-ndnboost::shared_ptr<const w32_regex_traits_implementation<charT> > create_w32_regex_traits(::ndnboost::re_detail::lcid_type l NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(charT))
-{
-   // TODO: create a cache for previously constructed objects.
-   return ndnboost::object_cache< ::ndnboost::re_detail::lcid_type, w32_regex_traits_implementation<charT> >::get(l, 5);
-}
-
-} // re_detail
-
-template <class charT>
-class w32_regex_traits
-{
-public:
-   typedef charT                         char_type;
-   typedef std::size_t                   size_type;
-   typedef std::basic_string<char_type>  string_type;
-   typedef ::ndnboost::re_detail::lcid_type locale_type;
-   typedef ndnboost::uint_least32_t         char_class_type;
-
-   struct boost_extensions_tag{};
-
-   w32_regex_traits()
-      : m_pimpl(re_detail::create_w32_regex_traits<charT>(::ndnboost::re_detail::w32_get_default_locale()))
-   { }
-   static size_type length(const char_type* p)
-   {
-      return std::char_traits<charT>::length(p);
-   }
-   regex_constants::syntax_type syntax_type(charT c)const
-   {
-      return m_pimpl->syntax_type(c);
-   }
-   regex_constants::escape_syntax_type escape_syntax_type(charT c) const
-   {
-      return m_pimpl->escape_syntax_type(c);
-   }
-   charT translate(charT c) const
-   {
-      return c;
-   }
-   charT translate_nocase(charT c) const
-   {
-      return this->m_pimpl->tolower(c);
-   }
-   charT translate(charT c, bool icase) const
-   {
-      return icase ? this->m_pimpl->tolower(c) : c;
-   }
-   charT tolower(charT c) const
-   {
-      return this->m_pimpl->tolower(c);
-   }
-   charT toupper(charT c) const
-   {
-      return ::ndnboost::re_detail::w32_toupper(c, this->m_pimpl->m_locale);
-   }
-   string_type transform(const charT* p1, const charT* p2) const
-   {
-      return ::ndnboost::re_detail::w32_transform(this->m_pimpl->m_locale, p1, p2);
-   }
-   string_type transform_primary(const charT* p1, const charT* p2) const
-   {
-      return m_pimpl->transform_primary(p1, p2);
-   }
-   char_class_type lookup_classname(const charT* p1, const charT* p2) const
-   {
-      return m_pimpl->lookup_classname(p1, p2);
-   }
-   string_type lookup_collatename(const charT* p1, const charT* p2) const
-   {
-      return m_pimpl->lookup_collatename(p1, p2);
-   }
-   bool isctype(charT c, char_class_type f) const
-   {
-      if((f & re_detail::w32_regex_traits_implementation<charT>::mask_base) 
-         && (this->m_pimpl->isctype(f & re_detail::w32_regex_traits_implementation<charT>::mask_base, c)))
-         return true;
-      else if((f & re_detail::w32_regex_traits_implementation<charT>::mask_unicode) && re_detail::is_extended(c))
-         return true;
-      else if((f & re_detail::w32_regex_traits_implementation<charT>::mask_word) && (c == '_'))
-         return true;
-      else if((f & re_detail::w32_regex_traits_implementation<charT>::mask_vertical)
-         && (::ndnboost::re_detail::is_separator(c) || (c == '\v')))
-         return true;
-      else if((f & re_detail::w32_regex_traits_implementation<charT>::mask_horizontal) 
-         && this->isctype(c, 0x0008u) && !this->isctype(c, re_detail::w32_regex_traits_implementation<charT>::mask_vertical))
-         return true;
-      return false;
-   }
-   int toi(const charT*& p1, const charT* p2, int radix)const
-   {
-      return ::ndnboost::re_detail::global_toi(p1, p2, radix, *this);
-   }
-   int value(charT c, int radix)const
-   {
-      int result = ::ndnboost::re_detail::global_value(c);
-      return result < radix ? result : -1;
-   }
-   locale_type imbue(locale_type l)
-   {
-      ::ndnboost::re_detail::lcid_type result(getloc());
-      m_pimpl = re_detail::create_w32_regex_traits<charT>(l);
-      return result;
-   }
-   locale_type getloc()const
-   {
-      return m_pimpl->m_locale;
-   }
-   std::string error_string(regex_constants::error_type n) const
-   {
-      return m_pimpl->error_string(n);
-   }
-
-   //
-   // extension:
-   // set the name of the message catalog in use (defaults to "boost_regex").
-   //
-   static std::string catalog_name(const std::string& name);
-   static std::string get_catalog_name();
-
-private:
-   ndnboost::shared_ptr<const re_detail::w32_regex_traits_implementation<charT> > m_pimpl;
-   //
-   // catalog name handler:
-   //
-   static std::string& get_catalog_name_inst();
-
-#ifdef NDNBOOST_HAS_THREADS
-   static static_mutex& get_mutex_inst();
-#endif
-};
-
-template <class charT>
-std::string w32_regex_traits<charT>::catalog_name(const std::string& name)
-{
-#ifdef NDNBOOST_HAS_THREADS
-   static_mutex::scoped_lock lk(get_mutex_inst());
-#endif
-   std::string result(get_catalog_name_inst());
-   get_catalog_name_inst() = name;
-   return result;
-}
-
-template <class charT>
-std::string& w32_regex_traits<charT>::get_catalog_name_inst()
-{
-   static std::string s_name;
-   return s_name;
-}
-
-template <class charT>
-std::string w32_regex_traits<charT>::get_catalog_name()
-{
-#ifdef NDNBOOST_HAS_THREADS
-   static_mutex::scoped_lock lk(get_mutex_inst());
-#endif
-   std::string result(get_catalog_name_inst());
-   return result;
-}
-
-#ifdef NDNBOOST_HAS_THREADS
-template <class charT>
-static_mutex& w32_regex_traits<charT>::get_mutex_inst()
-{
-   static static_mutex s_mutex = NDNBOOST_STATIC_MUTEX_INIT;
-   return s_mutex;
-}
-#endif
-
-
-} // boost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4103)
-#endif
-#ifdef NDNBOOST_HAS_ABI_HEADERS
-#  include NDNBOOST_ABI_SUFFIX
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/include/ndnboost/regex_fwd.hpp b/include/ndnboost/regex_fwd.hpp
deleted file mode 100644
index 03e4ed5..0000000
--- a/include/ndnboost/regex_fwd.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *
- * Copyright (c) 1998-2002
- * John Maddock
- *
- * Use, modification and distribution are subject to 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)
- *
- */
-
- /*
-  *   LOCATION:    see http://www.boost.org/libs/regex for documentation.
-  *   FILE         regex_fwd.cpp
-  *   VERSION      see <ndnboost/version.hpp>
-  *   DESCRIPTION: Forward declares ndnboost::basic_regex<> and
-  *                associated typedefs.
-  */
-
-#ifndef NDNBOOST_REGEX_FWD_HPP
-#define NDNBOOST_REGEX_FWD_HPP
-
-#ifndef NDNBOOST_REGEX_CONFIG_HPP
-#include <ndnboost/regex/config.hpp>
-#endif
-
-#include <ndnboost/regex/v4/regex_fwd.hpp>
-
-#endif
-
-
-
-
diff --git a/include/ndnboost/scoped_array.hpp b/include/ndnboost/scoped_array.hpp
deleted file mode 100644
index 99bf686..0000000
--- a/include/ndnboost/scoped_array.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#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
-//
-//  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)
-//
-//  http://www.boost.org/libs/smart_ptr/scoped_array.htm
-//
-
-#include <ndnboost/smart_ptr/scoped_array.hpp>
-
-#endif  // #ifndef NDNBOOST_SCOPED_ARRAY_HPP_INCLUDED
diff --git a/include/ndnboost/scoped_ptr.hpp b/include/ndnboost/scoped_ptr.hpp
deleted file mode 100644
index f43bb43..0000000
--- a/include/ndnboost/scoped_ptr.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#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
-//
-//  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)
-//
-//  http://www.boost.org/libs/smart_ptr/scoped_ptr.htm
-//
-
-#include <ndnboost/smart_ptr/scoped_ptr.hpp>
-
-#endif // #ifndef NDNBOOST_SCOPED_PTR_HPP_INCLUDED
diff --git a/include/ndnboost/shared_array.hpp b/include/ndnboost/shared_array.hpp
deleted file mode 100644
index b4cec20..0000000
--- a/include/ndnboost/shared_array.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef NDNBOOST_SHARED_ARRAY_HPP_INCLUDED
-#define NDNBOOST_SHARED_ARRAY_HPP_INCLUDED
-
-//
-//  shared_array.hpp
-//
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-//  Copyright (c) 2001, 2002 Peter Dimov
-//
-//  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)
-//
-//  See http://www.boost.org/libs/smart_ptr/shared_array.htm for documentation.
-//
-
-#include <ndnboost/smart_ptr/shared_array.hpp>
-
-#endif  // #ifndef NDNBOOST_SHARED_ARRAY_HPP_INCLUDED
diff --git a/include/ndnboost/shared_ptr.hpp b/include/ndnboost/shared_ptr.hpp
deleted file mode 100644
index 33ff8d7..0000000
--- a/include/ndnboost/shared_ptr.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef NDNBOOST_SHARED_PTR_HPP_INCLUDED
-#define NDNBOOST_SHARED_PTR_HPP_INCLUDED
-
-//
-//  shared_ptr.hpp
-//
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-//  Copyright (c) 2001-2008 Peter Dimov
-//
-//  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)
-//
-//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.
-//
-
-#include <ndnboost/smart_ptr/shared_ptr.hpp>
-
-#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
deleted file mode 100644
index 2e91bf9..0000000
--- a/include/ndnboost/smart_ptr/allocate_shared_array.hpp
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright (c) 2012 Glen Joseph Fernandes
- * glenfe at live dot com
- *
- * Distributed under the Boost Software License,
- * Version 1.0. (See accompanying file LICENSE_1_0.txt
- * or copy at http://boost.org/LICENSE_1_0.txt)
- */
-#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(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
-#include <initializer_list>
-#endif
-
-namespace ndnboost {
-    template<typename T, typename A>
-    inline typename ndnboost::detail::sp_if_array<T>::type
-    allocate_shared(const A& allocator, std::size_t size) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        std::size_t n1 = size * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::allocate_array_helper<A, T2[]> a1(allocator, n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#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) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        std::size_t n1 = size * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::allocate_array_helper<A, T2[]> a1(allocator, n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2, ndnboost::detail::sp_forward<Args>(args)...);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T, typename A, typename... Args>
-    inline typename ndnboost::detail::sp_if_size_array<T>::type
-    allocate_shared(const A& allocator, Args&&... args) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        enum {
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        ndnboost::detail::allocate_array_helper<A, T2[N]> a1(allocator, &p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2, ndnboost::detail::sp_forward<Args>(args)...);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#endif
-#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) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        typedef const T2 T3;
-        enum {
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        T3* p3 = 0;
-        ndnboost::detail::allocate_array_helper<A, T2[N]> a1(allocator, &p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p3 = reinterpret_cast<T3*>(list);
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init_list(p2, p3);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T, typename A>
-    inline typename ndnboost::detail::sp_if_array<T>::type
-    allocate_shared(const A& allocator, std::size_t size,
-        const typename ndnboost::detail::array_inner<T>::type& list) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        typedef const T2 T3;
-        enum {
-            M = ndnboost::detail::array_total<T1>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        T3* p3 = 0;
-        std::size_t n1 = M * size;
-        ndnboost::detail::allocate_array_helper<A, T2[]> a1(allocator, n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p3 = reinterpret_cast<T3*>(list);
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->template init_list<M>(p2, p3);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T, typename A>
-    inline typename ndnboost::detail::sp_if_size_array<T>::type
-    allocate_shared(const A& allocator,
-        const typename ndnboost::detail::array_inner<T>::type& list) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        typedef const T2 T3;
-        enum {
-            M = ndnboost::detail::array_total<T1>::size,
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        T3* p3 = 0;
-        ndnboost::detail::allocate_array_helper<A, T2[N]> a1(allocator, &p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p3 = reinterpret_cast<T3*>(list);
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->template init_list<M>(p2, p3);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#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,
-        std::initializer_list<typename ndnboost::detail::array_inner<T>::type> list) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        typedef const T2 T3;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        T3* p3 = 0;
-        std::size_t n1 = list.size() * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::allocate_array_helper<A, T2[]> a1(allocator, n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p3 = reinterpret_cast<T3*>(list.begin());
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init_list(p2, p3);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#endif
-#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,
-        typename ndnboost::detail::array_base<T>::type&& value) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        std::size_t n1 = size * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::allocate_array_helper<A, T2[]> a1(allocator, n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2, ndnboost::detail::sp_forward<T2>(value));
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T, typename A>
-    inline typename ndnboost::detail::sp_if_size_array<T>::type
-    allocate_shared(const A& allocator,
-        typename ndnboost::detail::array_base<T>::type&& value) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        enum {
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        ndnboost::detail::allocate_array_helper<A, T2[N]> a1(allocator, &p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2, ndnboost::detail::sp_forward<T2>(value));
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#endif
-#endif
-    template<typename T, typename A>
-    inline typename ndnboost::detail::sp_if_array<T>::type
-    allocate_shared_noinit(const A& allocator, std::size_t size) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        std::size_t n1 = size * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::allocate_array_helper<A, T2[]> a1(allocator, n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->noinit(p2);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T, typename A>
-    inline typename ndnboost::detail::sp_if_size_array<T>::type
-    allocate_shared_noinit(const A& allocator) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        enum {
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        ndnboost::detail::allocate_array_helper<A, T2[N]> a1(allocator, &p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->noinit(p2);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-}
-
-#endif
diff --git a/include/ndnboost/smart_ptr/bad_weak_ptr.hpp b/include/ndnboost/smart_ptr/bad_weak_ptr.hpp
deleted file mode 100644
index c8083c4..0000000
--- a/include/ndnboost/smart_ptr/bad_weak_ptr.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/smart_ptr/bad_weak_ptr.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-
-#include <exception>
-
-#ifdef __BORLANDC__
-# pragma warn -8026     // Functions with excep. spec. are not expanded inline
-#endif
-
-namespace ndnboost
-{
-
-// The standard library that comes with Borland C++ 5.5.1, 5.6.4
-// defines std::exception and its members as having C calling
-// convention (-pc). When the definition of bad_weak_ptr
-// is compiled with -ps, the compiler issues an error.
-// Hence, the temporary #pragma option -pc below.
-
-#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564
-# pragma option push -pc
-#endif
-
-class bad_weak_ptr: public std::exception
-{
-public:
-
-    virtual char const * what() const throw()
-    {
-        return "tr1::bad_weak_ptr";
-    }
-};
-
-#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564
-# pragma option pop
-#endif
-
-} // namespace ndnboost
-
-#ifdef __BORLANDC__
-# pragma warn .8026     // Functions with excep. spec. are not expanded inline
-#endif
-
-#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
deleted file mode 100644
index e9801dc..0000000
--- a/include/ndnboost/smart_ptr/detail/allocate_array_helper.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (c) 2012 Glen Joseph Fernandes 
- * glenfe at live dot com
- *
- * Distributed under the Boost Software License, 
- * Version 1.0. (See accompanying file LICENSE_1_0.txt 
- * or copy at http://boost.org/LICENSE_1_0.txt)
- */
-#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>
-
-namespace ndnboost {
-    namespace detail {
-        template<typename A, typename T, typename Y = char>
-        class allocate_array_helper;
-        template<typename A, typename T, typename Y>
-        class allocate_array_helper<A, T[], Y> {
-            template<typename A9, typename T9, typename Y9>
-            friend class allocate_array_helper;
-            typedef typename A::template rebind<Y>   ::other A2;
-            typedef typename A::template rebind<char>::other A3;
-        public:
-            typedef typename A2::value_type      value_type;
-            typedef typename A2::pointer         pointer;
-            typedef typename A2::const_pointer   const_pointer;
-            typedef typename A2::reference       reference;
-            typedef typename A2::const_reference const_reference;
-            typedef typename A2::size_type       size_type;
-            typedef typename A2::difference_type difference_type;
-            template<typename U>
-            struct rebind {
-                typedef allocate_array_helper<A, T[], U> other;
-            };
-            allocate_array_helper(const A& allocator_, std::size_t size_, T** data_)
-                : allocator(allocator_),
-                  size(sizeof(T) * size_),
-                  data(data_) {
-            }
-            template<class U>
-            allocate_array_helper(const allocate_array_helper<A, T[], U>& other) 
-                : allocator(other.allocator),
-                  size(other.size),
-                  data(other.data) {
-            }
-            pointer address(reference value) const {
-                return allocator.address(value);
-            }
-            const_pointer address(const_reference value) const {
-                return allocator.address(value);
-            }
-            size_type max_size() const {
-                return allocator.max_size();
-            }
-            pointer allocate(size_type count, const void* value = 0) {
-                std::size_t a1 = ndnboost::alignment_of<T>::value;
-                std::size_t n1 = count * sizeof(Y) + a1 - 1;
-                char*  p1 = A3(allocator).allocate(n1 + size, value);
-                char*  p2 = p1 + n1;
-                while (std::size_t(p2) % a1 != 0) {
-                    p2--;
-                }
-                *data = reinterpret_cast<T*>(p2);
-                return  reinterpret_cast<Y*>(p1);
-            }
-            void deallocate(pointer memory, size_type count) {
-                std::size_t a1 = ndnboost::alignment_of<T>::value;
-                std::size_t n1 = count * sizeof(Y) + a1 - 1;
-                char*  p1 = reinterpret_cast<char*>(memory);
-                A3(allocator).deallocate(p1, n1 + size);
-            }
-            void construct(pointer memory, const Y& value) {
-                allocator.construct(memory, value);
-            }
-            void destroy(pointer memory) {
-                allocator.destroy(memory);
-            }
-            template<typename U>
-            bool operator==(const allocate_array_helper<A, T[], U>& other) const {
-                return allocator == other.allocator;
-            }
-            template<typename U>
-            bool operator!=(const allocate_array_helper<A, T[], U>& other) const {
-                return !(*this == other); 
-            }
-        private:
-            A2 allocator;
-            std::size_t size;
-            T** data;
-        };
-        template<typename A, typename T, std::size_t N, typename Y>
-        class allocate_array_helper<A, T[N], Y> {
-            template<typename A9, typename T9, typename Y9>
-            friend class allocate_array_helper;
-            typedef typename A::template rebind<Y>   ::other A2;
-            typedef typename A::template rebind<char>::other A3;
-        public:
-            typedef typename A2::value_type      value_type;
-            typedef typename A2::pointer         pointer;
-            typedef typename A2::const_pointer   const_pointer;
-            typedef typename A2::reference       reference;
-            typedef typename A2::const_reference const_reference;
-            typedef typename A2::size_type       size_type;
-            typedef typename A2::difference_type difference_type;
-            template<typename U>
-            struct rebind {
-                typedef allocate_array_helper<A, T[N], U> other;
-            };
-            allocate_array_helper(const A& allocator_, T** data_)
-                : allocator(allocator_),
-                  data(data_) {
-            }
-            template<class U>
-            allocate_array_helper(const allocate_array_helper<A, T[N], U>& other) 
-                : allocator(other.allocator),
-                  data(other.data) {
-            }
-            pointer address(reference value) const {
-                return allocator.address(value);
-            }
-            const_pointer address(const_reference value) const {
-                return allocator.address(value);
-            }
-            size_type max_size() const {
-                return allocator.max_size();
-            }
-            pointer allocate(size_type count, const void* value = 0) {
-                std::size_t a1 = ndnboost::alignment_of<T>::value;
-                std::size_t n1 = count * sizeof(Y) + a1 - 1;
-                char*  p1 = A3(allocator).allocate(n1 + N1, value);
-                char*  p2 = p1 + n1;
-                while (std::size_t(p2) % a1 != 0) {
-                    p2--;
-                }
-                *data = reinterpret_cast<T*>(p2);
-                return  reinterpret_cast<Y*>(p1);
-            }
-            void deallocate(pointer memory, size_type count) {
-                std::size_t a1 = ndnboost::alignment_of<T>::value;
-                std::size_t n1 = count * sizeof(Y) + a1 - 1;
-                char*  p1 = reinterpret_cast<char*>(memory);
-                A3(allocator).deallocate(p1, n1 + N1);
-            }
-            void construct(pointer memory, const Y& value) {
-                allocator.construct(memory, value);
-            }
-            void destroy(pointer memory) {
-                allocator.destroy(memory);
-            }
-            template<typename U>
-            bool operator==(const allocate_array_helper<A, T[N], U>& other) const {
-                return allocator == other.allocator;
-            }
-            template<typename U>
-            bool operator!=(const allocate_array_helper<A, T[N], U>& other) const {
-                return !(*this == other); 
-            }
-        private:
-            enum {
-                N1 = N * sizeof(T)
-            };
-            A2 allocator;
-            T** data;
-        };
-    }
-}
-
-#endif
diff --git a/include/ndnboost/smart_ptr/detail/array_deleter.hpp b/include/ndnboost/smart_ptr/detail/array_deleter.hpp
deleted file mode 100644
index 67ae9fd..0000000
--- a/include/ndnboost/smart_ptr/detail/array_deleter.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (c) 2012 Glen Joseph Fernandes
- * glenfe at live dot com
- *
- * Distributed under the Boost Software License,
- * Version 1.0. (See accompanying file LICENSE_1_0.txt
- * or copy at http://boost.org/LICENSE_1_0.txt)
- */
-#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>
-
-namespace ndnboost {
-    namespace detail {
-        template<typename T>
-        class array_deleter;
-        template<typename T>
-        class array_deleter<T[]> {
-        public:
-            array_deleter(std::size_t size_)
-                : size(size_),
-                  object(0) {
-            }
-            ~array_deleter() {
-                if (object) {
-                    array_destroy(object, size);
-                }
-            }
-            void init(T* memory) {
-                array_init(memory, size);
-                object = memory;
-            }
-#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(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-            template<typename... Args>
-            void init(T* memory, Args&&... args) {
-                array_init_args(memory, size, sp_forward<Args>(args)...);
-                object = memory;
-            }
-#endif
-#endif
-            void init_list(T* memory, const T* list) {
-                array_init_list(memory, size, list);
-                object = memory;
-            }
-            template<std::size_t M>
-            void init_list(T* memory, const T* list) {
-                array_init_list<T, M>(memory, size, list);
-                object = memory;
-            }
-            void noinit(T* memory) {
-                array_noinit(memory, size);
-                object = memory;
-            }
-            void operator()(const void*) {
-                if (object) {
-                    array_destroy(object, size);
-                    object = 0;
-                }
-            }
-        private:
-            std::size_t size;
-            T* object;
-        };
-        template<typename T, std::size_t N>
-        class array_deleter<T[N]> {
-        public:
-            array_deleter()
-                : object(0) {
-            }
-            ~array_deleter() {
-                if (object) {
-                    array_destroy(object, N);
-                }
-            }
-            void init(T* memory) {
-                array_init(memory, N);
-                object = memory;
-            }
-#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(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-            template<typename... Args>
-            void init(T* memory, Args&&... args) {
-                array_init_args(memory, N, sp_forward<Args>(args)...);
-                object = memory;
-            }
-#endif
-#endif
-            void init_list(T* memory, const T* list) {
-                array_init_list(memory, N, list);
-                object = memory;
-            }
-            template<std::size_t M>
-            void init_list(T* memory, const T* list) {
-                array_init_list<T, M>(memory, N, list);
-                object = memory;
-            }
-            void noinit(T* memory) {
-                array_noinit(memory, N);
-                object = memory;
-            }
-            void operator()(const void*) {
-                if (object) {
-                    array_destroy(object, N);
-                    object = 0;
-                }
-            }
-        private:
-            T* object;
-        };
-    }
-}
-
-#endif
diff --git a/include/ndnboost/smart_ptr/detail/array_traits.hpp b/include/ndnboost/smart_ptr/detail/array_traits.hpp
deleted file mode 100644
index 179b776..0000000
--- a/include/ndnboost/smart_ptr/detail/array_traits.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2012 Glen Joseph Fernandes 
- * glenfe at live dot com
- *
- * Distributed under the Boost Software License, 
- * Version 1.0. (See accompanying file LICENSE_1_0.txt 
- * or copy at http://boost.org/LICENSE_1_0.txt)
- */
-#ifndef NDNBOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP
-#define NDNBOOST_SMART_PTR_DETAIL_ARRAY_TRAITS_HPP
-
-#include <ndnboost/type_traits/remove_cv.hpp>
-
-namespace ndnboost {
-    namespace detail {
-        template<typename T>
-        struct array_base {
-            typedef typename ndnboost::remove_cv<T>::type type;
-        };
-        template<typename T>
-        struct array_base<T[]> {
-            typedef typename array_base<T>::type type;
-        };
-        template<typename T, std::size_t N>
-        struct array_base<T[N]> {
-            typedef typename array_base<T>::type type;
-        };
-        template<typename T>
-        struct array_total {
-            enum {
-                size = 1
-            };
-        };
-        template<typename T, std::size_t N>
-        struct array_total<T[N]> {
-            enum {
-                size = N * array_total<T>::size
-            };
-        };
-        template<typename T> 
-        struct array_inner;
-        template<typename T>
-        struct array_inner<T[]> {
-            typedef T type;
-        };
-        template<typename T, std::size_t N>
-        struct array_inner<T[N]> {
-            typedef T type;
-        };
-    }
-}
-
-#endif
diff --git a/include/ndnboost/smart_ptr/detail/array_utility.hpp b/include/ndnboost/smart_ptr/detail/array_utility.hpp
deleted file mode 100644
index 8696365..0000000
--- a/include/ndnboost/smart_ptr/detail/array_utility.hpp
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (c) 2012 Glen Joseph Fernandes 
- * glenfe at live dot com
- *
- * Distributed under the Boost Software License, 
- * Version 1.0. (See accompanying file LICENSE_1_0.txt 
- * or copy at http://boost.org/LICENSE_1_0.txt)
- */
-#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>
-#include <ndnboost/type_traits/has_trivial_destructor.hpp>
-
-namespace ndnboost {
-    namespace detail {
-        template<typename T>
-        inline void array_destroy(T*, std::size_t, ndnboost::true_type) {
-        }
-        template<typename T>
-        inline void array_destroy(T* memory, std::size_t size, ndnboost::false_type) {
-            for (std::size_t i = size; i > 0; ) {
-                memory[--i].~T();
-            }
-        }
-        template<typename T>
-        inline void array_destroy(T* memory, std::size_t size) {
-            ndnboost::has_trivial_destructor<T> type;
-            array_destroy(memory, size, type);
-        }
-        template<typename T>
-        inline void array_init(T* memory, std::size_t size, ndnboost::true_type) {
-            for (std::size_t i = 0; i < size; i++) {
-                memory[i] = T();
-            }
-        }
-        template<typename T>
-        inline void array_init(T* memory, std::size_t size, ndnboost::false_type) {
-#if !defined(NDNBOOST_NO_EXCEPTIONS)
-            std::size_t i = 0;
-            try {
-                for (; i < size; i++) {
-                    void* p1 = memory + i;
-                    ::new(p1) T();
-                }
-            } catch (...) {
-                array_destroy(memory, i);
-                throw;
-            }
-#else
-            for (std::size_t i = 0; i < size; i++) {
-                void* p1 = memory + i;
-                ::new(p1) T();
-            }
-#endif
-        }
-        template<typename T>
-        inline void array_init(T* memory, std::size_t size) {
-            ndnboost::has_trivial_default_constructor<T> type;            
-            array_init(memory, size, type);
-        }
-#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(NDNBOOST_NO_EXCEPTIONS)
-            std::size_t i = 0;
-            try {
-                for (; i < size; i++) {
-                    void* p1 = memory + i;
-                    ::new(p1) T(value);
-                }
-            } catch (...) {
-                array_destroy(memory, i);
-                throw;
-            }
-#else
-            for (std::size_t i = 0; i < size; i++) {
-                void* p1 = memory + i;
-                ::new(p1) T(value);
-            }
-#endif
-        }
-#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(NDNBOOST_NO_EXCEPTIONS)
-            std::size_t i = 0;
-            try {
-                for (; i < size; i++) {
-                    void* p1 = memory + i;
-                    ::new(p1) T(args...);
-                }
-            } catch (...) {
-                array_destroy(memory, i);
-                throw;
-            }
-#else
-            for (std::size_t i = 0; i < size; i++) {
-                void* p1 = memory + i;
-                ::new(p1) T(args...);
-            }
-#endif
-        }
-#endif
-#endif
-        template<typename T>
-        inline void array_init_list(T* memory, std::size_t size, const T* list) {
-#if !defined(NDNBOOST_NO_EXCEPTIONS)
-            std::size_t i = 0;
-            try {
-                for (; i < size; i++) {
-                    void* p1 = memory + i;
-                    ::new(p1) T(list[i]);
-                }
-            } catch (...) {
-                array_destroy(memory, i);
-                throw;
-            }
-#else
-            for (std::size_t i = 0; i < size; i++) {
-                void* p1 = memory + i;
-                ::new(p1) T(list[i]);
-            }
-#endif
-        }
-        template<typename T, std::size_t N>
-        inline void array_init_list(T* memory, std::size_t size, const T* list) {
-#if !defined(NDNBOOST_NO_EXCEPTIONS)
-            std::size_t i = 0;
-            try {
-                for (; i < size; i++) {
-                    void* p1 = memory + i;
-                    ::new(p1) T(list[i % N]);
-                }
-            } catch (...) {
-                array_destroy(memory, i);
-                throw;
-            }
-#else
-            for (std::size_t i = 0; i < size; i++) {
-                void* p1 = memory + i;
-                ::new(p1) T(list[i % N]);
-            }
-#endif
-        }
-        template<typename T>
-        inline void array_noinit(T*, std::size_t, ndnboost::true_type) {
-        }
-        template<typename T>
-        inline void array_noinit(T* memory, std::size_t size, ndnboost::false_type) {
-#if !defined(NDNBOOST_NO_EXCEPTIONS)
-            std::size_t i = 0;
-            try {
-                for (; i < size; i++) {
-                    void* p1 = memory + i;
-                    ::new(p1) T;
-                }
-            } catch (...) {
-                array_destroy(memory, i);
-                throw;
-            }
-#else
-            for (std::size_t i = 0; i < size; i++) {
-                void* p1 = memory + i;
-                ::new(p1) T;
-            }
-#endif
-        }
-        template<typename T>
-        inline void array_noinit(T* memory, std::size_t size) {
-            ndnboost::has_trivial_default_constructor<T> type;
-            array_noinit(memory, size, type);
-        }
-    }
-}
-
-#endif
diff --git a/include/ndnboost/smart_ptr/detail/atomic_count.hpp b/include/ndnboost/smart_ptr/detail/atomic_count.hpp
deleted file mode 100644
index 9d55f25..0000000
--- a/include/ndnboost/smart_ptr/detail/atomic_count.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/atomic_count.hpp - thread/SMP safe reference counter
-//
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  typedef <implementation-defined> ndnboost::detail::atomic_count;
-//
-//  atomic_count a(n);
-//
-//    (n is convertible to long)
-//
-//    Effects: Constructs an atomic_count with an initial value of n
-//
-//  a;
-//
-//    Returns: (long) the current value of a
-//
-//  ++a;
-//
-//    Effects: Atomically increments the value of a
-//    Returns: (long) the new value of a
-//
-//  --a;
-//
-//    Effects: Atomically decrements the value of a
-//    Returns: (long) the new value of a
-//
-//    Important note: when --a returns zero, it must act as a
-//      read memory barrier (RMB); i.e. the calling thread must
-//      have a synchronized view of the memory
-//
-//    On Intel IA-32 (x86) memory is always synchronized, so this
-//      is not a problem.
-//
-//    On many architectures the atomic instructions already act as
-//      a memory barrier.
-//
-//    This property is necessary for proper reference counting, since
-//      a thread can update the contents of a shared object, then
-//      release its reference, and another thread may immediately
-//      release the last reference causing object destruction.
-//
-//    The destructor needs to have a synchronized view of the
-//      object to perform proper cleanup.
-//
-//    Original example by Alexander Terekhov:
-//
-//    Given:
-//
-//    - a mutable shared object OBJ;
-//    - two threads THREAD1 and THREAD2 each holding 
-//      a private smart_ptr object pointing to that OBJ.
-//
-//    t1: THREAD1 updates OBJ (thread-safe via some synchronization)
-//      and a few cycles later (after "unlock") destroys smart_ptr;
-//
-//    t2: THREAD2 destroys smart_ptr WITHOUT doing any synchronization 
-//      with respect to shared mutable object OBJ; OBJ destructors
-//      are called driven by smart_ptr interface...
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/smart_ptr/detail/sp_has_sync.hpp>
-
-#ifndef NDNBOOST_HAS_THREADS
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-typedef long atomic_count;
-
-}
-
-}
-
-#elif defined(NDNBOOST_AC_USE_PTHREADS)
-#  include <ndnboost/smart_ptr/detail/atomic_count_pthreads.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )
-#  include <ndnboost/smart_ptr/detail/atomic_count_gcc_x86.hpp>
-
-#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#  include <ndnboost/smart_ptr/detail/atomic_count_win32.hpp>
-
-#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(NDNBOOST_HAS_PTHREADS)
-
-#  define NDNBOOST_AC_USE_PTHREADS
-#  include <ndnboost/smart_ptr/detail/atomic_count_pthreads.hpp>
-
-#else
-
-// Use #define NDNBOOST_DISABLE_THREADS to avoid the error
-#error Unrecognized threading platform
-
-#endif
-
-#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
deleted file mode 100644
index 7720cdf..0000000
--- a/include/ndnboost/smart_ptr/detail/atomic_count_gcc.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-#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
-//
-//  atomic_count for GNU libstdc++ v3
-//
-//  http://gcc.gnu.org/onlinedocs/porting/Thread-safety.html
-//
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
-//  Copyright (c) 2002 Lars Gullik Bjønnes <larsbj@lyx.org>
-//  Copyright 2003-2005 Peter Dimov
-//
-//  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)
-//
-
-#if __GNUC__ * 100 + __GNUC_MINOR__ >= 402
-# include <ext/atomicity.h> 
-#else 
-# include <bits/atomicity.h>
-#endif
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-#if defined(__GLIBCXX__) // g++ 3.4+
-
-using __gnu_cxx::__atomic_add;
-using __gnu_cxx::__exchange_and_add;
-
-#endif
-
-class atomic_count
-{
-public:
-
-    explicit atomic_count( long v ) : value_( v ) {}
-
-    long operator++()
-    {
-        return __exchange_and_add( &value_, +1 ) + 1;
-    }
-
-    long operator--()
-    {
-        return __exchange_and_add( &value_, -1 ) - 1;
-    }
-
-    operator long() const
-    {
-        return __exchange_and_add( &value_, 0 );
-    }
-
-private:
-
-    atomic_count(atomic_count const &);
-    atomic_count & operator=(atomic_count const &);
-
-    mutable _Atomic_word value_;
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 04b1e1d..0000000
--- a/include/ndnboost/smart_ptr/detail/atomic_count_gcc_x86.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-#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
-//
-//  atomic_count for g++ on 486+/AMD64
-//
-//  Copyright 2007 Peter Dimov
-//
-//  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)
-//
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class atomic_count
-{
-public:
-
-    explicit atomic_count( long v ) : value_( static_cast< int >( v ) ) {}
-
-    long operator++()
-    {
-        return atomic_exchange_and_add( &value_, +1 ) + 1;
-    }
-
-    long operator--()
-    {
-        return atomic_exchange_and_add( &value_, -1 ) - 1;
-    }
-
-    operator long() const
-    {
-        return atomic_exchange_and_add( &value_, 0 );
-    }
-
-private:
-
-    atomic_count(atomic_count const &);
-    atomic_count & operator=(atomic_count const &);
-
-    mutable int value_;
-
-private:
-
-    static int atomic_exchange_and_add( int * pw, int dv )
-    {
-        // int r = *pw;
-        // *pw += dv;
-        // return r;
-
-        int r;
-
-        __asm__ __volatile__
-        (
-            "lock\n\t"
-            "xadd %1, %0":
-            "+m"( *pw ), "=r"( r ): // outputs (%0, %1)
-            "1"( dv ): // inputs (%2 == %1)
-            "memory", "cc" // clobbers
-        );
-
-        return r;
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index bf0cbe8..0000000
--- a/include/ndnboost/smart_ptr/detail/atomic_count_pthreads.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-#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
-//
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-
-#include <pthread.h>
-
-//
-//  The generic pthread_mutex-based implementation sometimes leads to
-//    inefficiencies. Example: a class with two atomic_count members
-//    can get away with a single mutex.
-//
-//  Users can detect this situation by checking NDNBOOST_AC_USE_PTHREADS.
-//
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class atomic_count
-{
-private:
-
-    class scoped_lock
-    {
-    public:
-
-        scoped_lock(pthread_mutex_t & m): m_(m)
-        {
-            pthread_mutex_lock(&m_);
-        }
-
-        ~scoped_lock()
-        {
-            pthread_mutex_unlock(&m_);
-        }
-
-    private:
-
-        pthread_mutex_t & m_;
-    };
-
-public:
-
-    explicit atomic_count(long v): value_(v)
-    {
-        pthread_mutex_init(&mutex_, 0);
-    }
-
-    ~atomic_count()
-    {
-        pthread_mutex_destroy(&mutex_);
-    }
-
-    long operator++()
-    {
-        scoped_lock lock(mutex_);
-        return ++value_;
-    }
-
-    long operator--()
-    {
-        scoped_lock lock(mutex_);
-        return --value_;
-    }
-
-    operator long() const
-    {
-        scoped_lock lock(mutex_);
-        return value_;
-    }
-
-private:
-
-    atomic_count(atomic_count const &);
-    atomic_count & operator=(atomic_count const &);
-
-    mutable pthread_mutex_t mutex_;
-    long value_;
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index ee1fa46..0000000
--- a/include/ndnboost/smart_ptr/detail/atomic_count_sync.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#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
-//
-//  atomic_count for g++ 4.1+
-//
-//  http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html
-//
-//  Copyright 2007 Peter Dimov
-//
-//  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)
-//
-
-#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
-# include <ia64intrin.h>
-#endif
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class atomic_count
-{
-public:
-
-    explicit atomic_count( long v ) : value_( v ) {}
-
-    long operator++()
-    {
-        return __sync_add_and_fetch( &value_, 1 );
-    }
-
-    long operator--()
-    {
-        return __sync_add_and_fetch( &value_, -1 );
-    }
-
-    operator long() const
-    {
-        return __sync_fetch_and_add( &value_, 0 );
-    }
-
-private:
-
-    atomic_count(atomic_count const &);
-    atomic_count & operator=(atomic_count const &);
-
-    mutable long value_;
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 31c2b16..0000000
--- a/include/ndnboost/smart_ptr/detail/atomic_count_win32.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/atomic_count_win32.hpp
-//
-//  Copyright (c) 2001-2005 Peter Dimov
-//
-// 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)
-//
-
-#include <ndnboost/detail/interlocked.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class atomic_count
-{
-public:
-
-    explicit atomic_count( long v ): value_( v )
-    {
-    }
-
-    long operator++()
-    {
-        return NDNBOOST_INTERLOCKED_INCREMENT( &value_ );
-    }
-
-    long operator--()
-    {
-        return NDNBOOST_INTERLOCKED_DECREMENT( &value_ );
-    }
-
-    operator long() const
-    {
-        return static_cast<long const volatile &>( value_ );
-    }
-
-private:
-
-    atomic_count( atomic_count const & );
-    atomic_count & operator=( atomic_count const & );
-
-    long value_;
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 07aacf4..0000000
--- a/include/ndnboost/smart_ptr/detail/lightweight_mutex.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/lightweight_mutex.hpp - lightweight mutex
-//
-//  Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-//  typedef <unspecified> ndnboost::detail::lightweight_mutex;
-//
-//  ndnboost::detail::lightweight_mutex is a header-only implementation of
-//  a subset of the Mutex concept requirements:
-//
-//  http://www.boost.org/doc/html/threads/concepts.html#threads.concepts.Mutex
-//
-//  It maps to a CRITICAL_SECTION on Windows or a pthread_mutex on POSIX.
-//
-
-#include <ndnboost/config.hpp>
-
-#if !defined(NDNBOOST_HAS_THREADS)
-#  include <ndnboost/smart_ptr/detail/lwm_nop.hpp>
-#elif defined(NDNBOOST_HAS_PTHREADS)
-#  include <ndnboost/smart_ptr/detail/lwm_pthreads.hpp>
-#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 NDNBOOST_DISABLE_THREADS to avoid the error
-#  error Unrecognized threading platform
-#endif
-
-#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
deleted file mode 100644
index abf56cc..0000000
--- a/include/ndnboost/smart_ptr/detail/lwm_nop.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/lwm_nop.hpp
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class lightweight_mutex
-{
-public:
-
-    typedef lightweight_mutex scoped_lock;
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 56a60ce..0000000
--- a/include/ndnboost/smart_ptr/detail/lwm_pthreads.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/lwm_pthreads.hpp
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//
-// 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)
-//
-
-#include <ndnboost/assert.hpp>
-#include <pthread.h>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class lightweight_mutex
-{
-private:
-
-    pthread_mutex_t m_;
-
-    lightweight_mutex(lightweight_mutex const &);
-    lightweight_mutex & operator=(lightweight_mutex const &);
-
-public:
-
-    lightweight_mutex()
-    {
-
-// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init
-
-#if defined(__hpux) && defined(_DECTHREADS_)
-        NDNBOOST_VERIFY( pthread_mutex_init( &m_, pthread_mutexattr_default ) == 0 );
-#else
-        NDNBOOST_VERIFY( pthread_mutex_init( &m_, 0 ) == 0 );
-#endif
-    }
-
-    ~lightweight_mutex()
-    {
-        NDNBOOST_VERIFY( pthread_mutex_destroy( &m_ ) == 0 );
-    }
-
-    class scoped_lock;
-    friend class scoped_lock;
-
-    class scoped_lock
-    {
-    private:
-
-        pthread_mutex_t & m_;
-
-        scoped_lock(scoped_lock const &);
-        scoped_lock & operator=(scoped_lock const &);
-
-    public:
-
-        scoped_lock(lightweight_mutex & m): m_(m.m_)
-        {
-            NDNBOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
-        }
-
-        ~scoped_lock()
-        {
-            NDNBOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
-        }
-    };
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 47def99..0000000
--- a/include/ndnboost/smart_ptr/detail/lwm_win32_cs.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/lwm_win32_cs.hpp
-//
-//  Copyright (c) 2002, 2003 Peter Dimov
-//
-// 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)
-//
-
-#ifdef NDNBOOST_USE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-#ifndef NDNBOOST_USE_WINDOWS_H
-
-struct critical_section
-{
-    struct critical_section_debug * DebugInfo;
-    long LockCount;
-    long RecursionCount;
-    void * OwningThread;
-    void * LockSemaphore;
-#if defined(_WIN64)
-    unsigned __int64 SpinCount;
-#else
-    unsigned long SpinCount;
-#endif
-};
-
-extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(critical_section *);
-extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(critical_section *);
-extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(critical_section *);
-extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(critical_section *);
-
-#else
-
-typedef ::CRITICAL_SECTION critical_section;
-
-#endif // #ifndef NDNBOOST_USE_WINDOWS_H
-
-class lightweight_mutex
-{
-private:
-
-    critical_section cs_;
-
-    lightweight_mutex(lightweight_mutex const &);
-    lightweight_mutex & operator=(lightweight_mutex const &);
-
-public:
-
-    lightweight_mutex()
-    {
-        InitializeCriticalSection(&cs_);
-    }
-
-    ~lightweight_mutex()
-    {
-        DeleteCriticalSection(&cs_);
-    }
-
-    class scoped_lock;
-    friend class scoped_lock;
-
-    class scoped_lock
-    {
-    private:
-
-        lightweight_mutex & m_;
-
-        scoped_lock(scoped_lock const &);
-        scoped_lock & operator=(scoped_lock const &);
-
-    public:
-
-        explicit scoped_lock(lightweight_mutex & m): m_(m)
-        {
-            EnterCriticalSection(&m_.cs_);
-        }
-
-        ~scoped_lock()
-        {
-            LeaveCriticalSection(&m_.cs_);
-        }
-    };
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index b05b600..0000000
--- a/include/ndnboost/smart_ptr/detail/make_array_helper.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2012 Glen Joseph Fernandes 
- * glenfe at live dot com
- *
- * Distributed under the Boost Software License, 
- * Version 1.0. (See accompanying file LICENSE_1_0.txt 
- * or copy at http://boost.org/LICENSE_1_0.txt)
- */
-#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>
-
-namespace ndnboost {
-    namespace detail {
-        template<typename T, typename Y = char>
-        class make_array_helper;
-        template<typename T, typename Y>
-        class make_array_helper<T[], Y> {
-            template<typename T2, typename Y2>
-            friend class make_array_helper;
-        public:
-            typedef Y           value_type;
-            typedef Y*          pointer;
-            typedef const Y*    const_pointer;
-            typedef Y&          reference;
-            typedef const Y&    const_reference;
-            typedef std::size_t size_type;
-            typedef ptrdiff_t   difference_type;
-            template<typename U>
-            struct rebind {
-                typedef make_array_helper<T[], U> other;
-            };
-            make_array_helper(std::size_t size_, T** data_)
-                : size(sizeof(T) * size_),
-                  data(data_) {
-            }
-            template<class U>
-            make_array_helper(const make_array_helper<T[], U>& other) 
-                : size(other.size),
-                  data(other.data) {
-            }
-            pointer address(reference value) const {
-                return &value;
-            }
-            const_pointer address(const_reference value) const {
-                return &value;
-            }
-            size_type max_size() const {
-                return static_cast<std::size_t>(-1) / sizeof(Y);
-            }
-            pointer allocate(size_type count, const void* = 0) {
-                std::size_t a1 = ndnboost::alignment_of<T>::value;
-                std::size_t n1 = count * sizeof(Y) + a1 - 1;
-                void*  p1 = ::operator new(n1 + size);
-                char*  p2 = static_cast<char*>(p1) + n1;
-                while (std::size_t(p2) % a1 != 0) {
-                    p2--;
-                }
-                *data = reinterpret_cast<T*>(p2);
-                return  reinterpret_cast<Y*>(p1);
-            }
-            void deallocate(pointer memory, size_type) {
-                void* p1 = memory;
-                ::operator delete(p1);
-            }
-            void construct(pointer memory, const Y& value) {
-                void* p1 = memory;
-                ::new(p1) Y(value);
-            }
-            void destroy(pointer memory) {
-                memory->~Y();
-            }
-            template<typename U>
-            bool operator==(const make_array_helper<T[], U>&) const {
-                return true;
-            }
-            template<typename U>
-            bool operator!=(const make_array_helper<T[], U>& other) const {
-                return !(*this == other); 
-            }
-        private:
-            std::size_t size;
-            T** data;
-        };
-        template<typename T, std::size_t N, typename Y>
-        class make_array_helper<T[N], Y> {
-            template<typename T2, typename Y2>
-            friend class make_array_helper;
-        public:
-            typedef Y           value_type;
-            typedef Y*          pointer;
-            typedef const Y*    const_pointer;
-            typedef Y&          reference;
-            typedef const Y&    const_reference;
-            typedef std::size_t size_type;
-            typedef ptrdiff_t   difference_type;
-            template<typename U>
-            struct rebind {
-                typedef make_array_helper<T[N], U> other;
-            };
-            make_array_helper(T** data_)
-                : data(data_) {
-            }
-            template<class U>
-            make_array_helper(const make_array_helper<T[N], U>& other) 
-                : data(other.data) {
-            }
-            pointer address(reference value) const {
-                return &value;
-            }
-            const_pointer address(const_reference value) const {
-                return &value;
-            }
-            size_type max_size() const {
-                return static_cast<std::size_t>(-1) / sizeof(Y);
-            }
-            pointer allocate(size_type count, const void* = 0) {
-                std::size_t a1 = ndnboost::alignment_of<T>::value;
-                std::size_t n1 = count * sizeof(Y) + a1 - 1;
-                void*  p1 = ::operator new(n1 + N1);
-                char*  p2 = static_cast<char*>(p1) + n1;
-                while (std::size_t(p2) % a1 != 0) {
-                    p2--;
-                }
-                *data = reinterpret_cast<T*>(p2);
-                return  reinterpret_cast<Y*>(p1);
-            }
-            void deallocate(pointer memory, size_type) {
-                void* p1 = memory;
-                ::operator delete(p1);
-            }
-            void construct(pointer memory, const Y& value) {
-                void* p1 = memory;
-                ::new(p1) Y(value);
-            }
-            void destroy(pointer memory) {
-                memory->~Y();
-            }
-            template<typename U>
-            bool operator==(const make_array_helper<T[N], U>&) const {
-                return true;
-            }
-            template<typename U>
-            bool operator!=(const make_array_helper<T[N], U>& other) const {
-                return !(*this == other); 
-            }
-        private:
-            enum {
-                N1 = N * sizeof(T)
-            };
-            T** data;
-        };
-    }
-}
-
-#endif
diff --git a/include/ndnboost/smart_ptr/detail/operator_bool.hpp b/include/ndnboost/smart_ptr/detail/operator_bool.hpp
deleted file mode 100644
index 809eff5..0000000
--- a/include/ndnboost/smart_ptr/detail/operator_bool.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-//  This header intentionally has no include guards.
-//
-//  Copyright (c) 2001-2009, 2012 Peter Dimov
-//
-//  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
-
-#if !defined( NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS ) && !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-    explicit operator bool () const NDNBOOST_NOEXCEPT
-    {
-        return px != 0;
-    }
-
-#elif ( defined(__SUNPRO_CC) && NDNBOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__)
-
-    operator bool () const NDNBOOST_NOEXCEPT
-    {
-        return px != 0;
-    }
-
-#elif defined( _MANAGED )
-
-    static void unspecified_bool( this_type*** )
-    {
-    }
-
-    typedef void (*unspecified_bool_type)( this_type*** );
-
-    operator unspecified_bool_type() const NDNBOOST_NOEXCEPT
-    {
-        return px == 0? 0: unspecified_bool;
-    }
-
-#elif \
-    ( defined(__MWERKS__) && NDNBOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
-    ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \
-    ( defined(__SUNPRO_CC) && NDNBOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )
-
-    typedef element_type * (this_type::*unspecified_bool_type)() const;
-
-    operator unspecified_bool_type() const NDNBOOST_NOEXCEPT
-    {
-        return px == 0? 0: &this_type::get;
-    }
-
-#else
-
-    typedef element_type * this_type::*unspecified_bool_type;
-
-    operator unspecified_bool_type() const NDNBOOST_NOEXCEPT
-    {
-        return px == 0? 0: &this_type::px;
-    }
-
-#endif
-
-    // operator! is redundant, but some compilers need it
-    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
deleted file mode 100644
index dff0668..0000000
--- a/include/ndnboost/smart_ptr/detail/quick_allocator.hpp
+++ /dev/null
@@ -1,199 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/quick_allocator.hpp
-//
-//  Copyright (c) 2003 David Abrahams
-//  Copyright (c) 2003 Peter Dimov
-//
-// 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)
-//
-
-#include <ndnboost/config.hpp>
-
-#include <ndnboost/smart_ptr/detail/lightweight_mutex.hpp>
-#include <ndnboost/type_traits/type_with_alignment.hpp>
-#include <ndnboost/type_traits/alignment_of.hpp>
-
-#include <new>              // ::operator new, ::operator delete
-#include <cstddef>          // std::size_t
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-template<unsigned size, unsigned align_> union freeblock
-{
-    typedef typename ndnboost::type_with_alignment<align_>::type aligner_type;
-    aligner_type aligner;
-    char bytes[size];
-    freeblock * next;
-};
-
-template<unsigned size, unsigned align_> struct allocator_impl
-{
-    typedef freeblock<size, align_> block;
-
-    // It may seem odd to use such small pages.
-    //
-    // However, on a typical Windows implementation that uses
-    // the OS allocator, "normal size" pages interact with the
-    // "ordinary" operator new, slowing it down dramatically.
-    //
-    // 512 byte pages are handled by the small object allocator,
-    // and don't interfere with ::new.
-    //
-    // The other alternative is to use much bigger pages (1M.)
-    //
-    // It is surprisingly easy to hit pathological behavior by
-    // varying the page size. g++ 2.96 on Red Hat Linux 7.2,
-    // for example, passionately dislikes 496. 512 seems OK.
-
-#if defined(NDNBOOST_QA_PAGE_SIZE)
-
-    enum { items_per_page = NDNBOOST_QA_PAGE_SIZE / size };
-
-#else
-
-    enum { items_per_page = 512 / size }; // 1048560 / size
-
-#endif
-
-#ifdef NDNBOOST_HAS_THREADS
-
-    static lightweight_mutex & mutex()
-    {
-        static freeblock< sizeof( lightweight_mutex ), ndnboost::alignment_of< lightweight_mutex >::value > fbm;
-        static lightweight_mutex * pm = new( &fbm ) lightweight_mutex;
-        return *pm;
-    }
-
-    static lightweight_mutex * mutex_init;
-
-#endif
-
-    static block * free;
-    static block * page;
-    static unsigned last;
-
-    static inline void * alloc()
-    {
-#ifdef NDNBOOST_HAS_THREADS
-        lightweight_mutex::scoped_lock lock( mutex() );
-#endif
-        if(block * x = free)
-        {
-            free = x->next;
-            return x;
-        }
-        else
-        {
-            if(last == items_per_page)
-            {
-                // "Listen to me carefully: there is no memory leak"
-                // -- Scott Meyers, Eff C++ 2nd Ed Item 10
-                page = ::new block[items_per_page];
-                last = 0;
-            }
-
-            return &page[last++];
-        }
-    }
-
-    static inline void * alloc(std::size_t n)
-    {
-        if(n != size) // class-specific new called for a derived object
-        {
-            return ::operator new(n);
-        }
-        else
-        {
-#ifdef NDNBOOST_HAS_THREADS
-            lightweight_mutex::scoped_lock lock( mutex() );
-#endif
-            if(block * x = free)
-            {
-                free = x->next;
-                return x;
-            }
-            else
-            {
-                if(last == items_per_page)
-                {
-                    page = ::new block[items_per_page];
-                    last = 0;
-                }
-
-                return &page[last++];
-            }
-        }
-    }
-
-    static inline void dealloc(void * pv)
-    {
-        if(pv != 0) // 18.4.1.1/13
-        {
-#ifdef NDNBOOST_HAS_THREADS
-            lightweight_mutex::scoped_lock lock( mutex() );
-#endif
-            block * pb = static_cast<block *>(pv);
-            pb->next = free;
-            free = pb;
-        }
-    }
-
-    static inline void dealloc(void * pv, std::size_t n)
-    {
-        if(n != size) // class-specific delete called for a derived object
-        {
-            ::operator delete(pv);
-        }
-        else if(pv != 0) // 18.4.1.1/13
-        {
-#ifdef NDNBOOST_HAS_THREADS
-            lightweight_mutex::scoped_lock lock( mutex() );
-#endif
-            block * pb = static_cast<block *>(pv);
-            pb->next = free;
-            free = pb;
-        }
-    }
-};
-
-#ifdef NDNBOOST_HAS_THREADS
-
-template<unsigned size, unsigned align_>
-  lightweight_mutex * allocator_impl<size, align_>::mutex_init = &allocator_impl<size, align_>::mutex();
-
-#endif
-
-template<unsigned size, unsigned align_>
-  freeblock<size, align_> * allocator_impl<size, align_>::free = 0;
-
-template<unsigned size, unsigned align_>
-  freeblock<size, align_> * allocator_impl<size, align_>::page = 0;
-
-template<unsigned size, unsigned align_>
-  unsigned allocator_impl<size, align_>::last = allocator_impl<size, align_>::items_per_page;
-
-template<class T>
-struct quick_allocator: public allocator_impl< sizeof(T), ndnboost::alignment_of<T>::value >
-{
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 8197637..0000000
--- a/include/ndnboost/smart_ptr/detail/shared_array_nmt.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-#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
-//
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-//  Copyright (c) 2001, 2002 Peter Dimov
-//
-//  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)
-//
-//  See http://www.boost.org/libs/smart_ptr/shared_array.htm for documentation.
-//
-
-#include <ndnboost/assert.hpp>
-#include <ndnboost/checked_delete.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/smart_ptr/detail/atomic_count.hpp>
-
-#include <cstddef>          // for std::ptrdiff_t
-#include <algorithm>        // for std::swap
-#include <functional>       // for std::less
-#include <new>              // for std::bad_alloc
-
-namespace ndnboost
-{
-
-template<class T> class shared_array
-{
-private:
-
-    typedef detail::atomic_count count_type;
-
-public:
-
-    typedef T element_type;
-      
-    explicit shared_array(T * p = 0): px(p)
-    {
-#ifndef NDNBOOST_NO_EXCEPTIONS
-
-        try  // prevent leak if new throws
-        {
-            pn = new count_type(1);
-        }
-        catch(...)
-        {
-            ndnboost::checked_array_delete(p);
-            throw;
-        }
-
-#else
-
-        pn = new count_type(1);
-
-        if(pn == 0)
-        {
-            ndnboost::checked_array_delete(p);
-            ndnboost::throw_exception(std::bad_alloc());
-        }
-
-#endif
-    }
-
-    ~shared_array()
-    {
-        if(--*pn == 0)
-        {
-            ndnboost::checked_array_delete(px);
-            delete pn;
-        }
-    }
-
-    shared_array(shared_array const & r) : px(r.px)  // never throws
-    {
-        pn = r.pn;
-        ++*pn;
-    }
-
-    shared_array & operator=(shared_array const & r)
-    {
-        shared_array(r).swap(*this);
-        return *this;
-    }
-
-    void reset(T * p = 0)
-    {
-        NDNBOOST_ASSERT(p == 0 || p != px);
-        shared_array(p).swap(*this);
-    }
-
-    T * get() const  // never throws
-    {
-        return px;
-    }
-
-    T & operator[](std::ptrdiff_t i) const  // never throws
-    {
-        NDNBOOST_ASSERT(px != 0);
-        NDNBOOST_ASSERT(i >= 0);
-        return px[i];
-    }
-
-    long use_count() const  // never throws
-    {
-        return *pn;
-    }
-
-    bool unique() const  // never throws
-    {
-        return *pn == 1;
-    }
-
-    void swap(shared_array<T> & other)  // never throws
-    {
-        std::swap(px, other.px);
-        std::swap(pn, other.pn);
-    }
-
-private:
-
-    T * px;            // contained pointer
-    count_type * pn;   // ptr to reference counter
-      
-};  // shared_array
-
-template<class T, class U> inline bool operator==(shared_array<T> const & a, shared_array<U> const & b)
-{
-    return a.get() == b.get();
-}
-
-template<class T, class U> inline bool operator!=(shared_array<T> const & a, shared_array<U> const & b)
-{
-    return a.get() != b.get();
-}
-
-template<class T> inline bool operator<(shared_array<T> const & a, shared_array<T> const & b)
-{
-    return std::less<T*>()(a.get(), b.get());
-}
-
-template<class T> void swap(shared_array<T> & a, shared_array<T> & b)
-{
-    a.swap(b);
-}
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 5ba7190..0000000
--- a/include/ndnboost/smart_ptr/detail/shared_count.hpp
+++ /dev/null
@@ -1,603 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/shared_count.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-// 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)
-//
-
-#ifdef __BORLANDC__
-# pragma warn -8027     // Functions containing try are not expanded inline
-#endif
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/checked_delete.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/smart_ptr/bad_weak_ptr.hpp>
-#include <ndnboost/smart_ptr/detail/sp_counted_base.hpp>
-#include <ndnboost/smart_ptr/detail/sp_counted_impl.hpp>
-#include <ndnboost/detail/workaround.hpp>
-// In order to avoid circular dependencies with Boost.TR1
-// we make sure that our include of <memory> doesn't try to
-// pull in the TR1 headers: that's why we use this header 
-// rather than including <memory> directly:
-#include <ndnboost/config/no_tr1/memory.hpp>  // std::auto_ptr
-#include <functional>       // std::less
-
-#ifdef NDNBOOST_NO_EXCEPTIONS
-# include <new>              // std::bad_alloc
-#endif
-
-#if !defined( NDNBOOST_NO_CXX11_SMART_PTR )
-# include <ndnboost/utility/addressof.hpp>
-#endif
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-
-int const shared_count_id = 0x2C35F101;
-int const   weak_count_id = 0x298C38A4;
-
-#endif
-
-struct sp_nothrow_tag {};
-
-template< class D > struct sp_inplace_tag
-{
-};
-
-#if !defined( NDNBOOST_NO_CXX11_SMART_PTR )
-
-template< class T > class sp_reference_wrapper
-{ 
-public:
-
-    explicit sp_reference_wrapper( T & t): t_( ndnboost::addressof( t ) )
-    {
-    }
-
-    template< class Y > void operator()( Y * p ) const
-    {
-        (*t_)( p );
-    }
-
-private:
-
-    T * t_;
-};
-
-template< class D > struct sp_convert_reference
-{
-    typedef D type;
-};
-
-template< class D > struct sp_convert_reference< D& >
-{
-    typedef sp_reference_wrapper< D > type;
-};
-
-#endif
-
-class weak_count;
-
-class shared_count
-{
-private:
-
-    sp_counted_base * pi_;
-
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-    int id_;
-#endif
-
-    friend class weak_count;
-
-public:
-
-    shared_count(): pi_(0) // nothrow
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-    }
-
-    template<class Y> explicit shared_count( Y * p ): pi_( 0 )
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-#ifndef NDNBOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = new sp_counted_impl_p<Y>( p );
-        }
-        catch(...)
-        {
-            ndnboost::checked_delete( p );
-            throw;
-        }
-
-#else
-
-        pi_ = new sp_counted_impl_p<Y>( p );
-
-        if( pi_ == 0 )
-        {
-            ndnboost::checked_delete( p );
-            ndnboost::throw_exception( std::bad_alloc() );
-        }
-
-#endif
-    }
-
-#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(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-#if defined( NDNBOOST_MSVC ) && NDNBOOST_WORKAROUND( NDNBOOST_MSVC, <= 1200 )
-        typedef Y* P;
-#endif
-#ifndef NDNBOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = new sp_counted_impl_pd<P, D>(p, d);
-        }
-        catch(...)
-        {
-            d(p); // delete p
-            throw;
-        }
-
-#else
-
-        pi_ = new sp_counted_impl_pd<P, D>(p, d);
-
-        if(pi_ == 0)
-        {
-            d(p); // delete p
-            ndnboost::throw_exception(std::bad_alloc());
-        }
-
-#endif
-    }
-
-#if !defined( NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING )
-
-    template< class P, class D > shared_count( P p, sp_inplace_tag<D> ): pi_( 0 )
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-#ifndef NDNBOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = new sp_counted_impl_pd< P, D >( p );
-        }
-        catch( ... )
-        {
-            D::operator_fn( p ); // delete p
-            throw;
-        }
-
-#else
-
-        pi_ = new sp_counted_impl_pd< P, D >( p );
-
-        if( pi_ == 0 )
-        {
-            D::operator_fn( p ); // delete p
-            ndnboost::throw_exception( std::bad_alloc() );
-        }
-
-#endif // #ifndef NDNBOOST_NO_EXCEPTIONS
-    }
-
-#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(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        typedef sp_counted_impl_pda<P, D, A> impl_type;
-        typedef typename A::template rebind< impl_type >::other A2;
-
-        A2 a2( a );
-
-#ifndef NDNBOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
-            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );
-        }
-        catch(...)
-        {
-            d( p );
-
-            if( pi_ != 0 )
-            {
-                a2.deallocate( static_cast< impl_type* >( pi_ ), 1 );
-            }
-
-            throw;
-        }
-
-#else
-
-        pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
-
-        if( pi_ != 0 )
-        {
-            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );
-        }
-        else
-        {
-            d( p );
-            ndnboost::throw_exception( std::bad_alloc() );
-        }
-
-#endif
-    }
-
-#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(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        typedef sp_counted_impl_pda< P, D, A > impl_type;
-        typedef typename A::template rebind< impl_type >::other A2;
-
-        A2 a2( a );
-
-#ifndef NDNBOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
-            new( static_cast< void* >( pi_ ) ) impl_type( p, a );
-        }
-        catch(...)
-        {
-            D::operator_fn( p );
-
-            if( pi_ != 0 )
-            {
-                a2.deallocate( static_cast< impl_type* >( pi_ ), 1 );
-            }
-
-            throw;
-        }
-
-#else
-
-        pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
-
-        if( pi_ != 0 )
-        {
-            new( static_cast< void* >( pi_ ) ) impl_type( p, a );
-        }
-        else
-        {
-            D::operator_fn( p );
-            ndnboost::throw_exception( std::bad_alloc() );
-        }
-
-#endif // #ifndef NDNBOOST_NO_EXCEPTIONS
-    }
-
-#endif // !defined( NDNBOOST_NO_FUNCTION_TEMPLATE_ORDERING )
-
-#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(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-#ifdef NDNBOOST_NO_EXCEPTIONS
-
-        if( pi_ == 0 )
-        {
-            ndnboost::throw_exception(std::bad_alloc());
-        }
-
-#endif
-
-        r.release();
-    }
-
-#endif 
-
-#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(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        typedef typename sp_convert_reference<D>::type D2;
-
-        D2 d2( r.get_deleter() );
-        pi_ = new sp_counted_impl_pd< typename std::unique_ptr<Y, D>::pointer, D2 >( r.get(), d2 );
-
-#ifdef NDNBOOST_NO_EXCEPTIONS
-
-        if( pi_ == 0 )
-        {
-            ndnboost::throw_exception( std::bad_alloc() );
-        }
-
-#endif
-
-        r.release();
-    }
-
-#endif
-
-    ~shared_count() // nothrow
-    {
-        if( pi_ != 0 ) pi_->release();
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        id_ = 0;
-#endif
-    }
-
-    shared_count(shared_count const & r): pi_(r.pi_) // nothrow
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        if( pi_ != 0 ) pi_->add_ref_copy();
-    }
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    shared_count(shared_count && r): pi_(r.pi_) // nothrow
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        r.pi_ = 0;
-    }
-
-#endif
-
-    explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0
-    shared_count( weak_count const & r, sp_nothrow_tag ); // constructs an empty *this when r.use_count() == 0
-
-    shared_count & operator= (shared_count const & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-
-        if( tmp != pi_ )
-        {
-            if( tmp != 0 ) tmp->add_ref_copy();
-            if( pi_ != 0 ) pi_->release();
-            pi_ = tmp;
-        }
-
-        return *this;
-    }
-
-    void swap(shared_count & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-        r.pi_ = pi_;
-        pi_ = tmp;
-    }
-
-    long use_count() const // nothrow
-    {
-        return pi_ != 0? pi_->use_count(): 0;
-    }
-
-    bool unique() const // nothrow
-    {
-        return use_count() == 1;
-    }
-
-    bool empty() const // nothrow
-    {
-        return pi_ == 0;
-    }
-
-    friend inline bool operator==(shared_count const & a, shared_count const & b)
-    {
-        return a.pi_ == b.pi_;
-    }
-
-    friend inline bool operator<(shared_count const & a, shared_count const & b)
-    {
-        return std::less<sp_counted_base *>()( a.pi_, b.pi_ );
-    }
-
-    void * get_deleter( sp_typeinfo const & ti ) const
-    {
-        return pi_? pi_->get_deleter( ti ): 0;
-    }
-
-    void * get_untyped_deleter() const
-    {
-        return pi_? pi_->get_untyped_deleter(): 0;
-    }
-};
-
-
-class weak_count
-{
-private:
-
-    sp_counted_base * pi_;
-
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-    int id_;
-#endif
-
-    friend class shared_count;
-
-public:
-
-    weak_count(): pi_(0) // nothrow
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(weak_count_id)
-#endif
-    {
-    }
-
-    weak_count(shared_count const & r): pi_(r.pi_) // nothrow
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(weak_count_id)
-#endif
-    {
-        if(pi_ != 0) pi_->weak_add_ref();
-    }
-
-    weak_count(weak_count const & r): pi_(r.pi_) // nothrow
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(weak_count_id)
-#endif
-    {
-        if(pi_ != 0) pi_->weak_add_ref();
-    }
-
-// Move support
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    weak_count(weak_count && r): pi_(r.pi_) // nothrow
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(weak_count_id)
-#endif
-    {
-        r.pi_ = 0;
-    }
-
-#endif
-
-    ~weak_count() // nothrow
-    {
-        if(pi_ != 0) pi_->weak_release();
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        id_ = 0;
-#endif
-    }
-
-    weak_count & operator= (shared_count const & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-
-        if( tmp != pi_ )
-        {
-            if(tmp != 0) tmp->weak_add_ref();
-            if(pi_ != 0) pi_->weak_release();
-            pi_ = tmp;
-        }
-
-        return *this;
-    }
-
-    weak_count & operator= (weak_count const & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-
-        if( tmp != pi_ )
-        {
-            if(tmp != 0) tmp->weak_add_ref();
-            if(pi_ != 0) pi_->weak_release();
-            pi_ = tmp;
-        }
-
-        return *this;
-    }
-
-    void swap(weak_count & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-        r.pi_ = pi_;
-        pi_ = tmp;
-    }
-
-    long use_count() const // nothrow
-    {
-        return pi_ != 0? pi_->use_count(): 0;
-    }
-
-    bool empty() const // nothrow
-    {
-        return pi_ == 0;
-    }
-
-    friend inline bool operator==(weak_count const & a, weak_count const & b)
-    {
-        return a.pi_ == b.pi_;
-    }
-
-    friend inline bool operator<(weak_count const & a, weak_count const & b)
-    {
-        return std::less<sp_counted_base *>()(a.pi_, b.pi_);
-    }
-};
-
-inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ )
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-{
-    if( pi_ == 0 || !pi_->add_ref_lock() )
-    {
-        ndnboost::throw_exception( ndnboost::bad_weak_ptr() );
-    }
-}
-
-inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ): pi_( r.pi_ )
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-{
-    if( pi_ != 0 && !pi_->add_ref_lock() )
-    {
-        pi_ = 0;
-    }
-}
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#ifdef __BORLANDC__
-# pragma warn .8027     // Functions containing try are not expanded inline
-#endif
-
-#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
deleted file mode 100644
index f7368b8..0000000
--- a/include/ndnboost/smart_ptr/detail/shared_ptr_nmt.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-#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
-//
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-//  Copyright (c) 2001, 2002 Peter Dimov
-//
-//  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)
-//
-//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.
-//
-
-#include <ndnboost/assert.hpp>
-#include <ndnboost/checked_delete.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/smart_ptr/detail/atomic_count.hpp>
-
-#ifndef NDNBOOST_NO_AUTO_PTR
-# include <memory>          // for std::auto_ptr
-#endif
-
-#include <algorithm>        // for std::swap
-#include <functional>       // for std::less
-#include <new>              // for std::bad_alloc
-
-namespace ndnboost
-{
-
-template<class T> class shared_ptr
-{
-private:
-
-    typedef detail::atomic_count count_type;
-
-public:
-
-    typedef T element_type;
-    typedef T value_type;
-
-    explicit shared_ptr(T * p = 0): px(p)
-    {
-#ifndef NDNBOOST_NO_EXCEPTIONS
-
-        try  // prevent leak if new throws
-        {
-            pn = new count_type(1);
-        }
-        catch(...)
-        {
-            ndnboost::checked_delete(p);
-            throw;
-        }
-
-#else
-
-        pn = new count_type(1);
-
-        if(pn == 0)
-        {
-            ndnboost::checked_delete(p);
-            ndnboost::throw_exception(std::bad_alloc());
-        }
-
-#endif
-    }
-
-    ~shared_ptr()
-    {
-        if(--*pn == 0)
-        {
-            ndnboost::checked_delete(px);
-            delete pn;
-        }
-    }
-
-    shared_ptr(shared_ptr const & r): px(r.px)  // never throws
-    {
-        pn = r.pn;
-        ++*pn;
-    }
-
-    shared_ptr & operator=(shared_ptr const & r)
-    {
-        shared_ptr(r).swap(*this);
-        return *this;
-    }
-
-#ifndef NDNBOOST_NO_AUTO_PTR
-
-    explicit shared_ptr(std::auto_ptr<T> & r)
-    { 
-        pn = new count_type(1); // may throw
-        px = r.release(); // fix: moved here to stop leak if new throws
-    } 
-
-    shared_ptr & operator=(std::auto_ptr<T> & r)
-    {
-        shared_ptr(r).swap(*this);
-        return *this;
-    }
-
-#endif
-
-    void reset(T * p = 0)
-    {
-        NDNBOOST_ASSERT(p == 0 || p != px);
-        shared_ptr(p).swap(*this);
-    }
-
-    T & operator*() const  // never throws
-    {
-        NDNBOOST_ASSERT(px != 0);
-        return *px;
-    }
-
-    T * operator->() const  // never throws
-    {
-        NDNBOOST_ASSERT(px != 0);
-        return px;
-    }
-
-    T * get() const  // never throws
-    {
-        return px;
-    }
-
-    long use_count() const  // never throws
-    {
-        return *pn;
-    }
-
-    bool unique() const  // never throws
-    {
-        return *pn == 1;
-    }
-    
-    void swap(shared_ptr<T> & other)  // never throws
-    {
-        std::swap(px, other.px);
-        std::swap(pn, other.pn);
-    }
-
-private:
-
-    T * px;            // contained pointer
-    count_type * pn;   // ptr to reference counter
-};
-
-template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)
-{
-    return a.get() == b.get();
-}
-
-template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)
-{
-    return a.get() != b.get();
-}
-
-template<class T> inline bool operator<(shared_ptr<T> const & a, shared_ptr<T> const & b)
-{
-    return std::less<T*>()(a.get(), b.get());
-}
-
-template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b)
-{
-    a.swap(b);
-}
-
-// get_pointer() enables ndnboost::mem_fn to recognize shared_ptr
-
-template<class T> inline T * get_pointer(shared_ptr<T> const & p)
-{
-    return p.get();
-}
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 6c8b6b1..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_convertible.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_convertible.hpp
-//
-//  Copyright 2008 Peter Dimov
-//
-//  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
-
-#include <ndnboost/config.hpp>
-
-#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE ) && defined( NDNBOOST_NO_SFINAE )
-# define NDNBOOST_SP_NO_SP_CONVERTIBLE
-#endif
-
-#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 )
-# define NDNBOOST_SP_NO_SP_CONVERTIBLE
-#endif
-
-#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ < 0x630 )
-# define NDNBOOST_SP_NO_SP_CONVERTIBLE
-#endif
-
-#if !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-template< class Y, class T > struct sp_convertible
-{
-    typedef char (&yes) [1];
-    typedef char (&no)  [2];
-
-    static yes f( T* );
-    static no  f( ... );
-
-    enum _vt { value = sizeof( (f)( static_cast<Y*>(0) ) ) == sizeof(yes) };
-};
-
-template< class Y, class T > struct sp_convertible< Y, T[] >
-{
-    enum _vt { value = false };
-};
-
-template< class Y, class T > struct sp_convertible< Y[], T[] >
-{
-    enum _vt { value = sp_convertible< Y[1], T[1] >::value };
-};
-
-template< class Y, std::size_t N, class T > struct sp_convertible< Y[N], T[] >
-{
-    enum _vt { value = sp_convertible< Y[1], T[1] >::value };
-};
-
-struct sp_empty
-{
-};
-
-template< bool > struct sp_enable_if_convertible_impl;
-
-template<> struct sp_enable_if_convertible_impl<true>
-{
-    typedef sp_empty type;
-};
-
-template<> struct sp_enable_if_convertible_impl<false>
-{
-};
-
-template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_if_convertible_impl< sp_convertible< Y, T >::value >
-{
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#endif // !defined( NDNBOOST_SP_NO_SP_CONVERTIBLE )
-
-#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
deleted file mode 100644
index 4d7f82a..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base.hpp
-//
-//  Copyright 2005, 2006 Peter Dimov
-//
-// 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)
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/smart_ptr/detail/sp_has_sync.hpp>
-
-#if defined( NDNBOOST_SP_DISABLE_THREADS )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp>
-
-#elif defined( NDNBOOST_SP_USE_SPINLOCK )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_spin.hpp>
-
-#elif defined( NDNBOOST_SP_USE_PTHREADS )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_pt.hpp>
-
-#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__ )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) && !defined(__PATHSCALE__)
-# include <ndnboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp>
-
-#elif defined(__HP_aCC) && defined(__ia64)
-# include <ndnboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp>
-
-#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER ) && !defined(__PATHSCALE__)
-# include <ndnboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp>
-
-#elif defined( __IBMCPP__ ) && defined( __powerpc )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp>
-
-#elif defined( __MWERKS__ ) && defined( __POWERPC__ )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__)
-# include <ndnboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
-
-#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 ) ) )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp>
-
-#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)
-# include <ndnboost/smart_ptr/detail/sp_counted_base_w32.hpp>
-
-#elif defined( _AIX )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_aix.hpp>
-
-#elif !defined( NDNBOOST_HAS_THREADS )
-# include <ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp>
-
-#else
-# include <ndnboost/smart_ptr/detail/sp_counted_base_spin.hpp>
-
-#endif
-
-#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
deleted file mode 100644
index dcface0..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-#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
-//
-//  Copyright 2007 Baruch Zilber
-//  Copyright 2007 Boris Gubenko
-//
-//  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)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-#include <machine/sys/inline.h>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int * pw )
-{
-    // ++*pw;
-
-    _Asm_fetchadd(_FASZ_W, _SEM_REL, pw, +1, _LDHINT_NONE);
-} 
-
-inline int atomic_decrement( int * pw )
-{
-    // return --*pw;
-
-    int r = static_cast<int>(_Asm_fetchadd(_FASZ_W, _SEM_REL, pw, -1, _LDHINT_NONE));
-    if (1 == r)
-    {
-        _Asm_mf();
-    }
-    
-    return r - 1;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int v = *pw;
-    
-    for (;;)
-    {
-        if (0 == v)
-        {
-            return 0;
-        }
-        
-        _Asm_mov_to_ar(_AREG_CCV,
-                       v,
-                       (_UP_CALL_FENCE | _UP_SYS_FENCE | _DOWN_CALL_FENCE | _DOWN_SYS_FENCE));
-        int r = static_cast<int>(_Asm_cmpxchg(_SZ_W, _SEM_ACQ, pw, v + 1, _LDHINT_NONE));
-        if (r == v)
-        {
-            return r + 1;
-        }
-        
-        v = r;
-    }
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index bcb7cfe..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_aix.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-#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
-//   based on: detail/sp_counted_base_w32.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//  Copyright 2006 Michael van der Westhuizen
-//
-//  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)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-#include <builtins.h>
-#include <sys/atomic_op.h>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int32_t* pw )
-{
-    // ++*pw;
-
-    fetch_and_add( pw, 1 );
-}
-
-inline int32_t atomic_decrement( int32_t * pw )
-{
-    // return --*pw;
-
-    int32_t originalValue;
-
-    __lwsync();
-    originalValue = fetch_and_add( pw, -1 );
-    __isync();
-
-    return (originalValue - 1);
-}
-
-inline int32_t atomic_conditional_increment( int32_t * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int32_t tmp = fetch_and_add( pw, 0 );
-    for( ;; )
-    {
-        if( tmp == 0 ) return 0;
-        if( compare_and_swap( pw, &tmp, tmp + 1 ) ) return (tmp + 1);
-    }
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int32_t use_count_;        // #shared
-    int32_t weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return fetch_and_add( const_cast<int32_t*>(&use_count_), 0 );
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index cd196ba..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp
+++ /dev/null
@@ -1,171 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_cw_ppc.hpp - CodeWarrior on PowerPC
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-//  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)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( register long * pw )
-{
-    register int a;
-
-    asm
-    {
-loop:
-
-    lwarx   a, 0, pw
-    addi    a, a, 1
-    stwcx.  a, 0, pw
-    bne-    loop
-    }
-}
-
-inline long atomic_decrement( register long * pw )
-{
-    register int a;
-
-    asm
-    {
-    sync
-
-loop:
-
-    lwarx   a, 0, pw
-    addi    a, a, -1
-    stwcx.  a, 0, pw
-    bne-    loop
-
-    isync
-    }
-
-    return a;
-}
-
-inline long atomic_conditional_increment( register long * pw )
-{
-    register int a;
-
-    asm
-    {
-loop:
-
-    lwarx   a, 0, pw
-    cmpwi   a, 0
-    beq     store
-
-    addi    a, a, 1
-
-store:
-
-    stwcx.  a, 0, pw
-    bne-    loop
-    }
-
-    return a;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    long use_count_;        // #shared
-    long weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<long const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index dafc28b..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp
+++ /dev/null
@@ -1,158 +0,0 @@
-#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
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2006 Peter Dimov
-//  Copyright 2005 Ben Hutchings
-//
-//  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)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int * pw )
-{
-    // ++*pw;
-
-    int tmp;
-
-    // No barrier is required here but fetchadd always has an acquire or
-    // release barrier associated with it.  We choose release as it should be
-    // cheaper.
-    __asm__ ("fetchadd4.rel %0=%1,1" :
-         "=r"(tmp), "=m"(*pw) :
-         "m"( *pw ));
-}
-
-inline int atomic_decrement( int * pw )
-{
-    // return --*pw;
-
-    int rv;
-
-    __asm__ ("     fetchadd4.rel %0=%1,-1 ;; \n"
-             "     cmp.eq        p7,p0=1,%0 ;; \n"
-             "(p7) ld4.acq       %0=%1    " :
-             "=&r"(rv), "=m"(*pw) :
-             "m"( *pw ) :
-             "p7");
-
-    return rv;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int rv, tmp, tmp2;
-
-    __asm__ ("0:   ld4          %0=%3           ;; \n"
-         "     cmp.eq       p7,p0=0,%0        ;; \n"
-         "(p7) br.cond.spnt 1f                \n"
-         "     mov          ar.ccv=%0         \n"
-         "     add          %1=1,%0           ;; \n"
-         "     cmpxchg4.acq %2=%3,%1,ar.ccv ;; \n"
-         "     cmp.ne       p7,p0=%0,%2       ;; \n"
-         "(p7) br.cond.spnt 0b                \n"
-         "     mov          %0=%1             ;; \n"
-         "1:" : 
-         "=&r"(rv), "=&r"(tmp), "=&r"(tmp2), "=m"(*pw) :
-         "m"( *pw ) :
-         "ar.ccv", "p7");
-
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index d3be1db..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_gcc_mips.hpp - g++ on MIPS
-//
-//  Copyright (c) 2009, Spirent Communications, Inc.
-//
-//  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)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int * pw )
-{
-    // ++*pw;
-
-    int tmp;
-
-    __asm__ __volatile__
-    (
-        "0:\n\t"
-        ".set push\n\t"
-        ".set mips2\n\t"
-        "ll %0, %1\n\t"
-        "addiu %0, 1\n\t"
-        "sc %0, %1\n\t"
-        ".set pop\n\t"
-        "beqz %0, 0b":
-        "=&r"( tmp ), "=m"( *pw ):
-        "m"( *pw )
-    );
-}
-
-inline int atomic_decrement( int * pw )
-{
-    // return --*pw;
-
-    int rv, tmp;
-
-    __asm__ __volatile__
-    (
-        "0:\n\t"
-        ".set push\n\t"
-        ".set mips2\n\t"
-        "ll %1, %2\n\t"
-        "addiu %0, %1, -1\n\t"
-        "sc %0, %2\n\t"
-        ".set pop\n\t"
-        "beqz %0, 0b\n\t"
-        "addiu %0, %1, -1":
-        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
-        "m"( *pw ):
-        "memory"
-    );
-
-    return rv;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int rv, tmp;
-
-    __asm__ __volatile__
-    (
-        "0:\n\t"
-        ".set push\n\t"
-        ".set mips2\n\t"
-        "ll %0, %2\n\t"
-        "beqz %0, 1f\n\t"
-        "addiu %1, %0, 1\n\t"
-        "sc %1, %2\n\t"
-        ".set pop\n\t"
-        "beqz %1, 0b\n\t"
-        "addiu %0, %0, 1\n\t"
-        "1:":
-        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
-        "m"( *pw ):
-        "memory"
-    );
-
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index f1b6ede..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_gcc_ppc.hpp - g++ on PowerPC
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-//  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)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int * pw )
-{
-    // ++*pw;
-
-    int tmp;
-
-    __asm__
-    (
-        "0:\n\t"
-        "lwarx %1, 0, %2\n\t"
-        "addi %1, %1, 1\n\t"
-        "stwcx. %1, 0, %2\n\t"
-        "bne- 0b":
-
-        "=m"( *pw ), "=&b"( tmp ):
-        "r"( pw ), "m"( *pw ):
-        "cc"
-    );
-}
-
-inline int atomic_decrement( int * pw )
-{
-    // return --*pw;
-
-    int rv;
-
-    __asm__ __volatile__
-    (
-        "sync\n\t"
-        "0:\n\t"
-        "lwarx %1, 0, %2\n\t"
-        "addi %1, %1, -1\n\t"
-        "stwcx. %1, 0, %2\n\t"
-        "bne- 0b\n\t"
-        "isync":
-
-        "=m"( *pw ), "=&b"( rv ):
-        "r"( pw ), "m"( *pw ):
-        "memory", "cc"
-    );
-
-    return rv;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int rv;
-
-    __asm__
-    (
-        "0:\n\t"
-        "lwarx %1, 0, %2\n\t"
-        "cmpwi %1, 0\n\t"
-        "beq 1f\n\t"
-        "addi %1, %1, 1\n\t"
-        "1:\n\t"
-        "stwcx. %1, 0, %2\n\t"
-        "bne- 0b":
-
-        "=m"( *pw ), "=&b"( rv ):
-        "r"( pw ), "m"( *pw ):
-        "cc"
-    );
-
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 4bbacc7..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp
+++ /dev/null
@@ -1,167 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+
-//
-//  Copyright (c) 2006 Piotr Wyderski
-//  Copyright (c) 2006 Tomas Puverle
-//  Copyright (c) 2006 Peter Dimov
-//
-//  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
-//
-//  Thanks to Michael van der Westhuizen
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-#include <inttypes.h> // int32_t
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ )
-{
-    __asm__ __volatile__( "cas [%1], %2, %0"
-                        : "+r" (swap_)
-                        : "r" (dest_), "r" (compare_)
-                        : "memory" );
-
-    return swap_;
-}
-
-inline int32_t atomic_fetch_and_add( int32_t * pw, int32_t dv )
-{
-    // long r = *pw;
-    // *pw += dv;
-    // return r;
-
-    for( ;; )
-    {
-        int32_t r = *pw;
-
-        if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) )
-        {
-            return r;
-        }
-    }
-}
-
-inline void atomic_increment( int32_t * pw )
-{
-    atomic_fetch_and_add( pw, 1 );
-}
-
-inline int32_t atomic_decrement( int32_t * pw )
-{
-    return atomic_fetch_and_add( pw, -1 );
-}
-
-inline int32_t atomic_conditional_increment( int32_t * pw )
-{
-    // long r = *pw;
-    // if( r != 0 ) ++*pw;
-    // return r;
-
-    for( ;; )
-    {
-        int32_t r = *pw;
-
-        if( r == 0 )
-        {
-            return r;
-        }
-
-        if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) )
-        {
-            return r;
-        }
-    }    
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int32_t use_count_;        // #shared
-    int32_t weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return const_cast< int32_t const volatile & >( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 9f79c57..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp
+++ /dev/null
@@ -1,174 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_gcc_x86.hpp - g++ on 486+ or AMD64
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-//  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)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline int atomic_exchange_and_add( int * pw, int dv )
-{
-    // int r = *pw;
-    // *pw += dv;
-    // return r;
-
-    int r;
-
-    __asm__ __volatile__
-    (
-        "lock\n\t"
-        "xadd %1, %0":
-        "=m"( *pw ), "=r"( r ): // outputs (%0, %1)
-        "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1)
-        "memory", "cc" // clobbers
-    );
-
-    return r;
-}
-
-inline void atomic_increment( int * pw )
-{
-    //atomic_exchange_and_add( pw, 1 );
-
-    __asm__
-    (
-        "lock\n\t"
-        "incl %0":
-        "=m"( *pw ): // output (%0)
-        "m"( *pw ): // input (%1)
-        "cc" // clobbers
-    );
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // int rv = *pw;
-    // if( rv != 0 ) ++*pw;
-    // return rv;
-
-    int rv, tmp;
-
-    __asm__
-    (
-        "movl %0, %%eax\n\t"
-        "0:\n\t"
-        "test %%eax, %%eax\n\t"
-        "je 1f\n\t"
-        "movl %%eax, %2\n\t"
-        "incl %2\n\t"
-        "lock\n\t"
-        "cmpxchgl %2, %0\n\t"
-        "jne 0b\n\t"
-        "1:":
-        "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ): // outputs (%0, %1, %2)
-        "m"( *pw ): // input (%3)
-        "cc" // clobbers
-    );
-
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 50967bc..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_nt.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_nt.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-// 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)
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    long use_count_;        // #shared
-    long weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        ++use_count_;
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        if( use_count_ == 0 ) return false;
-        ++use_count_;
-        return true;
-    }
-
-    void release() // nothrow
-    {
-        if( --use_count_ == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        ++weak_count_;
-    }
-
-    void weak_release() // nothrow
-    {
-        if( --weak_count_ == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return use_count_;
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index d1334d3..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_pt.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_pt.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-// 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)
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-#include <pthread.h>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    long use_count_;        // #shared
-    long weak_count_;       // #weak + (#shared != 0)
-
-    mutable pthread_mutex_t m_;
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init
-
-#if defined(__hpux) && defined(_DECTHREADS_)
-        pthread_mutex_init( &m_, pthread_mutexattr_default );
-#else
-        pthread_mutex_init( &m_, 0 );
-#endif
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-        pthread_mutex_destroy( &m_ );
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        pthread_mutex_lock( &m_ );
-        ++use_count_;
-        pthread_mutex_unlock( &m_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        pthread_mutex_lock( &m_ );
-        bool r = use_count_ == 0? false: ( ++use_count_, true );
-        pthread_mutex_unlock( &m_ );
-        return r;
-    }
-
-    void release() // nothrow
-    {
-        pthread_mutex_lock( &m_ );
-        long new_use_count = --use_count_;
-        pthread_mutex_unlock( &m_ );
-
-        if( new_use_count == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        pthread_mutex_lock( &m_ );
-        ++weak_count_;
-        pthread_mutex_unlock( &m_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        pthread_mutex_lock( &m_ );
-        long new_weak_count = --weak_count_;
-        pthread_mutex_unlock( &m_ );
-
-        if( new_weak_count == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        pthread_mutex_lock( &m_ );
-        long r = use_count_;
-        pthread_mutex_unlock( &m_ );
-
-        return r;
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index afe8fe6..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp
+++ /dev/null
@@ -1,162 +0,0 @@
-#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)
-# pragma once
-#endif
-
-//  detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+
-//
-//  Copyright (c) 2006 Piotr Wyderski
-//  Copyright (c) 2006 Tomas Puverle
-//  Copyright (c) 2006 Peter Dimov
-//  Copyright (c) 2011 Emil Dotchevski
-//
-//  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
-//
-//  Thanks to Michael van der Westhuizen
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-#include <inttypes.h> // uint32_t
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline uint32_t compare_and_swap( uint32_t * dest_, uint32_t compare_, uint32_t swap_ )
-{
-    return __builtin_cellAtomicCompareAndSwap32(dest_,compare_,swap_);
-}
-
-inline uint32_t atomic_fetch_and_add( uint32_t * pw, uint32_t dv )
-{
-    // long r = *pw;
-    // *pw += dv;
-    // return r;
-
-    for( ;; )
-    {
-        uint32_t r = *pw;
-
-        if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) )
-        {
-            return r;
-        }
-    }
-}
-
-inline void atomic_increment( uint32_t * pw )
-{
-    (void) __builtin_cellAtomicIncr32( pw );
-}
-
-inline uint32_t atomic_decrement( uint32_t * pw )
-{
-    return __builtin_cellAtomicDecr32( pw );
-}
-
-inline uint32_t atomic_conditional_increment( uint32_t * pw )
-{
-    // long r = *pw;
-    // if( r != 0 ) ++*pw;
-    // return r;
-
-    for( ;; )
-    {
-        uint32_t r = *pw;
-
-        if( r == 0 )
-        {
-            return r;
-        }
-
-        if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) )
-        {
-            return r;
-        }
-    }    
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    uint32_t use_count_;        // #shared
-    uint32_t weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return const_cast< uint32_t const volatile & >( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index f7691ce..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_spin.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_spin.hpp - spinlock pool atomic emulation
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2008 Peter Dimov
-//
-//  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)
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-#include <ndnboost/smart_ptr/detail/spinlock_pool.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline int atomic_exchange_and_add( int * pw, int dv )
-{
-    spinlock_pool<1>::scoped_lock lock( pw );
-
-    int r = *pw;
-    *pw += dv;
-    return r;
-}
-
-inline void atomic_increment( int * pw )
-{
-    spinlock_pool<1>::scoped_lock lock( pw );
-    ++*pw;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    spinlock_pool<1>::scoped_lock lock( pw );
-
-    int rv = *pw;
-    if( rv != 0 ) ++*pw;
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        spinlock_pool<1>::scoped_lock lock( &use_count_ );
-        return use_count_;
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index faa36e8..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_sync.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics
-//
-//  Copyright (c) 2007 Peter Dimov
-//
-//  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
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-#include <limits.h>
-
-#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
-# include <ia64intrin.h>
-#endif
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-#if INT_MAX >= 2147483647
-
-typedef int sp_int32_t;
-
-#else
-
-typedef long sp_int32_t;
-
-#endif
-
-inline void atomic_increment( sp_int32_t * pw )
-{
-    __sync_fetch_and_add( pw, 1 );
-}
-
-inline sp_int32_t atomic_decrement( sp_int32_t * pw )
-{
-    return __sync_fetch_and_add( pw, -1 );
-}
-
-inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw )
-{
-    // long r = *pw;
-    // if( r != 0 ) ++*pw;
-    // return r;
-
-    sp_int32_t r = *pw;
-
-    for( ;; )
-    {
-        if( r == 0 )
-        {
-            return r;
-        }
-
-        sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 );
-
-        if( r2 == r )
-        {
-            return r;
-        }
-        else
-        {
-            r = r2;
-        }
-    }    
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    sp_int32_t use_count_;        // #shared
-    sp_int32_t weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return const_cast< sp_int32_t const volatile & >( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 673f462..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-#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
-//   based on: detail/sp_counted_base_w32.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//  Copyright 2006 Michael van der Westhuizen
-//  Copyright 2012 IBM Corp.
-//
-//  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)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <ndnboost/detail/sp_typeinfo.hpp>
-
-extern "builtin" void __lwsync(void);
-extern "builtin" void __isync(void);
-extern "builtin" int __fetch_and_add(volatile int* addr, int val);
-extern "builtin" int __compare_and_swap(volatile int*, int*, int);
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int *pw )
-{
-   // ++*pw;
-   __lwsync();
-   __fetch_and_add(pw, 1);
-   __isync();
-} 
-
-inline int atomic_decrement( int *pw )
-{
-   // return --*pw;
-   __lwsync();
-   int originalValue = __fetch_and_add(pw, -1);
-   __isync();
-
-   return (originalValue - 1);
-}
-
-inline int atomic_conditional_increment( int *pw )
-{
-   // if( *pw != 0 ) ++*pw;
-   // return *pw;
-
-   __lwsync();
-   int v = *const_cast<volatile int*>(pw);
-   for (;;)
-   // loop until state is known
-   {
-      if (v == 0) return 0;
-      if (__compare_and_swap(pw, &v, v + 1))
-      {
-         __isync(); return (v + 1);
-      }
-   }
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-    char pad[64] __attribute__((__aligned__(64)));
-            // pad to prevent false sharing
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return *const_cast<volatile int*>(&use_count_); 
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index c06d3a7..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_base_w32.hpp
+++ /dev/null
@@ -1,131 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_w32.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-//  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)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <ndnboost/detail/interlocked.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/detail/sp_typeinfo.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    long use_count_;        // #shared
-    long weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        NDNBOOST_INTERLOCKED_INCREMENT( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        for( ;; )
-        {
-            long tmp = static_cast< long const volatile& >( use_count_ );
-            if( tmp == 0 ) return false;
-
-#if defined( NDNBOOST_MSVC ) && NDNBOOST_WORKAROUND( NDNBOOST_MSVC, == 1200 )
-
-            // work around a code generation bug
-
-            long tmp2 = tmp + 1;
-            if( NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true;
-
-#else
-
-            if( NDNBOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true;
-
-#endif
-        }
-    }
-
-    void release() // nothrow
-    {
-        if( NDNBOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        NDNBOOST_INTERLOCKED_INCREMENT( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( NDNBOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<long const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 38af73b..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_counted_impl.hpp
+++ /dev/null
@@ -1,254 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_impl.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-// 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)
-//
-
-#include <ndnboost/config.hpp>
-
-#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(NDNBOOST_SP_USE_QUICK_ALLOCATOR)
-#include <ndnboost/smart_ptr/detail/quick_allocator.hpp>
-#endif
-
-#if defined(NDNBOOST_SP_USE_STD_ALLOCATOR)
-#include <memory>           // std::allocator
-#endif
-
-#include <cstddef>          // std::size_t
-
-namespace ndnboost
-{
-
-#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 );
-
-#endif
-
-namespace detail
-{
-
-template<class X> class sp_counted_impl_p: public sp_counted_base
-{
-private:
-
-    X * px_;
-
-    sp_counted_impl_p( sp_counted_impl_p const & );
-    sp_counted_impl_p & operator= ( sp_counted_impl_p const & );
-
-    typedef sp_counted_impl_p<X> this_type;
-
-public:
-
-    explicit sp_counted_impl_p( X * px ): px_( px )
-    {
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        ndnboost::sp_scalar_constructor_hook( px, sizeof(X), this );
-#endif
-    }
-
-    virtual void dispose() // nothrow
-    {
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        ndnboost::sp_scalar_destructor_hook( px_, sizeof(X), this );
-#endif
-        ndnboost::checked_delete( px_ );
-    }
-
-    virtual void * get_deleter( detail::sp_typeinfo const & )
-    {
-        return 0;
-    }
-
-    virtual void * get_untyped_deleter()
-    {
-        return 0;
-    }
-
-#if defined(NDNBOOST_SP_USE_STD_ALLOCATOR)
-
-    void * operator new( std::size_t )
-    {
-        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );
-    }
-
-    void operator delete( void * p )
-    {
-        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );
-    }
-
-#endif
-
-#if defined(NDNBOOST_SP_USE_QUICK_ALLOCATOR)
-
-    void * operator new( std::size_t )
-    {
-        return quick_allocator<this_type>::alloc();
-    }
-
-    void operator delete( void * p )
-    {
-        quick_allocator<this_type>::dealloc( p );
-    }
-
-#endif
-};
-
-//
-// Borland's Codeguard trips up over the -Vx- option here:
-//
-#ifdef __CODEGUARD__
-# pragma option push -Vx-
-#endif
-
-template<class P, class D> class sp_counted_impl_pd: public sp_counted_base
-{
-private:
-
-    P ptr; // copy constructor must not throw
-    D del; // copy constructor must not throw
-
-    sp_counted_impl_pd( sp_counted_impl_pd const & );
-    sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & );
-
-    typedef sp_counted_impl_pd<P, D> this_type;
-
-public:
-
-    // pre: d(p) must not throw
-
-    sp_counted_impl_pd( P p, D & d ): ptr( p ), del( d )
-    {
-    }
-
-    sp_counted_impl_pd( P p ): ptr( p ), del()
-    {
-    }
-
-    virtual void dispose() // nothrow
-    {
-        del( ptr );
-    }
-
-    virtual void * get_deleter( detail::sp_typeinfo const & ti )
-    {
-        return ti == NDNBOOST_SP_TYPEID(D)? &reinterpret_cast<char&>( del ): 0;
-    }
-
-    virtual void * get_untyped_deleter()
-    {
-        return &reinterpret_cast<char&>( del );
-    }
-
-#if defined(NDNBOOST_SP_USE_STD_ALLOCATOR)
-
-    void * operator new( std::size_t )
-    {
-        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );
-    }
-
-    void operator delete( void * p )
-    {
-        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );
-    }
-
-#endif
-
-#if defined(NDNBOOST_SP_USE_QUICK_ALLOCATOR)
-
-    void * operator new( std::size_t )
-    {
-        return quick_allocator<this_type>::alloc();
-    }
-
-    void operator delete( void * p )
-    {
-        quick_allocator<this_type>::dealloc( p );
-    }
-
-#endif
-};
-
-template<class P, class D, class A> class sp_counted_impl_pda: public sp_counted_base
-{
-private:
-
-    P p_; // copy constructor must not throw
-    D d_; // copy constructor must not throw
-    A a_; // copy constructor must not throw
-
-    sp_counted_impl_pda( sp_counted_impl_pda const & );
-    sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & );
-
-    typedef sp_counted_impl_pda<P, D, A> this_type;
-
-public:
-
-    // pre: d( p ) must not throw
-
-    sp_counted_impl_pda( P p, D & d, A a ): p_( p ), d_( d ), a_( a )
-    {
-    }
-
-    sp_counted_impl_pda( P p, A a ): p_( p ), d_(), a_( a )
-    {
-    }
-
-    virtual void dispose() // nothrow
-    {
-        d_( p_ );
-    }
-
-    virtual void destroy() // nothrow
-    {
-        typedef typename A::template rebind< this_type >::other A2;
-
-        A2 a2( a_ );
-
-        this->~this_type();
-        a2.deallocate( this, 1 );
-    }
-
-    virtual void * get_deleter( detail::sp_typeinfo const & ti )
-    {
-        return ti == NDNBOOST_SP_TYPEID( D )? &reinterpret_cast<char&>( d_ ): 0;
-    }
-
-    virtual void * get_untyped_deleter()
-    {
-        return &reinterpret_cast<char&>( d_ );
-    }
-};
-
-#ifdef __CODEGUARD__
-# pragma option pop
-#endif
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index e1b7b74..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_forward.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_SP_FORWARD_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_forward.hpp
-//
-//  Copyright 2008,2012 Peter Dimov
-//
-//  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
-
-#include <ndnboost/config.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-template< class T > T&& sp_forward( T & t ) NDNBOOST_NOEXCEPT
-{
-    return static_cast< T&& >( t );
-}
-
-#endif
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 5b5b4df..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_has_sync.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/smart_ptr/detail/sp_has_sync.hpp
-//
-//  Copyright (c) 2008, 2009 Peter Dimov
-//
-//  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)
-//
-//  Defines the NDNBOOST_SP_HAS_SYNC macro if the __sync_* intrinsics
-//  are available.
-//
-
-#ifndef NDNBOOST_SP_NO_SYNC
-
-#if defined( __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 )
-
-# define NDNBOOST_SP_HAS_SYNC
-
-#elif defined( __IBMCPP__ ) && ( __IBMCPP__ >= 1210 )
-
-# define NDNBOOST_SP_HAS_SYNC
-
-#elif defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
-
-#define NDNBOOST_SP_HAS_SYNC
-
-#if defined( __arm__ )  || defined( __armel__ )
-#undef NDNBOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __hppa ) || defined( __hppa__ )
-#undef NDNBOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __m68k__ )
-#undef NDNBOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __sh__ )
-#undef NDNBOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __sparc__ )
-#undef NDNBOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __INTEL_COMPILER ) && !defined( __ia64__ ) && ( __INTEL_COMPILER < 1110 )
-#undef NDNBOOST_SP_HAS_SYNC
-#endif
-
-#if defined(__PATHSCALE__) && ((__PATHCC__ == 4) && (__PATHCC_MINOR__ < 9)) 
-#undef NDNBOOST_SP_HAS_SYNC
-#endif
-
-#endif
-
-#endif // #ifndef NDNBOOST_SP_NO_SYNC
-
-#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
deleted file mode 100644
index 33c8925..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_if_array.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2012 Glen Joseph Fernandes 
- * glenfe at live dot com
- *
- * Distributed under the Boost Software License, 
- * Version 1.0. (See accompanying file LICENSE_1_0.txt 
- * or copy at http://boost.org/LICENSE_1_0.txt)
- */
-#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>
-
-namespace ndnboost {
-    namespace detail {
-        template<typename T> 
-        struct sp_if_array;
-        template<typename T>
-        struct sp_if_array<T[]> {
-            typedef ndnboost::shared_ptr<T[]> type;
-        };
-        template<typename T>
-        struct sp_if_size_array;
-        template<typename T, std::size_t N>
-        struct sp_if_size_array<T[N]> {
-            typedef ndnboost::shared_ptr<T[N]> type;
-        };
-    }
-}
-
-#endif
diff --git a/include/ndnboost/smart_ptr/detail/sp_nullptr_t.hpp b/include/ndnboost/smart_ptr/detail/sp_nullptr_t.hpp
deleted file mode 100644
index 5348061..0000000
--- a/include/ndnboost/smart_ptr/detail/sp_nullptr_t.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#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
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_nullptr_t.hpp
-//
-//  Copyright 2013 Peter Dimov
-//
-//  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
-
-#include <ndnboost/config.hpp>
-#include <cstddef>
-
-#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-#if defined( __clang__ ) && !defined( _LIBCPP_VERSION ) && !defined( NDNBOOST_NO_CXX11_DECLTYPE )
-
-    typedef decltype(nullptr) sp_nullptr_t;
-
-#else
-
-    typedef std::nullptr_t sp_nullptr_t;
-
-#endif
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#endif // !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-#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
deleted file mode 100644
index 37d0d56..0000000
--- a/include/ndnboost/smart_ptr/detail/spinlock.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/spinlock.hpp
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  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)
-//
-//  struct spinlock
-//  {
-//      void lock();
-//      bool try_lock();
-//      void unlock();
-//
-//      class scoped_lock;
-//  };
-//
-//  #define NDNBOOST_DETAIL_SPINLOCK_INIT <unspecified>
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/smart_ptr/detail/sp_has_sync.hpp>
-
-#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( 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(NDNBOOST_HAS_PTHREADS)
-#  include <ndnboost/smart_ptr/detail/spinlock_pt.hpp>
-
-#elif !defined(NDNBOOST_HAS_THREADS)
-#  include <ndnboost/smart_ptr/detail/spinlock_nt.hpp>
-
-#else
-#  error Unrecognized threading platform
-#endif
-
-#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
deleted file mode 100644
index 2f015a4..0000000
--- a/include/ndnboost/smart_ptr/detail/spinlock_gcc_arm.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-#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
-//
-//  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)
-//
-
-#include <ndnboost/smart_ptr/detail/yield_k.hpp>
-
-#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 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 NDNBOOST_SP_ARM_BARRIER "mcr p15, 0, r0, c7, c10, 5"
-# define NDNBOOST_SP_ARM_HAS_LDREX
-
-#else
-
-# define NDNBOOST_SP_ARM_BARRIER ""
-
-#endif
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    int v_;
-
-public:
-
-    bool try_lock()
-    {
-        int r;
-
-#ifdef NDNBOOST_SP_ARM_HAS_LDREX
-
-        __asm__ __volatile__(
-            "ldrex %0, [%2]; \n"
-            "cmp %0, %1; \n"
-            "strexne %0, %1, [%2]; \n"
-            NDNBOOST_SP_ARM_BARRIER :
-            "=&r"( r ): // outputs
-            "r"( 1 ), "r"( &v_ ): // inputs
-            "memory", "cc" );
-
-#else
-
-        __asm__ __volatile__(
-            "swp %0, %1, [%2];\n"
-            NDNBOOST_SP_ARM_BARRIER :
-            "=&r"( r ): // outputs
-            "r"( 1 ), "r"( &v_ ): // inputs
-            "memory", "cc" );
-
-#endif
-
-        return r == 0;
-    }
-
-    void lock()
-    {
-        for( unsigned k = 0; !try_lock(); ++k )
-        {
-            ndnboost::detail::yield( k );
-        }
-    }
-
-    void unlock()
-    {
-        __asm__ __volatile__( NDNBOOST_SP_ARM_BARRIER ::: "memory" );
-        *const_cast< int volatile* >( &v_ ) = 0;
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace ndnboost
-
-#define NDNBOOST_DETAIL_SPINLOCK_INIT {0}
-
-#undef NDNBOOST_SP_ARM_BARRIER
-#undef NDNBOOST_SP_ARM_HAS_LDREX
-
-#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
deleted file mode 100644
index 5b514c8..0000000
--- a/include/ndnboost/smart_ptr/detail/spinlock_nt.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  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)
-//
-
-#include <ndnboost/assert.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    bool locked_;
-
-public:
-
-    inline bool try_lock()
-    {
-        if( locked_ )
-        {
-            return false;
-        }
-        else
-        {
-            locked_ = true;
-            return true;
-        }
-    }
-
-    inline void lock()
-    {
-        NDNBOOST_ASSERT( !locked_ );
-        locked_ = true;
-    }
-
-    inline void unlock()
-    {
-        NDNBOOST_ASSERT( locked_ );
-        locked_ = false;
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace ndnboost
-
-#define NDNBOOST_DETAIL_SPINLOCK_INIT { false }
-
-#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
deleted file mode 100644
index 70549b7..0000000
--- a/include/ndnboost/smart_ptr/detail/spinlock_pool.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/detail/spinlock_pool.hpp
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  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)
-//
-//  spinlock_pool<0> is reserved for atomic<>, when/if it arrives
-//  spinlock_pool<1> is reserved for shared_ptr reference counts
-//  spinlock_pool<2> is reserved for shared_ptr atomic access
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/smart_ptr/detail/spinlock.hpp>
-#include <cstddef>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-template< int I > class spinlock_pool
-{
-private:
-
-    static spinlock pool_[ 41 ];
-
-public:
-
-    static spinlock & spinlock_for( void const * pv )
-    {
-#if defined(__VMS) && __INITIAL_POINTER_SIZE == 64  
-        std::size_t i = reinterpret_cast< unsigned long long >( pv ) % 41;
-#else  
-        std::size_t i = reinterpret_cast< std::size_t >( pv ) % 41;
-#endif  
-        return pool_[ i ];
-    }
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( void const * pv ): sp_( spinlock_for( pv ) )
-        {
-            sp_.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-template< int I > spinlock spinlock_pool< I >::pool_[ 41 ] =
-{
-    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 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
deleted file mode 100644
index 02f3003..0000000
--- a/include/ndnboost/smart_ptr/detail/spinlock_pt.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  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)
-//
-
-#include <pthread.h>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    pthread_mutex_t v_;
-
-public:
-
-    bool try_lock()
-    {
-        return pthread_mutex_trylock( &v_ ) == 0;
-    }
-
-    void lock()
-    {
-        pthread_mutex_lock( &v_ );
-    }
-
-    void unlock()
-    {
-        pthread_mutex_unlock( &v_ );
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace ndnboost
-
-#define NDNBOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER }
-
-#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
deleted file mode 100644
index 41f321f..0000000
--- a/include/ndnboost/smart_ptr/detail/spinlock_sync.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  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)
-//
-
-#include <ndnboost/smart_ptr/detail/yield_k.hpp>
-
-#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
-# include <ia64intrin.h>
-#endif
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    int v_;
-
-public:
-
-    bool try_lock()
-    {
-        int r = __sync_lock_test_and_set( &v_, 1 );
-        return r == 0;
-    }
-
-    void lock()
-    {
-        for( unsigned k = 0; !try_lock(); ++k )
-        {
-            ndnboost::detail::yield( k );
-        }
-    }
-
-    void unlock()
-    {
-        __sync_lock_release( &v_ );
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace ndnboost
-
-#define NDNBOOST_DETAIL_SPINLOCK_INIT {0}
-
-#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
deleted file mode 100644
index 021e3b0..0000000
--- a/include/ndnboost/smart_ptr/detail/spinlock_w32.hpp
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  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)
-//
-
-#include <ndnboost/detail/interlocked.hpp>
-#include <ndnboost/smart_ptr/detail/yield_k.hpp>
-
-// NDNBOOST_COMPILER_FENCE
-
-#if defined(__INTEL_COMPILER)
-
-#define NDNBOOST_COMPILER_FENCE __memory_barrier();
-
-#elif defined( _MSC_VER ) && _MSC_VER >= 1310
-
-extern "C" void _ReadWriteBarrier();
-#pragma intrinsic( _ReadWriteBarrier )
-
-#define NDNBOOST_COMPILER_FENCE _ReadWriteBarrier();
-
-#elif defined(__GNUC__)
-
-#define NDNBOOST_COMPILER_FENCE __asm__ __volatile__( "" : : : "memory" );
-
-#else
-
-#define NDNBOOST_COMPILER_FENCE
-
-#endif
-
-//
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    long v_;
-
-public:
-
-    bool try_lock()
-    {
-        long r = NDNBOOST_INTERLOCKED_EXCHANGE( &v_, 1 );
-
-        NDNBOOST_COMPILER_FENCE
-
-        return r == 0;
-    }
-
-    void lock()
-    {
-        for( unsigned k = 0; !try_lock(); ++k )
-        {
-            ndnboost::detail::yield( k );
-        }
-    }
-
-    void unlock()
-    {
-        NDNBOOST_COMPILER_FENCE
-        *const_cast< long volatile* >( &v_ ) = 0;
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace ndnboost
-
-#define NDNBOOST_DETAIL_SPINLOCK_INIT {0}
-
-#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
deleted file mode 100644
index 2fcd790..0000000
--- a/include/ndnboost/smart_ptr/detail/yield_k.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  yield_k.hpp
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  void yield( unsigned k );
-//
-//  Typical use:
-//
-//  for( unsigned k = 0; !try_lock(); ++k ) yield( k );
-//
-//  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
-//
-
-#include <ndnboost/config.hpp>
-
-// 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 NDNBOOST_SMT_PAUSE _mm_pause();
-
-#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
-
-#define NDNBOOST_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" );
-
-#endif
-
-//
-
-#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
-
-#if defined( NDNBOOST_USE_WINDOWS_H )
-# include <windows.h>
-#endif
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-#if !defined( NDNBOOST_USE_WINDOWS_H )
-  extern "C" void __stdcall Sleep( unsigned long ms );
-#endif
-
-inline void yield( unsigned k )
-{
-    if( k < 4 )
-    {
-    }
-#if defined( NDNBOOST_SMT_PAUSE )
-    else if( k < 16 )
-    {
-        NDNBOOST_SMT_PAUSE
-    }
-#endif
-    else if( k < 32 )
-    {
-        Sleep( 0 );
-    }
-    else
-    {
-        Sleep( 1 );
-    }
-}
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#elif defined( NDNBOOST_HAS_PTHREADS )
-
-#include <sched.h>
-#include <time.h>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void yield( unsigned k )
-{
-    if( k < 4 )
-    {
-    }
-#if defined( NDNBOOST_SMT_PAUSE )
-    else if( k < 16 )
-    {
-        NDNBOOST_SMT_PAUSE
-    }
-#endif
-    else if( k < 32 || k & 1 )
-    {
-        sched_yield();
-    }
-    else
-    {
-        // g++ -Wextra warns on {} or {0}
-        struct timespec rqtp = { 0, 0 };
-
-        // POSIX says that timespec has tv_sec and tv_nsec
-        // But it doesn't guarantee order or placement
-
-        rqtp.tv_sec = 0;
-        rqtp.tv_nsec = 1000;
-
-        nanosleep( &rqtp, 0 );
-    }
-}
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#else
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-inline void yield( unsigned )
-{
-}
-
-} // namespace detail
-
-} // namespace ndnboost
-
-#endif
-
-#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
deleted file mode 100644
index e0a9197..0000000
--- a/include/ndnboost/smart_ptr/make_shared.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_MAKE_SHARED_HPP_INCLUDED
-
-//  make_shared.hpp
-//
-//  Copyright (c) 2007, 2008, 2012 Peter Dimov
-//
-//  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
-//
-//  See http://www.boost.org/libs/smart_ptr/make_shared.html
-//  for documentation.
-
-#include <ndnboost/smart_ptr/make_shared_object.hpp>
-
-#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 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
deleted file mode 100644
index 63998ea..0000000
--- a/include/ndnboost/smart_ptr/make_shared_array.hpp
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright (c) 2012 Glen Joseph Fernandes
- * glenfe at live dot com
- *
- * Distributed under the Boost Software License,
- * Version 1.0. (See accompanying file LICENSE_1_0.txt
- * or copy at http://boost.org/LICENSE_1_0.txt)
- */
-#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(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
-#include <initializer_list>
-#endif
-
-namespace ndnboost {
-    template<typename T>
-    inline typename ndnboost::detail::sp_if_array<T>::type
-    make_shared(std::size_t size) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        std::size_t n1 = size * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::make_array_helper<T2[]> a1(n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#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) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        std::size_t n1 = size * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::make_array_helper<T2[]> a1(n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2, ndnboost::detail::sp_forward<Args>(args)...);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T, typename... Args>
-    inline typename ndnboost::detail::sp_if_size_array<T>::type
-    make_shared(Args&&... args) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        enum {
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        ndnboost::detail::make_array_helper<T2[N]> a1(&p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2, ndnboost::detail::sp_forward<Args>(args)...);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#endif
-#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) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        typedef const T2 T3;
-        enum {
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        T3* p3 = 0;
-        ndnboost::detail::make_array_helper<T2[N]> a1(&p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p3 = reinterpret_cast<T3*>(list);
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init_list(p2, p3);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T>
-    inline typename ndnboost::detail::sp_if_array<T>::type
-    make_shared(std::size_t size,
-        const typename ndnboost::detail::array_inner<T>::type& list) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        typedef const T2 T3;
-        enum {
-            M = ndnboost::detail::array_total<T1>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        T3* p3 = 0;
-        std::size_t n1 = M * size;
-        ndnboost::detail::make_array_helper<T2[]> a1(n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p3 = reinterpret_cast<T3*>(list);
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->template init_list<M>(p2, p3);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T>
-    inline typename ndnboost::detail::sp_if_size_array<T>::type
-    make_shared(const typename ndnboost::detail::array_inner<T>::type& list) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        typedef const T2 T3;
-        enum {
-            M = ndnboost::detail::array_total<T1>::size,
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        T3* p3 = 0;
-        ndnboost::detail::make_array_helper<T2[N]> a1(&p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p3 = reinterpret_cast<T3*>(list);
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->template init_list<M>(p2, p3);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#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) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        typedef const T2 T3;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        T3* p3 = 0;
-        std::size_t n1 = list.size() * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::make_array_helper<T2[]> a1(n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p3 = reinterpret_cast<T3*>(list.begin());
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init_list(p2, p3);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#endif
-#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,
-        typename ndnboost::detail::array_base<T>::type&& value) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        std::size_t n1 = size * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::make_array_helper<T2[]> a1(n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2, ndnboost::detail::sp_forward<T2>(value));
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T>
-    inline typename ndnboost::detail::sp_if_size_array<T>::type
-    make_shared(typename ndnboost::detail::array_base<T>::type&& value) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        enum {
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        ndnboost::detail::make_array_helper<T2[N]> a1(&p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->init(p2, ndnboost::detail::sp_forward<T2>(value));
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-#endif
-#endif
-    template<typename T>
-    inline typename ndnboost::detail::sp_if_array<T>::type
-    make_shared_noinit(std::size_t size) {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        T1* p1 = 0;
-        T2* p2 = 0;
-        std::size_t n1 = size * ndnboost::detail::array_total<T1>::size;
-        ndnboost::detail::make_array_helper<T2[]> a1(n1, &p2);
-        ndnboost::detail::array_deleter<T2[]> d1(n1);
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->noinit(p2);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-    template<typename T>
-    inline typename ndnboost::detail::sp_if_size_array<T>::type
-    make_shared_noinit() {
-        typedef typename ndnboost::detail::array_inner<T>::type T1;
-        typedef typename ndnboost::detail::array_base<T1>::type T2;
-        enum {
-            N = ndnboost::detail::array_total<T>::size
-        };
-        T1* p1 = 0;
-        T2* p2 = 0;
-        ndnboost::detail::make_array_helper<T2[N]> a1(&p2);
-        ndnboost::detail::array_deleter<T2[N]> d1;
-        ndnboost::shared_ptr<T> s1(p1, d1, a1);
-        typedef ndnboost::detail::array_deleter<T2[N]>* D2;
-        p1 = reinterpret_cast<T1*>(p2);
-        D2 d2 = static_cast<D2>(s1._internal_get_untyped_deleter());
-        d2->noinit(p2);
-        return ndnboost::shared_ptr<T>(s1, p1);
-    }
-}
-
-#endif
diff --git a/include/ndnboost/smart_ptr/make_shared_object.hpp b/include/ndnboost/smart_ptr/make_shared_object.hpp
deleted file mode 100644
index e704d52..0000000
--- a/include/ndnboost/smart_ptr/make_shared_object.hpp
+++ /dev/null
@@ -1,1032 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_MAKE_SHARED_OBJECT_HPP_INCLUDED
-
-//  make_shared_object.hpp
-//
-//  Copyright (c) 2007, 2008, 2012 Peter Dimov
-//
-//  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
-//
-//  See http://www.boost.org/libs/smart_ptr/make_shared.html
-//  for documentation.
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/smart_ptr/shared_ptr.hpp>
-#include <ndnboost/smart_ptr/detail/sp_forward.hpp>
-#include <ndnboost/type_traits/type_with_alignment.hpp>
-#include <ndnboost/type_traits/alignment_of.hpp>
-#include <cstddef>
-#include <new>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-template< std::size_t N, std::size_t A > struct sp_aligned_storage
-{
-    union type
-    {
-        char data_[ N ];
-        typename ndnboost::type_with_alignment< A >::type align_;
-    };
-};
-
-template< class T > class sp_ms_deleter
-{
-private:
-
-    typedef typename sp_aligned_storage< sizeof( T ), ::ndnboost::alignment_of< T >::value >::type storage_type;
-
-    bool initialized_;
-    storage_type storage_;
-
-private:
-
-    void destroy()
-    {
-        if( initialized_ )
-        {
-#if defined( __GNUC__ )
-
-            // fixes incorrect aliasing warning
-            T * p = reinterpret_cast< T* >( storage_.data_ );
-            p->~T();
-
-#else
-
-            reinterpret_cast< T* >( storage_.data_ )->~T();
-
-#endif
-
-            initialized_ = false;
-        }
-    }
-
-public:
-
-    sp_ms_deleter() NDNBOOST_NOEXCEPT : initialized_( false )
-    {
-    }
-
-    // optimization: do not copy storage_
-    sp_ms_deleter( sp_ms_deleter const & ) NDNBOOST_NOEXCEPT : initialized_( false )
-    {
-    }
-
-    ~sp_ms_deleter()
-    {
-        destroy();
-    }
-
-    void operator()( T * )
-    {
-        destroy();
-    }
-
-    static void operator_fn( T* ) // operator() can't be static
-    {
-    }
-
-    void * address() NDNBOOST_NOEXCEPT
-    {
-        return storage_.data_;
-    }
-
-    void set_initialized() NDNBOOST_NOEXCEPT
-    {
-        initialized_ = true;
-    }
-};
-
-template< class T > struct sp_if_not_array
-{
-    typedef ndnboost::shared_ptr< T > type;
-};
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T > struct sp_if_not_array< T[] >
-{
-};
-
-#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
-
-template< class T, std::size_t N > struct sp_if_not_array< T[N] >
-{
-};
-
-#endif
-
-#endif
-
-} // namespace detail
-
-#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 NDNBOOST_SP_MSD( T ) ndnboost::detail::sp_ms_deleter< T >()
-#endif
-
-// Zero-argument versions
-//
-// Used even when variadic templates are available because of the new T() vs new T issue
-
-template< class T > typename ndnboost::detail::sp_if_not_array< T >::type make_shared()
-{
-    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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T();
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-template< class T > typename ndnboost::detail::sp_if_not_array< T >::type make_shared_noinit()
-{
-    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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T;
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T();
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T;
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-#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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( ndnboost::detail::sp_forward<Arg1>( arg1 ), ndnboost::detail::sp_forward<Args>( args )... );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( ndnboost::detail::sp_forward<Arg1>( arg1 ), ndnboost::detail::sp_forward<Args>( args )... );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-#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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T(
-        ndnboost::detail::sp_forward<A1>( a1 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( 
-        ndnboost::detail::sp_forward<A1>( a1 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T(
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( 
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T(
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( 
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T(
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( 
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T(
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( 
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T(
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 ), 
-        ndnboost::detail::sp_forward<A6>( a6 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( 
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 ), 
-        ndnboost::detail::sp_forward<A6>( a6 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T(
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 ), 
-        ndnboost::detail::sp_forward<A6>( a6 ), 
-        ndnboost::detail::sp_forward<A7>( a7 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( 
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 ), 
-        ndnboost::detail::sp_forward<A6>( a6 ), 
-        ndnboost::detail::sp_forward<A7>( a7 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T(
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 ), 
-        ndnboost::detail::sp_forward<A6>( a6 ), 
-        ndnboost::detail::sp_forward<A7>( a7 ), 
-        ndnboost::detail::sp_forward<A8>( a8 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( 
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 ), 
-        ndnboost::detail::sp_forward<A6>( a6 ), 
-        ndnboost::detail::sp_forward<A7>( a7 ), 
-        ndnboost::detail::sp_forward<A8>( a8 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T(
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 ), 
-        ndnboost::detail::sp_forward<A6>( a6 ), 
-        ndnboost::detail::sp_forward<A7>( a7 ), 
-        ndnboost::detail::sp_forward<A8>( a8 ), 
-        ndnboost::detail::sp_forward<A9>( a9 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( 
-        ndnboost::detail::sp_forward<A1>( a1 ), 
-        ndnboost::detail::sp_forward<A2>( a2 ), 
-        ndnboost::detail::sp_forward<A3>( a3 ), 
-        ndnboost::detail::sp_forward<A4>( a4 ), 
-        ndnboost::detail::sp_forward<A5>( a5 ), 
-        ndnboost::detail::sp_forward<A6>( a6 ), 
-        ndnboost::detail::sp_forward<A7>( a7 ), 
-        ndnboost::detail::sp_forward<A8>( a8 ), 
-        ndnboost::detail::sp_forward<A9>( a9 )
-        );
-
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-#else
-
-// C++03 version
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), NDNBOOST_SP_MSD( T ) );
-
-    ndnboost::detail::sp_ms_deleter< T > * pd = static_cast<ndnboost::detail::sp_ms_deleter< T > *>( pt._internal_get_untyped_deleter() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-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 ), 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() );
-
-    void * pv = pd->address();
-
-    ::new( pv ) T( a1, a2, a3, a4, a5, a6, a7, a8, a9 );
-    pd->set_initialized();
-
-    T * pt2 = static_cast< T* >( pv );
-
-    ndnboost::detail::sp_enable_shared_from_this( &pt, pt2, pt2 );
-    return ndnboost::shared_ptr< T >( pt, pt2 );
-}
-
-#endif
-
-#undef NDNBOOST_SP_MSD
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 818d4c0..0000000
--- a/include/ndnboost/smart_ptr/scoped_array.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-#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
-//
-//  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)
-//
-//  http://www.boost.org/libs/smart_ptr/scoped_array.htm
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/checked_delete.hpp>
-#include <ndnboost/smart_ptr/detail/sp_nullptr_t.hpp>
-
-#include <ndnboost/detail/workaround.hpp>
-
-#include <cstddef>            // for std::ptrdiff_t
-
-namespace ndnboost
-{
-
-// Debug hooks
-
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-
-void sp_array_constructor_hook(void * p);
-void sp_array_destructor_hook(void * p);
-
-#endif
-
-//  scoped_array extends scoped_ptr to arrays. Deletion of the array pointed to
-//  is guaranteed, either on destruction of the scoped_array or via an explicit
-//  reset(). Use shared_array or std::vector if your needs are more complex.
-
-template<class T> class scoped_array // noncopyable
-{
-private:
-
-    T * px;
-
-    scoped_array(scoped_array const &);
-    scoped_array & operator=(scoped_array const &);
-
-    typedef scoped_array<T> this_type;
-
-    void operator==( scoped_array const& ) const;
-    void operator!=( scoped_array const& ) const;
-
-public:
-
-    typedef T element_type;
-
-    explicit scoped_array( T * p = 0 ) NDNBOOST_NOEXCEPT : px( p )
-    {
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        ndnboost::sp_array_constructor_hook( px );
-#endif
-    }
-
-    ~scoped_array() // never throws
-    {
-#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 NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
-    {
-        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 NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
-    {
-        NDNBOOST_ASSERT( px != 0 );
-        NDNBOOST_ASSERT( i >= 0 );
-        return px[i];
-    }
-
-    T * get() const NDNBOOST_NOEXCEPT
-    {
-        return px;
-    }
-
-// implicit conversion to "bool"
-#include <ndnboost/smart_ptr/detail/operator_bool.hpp>
-
-    void swap(scoped_array & b) NDNBOOST_NOEXCEPT
-    {
-        T * tmp = b.px;
-        b.px = px;
-        px = tmp;
-    }
-};
-
-#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-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 ) NDNBOOST_NOEXCEPT
-{
-    return p.get() == 0;
-}
-
-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 ) NDNBOOST_NOEXCEPT
-{
-    return p.get() != 0;
-}
-
-#endif
-
-template<class T> inline void swap(scoped_array<T> & a, scoped_array<T> & b) NDNBOOST_NOEXCEPT
-{
-    a.swap(b);
-}
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index d79b393..0000000
--- a/include/ndnboost/smart_ptr/scoped_ptr.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-#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
-//
-//  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)
-//
-//  http://www.boost.org/libs/smart_ptr/scoped_ptr.htm
-//
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/checked_delete.hpp>
-#include <ndnboost/smart_ptr/detail/sp_nullptr_t.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#ifndef NDNBOOST_NO_AUTO_PTR
-# include <memory>          // for std::auto_ptr
-#endif
-
-namespace ndnboost
-{
-
-// Debug hooks
-
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-
-void sp_scalar_constructor_hook(void * p);
-void sp_scalar_destructor_hook(void * p);
-
-#endif
-
-//  scoped_ptr mimics a built-in pointer except that it guarantees deletion
-//  of the object pointed to, either on destruction of the scoped_ptr or via
-//  an explicit reset(). scoped_ptr is a simple solution for simple needs;
-//  use shared_ptr or std::auto_ptr if your needs are more complex.
-
-template<class T> class scoped_ptr // noncopyable
-{
-private:
-
-    T * px;
-
-    scoped_ptr(scoped_ptr const &);
-    scoped_ptr & operator=(scoped_ptr const &);
-
-    typedef scoped_ptr<T> this_type;
-
-    void operator==( scoped_ptr const& ) const;
-    void operator!=( scoped_ptr const& ) const;
-
-public:
-
-    typedef T element_type;
-
-    explicit scoped_ptr( T * p = 0 ): px( p ) // never throws
-    {
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        ndnboost::sp_scalar_constructor_hook( px );
-#endif
-    }
-
-#ifndef NDNBOOST_NO_AUTO_PTR
-
-    explicit scoped_ptr( std::auto_ptr<T> p ) NDNBOOST_NOEXCEPT : px( p.release() )
-    {
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        ndnboost::sp_scalar_constructor_hook( px );
-#endif
-    }
-
-#endif
-
-    ~scoped_ptr() // never throws
-    {
-#if defined(NDNBOOST_SP_ENABLE_DEBUG_HOOKS)
-        ndnboost::sp_scalar_destructor_hook( px );
-#endif
-        ndnboost::checked_delete( px );
-    }
-
-    void reset(T * p = 0) // never throws
-    {
-        NDNBOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
-        this_type(p).swap(*this);
-    }
-
-    T & operator*() const // never throws
-    {
-        NDNBOOST_ASSERT( px != 0 );
-        return *px;
-    }
-
-    T * operator->() const // never throws
-    {
-        NDNBOOST_ASSERT( px != 0 );
-        return px;
-    }
-
-    T * get() const NDNBOOST_NOEXCEPT
-    {
-        return px;
-    }
-
-// implicit conversion to "bool"
-#include <ndnboost/smart_ptr/detail/operator_bool.hpp>
-
-    void swap(scoped_ptr & b) NDNBOOST_NOEXCEPT
-    {
-        T * tmp = b.px;
-        b.px = px;
-        px = tmp;
-    }
-};
-
-#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-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 ) NDNBOOST_NOEXCEPT
-{
-    return p.get() == 0;
-}
-
-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 ) NDNBOOST_NOEXCEPT
-{
-    return p.get() != 0;
-}
-
-#endif
-
-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) NDNBOOST_NOEXCEPT
-{
-    return p.get();
-}
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index dedef12..0000000
--- a/include/ndnboost/smart_ptr/shared_array.hpp
+++ /dev/null
@@ -1,290 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_SHARED_ARRAY_HPP_INCLUDED
-
-//
-//  shared_array.hpp
-//
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-//  Copyright (c) 2001, 2002, 2012 Peter Dimov
-//
-//  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)
-//
-//  See http://www.boost.org/libs/smart_ptr/shared_array.htm for documentation.
-//
-
-#include <ndnboost/config.hpp>   // for broken compiler workarounds
-
-#if defined(NDNBOOST_NO_MEMBER_TEMPLATES) && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
-#include <ndnboost/smart_ptr/detail/shared_array_nmt.hpp>
-#else
-
-#include <memory>             // TR1 cyclic inclusion fix
-
-#include <ndnboost/assert.hpp>
-#include <ndnboost/checked_delete.hpp>
-
-#include <ndnboost/smart_ptr/shared_ptr.hpp>
-#include <ndnboost/smart_ptr/detail/shared_count.hpp>
-#include <ndnboost/smart_ptr/detail/sp_nullptr_t.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#include <cstddef>            // for std::ptrdiff_t
-#include <algorithm>          // for std::swap
-#include <functional>         // for std::less
-
-namespace ndnboost
-{
-
-//
-//  shared_array
-//
-//  shared_array extends shared_ptr to arrays.
-//  The array pointed to is deleted when the last shared_array pointing to it
-//  is destroyed or reset.
-//
-
-template<class T> class shared_array
-{
-private:
-
-    // Borland 5.5.1 specific workarounds
-    typedef checked_array_deleter<T> deleter;
-    typedef shared_array<T> this_type;
-
-public:
-
-    typedef T element_type;
-
-    shared_array() NDNBOOST_NOEXCEPT : px( 0 ), pn()
-    {
-    }
-
-    template<class Y>
-    explicit shared_array( Y * p ): px( p ), pn( p, checked_array_deleter<Y>() )
-    {
-        ndnboost::detail::sp_assert_convertible< Y[], T[] >();
-    }
-
-    //
-    // Requirements: D's copy constructor must not throw
-    //
-    // shared_array will release p by calling d(p)
-    //
-
-    template<class Y, class D> shared_array( Y * p, D d ): px( p ), pn( p, d )
-    {
-        ndnboost::detail::sp_assert_convertible< Y[], T[] >();
-    }
-
-    // As above, but with allocator. A's copy constructor shall not throw.
-
-    template<class Y, class D, class A> shared_array( Y * p, D d, A a ): px( p ), pn( p, d, a )
-    {
-        ndnboost::detail::sp_assert_convertible< Y[], T[] >();
-    }
-
-//  generated copy constructor, destructor are fine...
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-// ... except in C++0x, move disables the implicit copy
-
-    shared_array( shared_array const & r ) NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn )
-    {
-    }
-
-    shared_array( shared_array && r ) NDNBOOST_NOEXCEPT : px( r.px ), pn()
-    {
-        pn.swap( r.pn );
-        r.px = 0;
-    }
-
-#endif
-
-    // conversion
-
-    template<class Y>
-#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() )
-
-#else
-
-    shared_array( shared_array<Y> const & r )
-
-#endif
-    NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn ) // never throws
-    {
-        ndnboost::detail::sp_assert_convertible< Y[], T[] >();
-    }
-
-    // aliasing
-
-    template< class Y >
-    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 ) NDNBOOST_NOEXCEPT
-    {
-        this_type( r ).swap( *this );
-        return *this;
-    }
-
-#if !defined(NDNBOOST_MSVC) || (NDNBOOST_MSVC >= 1400)
-
-    template<class Y>
-    shared_array & operator=( shared_array<Y> const & r ) NDNBOOST_NOEXCEPT
-    {
-        this_type( r ).swap( *this );
-        return *this;
-    }
-
-#endif
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    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 ) NDNBOOST_NOEXCEPT
-    {
-        this_type( static_cast< shared_array<Y> && >( r ) ).swap( *this );
-        return *this;
-    }
-
-#endif
-
-    void reset() NDNBOOST_NOEXCEPT
-    {
-        this_type().swap( *this );
-    }
-
-    template<class Y> void reset( Y * p ) // Y must be complete
-    {
-        NDNBOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
-        this_type( p ).swap( *this );
-    }
-
-    template<class Y, class D> void reset( Y * p, D d )
-    {
-        this_type( p, d ).swap( *this );
-    }
-
-    template<class Y, class D, class A> void reset( Y * p, D d, A a )
-    {
-        this_type( p, d, a ).swap( *this );
-    }
-
-    template<class Y> void reset( shared_array<Y> const & r, element_type * p )
-    {
-        this_type( r, p ).swap( *this );
-    }
-
-    T & operator[] (std::ptrdiff_t i) const // never throws (but has a NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
-    {
-        NDNBOOST_ASSERT(px != 0);
-        NDNBOOST_ASSERT(i >= 0);
-        return px[i];
-    }
-    
-    T * get() const NDNBOOST_NOEXCEPT
-    {
-        return px;
-    }
-
-// implicit conversion to "bool"
-#include <ndnboost/smart_ptr/detail/operator_bool.hpp>
-
-    bool unique() const NDNBOOST_NOEXCEPT
-    {
-        return pn.unique();
-    }
-
-    long use_count() const NDNBOOST_NOEXCEPT
-    {
-        return pn.use_count();
-    }
-
-    void swap(shared_array<T> & other) NDNBOOST_NOEXCEPT
-    {
-        std::swap(px, other.px);
-        pn.swap(other.pn);
-    }
-
-    void * _internal_get_deleter( ndnboost::detail::sp_typeinfo const & ti ) const
-    {
-        return pn.get_deleter( ti );
-    }
-
-private:
-
-    template<class Y> friend class shared_array;
-
-    T * px;                     // contained pointer
-    detail::shared_count pn;    // reference counter
-
-};  // shared_array
-
-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) NDNBOOST_NOEXCEPT
-{
-    return a.get() != b.get();
-}
-
-#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-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 ) NDNBOOST_NOEXCEPT
-{
-    return p.get() == 0;
-}
-
-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 ) NDNBOOST_NOEXCEPT
-{
-    return p.get() != 0;
-}
-
-#endif
-
-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) 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( NDNBOOST_SP_TYPEID(D) ) );
-}
-
-} // namespace ndnboost
-
-#endif  // #if defined(NDNBOOST_NO_MEMBER_TEMPLATES) && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
-
-#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
deleted file mode 100644
index 50fa47e..0000000
--- a/include/ndnboost/smart_ptr/shared_ptr.hpp
+++ /dev/null
@@ -1,1035 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
-
-//
-//  shared_ptr.hpp
-//
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-//  Copyright (c) 2001-2008 Peter Dimov
-//
-//  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)
-//
-//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.
-//
-
-#include <ndnboost/config.hpp>   // for broken compiler workarounds
-
-#if defined(NDNBOOST_NO_MEMBER_TEMPLATES) && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
-#include <ndnboost/smart_ptr/detail/shared_ptr_nmt.hpp>
-#else
-
-// In order to avoid circular dependencies with Boost.TR1
-// we make sure that our include of <memory> doesn't try to
-// pull in the TR1 headers: that's why we use this header 
-// rather than including <memory> directly:
-#include <ndnboost/config/no_tr1/memory.hpp>  // std::auto_ptr
-
-#include <ndnboost/assert.hpp>
-#include <ndnboost/checked_delete.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <ndnboost/smart_ptr/detail/shared_count.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/smart_ptr/detail/sp_convertible.hpp>
-#include <ndnboost/smart_ptr/detail/sp_nullptr_t.hpp>
-
-#if !defined(NDNBOOST_SP_NO_ATOMIC_ACCESS)
-#include <ndnboost/smart_ptr/detail/spinlock_pool.hpp>
-#include <ndnboost/memory_order.hpp>
-#endif
-
-#include <algorithm>            // for std::swap
-#include <functional>           // for std::less
-#include <typeinfo>             // for std::bad_cast
-#include <cstddef>              // for std::size_t
-
-#if !defined(NDNBOOST_NO_IOSTREAM)
-#if !defined(NDNBOOST_NO_IOSFWD)
-#include <iosfwd>               // for std::basic_ostream
-#else
-#include <ostream>
-#endif
-#endif
-
-namespace ndnboost
-{
-
-template<class T> class shared_ptr;
-template<class T> class weak_ptr;
-template<class T> class enable_shared_from_this;
-class enable_shared_from_raw;
-
-namespace detail
-{
-
-// sp_element, element_type
-
-template< class T > struct sp_element
-{
-    typedef T type;
-};
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T > struct sp_element< T[] >
-{
-    typedef T type;
-};
-
-#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
-
-template< class T, std::size_t N > struct sp_element< T[N] >
-{
-    typedef T type;
-};
-
-#endif
-
-#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// sp_dereference, return type of operator*
-
-template< class T > struct sp_dereference
-{
-    typedef T & type;
-};
-
-template<> struct sp_dereference< void >
-{
-    typedef void type;
-};
-
-#if !defined(NDNBOOST_NO_CV_VOID_SPECIALIZATIONS)
-
-template<> struct sp_dereference< void const >
-{
-    typedef void type;
-};
-
-template<> struct sp_dereference< void volatile >
-{
-    typedef void type;
-};
-
-template<> struct sp_dereference< void const volatile >
-{
-    typedef void type;
-};
-
-#endif // !defined(NDNBOOST_NO_CV_VOID_SPECIALIZATIONS)
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T > struct sp_dereference< T[] >
-{
-    typedef void type;
-};
-
-#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
-
-template< class T, std::size_t N > struct sp_dereference< T[N] >
-{
-    typedef void type;
-};
-
-#endif
-
-#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// sp_member_access, return type of operator->
-
-template< class T > struct sp_member_access
-{
-    typedef T * type;
-};
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T > struct sp_member_access< T[] >
-{
-    typedef void type;
-};
-
-#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
-
-template< class T, std::size_t N > struct sp_member_access< T[N] >
-{
-    typedef void type;
-};
-
-#endif
-
-#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// sp_array_access, return type of operator[]
-
-template< class T > struct sp_array_access
-{
-    typedef void type;
-};
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T > struct sp_array_access< T[] >
-{
-    typedef T & type;
-};
-
-#if !defined( __BORLANDC__ ) || !NDNBOOST_WORKAROUND( __BORLANDC__, < 0x600 )
-
-template< class T, std::size_t N > struct sp_array_access< T[N] >
-{
-    typedef T & type;
-};
-
-#endif
-
-#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// sp_extent, for operator[] index check
-
-template< class T > struct sp_extent
-{
-    enum _vt { value = 0 };
-};
-
-#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( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// enable_shared_from_this support
-
-template< class X, class Y, class T > inline void sp_enable_shared_from_this( ndnboost::shared_ptr<X> const * ppx, Y const * py, ndnboost::enable_shared_from_this< T > const * pe )
-{
-    if( pe != 0 )
-    {
-        pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) );
-    }
-}
-
-template< class X, class Y > inline void sp_enable_shared_from_this( ndnboost::shared_ptr<X> * ppx, Y const * py, ndnboost::enable_shared_from_raw const * pe );
-
-#ifdef _MANAGED
-
-// Avoid C4793, ... causes native code generation
-
-struct sp_any_pointer
-{
-    template<class T> sp_any_pointer( T* ) {}
-};
-
-inline void sp_enable_shared_from_this( sp_any_pointer, sp_any_pointer, sp_any_pointer )
-{
-}
-
-#else // _MANAGED
-
-inline void sp_enable_shared_from_this( ... )
-{
-}
-
-#endif // _MANAGED
-
-#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
-
-template< class T, class R > struct sp_enable_if_auto_ptr
-{
-};
-
-template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R >
-{
-    typedef R type;
-}; 
-
-#endif
-
-// sp_assert_convertible
-
-template< class Y, class T > inline void sp_assert_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 ];
-    (void)sizeof( tmp );
-
-#else
-
-    T* p = static_cast< Y* >( 0 );
-    (void)p;
-
-#endif
-}
-
-// pointer constructor helper
-
-template< class T, class Y > inline void sp_pointer_construct( ndnboost::shared_ptr< T > * ppx, Y * p, ndnboost::detail::shared_count & pn )
-{
-    ndnboost::detail::shared_count( p ).swap( pn );
-    ndnboost::detail::sp_enable_shared_from_this( ppx, p, p );
-}
-
-#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 )
-{
-    sp_assert_convertible< Y[], T[] >();
-    ndnboost::detail::shared_count( p, ndnboost::checked_array_deleter< T >() ).swap( pn );
-}
-
-template< class T, std::size_t N, class Y > inline void sp_pointer_construct( ndnboost::shared_ptr< T[N] > * /*ppx*/, Y * p, ndnboost::detail::shared_count & pn )
-{
-    sp_assert_convertible< Y[N], T[N] >();
-    ndnboost::detail::shared_count( p, ndnboost::checked_array_deleter< T >() ).swap( pn );
-}
-
-#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// deleter constructor helper
-
-template< class T, class Y > inline void sp_deleter_construct( ndnboost::shared_ptr< T > * ppx, Y * p )
-{
-    ndnboost::detail::sp_enable_shared_from_this( ppx, p, p );
-}
-
-#if !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T, class Y > inline void sp_deleter_construct( ndnboost::shared_ptr< T[] > * /*ppx*/, Y * /*p*/ )
-{
-    sp_assert_convertible< Y[], T[] >();
-}
-
-template< class T, std::size_t N, class Y > inline void sp_deleter_construct( ndnboost::shared_ptr< T[N] > * /*ppx*/, Y * /*p*/ )
-{
-    sp_assert_convertible< Y[N], T[N] >();
-}
-
-#endif // !defined( NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-} // namespace detail
-
-
-//
-//  shared_ptr
-//
-//  An enhanced relative of scoped_ptr with reference counted copy semantics.
-//  The object pointed to is deleted when the last shared_ptr pointing to it
-//  is destroyed or reset.
-//
-
-template<class T> class shared_ptr
-{
-private:
-
-    // Borland 5.5.1 specific workaround
-    typedef shared_ptr<T> this_type;
-
-public:
-
-    typedef typename ndnboost::detail::sp_element< T >::type element_type;
-
-    shared_ptr() NDNBOOST_NOEXCEPT : px( 0 ), pn() // never throws in 1.30+
-    {
-    }
-
-#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-    shared_ptr( ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT : px( 0 ), pn() // never throws
-    {
-    }
-
-#endif
-
-    template<class Y>
-    explicit shared_ptr( Y * p ): px( p ), pn() // Y must be complete
-    {
-        ndnboost::detail::sp_pointer_construct( this, p, pn );
-    }
-
-    //
-    // Requirements: D's copy constructor must not throw
-    //
-    // shared_ptr will release p by calling d(p)
-    //
-
-    template<class Y, class D> shared_ptr( Y * p, D d ): px( p ), pn( p, d )
-    {
-        ndnboost::detail::sp_deleter_construct( this, p );
-    }
-
-#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-    template<class D> shared_ptr( ndnboost::detail::sp_nullptr_t p, D d ): px( p ), pn( p, d )
-    {
-    }
-
-#endif
-
-    // As above, but with allocator. A's copy constructor shall not throw.
-
-    template<class Y, class D, class A> shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a )
-    {
-        ndnboost::detail::sp_deleter_construct( this, p );
-    }
-
-#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 )
-    {
-    }
-
-#endif
-
-//  generated copy constructor, destructor are fine...
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-// ... except in C++0x, move disables the implicit copy
-
-    shared_ptr( shared_ptr const & r ) NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn )
-    {
-    }
-
-#endif
-
-    template<class Y>
-    explicit shared_ptr( weak_ptr<Y> const & r ): pn( r.pn ) // may throw
-    {
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-
-        // it is now safe to copy r.px, as pn(r.pn) did not throw
-        px = r.px;
-    }
-
-    template<class Y>
-    shared_ptr( weak_ptr<Y> const & r, ndnboost::detail::sp_nothrow_tag )
-    NDNBOOST_NOEXCEPT : px( 0 ), pn( r.pn, ndnboost::detail::sp_nothrow_tag() )
-    {
-        if( !pn.empty() )
-        {
-            px = r.px;
-        }
-    }
-
-    template<class Y>
-#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() )
-
-#else
-
-    shared_ptr( shared_ptr<Y> const & r )
-
-#endif
-    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 ) NDNBOOST_NOEXCEPT : px( p ), pn( r.pn )
-    {
-    }
-
-#ifndef NDNBOOST_NO_AUTO_PTR
-
-    template<class Y>
-    explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
-    {
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-
-        Y * tmp = r.get();
-        pn = ndnboost::detail::shared_count( r );
-
-        ndnboost::detail::sp_deleter_construct( this, tmp );
-    }
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    template<class Y>
-    shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
-    {
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-
-        Y * tmp = r.get();
-        pn = ndnboost::detail::shared_count( r );
-
-        ndnboost::detail::sp_deleter_construct( this, tmp );
-    }
-
-#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()
-    {
-        typedef typename Ap::element_type Y;
-
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-
-        Y * tmp = r.get();
-        pn = ndnboost::detail::shared_count( r );
-
-        ndnboost::detail::sp_deleter_construct( this, tmp );
-    }
-
-#endif // NDNBOOST_NO_SFINAE, NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_NO_AUTO_PTR
-
-#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()
-    {
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-
-        typename std::unique_ptr< Y, D >::pointer tmp = r.get();
-        pn = ndnboost::detail::shared_count( r );
-
-        ndnboost::detail::sp_deleter_construct( this, tmp );
-    }
-
-#endif
-
-    // assignment
-
-    shared_ptr & operator=( shared_ptr const & r ) NDNBOOST_NOEXCEPT
-    {
-        this_type(r).swap(*this);
-        return *this;
-    }
-
-#if !defined(NDNBOOST_MSVC) || (NDNBOOST_MSVC >= 1400)
-
-    template<class Y>
-    shared_ptr & operator=(shared_ptr<Y> const & r) NDNBOOST_NOEXCEPT
-    {
-        this_type(r).swap(*this);
-        return *this;
-    }
-
-#endif
-
-#ifndef NDNBOOST_NO_AUTO_PTR
-
-    template<class Y>
-    shared_ptr & operator=( std::auto_ptr<Y> & r )
-    {
-        this_type( r ).swap( *this );
-        return *this;
-    }
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    template<class Y>
-    shared_ptr & operator=( std::auto_ptr<Y> && r )
-    {
-        this_type( static_cast< std::auto_ptr<Y> && >( r ) ).swap( *this );
-        return *this;
-    }
-
-#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 )
-    {
-        this_type( r ).swap( *this );
-        return *this;
-    }
-
-#endif // NDNBOOST_NO_SFINAE, NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // NDNBOOST_NO_AUTO_PTR
-
-#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 )
-    {
-        this_type( static_cast< std::unique_ptr<Y, D> && >( r ) ).swap(*this);
-        return *this;
-    }
-
-#endif
-
-// Move support
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    shared_ptr( shared_ptr && r ) NDNBOOST_NOEXCEPT : px( r.px ), pn()
-    {
-        pn.swap( r.pn );
-        r.px = 0;
-    }
-
-    template<class Y>
-#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() )
-
-#else
-
-    shared_ptr( shared_ptr<Y> && r )
-
-#endif
-    NDNBOOST_NOEXCEPT : px( r.px ), pn()
-    {
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-
-        pn.swap( r.pn );
-        r.px = 0;
-    }
-
-    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 ) NDNBOOST_NOEXCEPT
-    {
-        this_type( static_cast< shared_ptr<Y> && >( r ) ).swap( *this );
-        return *this;
-    }
-
-#endif
-
-#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-    shared_ptr & operator=( ndnboost::detail::sp_nullptr_t ) NDNBOOST_NOEXCEPT // never throws
-    {
-        this_type().swap(*this);
-        return *this;
-    }
-
-#endif
-
-    void reset() NDNBOOST_NOEXCEPT // never throws in 1.30+
-    {
-        this_type().swap(*this);
-    }
-
-    template<class Y> void reset( Y * p ) // Y must be complete
-    {
-        NDNBOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
-        this_type( p ).swap( *this );
-    }
-
-    template<class Y, class D> void reset( Y * p, D d )
-    {
-        this_type( p, d ).swap( *this );
-    }
-
-    template<class Y, class D, class A> void reset( Y * p, D d, A a )
-    {
-        this_type( p, d, a ).swap( *this );
-    }
-
-    template<class Y> void reset( shared_ptr<Y> const & r, element_type * p )
-    {
-        this_type( r, p ).swap( *this );
-    }
-    
-    // never throws (but has a NDNBOOST_ASSERT in it, so not marked with NDNBOOST_NOEXCEPT)
-    typename ndnboost::detail::sp_dereference< T >::type operator* () const
-    {
-        NDNBOOST_ASSERT( px != 0 );
-        return *px;
-    }
-    
-    // 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 
-    {
-        NDNBOOST_ASSERT( px != 0 );
-        return px;
-    }
-    
-    // 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
-    {
-        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 NDNBOOST_NOEXCEPT
-    {
-        return px;
-    }
-
-// implicit conversion to "bool"
-#include <ndnboost/smart_ptr/detail/operator_bool.hpp>
-
-    bool unique() const NDNBOOST_NOEXCEPT
-    {
-        return pn.unique();
-    }
-
-    long use_count() const NDNBOOST_NOEXCEPT
-    {
-        return pn.use_count();
-    }
-
-    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 NDNBOOST_NOEXCEPT
-    {
-        return pn < rhs.pn;
-    }
-
-    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 NDNBOOST_NOEXCEPT
-    {
-        return pn.get_deleter( ti );
-    }
-
-    void * _internal_get_untyped_deleter() const NDNBOOST_NOEXCEPT
-    {
-        return pn.get_untyped_deleter();
-    }
-
-    bool _internal_equiv( shared_ptr const & r ) const NDNBOOST_NOEXCEPT
-    {
-        return px == r.px && pn == r.pn;
-    }
-
-// Tasteless as this may seem, making all members public allows member templates
-// to work in the absence of member template friends. (Matthew Langston)
-
-#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
-
-private:
-
-    template<class Y> friend class shared_ptr;
-    template<class Y> friend class weak_ptr;
-
-
-#endif
-
-    element_type * px;                 // contained pointer
-    ndnboost::detail::shared_count pn;    // reference counter
-
-};  // shared_ptr
-
-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) NDNBOOST_NOEXCEPT
-{
-    return a.get() != b.get();
-}
-
-#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
-
-// 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) NDNBOOST_NOEXCEPT
-{
-    return a.get() != b.get();
-}
-
-#endif
-
-#if !defined( NDNBOOST_NO_CXX11_NULLPTR )
-
-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 ) NDNBOOST_NOEXCEPT
-{
-    return p.get() == 0;
-}
-
-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 ) 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) NDNBOOST_NOEXCEPT
-{
-    return a.owner_before( b );
-}
-
-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 ) NDNBOOST_NOEXCEPT
-{
-    (void) static_cast< T* >( static_cast< U* >( 0 ) );
-
-    typedef typename shared_ptr<T>::element_type E;
-
-    E * p = static_cast< E* >( r.get() );
-    return shared_ptr<T>( r, p );
-}
-
-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 ) );
-
-    typedef typename shared_ptr<T>::element_type E;
-
-    E * p = const_cast< E* >( r.get() );
-    return shared_ptr<T>( r, p );
-}
-
-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 ) );
-
-    typedef typename shared_ptr<T>::element_type E;
-
-    E * p = dynamic_cast< E* >( r.get() );
-    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 ) NDNBOOST_NOEXCEPT
-{
-    (void) reinterpret_cast< T* >( static_cast< U* >( 0 ) );
-
-    typedef typename shared_ptr<T>::element_type E;
-
-    E * p = reinterpret_cast< E* >( r.get() );
-    return shared_ptr<T>( r, p );
-}
-
-// 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) NDNBOOST_NOEXCEPT
-{
-    return p.get();
-}
-
-// operator<<
-
-#if !defined(NDNBOOST_NO_IOSTREAM)
-
-#if defined(NDNBOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )
-
-template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
-{
-    os << p.get();
-    return os;
-}
-
-#else
-
-// in STLport's no-iostreams mode no iostream symbols can be used
-#ifndef _STLP_NO_IOSTREAMS
-
-# 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)
-# else
-template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
-# endif
-{
-    os << p.get();
-    return os;
-}
-
-#endif // _STLP_NO_IOSTREAMS
-
-#endif // __GNUC__ < 3
-
-#endif // !defined(NDNBOOST_NO_IOSTREAM)
-
-// get_deleter
-
-namespace detail
-{
-
-#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(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 ) NDNBOOST_NOEXCEPT
-{
-    return static_cast<D *>( p._internal_get_deleter(NDNBOOST_SP_TYPEID(D)) );
-}
-
-#endif
-
-class esft2_deleter_wrapper
-{
-private:
-
-    shared_ptr<void> deleter_;
-
-public:
-
-    esft2_deleter_wrapper()
-    {
-    }
-
-    template< class T > void set_deleter( shared_ptr<T> const & deleter )
-    {
-        deleter_ = deleter;
-    }
-
-    template<typename D> D* get_deleter() const NDNBOOST_NOEXCEPT
-    {
-        return ndnboost::detail::basic_get_deleter<D>( deleter_ );
-    }
-
-    template< class T> void operator()( T* )
-    {
-        NDNBOOST_ASSERT( deleter_.use_count() <= 1 );
-        deleter_.reset();
-    }
-};
-
-} // namespace detail
-
-template<class D, class T> D * get_deleter( shared_ptr<T> const & p ) NDNBOOST_NOEXCEPT
-{
-    D *del = ndnboost::detail::basic_get_deleter<D>(p);
-
-    if(del == 0)
-    {
-        ndnboost::detail::esft2_deleter_wrapper *del_wrapper = ndnboost::detail::basic_get_deleter<ndnboost::detail::esft2_deleter_wrapper>(p);
-// The following get_deleter method call is fully qualified because
-// older versions of gcc (2.95, 3.2.3) fail to compile it when written del_wrapper->get_deleter<D>()
-        if(del_wrapper) del = del_wrapper->::ndnboost::detail::esft2_deleter_wrapper::get_deleter<D>();
-    }
-
-    return del;
-}
-
-// atomic access
-
-#if !defined(NDNBOOST_SP_NO_ATOMIC_ACCESS)
-
-template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ ) NDNBOOST_NOEXCEPT
-{
-    return false;
-}
-
-template<class T> shared_ptr<T> atomic_load( shared_ptr<T> const * p )
-{
-    ndnboost::detail::spinlock_pool<2>::scoped_lock lock( p );
-    return *p;
-}
-
-template<class T> inline shared_ptr<T> atomic_load_explicit( shared_ptr<T> const * p, memory_order /*mo*/ )
-{
-    return atomic_load( p );
-}
-
-template<class T> void atomic_store( shared_ptr<T> * p, shared_ptr<T> r )
-{
-    ndnboost::detail::spinlock_pool<2>::scoped_lock lock( p );
-    p->swap( r );
-}
-
-template<class T> inline void atomic_store_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )
-{
-    atomic_store( p, r ); // std::move( r )
-}
-
-template<class T> shared_ptr<T> atomic_exchange( shared_ptr<T> * p, shared_ptr<T> r )
-{
-    ndnboost::detail::spinlock & sp = ndnboost::detail::spinlock_pool<2>::spinlock_for( p );
-
-    sp.lock();
-    p->swap( r );
-    sp.unlock();
-
-    return r; // return std::move( r )
-}
-
-template<class T> shared_ptr<T> atomic_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )
-{
-    return atomic_exchange( p, r ); // std::move( r )
-}
-
-template<class T> bool atomic_compare_exchange( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w )
-{
-    ndnboost::detail::spinlock & sp = ndnboost::detail::spinlock_pool<2>::spinlock_for( p );
-
-    sp.lock();
-
-    if( p->_internal_equiv( *v ) )
-    {
-        p->swap( w );
-
-        sp.unlock();
-
-        return true;
-    }
-    else
-    {
-        shared_ptr<T> tmp( *p );
-
-        sp.unlock();
-
-        tmp.swap( *v );
-        return false;
-    }
-}
-
-template<class T> inline bool atomic_compare_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w, memory_order /*success*/, memory_order /*failure*/ )
-{
-    return atomic_compare_exchange( p, v, w ); // std::move( w )
-}
-
-#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 ) NDNBOOST_NOEXCEPT
-{
-    return ndnboost::hash< T* >()( p.get() );
-}
-
-} // namespace ndnboost
-
-#endif  // #if defined(NDNBOOST_NO_MEMBER_TEMPLATES) && !defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
-
-#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
deleted file mode 100644
index 08fc4bd..0000000
--- a/include/ndnboost/smart_ptr/weak_ptr.hpp
+++ /dev/null
@@ -1,253 +0,0 @@
-#ifndef NDNBOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
-#define NDNBOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
-
-//
-//  weak_ptr.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov
-//
-// 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)
-//
-//  See http://www.boost.org/libs/smart_ptr/weak_ptr.htm for documentation.
-//
-
-#include <memory> // boost.TR1 include order fix
-#include <ndnboost/smart_ptr/detail/shared_count.hpp>
-#include <ndnboost/smart_ptr/shared_ptr.hpp>
-
-namespace ndnboost
-{
-
-template<class T> class weak_ptr
-{
-private:
-
-    // Borland 5.5.1 specific workarounds
-    typedef weak_ptr<T> this_type;
-
-public:
-
-    typedef typename ndnboost::detail::sp_element< T >::type element_type;
-
-    weak_ptr() NDNBOOST_NOEXCEPT : px(0), pn() // never throws in 1.30+
-    {
-    }
-
-//  generated copy constructor, assignment, destructor are fine...
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-// ... except in C++0x, move disables the implicit copy
-
-    weak_ptr( weak_ptr const & r ) NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn )
-    {
-    }
-
-    weak_ptr & operator=( weak_ptr const & r ) NDNBOOST_NOEXCEPT
-    {
-        px = r.px;
-        pn = r.pn;
-        return *this;
-    }
-
-#endif
-
-//
-//  The "obvious" converting constructor implementation:
-//
-//  template<class Y>
-//  weak_ptr(weak_ptr<Y> const & r): px(r.px), pn(r.pn) // never throws
-//  {
-//  }
-//
-//  has a serious problem.
-//
-//  r.px may already have been invalidated. The px(r.px)
-//  conversion may require access to *r.px (virtual inheritance).
-//
-//  It is not possible to avoid spurious access violations since
-//  in multithreaded programs r.px may be invalidated at any point.
-//
-
-    template<class Y>
-#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() )
-
-#else
-
-    weak_ptr( weak_ptr<Y> const & r )
-
-#endif
-    NDNBOOST_NOEXCEPT : px(r.lock().get()), pn(r.pn)
-    {
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-    }
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    template<class Y>
-#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() )
-
-#else
-
-    weak_ptr( weak_ptr<Y> && r )
-
-#endif
-    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;
-    }
-
-    // for better efficiency in the T == Y case
-    weak_ptr( weak_ptr && r )
-    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 ) NDNBOOST_NOEXCEPT
-    {
-        this_type( static_cast< weak_ptr && >( r ) ).swap( *this );
-        return *this;
-    }
-
-
-#endif
-
-    template<class Y>
-#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() )
-
-#else
-
-    weak_ptr( shared_ptr<Y> const & r )
-
-#endif
-    NDNBOOST_NOEXCEPT : px( r.px ), pn( r.pn )
-    {
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-    }
-
-#if !defined(NDNBOOST_MSVC) || (NDNBOOST_MSVC >= 1300)
-
-    template<class Y>
-    weak_ptr & operator=( weak_ptr<Y> const & r ) NDNBOOST_NOEXCEPT
-    {
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-
-        px = r.lock().get();
-        pn = r.pn;
-
-        return *this;
-    }
-
-#if !defined( NDNBOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    template<class Y>
-    weak_ptr & operator=( weak_ptr<Y> && r ) NDNBOOST_NOEXCEPT
-    {
-        this_type( static_cast< weak_ptr<Y> && >( r ) ).swap( *this );
-        return *this;
-    }
-
-#endif
-
-    template<class Y>
-    weak_ptr & operator=( shared_ptr<Y> const & r ) NDNBOOST_NOEXCEPT
-    {
-        ndnboost::detail::sp_assert_convertible< Y, T >();
-
-        px = r.px;
-        pn = r.pn;
-
-        return *this;
-    }
-
-#endif
-
-    shared_ptr<T> lock() const NDNBOOST_NOEXCEPT
-    {
-        return shared_ptr<T>( *this, ndnboost::detail::sp_nothrow_tag() );
-    }
-
-    long use_count() const NDNBOOST_NOEXCEPT
-    {
-        return pn.use_count();
-    }
-
-    bool expired() const NDNBOOST_NOEXCEPT
-    {
-        return pn.use_count() == 0;
-    }
-
-    bool _empty() const // extension, not in std::weak_ptr
-    {
-        return pn.empty();
-    }
-
-    void reset() NDNBOOST_NOEXCEPT // never throws in 1.30+
-    {
-        this_type().swap(*this);
-    }
-
-    void swap(this_type & other) NDNBOOST_NOEXCEPT
-    {
-        std::swap(px, other.px);
-        pn.swap(other.pn);
-    }
-
-    template<typename Y>
-    void _internal_aliasing_assign(weak_ptr<Y> const & r, element_type * px2)
-    {
-        px = px2;
-        pn = r.pn;
-    }
-
-    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 NDNBOOST_NOEXCEPT
-    {
-        return pn < rhs.pn;
-    }
-
-// Tasteless as this may seem, making all members public allows member templates
-// to work in the absence of member template friends. (Matthew Langston)
-
-#ifndef NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
-
-private:
-
-    template<class Y> friend class weak_ptr;
-    template<class Y> friend class shared_ptr;
-
-#endif
-
-    element_type * px;            // contained pointer
-    ndnboost::detail::weak_count pn; // reference counter
-
-};  // weak_ptr
-
-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) NDNBOOST_NOEXCEPT
-{
-    a.swap(b);
-}
-
-} // namespace ndnboost
-
-#endif  // #ifndef NDNBOOST_SMART_PTR_WEAK_PTR_HPP_INCLUDED
diff --git a/include/ndnboost/static_assert.hpp b/include/ndnboost/static_assert.hpp
deleted file mode 100644
index f815028..0000000
--- a/include/ndnboost/static_assert.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-//  (C) Copyright John Maddock 2000.
-//  Use, modification and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/static_assert for documentation.
-
-/*
- Revision history:
-   02 August 2000
-      Initial version.
-*/
-
-#ifndef NDNBOOST_STATIC_ASSERT_HPP
-#define NDNBOOST_STATIC_ASSERT_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
-//
-// This is horrible, but it seems to be the only we can shut up the
-// "anonymous variadic macros were introduced in C99 [-Wvariadic-macros]"
-// warning that get spewed out otherwise in non-C++11 mode.
-//
-#pragma GCC system_header
-#endif
-
-#ifndef NDNBOOST_NO_CXX11_STATIC_ASSERT
-#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#     define NDNBOOST_STATIC_ASSERT_MSG( ... ) static_assert(__VA_ARGS__)
-#  else
-#     define NDNBOOST_STATIC_ASSERT_MSG( B, Msg ) NDNBOOST_STATIC_ASSERT( B )
-#  endif
-#else
-#     define NDNBOOST_STATIC_ASSERT_MSG( B, Msg ) NDNBOOST_STATIC_ASSERT( B )
-#endif
-
-#ifdef __BORLANDC__
-//
-// workaround for buggy integral-constant expression support:
-#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 NDNBOOST_SA_GCC_WORKAROUND
-#endif
-
-//
-// If the compiler issues warnings about old C style casts,
-// then enable this:
-//
-#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4)))
-#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#     define NDNBOOST_STATIC_ASSERT_BOOL_CAST( ... ) ((__VA_ARGS__) == 0 ? false : true)
-#  else
-#     define NDNBOOST_STATIC_ASSERT_BOOL_CAST( x ) ((x) == 0 ? false : true)
-#  endif
-#else
-#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#     define NDNBOOST_STATIC_ASSERT_BOOL_CAST( ... ) (bool)(__VA_ARGS__)
-#  else
-#     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 NDNBOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused))
-#else
-#  define NDNBOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
-#endif
-
-#ifndef NDNBOOST_NO_CXX11_STATIC_ASSERT
-#  ifndef NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#     define NDNBOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
-#  else
-#     define NDNBOOST_STATIC_ASSERT( B ) static_assert(B, #B)
-#  endif
-#else
-
-namespace ndnboost{
-
-// HP aCC cannot deal with missing names for template value parameters
-template <bool x> struct STATIC_ASSERTION_FAILURE;
-
-template <> struct STATIC_ASSERTION_FAILURE<true> { enum { value = 1 }; };
-
-// HP aCC cannot deal with missing names for template value parameters
-template<int x> struct static_assert_test{};
-
-}
-
-//
-// Implicit instantiation requires that all member declarations be
-// instantiated, but that the definitions are *not* instantiated.
-//
-// It's not particularly clear how this applies to enum's or typedefs;
-// 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 NDNBOOST_USE_ENUM_STATIC_ASSERT if the enum
-// version gets better results from your compiler...
-//
-// Implementation:
-// Both of these versions rely on sizeof(incomplete_type) generating an error
-// message containing the name of the incomplete type.  We use
-// "STATIC_ASSERTION_FAILURE" as the type name here to generate
-// an eye catching error message.  The result of the sizeof expression is either
-// used as an enum initialiser, or as a template argument depending which version
-// is in use...
-// Note that the argument to the assert is explicitly cast to bool using old-
-// style casts: too many compilers currently have problems with static_cast
-// when used inside integral constant expressions.
-//
-#if !defined(NDNBOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS)
-
-#if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)
-// __LINE__ macro broken when -ZI is used see Q199057
-// fortunately MSVC ignores duplicate typedef's.
-#define NDNBOOST_STATIC_ASSERT( B ) \
-   typedef ::ndnboost::static_assert_test<\
-      sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)\
-      > boost_static_assert_typedef_
-#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< 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< 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 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 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 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< \
-       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 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 NDNBOOST_NO_CXX11_VARIADIC_MACROS
-#     define NDNBOOST_STATIC_ASSERT( ... ) \
-         typedef ::ndnboost::static_assert_test<\
-            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 NDNBOOST_STATIC_ASSERT( B ) \
-         typedef ::ndnboost::static_assert_test<\
-            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 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 NDNBOOST_STATIC_ASSERT(B) \
-         enum { NDNBOOST_JOIN(boost_static_assert_enum_, __LINE__) \
-            = sizeof(::ndnboost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }
-#  endif
-#endif
-#endif // defined(NDNBOOST_NO_CXX11_STATIC_ASSERT)
-
-#endif // NDNBOOST_STATIC_ASSERT_HPP
-
-
diff --git a/include/ndnboost/swap.hpp b/include/ndnboost/swap.hpp
deleted file mode 100644
index c3d3790..0000000
--- a/include/ndnboost/swap.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2007 Joseph Gauterin
-//
-// 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 NDNBOOST_SWAP_HPP
-#define NDNBOOST_SWAP_HPP
-
-#include "ndnboost/utility/swap.hpp"
-
-#endif
diff --git a/include/ndnboost/system/api_config.hpp b/include/ndnboost/system/api_config.hpp
deleted file mode 100644
index 371d130..0000000
--- a/include/ndnboost/system/api_config.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-//  ndnboost/system/api_config.hpp  -------------------------------------------------------//
-
-//  Copyright Beman Dawes 2003, 2006, 2010
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-//  See http://www.boost.org/libs/system for documentation.
-
-//--------------------------------------------------------------------------------------//
-
-//  Boost.System calls operating system API functions to implement system error category
-//  functions. Usually there is no question as to which API is to be used.
-//
-//  In the case of MinGW or Cygwin/MinGW, however, both POSIX and Windows API's are
-//  available. Chaos ensues if other code thinks one is in use when Boost.System was
-//  actually built with the other. This header centralizes the API choice and prevents
-//  user definition of API macros, thus elminating the possibility of mismatches and the
-//  need to test configurations with little or no practical value.
-//
-
-//--------------------------------------------------------------------------------------//
-
-#ifndef NDNBOOST_SYSTEM_API_CONFIG_HPP                  
-#define NDNBOOST_SYSTEM_API_CONFIG_HPP
-
-# if defined(NDNBOOST_POSIX_API) || defined(NDNBOOST_WINDOWS_API)
-#   error user defined NDNBOOST_POSIX_API or NDNBOOST_WINDOWS_API not supported
-# endif
-
-//  NDNBOOST_POSIX_API or NDNBOOST_WINDOWS_API specify which API to use
-//    Cygwin/MinGW does not predefine _WIN32.
-//    Standalone MinGW and all other known Windows compilers do predefine _WIN32
-//    Compilers that predefine _WIN32 or __MINGW32__ do so for Windows 64-bit builds too.
-
-# if defined(_WIN32) || defined(__CYGWIN__) // Windows default, including MinGW and Cygwin
-#   define NDNBOOST_WINDOWS_API
-# else
-#   define NDNBOOST_POSIX_API 
-# endif
-                                     
-#endif  // NDNBOOST_SYSTEM_API_CONFIG_HPP 
diff --git a/include/ndnboost/system/config.hpp b/include/ndnboost/system/config.hpp
deleted file mode 100644
index 2180de4..0000000
--- a/include/ndnboost/system/config.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//  ndnboost/system/config.hpp  -----------------------------------------------------------//
-
-//  Copyright Beman Dawes 2003, 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)
-
-//  See http://www.boost.org/libs/system for documentation.
-
-#ifndef NDNBOOST_SYSTEM_CONFIG_HPP                  
-#define NDNBOOST_SYSTEM_CONFIG_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/system/api_config.hpp>  // for NDNBOOST_POSIX_API or NDNBOOST_WINDOWS_API
-
-// This header implements separate compilation features as described in
-// http://www.boost.org/more/separate_compilation.html
-
-//  normalize macros  ------------------------------------------------------------------//
-
-#if !defined(NDNBOOST_SYSTEM_DYN_LINK) && !defined(NDNBOOST_SYSTEM_STATIC_LINK) \
-  && !defined(NDNBOOST_ALL_DYN_LINK) && !defined(NDNBOOST_ALL_STATIC_LINK)
-# define NDNBOOST_SYSTEM_STATIC_LINK
-#endif
-
-#if defined(NDNBOOST_ALL_DYN_LINK) && !defined(NDNBOOST_SYSTEM_DYN_LINK)
-# define NDNBOOST_SYSTEM_DYN_LINK 
-#elif defined(NDNBOOST_ALL_STATIC_LINK) && !defined(NDNBOOST_SYSTEM_STATIC_LINK)
-# define NDNBOOST_SYSTEM_STATIC_LINK 
-#endif
-
-#if defined(NDNBOOST_SYSTEM_DYN_LINK) && defined(NDNBOOST_SYSTEM_STATIC_LINK)
-# error Must not define both NDNBOOST_SYSTEM_DYN_LINK and NDNBOOST_SYSTEM_STATIC_LINK
-#endif
-
-//  enable dynamic or static linking as requested --------------------------------------//
-
-#if defined(NDNBOOST_ALL_DYN_LINK) || defined(NDNBOOST_SYSTEM_DYN_LINK)
-# if defined(NDNBOOST_SYSTEM_SOURCE)
-#   define NDNBOOST_SYSTEM_DECL NDNBOOST_SYMBOL_EXPORT
-# else 
-#   define NDNBOOST_SYSTEM_DECL NDNBOOST_SYMBOL_IMPORT
-# endif
-#else
-# define NDNBOOST_SYSTEM_DECL
-#endif
-
-//  enable automatic library variant selection  ----------------------------------------// 
-
-#if !defined(NDNBOOST_SYSTEM_SOURCE) && !defined(NDNBOOST_ALL_NO_LIB) && !defined(NDNBOOST_SYSTEM_NO_LIB)
-//
-// Set the name of our library, this will get undef'ed by auto_link.hpp
-// once it's done with it:
-//
-#define NDNBOOST_LIB_NAME ndnboost_system
-//
-// If we're importing code from a dll, then tell auto_link.hpp about it:
-//
-#if defined(NDNBOOST_ALL_DYN_LINK) || defined(NDNBOOST_SYSTEM_DYN_LINK)
-#  define NDNBOOST_DYN_LINK
-#endif
-//
-// And include the header that does the work:
-//
-#include <ndnboost/config/auto_link.hpp>
-#endif  // auto-linking disabled
-
-#endif // NDNBOOST_SYSTEM_CONFIG_HPP
-
diff --git a/include/ndnboost/system/error_code.hpp b/include/ndnboost/system/error_code.hpp
deleted file mode 100644
index 9d92c85..0000000
--- a/include/ndnboost/system/error_code.hpp
+++ /dev/null
@@ -1,521 +0,0 @@
-//  ndnboost/system/error_code.hpp  ---------------------------------------------//
-
-//  Copyright Beman Dawes 2006, 2007
-//  Copyright Christoper Kohlhoff 2007
-
-//  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)
-
-//  See library home page at http://www.boost.org/libs/system
-
-#ifndef NDNBOOST_ERROR_CODE_HPP
-#define NDNBOOST_ERROR_CODE_HPP
-
-#include <ndnboost/system/config.hpp>
-#include <ndnboost/cstdint.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/operators.hpp>
-#include <ndnboost/noncopyable.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ostream>
-#include <string>
-#include <stdexcept>
-#include <functional>
-
-// TODO: undef these macros if not already defined
-#include <ndnboost/cerrno.hpp>
-
-#if !defined(NDNBOOST_POSIX_API) && !defined(NDNBOOST_WINDOWS_API)
-#  error NDNBOOST_POSIX_API or NDNBOOST_WINDOWS_API must be defined
-#endif
-
-#include <ndnboost/config/abi_prefix.hpp> // must be the last #include
-
-#ifndef NDNBOOST_SYSTEM_NOEXCEPT
-#define NDNBOOST_SYSTEM_NOEXCEPT NDNBOOST_NOEXCEPT
-#endif
-
-namespace ndnboost
-{
-  namespace system
-  {
-
-    class error_code;
-    class error_condition;
-
-    //  "Concept" helpers  ---------------------------------------------------//
-
-    template< class T >
-    struct is_error_code_enum { static const bool value = false; };
-
-    template< class T >
-    struct is_error_condition_enum { static const bool value = false; };
-
-    //  generic error_conditions  --------------------------------------------//
-
-    namespace errc
-    {
-      enum errc_t
-      {
-        success = 0,
-        address_family_not_supported = EAFNOSUPPORT,
-        address_in_use = EADDRINUSE,
-        address_not_available = EADDRNOTAVAIL,
-        already_connected = EISCONN,
-        argument_list_too_long = E2BIG,
-        argument_out_of_domain = EDOM,
-        bad_address = EFAULT,
-        bad_file_descriptor = EBADF,
-        bad_message = EBADMSG,
-        broken_pipe = EPIPE,
-        connection_aborted = ECONNABORTED,
-        connection_already_in_progress = EALREADY,
-        connection_refused = ECONNREFUSED,
-        connection_reset = ECONNRESET,
-        cross_device_link = EXDEV,
-        destination_address_required = EDESTADDRREQ,
-        device_or_resource_busy = EBUSY,
-        directory_not_empty = ENOTEMPTY,
-        executable_format_error = ENOEXEC,
-        file_exists = EEXIST,
-        file_too_large = EFBIG,
-        filename_too_long = ENAMETOOLONG,
-        function_not_supported = ENOSYS,
-        host_unreachable = EHOSTUNREACH,
-        identifier_removed = EIDRM,
-        illegal_byte_sequence = EILSEQ,
-        inappropriate_io_control_operation = ENOTTY,
-        interrupted = EINTR,
-        invalid_argument = EINVAL,
-        invalid_seek = ESPIPE,
-        io_error = EIO,
-        is_a_directory = EISDIR,
-        message_size = EMSGSIZE,
-        network_down = ENETDOWN,
-        network_reset = ENETRESET,
-        network_unreachable = ENETUNREACH,
-        no_buffer_space = ENOBUFS,
-        no_child_process = ECHILD,
-        no_link = ENOLINK,
-        no_lock_available = ENOLCK,
-        no_message_available = ENODATA,
-        no_message = ENOMSG,
-        no_protocol_option = ENOPROTOOPT,
-        no_space_on_device = ENOSPC,
-        no_stream_resources = ENOSR,
-        no_such_device_or_address = ENXIO,
-        no_such_device = ENODEV,
-        no_such_file_or_directory = ENOENT,
-        no_such_process = ESRCH,
-        not_a_directory = ENOTDIR,
-        not_a_socket = ENOTSOCK,
-        not_a_stream = ENOSTR,
-        not_connected = ENOTCONN,
-        not_enough_memory = ENOMEM,
-        not_supported = ENOTSUP,
-        operation_canceled = ECANCELED,
-        operation_in_progress = EINPROGRESS,
-        operation_not_permitted = EPERM,
-        operation_not_supported = EOPNOTSUPP,
-        operation_would_block = EWOULDBLOCK,
-        owner_dead = EOWNERDEAD,
-        permission_denied = EACCES,
-        protocol_error = EPROTO,
-        protocol_not_supported = EPROTONOSUPPORT,
-        read_only_file_system = EROFS,
-        resource_deadlock_would_occur = EDEADLK,
-        resource_unavailable_try_again = EAGAIN,
-        result_out_of_range = ERANGE,
-        state_not_recoverable = ENOTRECOVERABLE,
-        stream_timeout = ETIME,
-        text_file_busy = ETXTBSY,
-        timed_out = ETIMEDOUT,
-        too_many_files_open_in_system = ENFILE,
-        too_many_files_open = EMFILE,
-        too_many_links = EMLINK,
-        too_many_symbolic_link_levels = ELOOP,
-        value_too_large = EOVERFLOW,
-        wrong_protocol_type = EPROTOTYPE
-      };
-
-    } // namespace errc
-
-# ifndef NDNBOOST_SYSTEM_NO_DEPRECATED
-    namespace posix = errc;
-    namespace posix_error = errc;
-# endif
-
-    template<> struct is_error_condition_enum<errc::errc_t>
-      { static const bool value = true; };
-
-
-    //  ----------------------------------------------------------------------//
-
-    //  Operating system specific interfaces  --------------------------------//
-
-
-    //  The interface is divided into general and system-specific portions to
-    //  meet these requirements:
-    //
-    //  * Code calling an operating system API can create an error_code with
-    //    a single category (system_category), even for POSIX-like operating
-    //    systems that return some POSIX errno values and some native errno
-    //    values. This code should not have to pay the cost of distinguishing
-    //    between categories, since it is not yet known if that is needed.
-    //
-    //  * Users wishing to write system-specific code should be given enums for
-    //    at least the common error cases.
-    //
-    //  * System specific code should fail at compile time if moved to another
-    //    operating system.
-
-    //  The system specific portions of the interface are located in headers
-    //  with names reflecting the operating system. For example,
-    //
-    //       <ndnboost/system/cygwin_error.hpp>
-    //       <ndnboost/system/linux_error.hpp>
-    //       <ndnboost/system/windows_error.hpp>
-    //
-    //  These headers are effectively empty for compiles on operating systems
-    //  where they are not applicable.
-
-    //  ----------------------------------------------------------------------//
-
-    //  class error_category  ------------------------------------------------//
-
-    class error_category : public noncopyable
-    {
-    public:
-      virtual ~error_category(){}
-
-      virtual const char *     name() const NDNBOOST_SYSTEM_NOEXCEPT = 0;
-      virtual std::string      message( int ev ) const = 0;
-      inline virtual error_condition  default_error_condition( int ev ) const  NDNBOOST_SYSTEM_NOEXCEPT;
-      inline virtual bool             equivalent( int code,
-                                           const error_condition & condition ) const  NDNBOOST_SYSTEM_NOEXCEPT;
-      inline virtual bool             equivalent( const error_code & code,
-                                           int condition ) const  NDNBOOST_SYSTEM_NOEXCEPT;
-
-      bool operator==(const error_category & rhs) const NDNBOOST_SYSTEM_NOEXCEPT { return this == &rhs; }
-      bool operator!=(const error_category & rhs) const NDNBOOST_SYSTEM_NOEXCEPT { return this != &rhs; }
-      bool operator<( const error_category & rhs ) const NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        return std::less<const error_category*>()( this, &rhs );
-      }
-    };
-
-    //  predefined error categories  -----------------------------------------//
-
-# ifdef NDNBOOST_ERROR_CODE_HEADER_ONLY
-    inline const error_category &  system_category() NDNBOOST_SYSTEM_NOEXCEPT;
-    inline const error_category &  generic_category() NDNBOOST_SYSTEM_NOEXCEPT;
-#else
-    NDNBOOST_SYSTEM_DECL const error_category &  system_category() NDNBOOST_SYSTEM_NOEXCEPT;
-    NDNBOOST_SYSTEM_DECL const error_category &  generic_category() NDNBOOST_SYSTEM_NOEXCEPT;
-#endif
-    //  deprecated synonyms --------------------------------------------------//
-
-# ifndef NDNBOOST_SYSTEM_NO_DEPRECATED
-    inline const error_category &  get_system_category() { return system_category(); }
-    inline const error_category &  get_generic_category() { return generic_category(); }
-    inline const error_category &  get_posix_category() { return generic_category(); }
-    static const error_category &  posix_category = generic_category();
-    static const error_category &  errno_ecat     = generic_category();
-    static const error_category &  native_ecat    = system_category();
-# endif
-
-    //  class error_condition  -----------------------------------------------//
-
-    //  error_conditions are portable, error_codes are system or library specific
-
-    class error_condition
-    {
-    public:
-
-      // constructors:
-      error_condition() NDNBOOST_SYSTEM_NOEXCEPT : m_val(0), m_cat(&generic_category()) {}
-      error_condition( int val, const error_category & cat ) NDNBOOST_SYSTEM_NOEXCEPT : m_val(val), m_cat(&cat) {}
-
-      template <class ErrorConditionEnum>
-        error_condition(ErrorConditionEnum e,
-          typename ndnboost::enable_if<is_error_condition_enum<ErrorConditionEnum> >::type* = 0) NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        *this = make_error_condition(e);
-      }
-
-      // modifiers:
-
-      void assign( int val, const error_category & cat ) NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        m_val = val;
-        m_cat = &cat;
-      }
-
-      template<typename ErrorConditionEnum>
-        typename ndnboost::enable_if<is_error_condition_enum<ErrorConditionEnum>, error_condition>::type &
-          operator=( ErrorConditionEnum val ) NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        *this = make_error_condition(val);
-        return *this;
-      }
-
-      void clear() NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        m_val = 0;
-        m_cat = &generic_category();
-      }
-
-      // observers:
-      int                     value() const NDNBOOST_SYSTEM_NOEXCEPT    { return m_val; }
-      const error_category &  category() const NDNBOOST_SYSTEM_NOEXCEPT { return *m_cat; }
-      std::string             message() const  { return m_cat->message(value()); }
-
-      typedef void (*unspecified_bool_type)();
-      static void unspecified_bool_true() {}
-
-      operator unspecified_bool_type() const NDNBOOST_SYSTEM_NOEXCEPT  // true if error
-      {
-        return m_val == 0 ? 0 : unspecified_bool_true;
-      }
-
-      bool operator!() const NDNBOOST_SYSTEM_NOEXCEPT  // true if no error
-      {
-        return m_val == 0;
-      }
-
-      // relationals:
-      //  the more symmetrical non-member syntax allows enum
-      //  conversions work for both rhs and lhs.
-      inline friend bool operator==( const error_condition & lhs,
-                                     const error_condition & rhs ) NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        return lhs.m_cat == rhs.m_cat && lhs.m_val == rhs.m_val;
-      }
-
-      inline friend bool operator<( const error_condition & lhs,
-                                    const error_condition & rhs ) NDNBOOST_SYSTEM_NOEXCEPT
-        //  the more symmetrical non-member syntax allows enum
-        //  conversions work for both rhs and lhs.
-      {
-        return lhs.m_cat < rhs.m_cat
-          || (lhs.m_cat == rhs.m_cat && lhs.m_val < rhs.m_val);
-      }
-
-    private:
-      int                     m_val;
-      const error_category *  m_cat;
-
-    };
-
-    //  class error_code  ----------------------------------------------------//
-
-    //  We want error_code to be a value type that can be copied without slicing
-    //  and without requiring heap allocation, but we also want it to have
-    //  polymorphic behavior based on the error category. This is achieved by
-    //  abstract base class error_category supplying the polymorphic behavior,
-    //  and error_code containing a pointer to an object of a type derived
-    //  from error_category.
-    class error_code
-    {
-    public:
-
-      // constructors:
-      error_code() NDNBOOST_SYSTEM_NOEXCEPT : m_val(0), m_cat(&system_category()) {}
-      error_code( int val, const error_category & cat ) NDNBOOST_SYSTEM_NOEXCEPT : m_val(val), m_cat(&cat) {}
-
-      template <class ErrorCodeEnum>
-        error_code(ErrorCodeEnum e,
-          typename ndnboost::enable_if<is_error_code_enum<ErrorCodeEnum> >::type* = 0) NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        *this = make_error_code(e);
-      }
-
-      // modifiers:
-      void assign( int val, const error_category & cat ) NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        m_val = val;
-        m_cat = &cat;
-      }
-
-      template<typename ErrorCodeEnum>
-        typename ndnboost::enable_if<is_error_code_enum<ErrorCodeEnum>, error_code>::type &
-          operator=( ErrorCodeEnum val ) NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        *this = make_error_code(val);
-        return *this;
-      }
-
-      void clear() NDNBOOST_SYSTEM_NOEXCEPT
-      {
-        m_val = 0;
-        m_cat = &system_category();
-      }
-
-      // observers:
-      int                     value() const  NDNBOOST_SYSTEM_NOEXCEPT   { return m_val; }
-      const error_category &  category() const NDNBOOST_SYSTEM_NOEXCEPT { return *m_cat; }
-      error_condition         default_error_condition() const NDNBOOST_SYSTEM_NOEXCEPT  { return m_cat->default_error_condition(value()); }
-      std::string             message() const  { return m_cat->message(value()); }
-
-      typedef void (*unspecified_bool_type)();
-      static void unspecified_bool_true() {}
-
-      operator unspecified_bool_type() const  NDNBOOST_SYSTEM_NOEXCEPT // true if error
-      {
-        return m_val == 0 ? 0 : unspecified_bool_true;
-      }
-
-      bool operator!() const  NDNBOOST_SYSTEM_NOEXCEPT // true if no error
-      {
-        return m_val == 0;
-      }
-
-      // relationals:
-      inline friend bool operator==( const error_code & lhs,
-                                     const error_code & rhs ) NDNBOOST_SYSTEM_NOEXCEPT
-        //  the more symmetrical non-member syntax allows enum
-        //  conversions work for both rhs and lhs.
-      {
-        return lhs.m_cat == rhs.m_cat && lhs.m_val == rhs.m_val;
-      }
-
-      inline friend bool operator<( const error_code & lhs,
-                                    const error_code & rhs ) NDNBOOST_SYSTEM_NOEXCEPT
-        //  the more symmetrical non-member syntax allows enum
-        //  conversions work for both rhs and lhs.
-      {
-        return lhs.m_cat < rhs.m_cat
-          || (lhs.m_cat == rhs.m_cat && lhs.m_val < rhs.m_val);
-      }
-
-    private:
-      int                     m_val;
-      const error_category *  m_cat;
-
-    };
-
-    //  predefined error_code object used as "throw on error" tag
-# ifndef NDNBOOST_SYSTEM_NO_DEPRECATED
-    NDNBOOST_SYSTEM_DECL extern error_code throws;
-# endif
-
-    //  Moving from a "throws" object to a "throws" function without breaking
-    //  existing code is a bit of a problem. The workaround is to place the
-    //  "throws" function in namespace ndnboost rather than namespace ndnboost::system.
-
-  }  // namespace system
-
-  namespace detail { inline system::error_code * throws() { return 0; } }
-    //  Misuse of the error_code object is turned into a noisy failure by
-    //  poisoning the reference. This particular implementation doesn't
-    //  produce warnings or errors from popular compilers, is very efficient
-    //  (as determined by inspecting generated code), and does not suffer
-    //  from order of initialization problems. In practice, it also seems
-    //  cause user function error handling implementation errors to be detected
-    //  very early in the development cycle.
-
-  inline system::error_code & throws()
-    { return *detail::throws(); }
-
-  namespace system
-  {
-    //  non-member functions  ------------------------------------------------//
-
-    inline bool operator!=( const error_code & lhs,
-                            const error_code & rhs ) NDNBOOST_SYSTEM_NOEXCEPT
-    {
-      return !(lhs == rhs);
-    }
-
-    inline bool operator!=( const error_condition & lhs,
-                            const error_condition & rhs ) NDNBOOST_SYSTEM_NOEXCEPT
-    {
-      return !(lhs == rhs);
-    }
-
-    inline bool operator==( const error_code & code,
-                            const error_condition & condition ) NDNBOOST_SYSTEM_NOEXCEPT
-    {
-      return code.category().equivalent( code.value(), condition )
-        || condition.category().equivalent( code, condition.value() );
-    }
-
-    inline bool operator!=( const error_code & lhs,
-                            const error_condition & rhs ) NDNBOOST_SYSTEM_NOEXCEPT
-    {
-      return !(lhs == rhs);
-    }
-
-    inline bool operator==( const error_condition & condition,
-                            const error_code & code ) NDNBOOST_SYSTEM_NOEXCEPT
-    {
-      return condition.category().equivalent( code, condition.value() )
-        || code.category().equivalent( code.value(), condition );
-    }
-
-    inline bool operator!=( const error_condition & lhs,
-                            const error_code & rhs ) NDNBOOST_SYSTEM_NOEXCEPT
-    {
-      return !(lhs == rhs);
-    }
-
-    // TODO: both of these may move elsewhere, but the LWG hasn't spoken yet.
-
-    template <class charT, class traits>
-    inline std::basic_ostream<charT,traits>&
-      operator<< (std::basic_ostream<charT,traits>& os, error_code ec)
-    {
-      os << ec.category().name() << ':' << ec.value();
-      return os;
-    }
-
-    inline std::size_t hash_value( const error_code & ec )
-    {
-      return static_cast<std::size_t>(ec.value())
-        + reinterpret_cast<std::size_t>(&ec.category());
-    }
-
-    //  make_* functions for errc::errc_t  -----------------------------//
-
-    namespace errc
-    {
-      //  explicit conversion:
-      inline error_code make_error_code( errc_t e ) NDNBOOST_SYSTEM_NOEXCEPT
-        { return error_code( e, generic_category() ); }
-
-      //  implicit conversion:
-      inline error_condition make_error_condition( errc_t e ) NDNBOOST_SYSTEM_NOEXCEPT
-        { return error_condition( e, generic_category() ); }
-    }
-
-    //  error_category default implementation  -------------------------------//
-
-    error_condition error_category::default_error_condition( int ev ) const NDNBOOST_SYSTEM_NOEXCEPT
-    {
-      return error_condition( ev, *this );
-    }
-
-    bool error_category::equivalent( int code,
-      const error_condition & condition ) const NDNBOOST_SYSTEM_NOEXCEPT
-    {
-      return default_error_condition( code ) == condition;
-    }
-
-    bool error_category::equivalent( const error_code & code,
-      int condition ) const NDNBOOST_SYSTEM_NOEXCEPT
-    {
-      return *this == code.category() && code.value() == condition;
-    }
-
-  } // namespace system
-} // namespace ndnboost
-
-#include <ndnboost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
-
-# ifdef NDNBOOST_ERROR_CODE_HEADER_ONLY
-#   include <ndnboost/../libs/system/src/error_code.cpp>
-# endif
-
-#endif // NDNBOOST_ERROR_CODE_HPP
-
-
diff --git a/include/ndnboost/system/system_error.hpp b/include/ndnboost/system/system_error.hpp
deleted file mode 100644
index ffa732d..0000000
--- a/include/ndnboost/system/system_error.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//  Boost system_error.hpp  --------------------------------------------------//
-
-//  Copyright Beman Dawes 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 NDNBOOST_SYSTEM_ERROR_HPP
-#define NDNBOOST_SYSTEM_ERROR_HPP
-
-#include <string>
-#include <stdexcept>
-#include <cassert>
-#include <ndnboost/system/error_code.hpp>
-
-namespace ndnboost
-{
-  namespace system
-  {
-    //  class system_error  ------------------------------------------------------------//
-
-    class NDNBOOST_SYMBOL_VISIBLE system_error : public std::runtime_error
-    // NDNBOOST_SYMBOL_VISIBLE is needed by GCC to ensure system_error thrown from a shared
-    // library can be caught. See svn.boost.org/trac/boost/ticket/3697
-    {
-    public:
-      system_error( error_code ec )
-          : std::runtime_error(""), m_error_code(ec) {}
-
-      system_error( error_code ec, const std::string & what_arg )
-          : std::runtime_error(what_arg), m_error_code(ec) {}
-
-      system_error( error_code ec, const char* what_arg )
-          : std::runtime_error(what_arg), m_error_code(ec) {}
-
-      system_error( int ev, const error_category & ecat )
-          : std::runtime_error(""), m_error_code(ev,ecat) {}
-
-      system_error( int ev, const error_category & ecat,
-        const std::string & what_arg )
-          : std::runtime_error(what_arg), m_error_code(ev,ecat) {}
-
-      system_error( int ev, const error_category & ecat,
-        const char * what_arg )
-          : std::runtime_error(what_arg), m_error_code(ev,ecat) {}
-
-      virtual ~system_error() throw() {}
-
-      const error_code &  code() const throw() { return m_error_code; }
-      const char *        what() const throw();
-
-    private:
-      error_code           m_error_code;
-      mutable std::string  m_what;
-    };
-
-    //  implementation  ------------------------------------------------------//
-
-    inline const char * system_error::what() const throw()
-    // see http://www.boost.org/more/error_handling.html for lazy build rationale
-    {
-      if ( m_what.empty() )
-      {
-#ifndef NDNBOOST_NO_EXCEPTIONS
-        try
-#endif
-        {
-          m_what = this->std::runtime_error::what();
-          if ( !m_what.empty() ) m_what += ": ";
-          m_what += m_error_code.message();
-        }
-#ifndef NDNBOOST_NO_EXCEPTIONS
-        catch (...) { return std::runtime_error::what(); }
-#endif
-      }
-      return m_what.c_str();
-    }
-
-  } // namespace system
-} // namespace ndnboost
-
-#endif // NDNBOOST_SYSTEM_ERROR_HPP
-
-
diff --git a/include/ndnboost/test/debug.hpp b/include/ndnboost/test/debug.hpp
deleted file mode 100644
index 5536961..0000000
--- a/include/ndnboost/test/debug.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2006-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : defines portable debug interfaces
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_DEBUG_API_HPP_112006GER
-#define NDNBOOST_TEST_DEBUG_API_HPP_112006GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/test/utils/callback.hpp>
-#include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
-
-// STL
-#include <string>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace debug {
-
-// ************************************************************************** //
-// **************  check if program is running under debugger  ************** //
-// ************************************************************************** //
-
-bool NDNBOOST_TEST_DECL under_debugger();
-
-// ************************************************************************** //
-// **************       cause program to break execution       ************** //
-// **************           in debugger at call point          ************** //
-// ************************************************************************** //
-
-void NDNBOOST_TEST_DECL debugger_break();
-
-// ************************************************************************** //
-// **************              gui debugger setup              ************** //
-// ************************************************************************** //
-
-struct dbg_startup_info {
-    long                    pid;
-    bool                    break_or_continue;
-    unit_test::const_string binary_path;
-    unit_test::const_string display;
-    unit_test::const_string init_done_lock;
-};
-
-typedef unit_test::callback1<dbg_startup_info const&> dbg_starter;
-
-// ************************************************************************** //
-// **************                debugger setup                ************** //
-// ************************************************************************** //
-
-#if NDNBOOST_WORKAROUND( NDNBOOST_MSVC, <1300)
-
-std::string NDNBOOST_TEST_DECL set_debugger( unit_test::const_string dbg_id );
-
-#else 
-
-std::string NDNBOOST_TEST_DECL set_debugger( unit_test::const_string dbg_id, dbg_starter s = dbg_starter() );
-
-#endif
-
-
-// ************************************************************************** //
-// **************    attach debugger to the current process    ************** //
-// ************************************************************************** //
-
-bool NDNBOOST_TEST_DECL attach_debugger( bool break_or_continue = true );
-
-// ************************************************************************** //
-// **************   switch on/off detect memory leaks feature  ************** //
-// ************************************************************************** //
-
-void NDNBOOST_TEST_DECL detect_memory_leaks( bool on_off );
-
-// ************************************************************************** //
-// **************      cause program to break execution in     ************** //
-// **************     debugger at specific allocation point    ************** //
-// ************************************************************************** //
-
-void NDNBOOST_TEST_DECL break_memory_alloc( long mem_alloc_order_num );
-
-} // namespace debug
-
-} // namespace ndnboost
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif
diff --git a/include/ndnboost/test/debug_config.hpp b/include/ndnboost/test/debug_config.hpp
deleted file mode 100644
index f54efa8..0000000
--- a/include/ndnboost/test/debug_config.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2006-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : user's config for Boost.Test debugging support
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_DEBUG_CONFIG_HPP_112006GER
-#define NDNBOOST_TEST_DEBUG_CONFIG_HPP_112006GER
-
-// ';' separated list of supported debuggers
-// #define NDNBOOST_TEST_DBG_LIST gdb;dbx
-
-// maximum size of /proc/pid/stat file
-// #define NDNBOOST_TEST_STAT_LINE_MAX
-
-#endif
diff --git a/include/ndnboost/test/detail/config.hpp b/include/ndnboost/test/detail/config.hpp
deleted file mode 100644
index 68168b2..0000000
--- a/include/ndnboost/test/detail/config.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 63441 $
-//
-//  Description : as a central place for global configuration switches
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_CONFIG_HPP_071894GER
-#define NDNBOOST_TEST_CONFIG_HPP_071894GER
-
-// Boost
-#include <ndnboost/config.hpp> // compilers workarounds
-#include <ndnboost/detail/workaround.hpp>
-
-//____________________________________________________________________________//
-
-#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(NDNBOOST_MSVC) || (defined(__BORLANDC__) && !defined(NDNBOOST_DISABLE_WIN32))
-#  define NDNBOOST_TEST_CALL_DECL __cdecl
-#else
-#  define NDNBOOST_TEST_CALL_DECL /**/
-#endif
-
-//____________________________________________________________________________//
-
-#if !defined(NDNBOOST_NO_STD_LOCALE) &&            \
-    !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1310)  &&   \
-    !defined(__MWERKS__) 
-#  define NDNBOOST_TEST_USE_STD_LOCALE 1
-#endif
-
-//____________________________________________________________________________//
-
-#if NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x570)            || \
-    NDNBOOST_WORKAROUND( __COMO__, <= 0x433 )              || \
-    NDNBOOST_WORKAROUND( __INTEL_COMPILER, <= 800 )        || \
-    defined(__sgi) && _COMPILER_VERSION <= 730          || \
-    NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))  || \
-    defined(__DECCXX)                                   || \
-    defined(__DMC__)
-#  define NDNBOOST_TEST_NO_PROTECTED_USING
-#endif
-
-//____________________________________________________________________________//
-
-#if defined(__GNUC__) || NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1400)
-#define NDNBOOST_TEST_PROTECTED_VIRTUAL virtual
-#else
-#define NDNBOOST_TEST_PROTECTED_VIRTUAL
-#endif
-
-//____________________________________________________________________________//
-
-#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(NDNBOOST_ALL_DYN_LINK) && !defined(NDNBOOST_TEST_DYN_LINK)
-#  define NDNBOOST_TEST_DYN_LINK
-#endif
-
-#if defined(NDNBOOST_TEST_INCLUDED)
-#  undef NDNBOOST_TEST_DYN_LINK
-#endif
-
-#if defined(NDNBOOST_TEST_DYN_LINK)
-#  define NDNBOOST_TEST_ALTERNATIVE_INIT_API
-
-#  ifdef NDNBOOST_TEST_SOURCE
-#    define NDNBOOST_TEST_DECL NDNBOOST_SYMBOL_EXPORT
-#  else
-#    define NDNBOOST_TEST_DECL NDNBOOST_SYMBOL_IMPORT
-#  endif  // NDNBOOST_TEST_SOURCE
-#else
-#  define NDNBOOST_TEST_DECL
-#endif
-
-#if !defined(NDNBOOST_TEST_MAIN) && defined(NDNBOOST_AUTO_TEST_MAIN)
-#define NDNBOOST_TEST_MAIN NDNBOOST_AUTO_TEST_MAIN
-#endif
-
-#if !defined(NDNBOOST_TEST_MAIN) && defined(NDNBOOST_TEST_MODULE)
-#define NDNBOOST_TEST_MAIN NDNBOOST_TEST_MODULE
-#endif
-
-#endif // NDNBOOST_TEST_CONFIG_HPP_071894GER
diff --git a/include/ndnboost/test/detail/enable_warnings.hpp b/include/ndnboost/test/detail/enable_warnings.hpp
deleted file mode 100644
index 3618e91..0000000
--- a/include/ndnboost/test/detail/enable_warnings.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : enable previosly suppressed warnings
-// ***************************************************************************
-
-#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 
-# pragma warning(default: 4996) // <symbol> was declared deprecated 
-# pragma warning(default: 4355) // 'this' : used in base member initializer list
-# pragma warning(default: 4706) // assignment within conditional expression
-# pragma warning(default: 4251) // class 'A<T>' needs to have dll-interface to be used by clients of class 'B'
-# pragma warning(default: 4127) // conditional expression is constant
-# pragma warning(default: 4290) // C++ exception specification ignored except to ...
-# pragma warning(default: 4180) // qualifier applied to function type has no meaning; ignored
-# pragma warning(default: 4275) // non dll-interface class ... used as base for dll-interface class ...
-# pragma warning(default: 4267) // 'var' : conversion from 'size_t' to 'type', possible loss of data
-# pragma warning(default: 4511) // 'class' : copy constructor could not be generated
-# pragma warning(pop)
-#endif
diff --git a/include/ndnboost/test/detail/fwd_decl.hpp b/include/ndnboost/test/detail/fwd_decl.hpp
deleted file mode 100644
index db029fe..0000000
--- a/include/ndnboost/test/detail/fwd_decl.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : contains forward eclarations for Boost.Test data types
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_FWD_DECL_HPP_011605GER
-#define NDNBOOST_TEST_FWD_DECL_HPP_011605GER
-
-namespace ndnboost {
-
-class  execution_monitor;
-class  execution_exception;
-
-namespace unit_test {
-
-class  test_unit;
-class  test_case;
-class  test_suite;
-class  master_test_suite_t;
-
-class  test_tree_visitor;
-class  test_observer;
-
-// singletons
-class  unit_test_monitor_t;
-class  unit_test_log_t;
-
-class  unit_test_log_formatter;
-struct log_entry_data;
-struct log_checkpoint_data;
-
-class lazy_ostream;
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 207940d..0000000
--- a/include/ndnboost/test/detail/global_typedef.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : some trivial global typedefs
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
-#define NDNBOOST_TEST_GLOBAL_TYPEDEF_HPP_021005GER
-
-#include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
-#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>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-typedef unsigned long   counter_t;
-
-//____________________________________________________________________________//
-
-enum report_level  { INV_REPORT_LEVEL, CONFIRMATION_REPORT, SHORT_REPORT, DETAILED_REPORT, NO_REPORT };
-
-//____________________________________________________________________________//
-
-enum output_format { INV_OF, CLF /* compiler log format */, XML /* XML */ };
-
-//____________________________________________________________________________//
-
-enum test_unit_type { tut_case = 0x01, tut_suite = 0x10, tut_any = 0x11 };
-
-//____________________________________________________________________________//
-
-typedef unsigned long   test_unit_id;
-
-const test_unit_id INV_TEST_UNIT_ID  = 0xFFFFFFFF;
-const test_unit_id MAX_TEST_CASE_ID  = 0xFFFFFFFE;
-const test_unit_id MIN_TEST_CASE_ID  = 0x00010000;
-const test_unit_id MAX_TEST_SUITE_ID = 0x0000FF00;
-const test_unit_id MIN_TEST_SUITE_ID = 0x00000001;
-
-//____________________________________________________________________________//
-
-namespace ut_detail {
-
-inline test_unit_type
-test_id_2_unit_type( test_unit_id id )
-{
-    return (id & 0xFFFF0000) != 0 ? tut_case : tut_suite;
-}
-
-//____________________________________________________________________________//
-
-// helper templates to prevent ODR violations 
-template<class T> 
-struct static_constant { 
-    static T value; 
-}; 
-
-template<class T> 
-T static_constant<T>::value; 
-
-//____________________________________________________________________________// 
-
-} // namespace ut_detail
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 549db0c..0000000
--- a/include/ndnboost/test/detail/log_level.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : shared definition for unit test log levels
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_LOG_LEVEL_HPP_011605GER
-#define NDNBOOST_TEST_LOG_LEVEL_HPP_011605GER
-
-namespace ndnboost {
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                   log levels                 ************** //
-// ************************************************************************** //
-
-//  each log level includes all subsequent higher loging levels
-enum            log_level {
-    invalid_log_level        = -1,
-    log_successful_tests     = 0,
-    log_test_units           = 1,
-    log_messages             = 2,
-    log_warnings             = 3,
-    log_all_errors           = 4, // reported by unit test macros
-    log_cpp_exception_errors = 5, // uncaught C++ exceptions
-    log_system_errors        = 6, // including timeouts, signals, traps
-    log_fatal_errors         = 7, // including unit test macros or
-                                  // fatal system errors
-    log_nothing              = 8
-};
-
-} // namespace unit_test
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 7b93db7..0000000
--- a/include/ndnboost/test/detail/suppress_warnings.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : suppress some warnings 
-// ***************************************************************************
-
-#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
-# pragma warning(disable: 4100) // unreferenced formal parameter 
-# pragma warning(disable: 4996) // <symbol> was declared deprecated 
-# pragma warning(disable: 4355) // 'this' : used in base member initializer list
-# pragma warning(disable: 4706) // assignment within conditional expression
-# pragma warning(disable: 4251) // class 'A<T>' needs to have dll-interface to be used by clients of class 'B'
-# pragma warning(disable: 4127) // conditional expression is constant
-# pragma warning(disable: 4290) // C++ exception specification ignored except to ...
-# pragma warning(disable: 4180) // qualifier applied to function type has no meaning; ignored
-# pragma warning(disable: 4275) // non dll-interface class ... used as base for dll-interface class ...
-# pragma warning(disable: 4267) // 'var' : conversion from 'size_t' to 'type', possible loss of data
-# pragma warning(disable: 4511) // 'class' : copy constructor could not be generated
-#endif
-
diff --git a/include/ndnboost/test/detail/unit_test_parameters.hpp b/include/ndnboost/test/detail/unit_test_parameters.hpp
deleted file mode 100644
index ca7a24f..0000000
--- a/include/ndnboost/test/detail/unit_test_parameters.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : storage for unit test framework parameters information
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-// STL
-#include <iosfwd>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                 runtime_config               ************** //
-// ************************************************************************** //
-
-namespace runtime_config {
-
-NDNBOOST_TEST_DECL void                     init( int& argc, char** argv );
-
-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
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_UNIT_TEST_PARAMETERS_HPP_071894GER
diff --git a/include/ndnboost/test/detail/workaround.hpp b/include/ndnboost/test/detail/workaround.hpp
deleted file mode 100644
index d595ffb..0000000
--- a/include/ndnboost/test/detail/workaround.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : contains mics. workarounds 
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_WORKAROUND_HPP_021005GER
-#define NDNBOOST_TEST_WORKAROUND_HPP_021005GER
-
-// Boost
-#include <ndnboost/config.hpp> // compilers workarounds and std::ptrdiff_t
-
-// STL
-#include <iterator>     // for std::distance
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace ut_detail {
-
-#ifdef NDNBOOST_NO_STD_DISTANCE
-template <class T>
-std::ptrdiff_t distance( T const& x_, T const& y_ )
-{ 
-    std::ptrdiff_t res = 0;
-
-    std::distance( x_, y_, res );
-
-    return res;
-}
-
-//____________________________________________________________________________//
-
-#else
-using std::distance;
-#endif
-
-template <class T> inline void ignore_unused_variable_warning(const T&) {}
-
-} // namespace ut_detail
-
-} // namespace unit_test
-
-namespace unit_test_framework = unit_test;
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_WORKAROUND_HPP_021005GER
diff --git a/include/ndnboost/test/execution_monitor.hpp b/include/ndnboost/test/execution_monitor.hpp
deleted file mode 100644
index a1abc8b..0000000
--- a/include/ndnboost/test/execution_monitor.hpp
+++ /dev/null
@@ -1,263 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  (C) Copyright Beman Dawes 2001.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : defines abstract monitor interfaces and implements execution exception
-//  The original Boost Test Library included an implementation detail function
-//  named catch_exceptions() which caught otherwise uncaught C++ exceptions.
-//  It was derived from an existing test framework by Beman Dawes.  The
-//  intent was to expand later to catch other detectable but platform dependent
-//  error events like Unix signals or Windows structured C exceptions.
-//
-//  Requests from early adopters of the Boost Test Library included
-//  configurable levels of error message detail, elimination of templates,
-//  separation of error reporting, and making the catch_exceptions() facilities
-//  available as a public interface.  Support for unit testing also stretched
-//  the function based design.  Implementation within the header became less
-//  attractive due to the need to include many huge system dependent headers,
-//  although still preferable in certain cases.
-//
-//  All those issues have been addressed by introducing the class-based
-//  design presented here.
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_EXECUTION_MONITOR_HPP_071894GER
-#define NDNBOOST_TEST_EXECUTION_MONITOR_HPP_071894GER
-
-// Boost.Test
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/detail/fwd_decl.hpp>
-#include <ndnboost/test/utils/callback.hpp>
-#include <ndnboost/test/utils/class_properties.hpp>
-
-// Boost
-#include <ndnboost/scoped_ptr.hpp>
-#include <ndnboost/scoped_array.hpp>
-#include <ndnboost/type.hpp>
-#include <ndnboost/cstdlib.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace detail {
-
-// ************************************************************************** //
-// **************       detail::translate_exception_base       ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL translate_exception_base {
-public:
-    // Constructor
-    explicit    translate_exception_base( ndnboost::scoped_ptr<translate_exception_base>& next )
-    {
-        next.swap( m_next );
-    }
-
-    // Destructor
-    virtual     ~translate_exception_base() {}
-
-    virtual int operator()( unit_test::callback0<int> const& F ) = 0;
-
-protected:
-    // Data members
-    ndnboost::scoped_ptr<translate_exception_base> m_next;
-};
-
-} // namespace detail
-
-// ************************************************************************** //
-// **************              execution_exception             ************** //
-// ************************************************************************** //
-    
-//  design rationale: fear of being out (or nearly out) of memory.
-    
-class NDNBOOST_TEST_DECL execution_exception {
-    typedef ndnboost::unit_test::const_string const_string;
-public:
-    enum error_code {
-        //  These values are sometimes used as program return codes.
-        //  The particular values have been chosen to avoid conflicts with
-        //  commonly used program return codes: values < 100 are often user
-        //  assigned, values > 255 are sometimes used to report system errors.
-        //  Gaps in values allow for orderly expansion.
-        
-        no_error               = 0,   // for completeness only; never returned
-        user_error             = 200, // user reported non-fatal error
-        cpp_exception_error    = 205, // see note (1) below
-        system_error           = 210, // see note (2) below
-        timeout_error          = 215, // only detectable on certain platforms
-        user_fatal_error       = 220, // user reported fatal error
-        system_fatal_error     = 225  // see note (2) below
-        
-        //  Note 1: Only uncaught C++ exceptions are treated as errors.
-        //  If the application catches a C++ exception, it will never reach
-        //  the execution_monitor.
-        
-        //  Note 2: These errors include Unix signals and Windows structured
-        //  exceptions.  They are often initiated by hardware traps.
-        //
-        //  The implementation decides what is a fatal_system_exception and what is
-        //  just a system_exception.  Fatal errors are so likely to have corrupted
-        //  machine state (like a stack overflow or addressing exception) that it
-        //  is unreasonable to continue execution.
-    };
-    
-    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;
-        size_t          m_line_num;
-        const_string    m_function;
-    };
-
-    // Constructor
-    execution_exception( error_code ec_, const_string what_msg_, location const& location_ ); // max length 256 inc '\0'
-
-    // Access methods
-    error_code      code() const    { return m_error_code; }
-    const_string    what() const    { return m_what; }
-    location const& where() const   { return m_location; }
-
-private:
-    // Data members
-    error_code      m_error_code;
-    const_string    m_what;
-    location        m_location;
-}; // execution_exception
-
-// ************************************************************************** //
-// **************               execution_monitor              ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL execution_monitor {
-public:
-    // Constructor
-    execution_monitor()
-    : p_catch_system_errors( true )
-    , p_auto_start_dbg( false )
-    , p_timeout( 0 )
-    , p_use_alt_stack( true )
-    , p_detect_fp_exceptions( false )
-    {}
-
-    // Public properties
-    
-    //  The p_catch_system_errors parameter specifies whether the monitor should 
-    //  try to catch system errors/exceptions that would cause program to crash 
-    //  in regular case
-    unit_test::readwrite_property<bool> p_catch_system_errors; 
-    //  The p_auto_start_dbg parameter specifies whether the monitor should 
-    //  try to attach debugger in case of caught system error
-    unit_test::readwrite_property<bool> p_auto_start_dbg;
-    //  The p_timeout parameter specifies the seconds that elapse before
-    //  a timer_error occurs.  May be ignored on some platforms.
-    unit_test::readwrite_property<int>  p_timeout;
-    //  The p_use_alt_stack parameter specifies whether the monitor should
-    //  use alternative stack for the signal catching
-    unit_test::readwrite_property<bool> p_use_alt_stack;
-    //  The p_detect_fp_exceptions parameter specifies whether the monitor should
-    //  try to detect hardware floating point exceptions
-    unit_test::readwrite_property<bool> p_detect_fp_exceptions;
-
-    int         execute( unit_test::callback0<int> const& F ); 
-    //  Returns:  Value returned by function call F().
-    //
-    //  Effects:  Calls executes supplied function F inside a try/catch block which also may
-    //  include other unspecified platform dependent error detection code.
-    //
-    //  Throws: execution_exception on an uncaught C++ exception,
-    //  a hardware or software signal, trap, or other exception.
-    //
-    //  Note: execute() doesn't consider it an error for F to return a non-zero value.
-    
-    // register custom (user supplied) exception translator
-    template<typename Exception, typename ExceptionTranslator>
-    void        register_exception_translator( ExceptionTranslator const& tr, ndnboost::type<Exception>* = 0 );
-
-private:
-    // implementation helpers
-    int         catch_signals( unit_test::callback0<int> const& F );
-
-    // Data members
-    ndnboost::scoped_ptr<detail::translate_exception_base> m_custom_translators;
-    ndnboost::scoped_array<char>                           m_alt_stack;
-}; // execution_monitor
-
-namespace detail {
-
-// ************************************************************************** //
-// **************         detail::translate_exception          ************** //
-// ************************************************************************** //
-
-template<typename Exception, typename ExceptionTranslator>
-class translate_exception : public translate_exception_base
-{
-    typedef ndnboost::scoped_ptr<translate_exception_base> base_ptr;
-public:
-    explicit    translate_exception( ExceptionTranslator const& tr, base_ptr& next )
-    : translate_exception_base( next ), m_translator( tr ) {}
-
-    int operator()( unit_test::callback0<int> const& F )
-    {
-        try {
-            return m_next ? (*m_next)( F ) : F();
-        } catch( Exception const& e ) {
-            m_translator( e );
-            return ndnboost::exit_exception_failure;
-        }
-    }
-
-private:
-    // Data members
-    ExceptionTranslator m_translator;
-};
-
-} // namespace detail
-
-template<typename Exception, typename ExceptionTranslator>
-void
-execution_monitor::register_exception_translator( ExceptionTranslator const& tr, ndnboost::type<Exception>* )
-{
-    m_custom_translators.reset( 
-        new detail::translate_exception<Exception,ExceptionTranslator>( tr,m_custom_translators ) );
-}
-
-// ************************************************************************** //
-// **************               execution_aborted              ************** //
-// ************************************************************************** //
-
-struct execution_aborted {};
-
-// ************************************************************************** //
-// **************                  system_error                ************** //
-// ************************************************************************** //
-
-class system_error {
-public:
-    // Constructor
-    explicit    system_error( char const* exp );
-
-    unit_test::readonly_property<long>          p_errno; 
-    unit_test::readonly_property<char const*>   p_failed_exp; 
-};
-
-#define NDNBOOST_TEST_SYS_ASSERT( exp ) if( (exp) ) ; else throw ::ndnboost::system_error( NDNBOOST_STRINGIZE( exp ) )
-
-}  // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif
diff --git a/include/ndnboost/test/floating_point_comparison.hpp b/include/ndnboost/test/floating_point_comparison.hpp
deleted file mode 100644
index 1a0a60e..0000000
--- a/include/ndnboost/test/floating_point_comparison.hpp
+++ /dev/null
@@ -1,286 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : defines algoirthms for comparing 2 floating point values
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/class_properties.hpp>
-#include <ndnboost/test/predicate_result.hpp>
-
-// Boost
-#include <ndnboost/limits.hpp>  // for std::numeric_limits
-#include <ndnboost/numeric/conversion/conversion_traits.hpp> // for numeric::conversion_traits
-#include <ndnboost/static_assert.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace test_tools {
-
-using unit_test::readonly_property;
-
-// ************************************************************************** //
-// **************        floating_point_comparison_type        ************** //
-// ************************************************************************** //
-
-enum floating_point_comparison_type {
-    FPC_STRONG, // "Very close"   - equation 1' in docs, the default
-    FPC_WEAK    // "Close enough" - equation 2' in docs.
-
-};
-
-// ************************************************************************** //
-// **************                    details                   ************** //
-// ************************************************************************** //
-
-namespace tt_detail {
-
-// FPT is Floating-Point Type: float, double, long double or User-Defined.
-template<typename FPT>
-inline FPT
-fpt_abs( FPT fpv ) 
-{
-    return fpv < static_cast<FPT>(0) ? -fpv : fpv;
-}
-
-//____________________________________________________________________________//
-
-template<typename FPT>
-struct fpt_limits {
-    static FPT    min_value()
-    {
-        return std::numeric_limits<FPT>::is_specialized
-                    ? (std::numeric_limits<FPT>::min)()
-                    : 0;
-    }
-    static FPT    max_value()
-    {
-        return std::numeric_limits<FPT>::is_specialized
-                    ? (std::numeric_limits<FPT>::max)()
-                    : static_cast<FPT>(1000000); // for the our purpuses it doesn't really matter what value is returned here
-    }
-};
-
-//____________________________________________________________________________//
-
-// both f1 and f2 are unsigned here
-template<typename FPT>
-inline FPT
-safe_fpt_division( FPT f1, FPT f2 )
-{
-    // Avoid overflow.
-    if( (f2 < static_cast<FPT>(1))  && (f1 > f2*fpt_limits<FPT>::max_value()) )
-        return fpt_limits<FPT>::max_value();
-
-    // Avoid underflow.
-    if( (f1 == static_cast<FPT>(0)) ||
-        ((f2 > static_cast<FPT>(1)) && (f1 < f2*fpt_limits<FPT>::min_value())) )
-        return static_cast<FPT>(0);
-
-    return f1/f2;
-}
-
-//____________________________________________________________________________//
-
-} // namespace tt_detail
-
-// ************************************************************************** //
-// **************         tolerance presentation types         ************** //
-// ************************************************************************** //
-
-template<typename FPT>
-struct percent_tolerance_t {
-    explicit    percent_tolerance_t( FPT v ) : m_value( v ) {}
-
-    FPT m_value;
-};
-
-//____________________________________________________________________________//
-
-template<typename Out,typename FPT>
-Out& operator<<( Out& out, percent_tolerance_t<FPT> t )
-{
-    return out << t.m_value;
-}
-
-//____________________________________________________________________________//
-
-template<typename FPT>
-inline percent_tolerance_t<FPT>
-percent_tolerance( FPT v )
-{
-    return percent_tolerance_t<FPT>( v );
-}
-
-//____________________________________________________________________________//
-
-template<typename FPT>
-struct fraction_tolerance_t {
-    explicit fraction_tolerance_t( FPT v ) : m_value( v ) {}
-
-    FPT m_value;
-};
-
-//____________________________________________________________________________//
-
-template<typename Out,typename FPT>
-Out& operator<<( Out& out, fraction_tolerance_t<FPT> t )
-{
-    return out << t.m_value;
-}
-
-//____________________________________________________________________________//
-
-template<typename FPT>
-inline fraction_tolerance_t<FPT>
-fraction_tolerance( FPT v )
-{
-    return fraction_tolerance_t<FPT>( v );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************             close_at_tolerance               ************** //
-// ************************************************************************** //
-
-template<typename FPT>
-class close_at_tolerance {
-public:
-    // Public typedefs
-    typedef bool result_type;
-
-    // Constructor
-    template<typename ToleranceBaseType>
-    explicit    close_at_tolerance( percent_tolerance_t<ToleranceBaseType>  tolerance, 
-                                    floating_point_comparison_type          fpc_type = FPC_STRONG ) 
-    : p_fraction_tolerance( tt_detail::fpt_abs( static_cast<FPT>(0.01)*tolerance.m_value ) )
-    , p_strong_or_weak( fpc_type ==  FPC_STRONG )
-    , m_report_modifier( 100. )
-    {}
-    template<typename ToleranceBaseType>
-    explicit    close_at_tolerance( fraction_tolerance_t<ToleranceBaseType> tolerance, 
-                                    floating_point_comparison_type          fpc_type = FPC_STRONG ) 
-    : p_fraction_tolerance( tt_detail::fpt_abs( tolerance.m_value ) )
-    , p_strong_or_weak( fpc_type ==  FPC_STRONG )
-    , m_report_modifier( 1. )
-    {}
-
-    predicate_result        operator()( FPT left, FPT right ) const
-    {
-        FPT diff = tt_detail::fpt_abs( left - right );
-        FPT d1   = tt_detail::safe_fpt_division( diff, tt_detail::fpt_abs( right ) );
-        FPT d2   = tt_detail::safe_fpt_division( diff, tt_detail::fpt_abs( left ) );
-        
-        predicate_result res( p_strong_or_weak 
-            ? (d1 <= p_fraction_tolerance.get() && d2 <= p_fraction_tolerance.get()) 
-            : (d1 <= p_fraction_tolerance.get() || d2 <= p_fraction_tolerance.get()) );
-
-        if( !res )
-            res.message() << (( d1 <= p_fraction_tolerance.get() ? d2 : d1 ) * m_report_modifier);
-
-        return res;
-    }
-
-    // Public properties
-    readonly_property<FPT>  p_fraction_tolerance;
-    readonly_property<bool> p_strong_or_weak;
-private:
-    // Data members
-    FPT                     m_report_modifier;
-};
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************               check_is_close                 ************** //
-// ************************************************************************** //
-
-struct NDNBOOST_TEST_DECL check_is_close_t {
-    // Public typedefs
-    typedef bool result_type;
-
-    template<typename FPT1, typename FPT2, typename ToleranceBaseType>
-    predicate_result
-    operator()( FPT1 left, FPT2 right, percent_tolerance_t<ToleranceBaseType> tolerance, 
-                floating_point_comparison_type fpc_type = FPC_STRONG ) const
-    {
-        // deduce "better" type from types of arguments being compared
-        // if one type is floating and the second integral we use floating type and 
-        // 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;
-        NDNBOOST_STATIC_ASSERT( !is_integral<FPT>::value );
-
-        close_at_tolerance<FPT> pred( tolerance, fpc_type );
-
-        return pred( left, right );
-    }
-    template<typename FPT1, typename FPT2, typename ToleranceBaseType>
-    predicate_result
-    operator()( FPT1 left, FPT2 right, fraction_tolerance_t<ToleranceBaseType> tolerance, 
-                floating_point_comparison_type fpc_type = FPC_STRONG ) const
-    {
-        // same as in a comment above
-        typedef typename numeric::conversion_traits<FPT1,FPT2>::supertype FPT;
-        NDNBOOST_STATIC_ASSERT( !is_integral<FPT>::value );
-
-        close_at_tolerance<FPT> pred( tolerance, fpc_type );
-
-        return pred( left, right );
-    }
-};
-
-namespace {
-check_is_close_t const& check_is_close = unit_test::ut_detail::static_constant<check_is_close_t>::value;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************               check_is_small                 ************** //
-// ************************************************************************** //
-
-struct NDNBOOST_TEST_DECL check_is_small_t {
-    // Public typedefs
-    typedef bool result_type;
-
-    template<typename FPT>
-    bool
-    operator()( FPT fpv, FPT tolerance ) const
-    {
-        return tt_detail::fpt_abs( fpv ) < tt_detail::fpt_abs( tolerance );
-    }
-};
-
-namespace {
-check_is_small_t const& check_is_small = unit_test::ut_detail::static_constant<check_is_small_t>::value;
-}
-
-//____________________________________________________________________________//
-
-} // namespace test_tools
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_FLOATING_POINT_COMAPARISON_HPP_071894GER
diff --git a/include/ndnboost/test/framework.hpp b/include/ndnboost/test/framework.hpp
deleted file mode 100644
index 3f316f8..0000000
--- a/include/ndnboost/test/framework.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : defines framework interface
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_FRAMEWORK_HPP_020805GER
-#define NDNBOOST_TEST_FRAMEWORK_HPP_020805GER
-
-// Boost.Test
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/detail/fwd_decl.hpp>
-#include <ndnboost/test/utils/trivial_singleton.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-// STL
-#include <stdexcept>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************              init_unit_test_func             ************** //
-// ************************************************************************** //
-
-#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
-typedef bool        (*init_unit_test_func)();
-#else
-typedef test_suite* (*init_unit_test_func)( int, char* [] );
-#endif
-
-// ************************************************************************** //
-// **************                   framework                  ************** //
-// ************************************************************************** //
-
-namespace framework {
-
-// initialization
-NDNBOOST_TEST_DECL void    init( init_unit_test_func init_func, int argc, char* argv[] );
-NDNBOOST_TEST_DECL bool    is_initialized();
-
-// mutation access methods
-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();
-
-NDNBOOST_TEST_DECL void    register_observer( test_observer& );
-NDNBOOST_TEST_DECL void    deregister_observer( test_observer& );
-NDNBOOST_TEST_DECL void    reset_observers();
-
-NDNBOOST_TEST_DECL master_test_suite_t& master_test_suite();
-
-// constant access methods
-NDNBOOST_TEST_DECL test_case const&    current_test_case();
-
-NDNBOOST_TEST_DECL test_unit&  get( test_unit_id, test_unit_type );
-template<typename UnitType>
-UnitType&               get( test_unit_id id )
-{
-    return static_cast<UnitType&>( get( id, static_cast<test_unit_type>(UnitType::type) ) );
-}
-
-// test initiation
-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
-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              ************** //
-// ************************************************************************** //
-
-struct internal_error : std::runtime_error {
-    internal_error( const_string m ) : std::runtime_error( std::string( m.begin(), m.size() ) ) {}
-};
-
-struct setup_error : std::runtime_error {
-    setup_error( const_string m ) : std::runtime_error( std::string( m.begin(), m.size() ) ) {}
-};
-
-#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
-
-} // namespace framework
-
-} // unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 1d83f60..0000000
--- a/include/ndnboost/test/impl/compiler_log_formatter.ipp
+++ /dev/null
@@ -1,222 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : implements compiler like Log formatter
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/framework.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-#include <ndnboost/test/utils/lazy_ostream.hpp>
-
-// Boost
-#include <ndnboost/version.hpp>
-
-// STL
-#include <iostream>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace output {
-
-// ************************************************************************** //
-// **************            compiler_log_formatter            ************** //
-// ************************************************************************** //
-
-namespace {
-
-const_string
-test_phase_identifier()
-{
-    return framework::is_initialized() 
-            ? const_string( framework::current_test_case().p_name.get() )
-            : NDNBOOST_TEST_L( "Test setup" );
-}
-
-} // local namespace
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::log_start( std::ostream& output, counter_t test_cases_amount )
-{
-    if( test_cases_amount > 0 )
-        output  << "Running " << test_cases_amount << " test "
-                << (test_cases_amount > 1 ? "cases" : "case") << "...\n";
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::log_finish( std::ostream& ostr )
-{
-    ostr.flush();
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::log_build_info( std::ostream& output )
-{
-    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;
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::test_unit_start( std::ostream& output, test_unit const& tu )
-{
-    output << "Entering test " << tu.p_type_name << " \"" << tu.p_name << "\"" << std::endl;
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::test_unit_finish( std::ostream& output, test_unit const& tu, unsigned long elapsed )
-{
-    output << "Leaving test " << tu.p_type_name << " \"" << tu.p_name << "\"";
-
-    if( elapsed > 0 ) {
-        output << "; testing time: ";
-        if( elapsed % 1000 == 0 )
-            output << elapsed/1000 << "ms";
-        else
-            output << elapsed << "mks";
-    }
-
-    output << std::endl;
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::test_unit_skipped( std::ostream& output, test_unit const& tu )
-{
-    output  << "Test " << tu.p_type_name << " \"" << tu.p_name << "\"" << "is skipped" << std::endl;
-}
-    
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::log_exception( std::ostream& output, log_checkpoint_data const& checkpoint_data, execution_exception const& ex )
-{
-    execution_exception::location const& loc = ex.where();
-    print_prefix( output, loc.m_file_name, loc.m_line_num );
-
-    output << "fatal error in \"" << (loc.m_function.is_empty() ? test_phase_identifier() : loc.m_function ) << "\": ";
-
-    output << ex.what();
-
-    if( !checkpoint_data.m_file_name.is_empty() ) {
-        output << '\n';
-        print_prefix( output, checkpoint_data.m_file_name, checkpoint_data.m_line_num );
-        output << "last checkpoint";
-        if( !checkpoint_data.m_message.empty() )
-            output << ": " << checkpoint_data.m_message;
-    }
-    
-    output << std::endl;
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::log_entry_start( std::ostream& output, log_entry_data const& entry_data, log_entry_types let )
-{
-    switch( let ) {
-        case NDNBOOST_UTL_ET_INFO:
-            print_prefix( output, entry_data.m_file_name, entry_data.m_line_num );
-            output << "info: ";
-            break;
-        case NDNBOOST_UTL_ET_MESSAGE:
-            break;
-        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 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 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;
-    }
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::log_entry_value( std::ostream& output, const_string value )
-{
-    output << value;
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::log_entry_value( std::ostream& output, lazy_ostream const& value )
-{
-    output << value;
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::log_entry_finish( std::ostream& output )
-{
-    output << std::endl;
-}
-
-//____________________________________________________________________________//
-
-void
-compiler_log_formatter::print_prefix( std::ostream& output, const_string file, std::size_t line )
-{
-#ifdef __APPLE_CC__
-    // Xcode-compatible logging format, idea by Richard Dingwall at 
-    // <http://richarddingwall.name/2008/06/01/using-the-boost-unit-test-framework-with-xcode-3/>. 
-    output << file << ':' << line << ": ";
-#else
-    output << file << '(' << line << "): ";
-#endif
-}
-
-//____________________________________________________________________________//
-
-} // namespace output
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 337a781..0000000
--- a/include/ndnboost/test/impl/cpp_main.ipp
+++ /dev/null
@@ -1,139 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  (C) Copyright Beman Dawes 1995-2001.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : main function implementation for Program Executon Monitor
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_CPP_MAIN_IPP_012205GER
-#define NDNBOOST_TEST_CPP_MAIN_IPP_012205GER
-
-// Boost.Test
-#include <ndnboost/test/execution_monitor.hpp>
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-
-// Boost
-#include <ndnboost/cstdlib.hpp>    // for exit codes
-#include <ndnboost/config.hpp>     // for workarounds
-
-// STL
-#include <iostream>
-#include <cstdlib>      // std::getenv
-#include <cstring>      // std::strerror
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::getenv; using ::strerror; }
-#endif
-
-namespace {
-
-struct cpp_main_caller {
-    cpp_main_caller( int (*cpp_main_func)( int argc, char* argv[] ), int argc, char** argv ) 
-    : m_cpp_main_func( cpp_main_func )
-    , m_argc( argc )
-    , m_argv( argv ) {}
-    
-    int operator()() { return (*m_cpp_main_func)( m_argc, m_argv ); }
-  
-private:
-    // Data members    
-    int (*m_cpp_main_func)( int argc, char* argv[] );
-    int      m_argc;
-    char**   m_argv;
-};
-
-} // local namespace
-
-// ************************************************************************** //
-// **************             prg_exec_monitor_main            ************** //
-// ************************************************************************** //
-
-namespace ndnboost {
-
-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( "NDNBOOST_TEST_CATCH_SYSTEM_ERRORS" ) );
-        ::ndnboost::execution_monitor ex_mon;
-
-        ex_mon.p_catch_system_errors.value = p != "no";
-        
-        result = ex_mon.execute( 
-            ::ndnboost::unit_test::callback0<int>( cpp_main_caller( cpp_main, argc, argv ) ) );
-        
-        if( result == 0 )
-            result = ::ndnboost::exit_success;
-        else if( result != ::ndnboost::exit_success ) {
-            std::cout << "\n**** error return code: " << result << std::endl;
-            result = ::ndnboost::exit_failure;
-        }
-    }
-    catch( ::ndnboost::execution_exception const& exex ) {
-        std::cout << "\n**** exception(" << exex.code() << "): " << exex.what() << std::endl;
-        result = ::ndnboost::exit_exception_failure;
-    }
-    catch( ::ndnboost::system_error const& ex ) {
-        std::cout << "\n**** failed to initialize execution monitor."
-                  << "\n**** expression at fault: " << ex.p_failed_exp 
-                  << "\n**** error(" << ex.p_errno << "): " << std::strerror( ex.p_errno ) << std::endl;
-        result = ::ndnboost::exit_exception_failure;
-    }
-
-    if( result != ::ndnboost::exit_success ) {
-        std::cerr << "******** errors detected; see standard output for details ********" << std::endl;
-    }
-    else {
-        //  Some prefer a confirming message when all is well, while others don't
-        //  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( "NDNBOOST_PRG_MON_CONFIRM" ) );
-        if( p != "no" ) { 
-            std::cerr << std::flush << "no errors detected" << std::endl; 
-        }
-    }
-
-    return result;
-}
-
-} // namespace ndnboost
-
-#if !defined(NDNBOOST_TEST_DYN_LINK) && !defined(NDNBOOST_TEST_NO_MAIN)
-
-// ************************************************************************** //
-// **************        main function for tests using lib     ************** //
-// ************************************************************************** //
-
-int cpp_main( int argc, char* argv[] );  // prototype for user's cpp_main()
-
-int NDNBOOST_TEST_CALL_DECL
-main( int argc, char* argv[] )
-{
-    return ::ndnboost::prg_exec_monitor_main( &cpp_main, argc, argv );
-}
-
-//____________________________________________________________________________//
-
-#endif // !NDNBOOST_TEST_DYN_LINK && !NDNBOOST_TEST_NO_MAIN
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_CPP_MAIN_IPP_012205GER
diff --git a/include/ndnboost/test/impl/debug.ipp b/include/ndnboost/test/impl/debug.ipp
deleted file mode 100644
index 8233149..0000000
--- a/include/ndnboost/test/impl/debug.ipp
+++ /dev/null
@@ -1,970 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2006-2008.
-//  Use, modification, and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : debug interfaces implementation
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_DEBUG_API_IPP_112006GER
-#define NDNBOOST_TEST_DEBUG_API_IPP_112006GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/test/detail/workaround.hpp>
-#include <ndnboost/test/detail/global_typedef.hpp>
-
-#include <ndnboost/test/debug.hpp>
-#include <ndnboost/test/debug_config.hpp>
-
-// Implementation on Windows
-#if defined(_WIN32) && !defined(UNDER_CE) && !defined(NDNBOOST_DISABLE_WIN32) // ******* WIN32
-
-#  define NDNBOOST_WIN32_BASED_DEBUG
-
-// SYSTEM API
-#  include <windows.h>
-#  include <winreg.h>
-#  include <cstdio>
-#  include <cstring>
-
-#  if !defined(NDEBUG) && defined(_MSC_VER)
-#    define NDNBOOST_MS_CRT_BASED_DEBUG
-#    include <crtdbg.h>
-#  endif
-
-
-#  if NDNBOOST_WORKAROUND( NDNBOOST_MSVC, <1300)
-#    define snprintf _snprintf
-#  endif
-
-#  ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::memset; using ::sprintf; }
-#  endif
-
-#elif defined(unix) || defined(__unix) // ********************* UNIX
-
-#  define NDNBOOST_UNIX_BASED_DEBUG
-
-// Boost.Test
-#include <ndnboost/test/utils/class_properties.hpp>
-#include <ndnboost/test/utils/algorithm.hpp>
-
-// STL
-#include <cstring>  // std::memcpy
-#include <map>
-#include <cstdio>
-#include <stdarg.h> // !! ?? cstdarg
-
-// SYSTEM API
-#  include <unistd.h>
-#  include <signal.h>
-#  include <fcntl.h>
-
-#  include <sys/types.h>
-#  include <sys/stat.h>
-#  include <sys/wait.h>
-#  include <sys/time.h>
-#  include <stdio.h>
-#  include <stdlib.h>
-
-#  if defined(sun) || defined(__sun)
-
-#    define NDNBOOST_SUN_BASED_DEBUG
-
-#    ifndef NDNBOOST_TEST_DBG_LIST
-#      define NDNBOOST_TEST_DBG_LIST dbx;gdb
-#    endif
-
-#    define NDNBOOST_TEST_CNL_DBG  dbx
-#    define NDNBOOST_TEST_GUI_DBG  dbx-ddd
-
-#    include <procfs.h>
-
-#  elif defined(linux) || defined(__linux)
-
-#    define NDNBOOST_LINUX_BASED_DEBUG
-
-#    include <sys/ptrace.h>
-
-#    ifndef NDNBOOST_TEST_STAT_LINE_MAX
-#      define NDNBOOST_TEST_STAT_LINE_MAX 500
-#    endif
-
-#    ifndef NDNBOOST_TEST_DBG_LIST
-#      define NDNBOOST_TEST_DBG_LIST gdb
-#    endif
-
-#    define NDNBOOST_TEST_CNL_DBG  gdb
-#    define NDNBOOST_TEST_GUI_DBG  gdb-xterm
-
-#  endif
-
-#endif
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace debug {
-
-using unit_test::const_string;
-
-// ************************************************************************** //
-// **************                debug::info_t                 ************** //
-// ************************************************************************** //
-
-namespace {
-
-#if defined(NDNBOOST_WIN32_BASED_DEBUG) // *********************** WIN32
-
-template<typename T>
-inline void
-dyn_symbol( T& res, char const* module_name, char const* symbol_name )
-{
-    HMODULE m = ::GetModuleHandleA( module_name );
-
-    if( !m )
-        m = ::LoadLibraryA( module_name );
-
-    res = reinterpret_cast<T>( ::GetProcAddress( m, symbol_name ) );
-}
-
-//____________________________________________________________________________//
-
-static struct info_t {
-    typedef BOOL (WINAPI* IsDebuggerPresentT)();
-    typedef LONG (WINAPI* RegQueryValueExT)( HKEY, char const* /*LPTSTR*/, LPDWORD, LPDWORD, LPBYTE, LPDWORD );
-    typedef LONG (WINAPI* RegOpenKeyT)( HKEY, char const* /*LPCTSTR*/, PHKEY );
-    typedef LONG (WINAPI* RegCloseKeyT)( HKEY );
-
-    info_t();
-
-    IsDebuggerPresentT  m_is_debugger_present;
-    RegOpenKeyT         m_reg_open_key;
-    RegQueryValueExT    m_reg_query_value;
-    RegCloseKeyT        m_reg_close_key;
-
-} s_info;
-
-//____________________________________________________________________________//
-
-info_t::info_t()
-{
-    dyn_symbol( m_is_debugger_present, "kernel32", "IsDebuggerPresent" );
-    dyn_symbol( m_reg_open_key, "advapi32", "RegOpenKeyA" );
-    dyn_symbol( m_reg_query_value, "advapi32", "RegQueryValueExA" );
-    dyn_symbol( m_reg_close_key, "advapi32", "RegCloseKey" );
-}
-
-//____________________________________________________________________________//
-
-#elif defined(NDNBOOST_UNIX_BASED_DEBUG)
-
-// ************************************************************************** //
-// **************                   fd_holder                  ************** //
-// ************************************************************************** //
-
-struct fd_holder {
-    explicit fd_holder( int fd ) : m_fd( fd ) {}
-    ~fd_holder()
-    {
-        if( m_fd != -1 )
-            ::close( m_fd );
-    }
-
-    operator int() { return m_fd; }
-
-private:
-    // Data members
-    int m_fd;
-};
-
-
-// ************************************************************************** //
-// **************                 process_info                 ************** //
-// ************************************************************************** //
-
-struct process_info {
-    // Constructor
-    explicit        process_info( int pid );
-
-    // access methods
-    int             parent_pid() const  { return m_parent_pid; }
-    const_string    binary_name() const { return m_binary_name; }
-    const_string    binary_path() const { return m_binary_path; }
-
-private:
-    // Data members
-    int             m_parent_pid;
-    const_string    m_binary_name;
-    const_string    m_binary_path;
-
-#if defined(NDNBOOST_SUN_BASED_DEBUG)
-    struct psinfo   m_psi;
-#elif defined(NDNBOOST_LINUX_BASED_DEBUG)
-    char            m_stat_line[NDNBOOST_TEST_STAT_LINE_MAX+1];
-#endif
-    char            m_binary_path_buff[500+1]; // !! ??
-};
-
-//____________________________________________________________________________//
-
-process_info::process_info( int pid )
-: m_parent_pid( 0 )
-{
-#if defined(NDNBOOST_SUN_BASED_DEBUG)
-    char fname_buff[30];
-
-    ::snprintf( fname_buff, sizeof(fname_buff), "/proc/%d/psinfo", pid );
-
-    fd_holder psinfo_fd( ::open( fname_buff, O_RDONLY ) );
-
-    if( psinfo_fd == -1 )
-        return;
-
-    if( ::read( psinfo_fd, &m_psi, sizeof(m_psi) ) == -1 )
-        return;
-
-    m_parent_pid = m_psi.pr_ppid;
-
-    m_binary_name.assign( m_psi.pr_fname );
-
-    //-------------------------- //
-    
-    ::snprintf( fname_buff, sizeof(fname_buff), "/proc/%d/as", pid );
-
-    fd_holder as_fd( ::open( fname_buff, O_RDONLY ) );
-    uintptr_t   binary_name_pos;
-  
-    // !! ?? could we avoid reading whole m_binary_path_buff?
-    if( as_fd == -1 ||
-        ::lseek( as_fd, m_psi.pr_argv, SEEK_SET ) == -1 ||
-        ::read ( as_fd, &binary_name_pos, sizeof(binary_name_pos) ) == -1 ||
-        ::lseek( as_fd, binary_name_pos, SEEK_SET ) == -1 ||
-        ::read ( as_fd, m_binary_path_buff, sizeof(m_binary_path_buff) ) == -1 )
-        return;
-        
-    m_binary_path.assign( m_binary_path_buff );
-        
-#elif defined(NDNBOOST_LINUX_BASED_DEBUG)
-    char fname_buff[30];
-
-    ::snprintf( fname_buff, sizeof(fname_buff), "/proc/%d/stat", pid );
-
-    fd_holder psinfo_fd( ::open( fname_buff, O_RDONLY ) );
-
-    if( psinfo_fd == -1 )
-        return;
-
-    ssize_t num_read = ::read( psinfo_fd, m_stat_line, sizeof(m_stat_line)-1 );
-    if( num_read == -1 )
-        return;
-
-    m_stat_line[num_read] = 0;
-
-    char const* name_beg = m_stat_line;
-    while( *name_beg && *name_beg != '(' )
-        ++name_beg;
-
-    char const* name_end = name_beg+1;
-    while( *name_end && *name_end != ')' )
-        ++name_end;
-
-    std::sscanf( name_end+1, "%*s%d", &m_parent_pid );
-
-    m_binary_name.assign( name_beg+1, name_end );
-
-    ::snprintf( fname_buff, sizeof(fname_buff), "/proc/%d/exe", pid );
-    num_read = ::readlink( fname_buff, m_binary_path_buff, sizeof(m_binary_path_buff)-1 );
-
-    if( num_read == -1 )
-        return;
-
-    m_binary_path_buff[num_read] = 0;
-    m_binary_path.assign( m_binary_path_buff, num_read );
-#endif
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************             prepare_window_title             ************** //
-// ************************************************************************** //
-
-static char*
-prepare_window_title( dbg_startup_info const& dsi )
-{
-    typedef unit_test::const_string str_t;
-
-    static char title_str[50];
-
-    str_t path_sep( "\\/" );
-
-    str_t::iterator  it = unit_test::find_last_of( dsi.binary_path.begin(), dsi.binary_path.end(),
-                                                   path_sep.begin(), path_sep.end() );
-
-    if( it == dsi.binary_path.end() )
-        it = dsi.binary_path.begin();
-    else
-        ++it;
-
-    ::snprintf( title_str, sizeof(title_str), "%*s %ld", (int)(dsi.binary_path.end()-it), it, dsi.pid );
-
-    return title_str;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  save_execlp                 ************** //
-// ************************************************************************** //
-
-typedef unit_test::basic_cstring<char> mbuffer;
-
-inline char*
-copy_arg( mbuffer& dest, const_string arg )
-{
-    if( dest.size() < arg.size()+1 )
-        return 0;
-
-    char* res = dest.begin();
-
-    std::memcpy( res, arg.begin(), arg.size()+1 );
-
-    dest.trim_left( arg.size()+1 );
-
-    return res;
-}
-
-//____________________________________________________________________________//
-
-bool
-safe_execlp( char const* file, ... )
-{
-    static char* argv_buff[200];
-
-    va_list     args;
-    char const* arg;
-
-    // first calculate actual number of arguments
-    int         num_args = 2; // file name and 0 at least
-
-    va_start( args, file );
-    while( !!(arg = va_arg( args, char const* )) )
-        num_args++;
-    va_end( args );
-
-    // reserve space for the argument pointers array
-    char**      argv_it  = argv_buff;
-    mbuffer     work_buff( reinterpret_cast<char*>(argv_buff), sizeof(argv_buff) );
-    work_buff.trim_left( num_args * sizeof(char*) );
-
-    // copy all the argument values into local storage
-    if( !(*argv_it++ = copy_arg( work_buff, file )) )
-        return false;
-
-    printf( "!! %s\n", file );
-
-    va_start( args, file );
-    while( !!(arg = va_arg( args, char const* )) ) {
-        printf( "!! %s\n", arg );
-        if( !(*argv_it++ = copy_arg( work_buff, arg )) )
-            return false;
-    }
-    va_end( args );
-
-    *argv_it = 0;
-
-    return ::execvp( file, argv_buff ) != -1;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************            start_debugger_in_emacs           ************** //
-// ************************************************************************** //
-
-static void
-start_debugger_in_emacs( dbg_startup_info const& dsi, char const* emacs_name, char const* dbg_command )
-{
-    char const* title = prepare_window_title( dsi );
-
-    if( !title )
-        return;
-
-    dsi.display.is_empty()
-        ? safe_execlp( emacs_name, "-title", title, "--eval", dbg_command, 0 )
-        : safe_execlp( emacs_name, "-title", title, "-display", dsi.display.begin(), "--eval", dbg_command, 0 );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                 gdb starters                 ************** //
-// ************************************************************************** //
-
-static char const*
-prepare_gdb_cmnd_file( dbg_startup_info const& dsi )
-{
-    // prepare pid value
-    char pid_buff[16];
-    ::snprintf( pid_buff, sizeof(pid_buff), "%ld", dsi.pid );
-    unit_test::const_string pid_str( pid_buff );
-
-    static char cmd_file_name[] = "/tmp/btl_gdb_cmd_XXXXXX"; // !! ??
-
-    // prepare commands
-    fd_holder cmd_fd( ::mkstemp( cmd_file_name ) );
-
-    if( cmd_fd == -1 )
-        return 0;
-
-#define WRITE_STR( str )  if( ::write( cmd_fd, str.begin(), str.size() ) == -1 ) return 0;
-#define WRITE_CSTR( str ) if( ::write( cmd_fd, str, sizeof( str )-1 ) == -1 ) return 0;
-
-    WRITE_CSTR( "file " );
-    WRITE_STR( dsi.binary_path );
-    WRITE_CSTR( "\nattach " );
-    WRITE_STR( pid_str );
-    WRITE_CSTR( "\nshell unlink " );
-    WRITE_STR( dsi.init_done_lock );
-    WRITE_CSTR( "\ncont" );
-    if( dsi.break_or_continue )
-        WRITE_CSTR( "\nup 4" );
-            
-    WRITE_CSTR( "\necho \\n" ); // !! ??
-    WRITE_CSTR( "\nlist -" );
-    WRITE_CSTR( "\nlist" );
-    WRITE_CSTR( "\nshell unlink " );
-    WRITE_CSTR( cmd_file_name );
-
-    return cmd_file_name;
-}
-
-//____________________________________________________________________________//
-
-static void
-start_gdb_in_console( dbg_startup_info const& dsi )
-{
-    char const* cmnd_file_name = prepare_gdb_cmnd_file( dsi );
-
-    if( !cmnd_file_name )
-        return;
-
-    safe_execlp( "gdb", "-q", "-x", cmnd_file_name, 0 );
-}
-
-//____________________________________________________________________________//
-
-static void
-start_gdb_in_xterm( dbg_startup_info const& dsi )
-{
-    char const* title           = prepare_window_title( dsi );
-    char const* cmnd_file_name  = prepare_gdb_cmnd_file( dsi );
-
-    if( !title || !cmnd_file_name )
-        return;
-
-    safe_execlp( "xterm", "-T", title, "-display", dsi.display.begin(),
-                    "-bg", "black", "-fg", "white", "-geometry", "88x30+10+10", "-fn", "9x15", "-e",
-                 "gdb", "-q", "-x", cmnd_file_name, 0 );
-}
-
-//____________________________________________________________________________//
-
-static void
-start_gdb_in_emacs( dbg_startup_info const& dsi )
-{
-    char const* cmnd_file_name  = prepare_gdb_cmnd_file( dsi );
-    if( !cmnd_file_name )
-        return;
-
-    char dbg_cmd_buff[500]; // !! ??
-    ::snprintf( dbg_cmd_buff, sizeof(dbg_cmd_buff), "(progn (gdb \"gdb -q -x %s\"))", cmnd_file_name );
-
-    start_debugger_in_emacs( dsi, "emacs", dbg_cmd_buff );
-}
-
-//____________________________________________________________________________//
-
-static void
-start_gdb_in_xemacs( dbg_startup_info const& )
-{
-    // !! ??
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                 dbx starters                 ************** //
-// ************************************************************************** //
-
-static char const*
-prepare_dbx_cmd_line( dbg_startup_info const& dsi, bool list_source = true )
-{
-    static char cmd_line_buff[500]; // !! ??
-
-    ::snprintf( cmd_line_buff, sizeof(cmd_line_buff), "unlink %s;cont;%s%s", 
-                   dsi.init_done_lock.begin(), 
-                   dsi.break_or_continue ? "up 2;": "", 
-                   list_source ? "echo \" \";list -w3;" : "" );
-
-    return cmd_line_buff;
-}
-
-//____________________________________________________________________________//
-
-static void
-start_dbx_in_console( dbg_startup_info const& dsi )
-{
-    char pid_buff[16];
-    ::snprintf( pid_buff, sizeof(pid_buff), "%ld", dsi.pid );
-
-    safe_execlp( "dbx", "-q", "-c", prepare_dbx_cmd_line( dsi ), dsi.binary_path.begin(), pid_buff, 0 );
-}
-
-//____________________________________________________________________________//
-
-static void
-start_dbx_in_xterm( dbg_startup_info const& dsi )
-{
-    char const* title = prepare_window_title( dsi );
-    if( !title )
-        return;
-
-    char pid_buff[16]; // !! ??
-    ::snprintf( pid_buff, sizeof(pid_buff), "%ld", dsi.pid );
-    
-    safe_execlp( "xterm", "-T", title, "-display", dsi.display.begin(), 
-                    "-bg", "black", "-fg", "white", "-geometry", "88x30+10+10", "-fn", "9x15", "-e",
-                 "dbx", "-q", "-c", prepare_dbx_cmd_line( dsi ), dsi.binary_path.begin(), pid_buff, 0 );
-}
-
-//____________________________________________________________________________//
-
-static void
-start_dbx_in_emacs( dbg_startup_info const& /*dsi*/ )
-{
-//    char dbg_cmd_buff[500]; // !! ??
-//
-//    ::snprintf( dbg_cmd_buff, sizeof(dbg_cmd_buff), "(progn (dbx \"dbx -q -c cont %s %ld\"))", dsi.binary_path.begin(), dsi.pid );
-
-//    start_debugger_in_emacs( dsi, "emacs", dbg_cmd_buff );
-}
-
-//____________________________________________________________________________//
-
-static void
-start_dbx_in_xemacs( dbg_startup_info const& )
-{
-    // !! ??
-}
-
-//____________________________________________________________________________//
-
-static void
-start_dbx_in_ddd( dbg_startup_info const& dsi )
-{
-    char const* title = prepare_window_title( dsi );
-    if( !title )
-        return;
-
-    char pid_buff[16]; // !! ??
-    ::snprintf( pid_buff, sizeof(pid_buff), "%ld", dsi.pid );
-    
-    safe_execlp( "ddd", "-display", dsi.display.begin(),
-                 "--dbx", "-q", "-c", prepare_dbx_cmd_line( dsi, false ), dsi.binary_path.begin(), pid_buff, 0 );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                debug::info_t                 ************** //
-// ************************************************************************** //
-
-static struct info_t {
-    // Constructor
-    info_t();
-
-    // Public properties
-    unit_test::readwrite_property<std::string>  p_dbg;
-    
-    // Data members
-    std::map<std::string,dbg_starter>           m_dbg_starter_reg;
-} s_info;
-
-//____________________________________________________________________________//
-
-info_t::info_t()
-{
-    p_dbg.value = ::getenv( "DISPLAY" )
-        ? 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;
-    m_dbg_starter_reg[std::string("gdb-xterm")]     = &start_gdb_in_xterm;
-    m_dbg_starter_reg[std::string("gdb-xemacs")]    = &start_gdb_in_xemacs;
-
-    m_dbg_starter_reg[std::string("dbx")]           = &start_dbx_in_console;
-    m_dbg_starter_reg[std::string("dbx-emacs")]     = &start_dbx_in_emacs;
-    m_dbg_starter_reg[std::string("dbx-xterm")]     = &start_dbx_in_xterm;
-    m_dbg_starter_reg[std::string("dbx-xemacs")]    = &start_dbx_in_xemacs;
-    m_dbg_starter_reg[std::string("dbx-ddd")]       = &start_dbx_in_ddd;
-}
-
-//____________________________________________________________________________//
-
-#endif
-
-} // local namespace
-
-// ************************************************************************** //
-// **************  check if program is running under debugger  ************** //
-// ************************************************************************** //
-
-bool
-under_debugger()
-{
-#if defined(NDNBOOST_WIN32_BASED_DEBUG) // *********************** WIN32
-
-    return !!s_info.m_is_debugger_present && s_info.m_is_debugger_present();
-
-#elif defined(NDNBOOST_UNIX_BASED_DEBUG) // ********************** UNIX
-
-    // !! ?? could/should we cache the result somehow?
-    const_string    dbg_list = NDNBOOST_TEST_STRINGIZE( NDNBOOST_TEST_DBG_LIST );
-
-    pid_t pid = ::getpid();
-
-    while( pid != 0 ) {
-        process_info pi( pid );
-
-        // !! ?? should we use tokenizer here instead?
-        if( dbg_list.find( pi.binary_name() ) != const_string::npos )
-            return true;
-
-        pid = (pi.parent_pid() == pid ? 0 : pi.parent_pid());
-    }
-
-    return false;
-
-#else // ****************************************************** default
-
-    return false;
-
-#endif
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************       cause program to break execution       ************** //
-// **************           in debugger at call point          ************** //
-// ************************************************************************** //
-
-void
-debugger_break()
-{
-    // !! ?? auto-start debugger?
-
-#if defined(NDNBOOST_WIN32_BASED_DEBUG) // *********************** WIN32
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, >= 1300)                       ||  \
-    NDNBOOST_WORKAROUND(__GNUC__, >= 3) && !defined(__MINGW32__)   ||  \
-    defined(__INTEL_COMPILER)
-#   define NDNBOOST_DEBUG_BREAK    __debugbreak
-#else
-#   define NDNBOOST_DEBUG_BREAK    DebugBreak
-#endif
-
-#ifndef __MINGW32__
-    if( !under_debugger() ) {
-        __try {
-            __try {
-                NDNBOOST_DEBUG_BREAK();
-            }
-            __except( UnhandledExceptionFilter(GetExceptionInformation()) )
-            {
-                // User opted to ignore the breakpoint
-                return;
-            }
-        }
-        __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 NDNBOOST_DEBUG_BREAK to be called.
-        }
-    }
-#endif
-
-    NDNBOOST_DEBUG_BREAK();
-
-#elif defined(NDNBOOST_UNIX_BASED_DEBUG) // ********************** UNIX
-
-    ::kill( ::getpid(), SIGTRAP );
-
-#else // ****************************************************** default
-
-#endif
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************            console debugger setup            ************** //
-// ************************************************************************** //
-
-#if defined(NDNBOOST_UNIX_BASED_DEBUG) // ************************ UNIX
-
-std::string
-set_debugger( unit_test::const_string dbg_id, dbg_starter s )
-{
-    std::string old = s_info.p_dbg;
-
-    assign_op( s_info.p_dbg.value, dbg_id, 0 );
-
-    if( !!s )
-        s_info.m_dbg_starter_reg[s_info.p_dbg] = s;
-
-    return old;
-}
-
-#else  // ***************************************************** default
-
-std::string
-set_debugger( unit_test::const_string, dbg_starter )
-{
-    return std::string();
-}
-
-#endif
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************    attach debugger to the current process    ************** //
-// ************************************************************************** //
-
-bool
-attach_debugger( bool break_or_continue )
-{
-    if( under_debugger() )
-        return false;
-
-#if defined(NDNBOOST_WIN32_BASED_DEBUG) // *********************** WIN32
-
-    const int MAX_CMD_LINE = 200;
-
-    // *************************************************** //
-    // Debugger "ready" event
-
-    SECURITY_ATTRIBUTES attr;
-    attr.nLength                = sizeof(attr);
-    attr.lpSecurityDescriptor   = NULL;
-    attr.bInheritHandle         = true;
-
-    // manual resettable, initially non signaled, unnamed event,
-    // that will signal me that debugger initialization is done
-    HANDLE dbg_init_done_ev = ::CreateEvent(
-        &attr,          // pointer to security attributes
-        true,           // flag for manual-reset event
-        false,          // flag for initial state
-        NULL            // pointer to event-object name
-    );
-
-    if( !dbg_init_done_ev )
-        return false;
-
-    // *************************************************** //
-    // Debugger command line format
-
-    HKEY reg_key;
-
-    if( !s_info.m_reg_open_key || (*s_info.m_reg_open_key)(
-            HKEY_LOCAL_MACHINE,                                         // handle of open key
-            "Software\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug", // name of subkey to open
-            &reg_key ) != ERROR_SUCCESS )                               // address of handle of open key
-        return false;
-
-    char  format[MAX_CMD_LINE];
-    DWORD format_size = MAX_CMD_LINE;
-    DWORD type = REG_SZ;
-
-    if( !s_info.m_reg_query_value || (*s_info.m_reg_query_value)(
-            reg_key,                            // handle of open key
-            "Debugger",                         // name of subkey to query
-            0,                                  // reserved
-            &type,                              // value type
-            (LPBYTE)format,                     // buffer for returned string
-            &format_size ) != ERROR_SUCCESS )   // in: buffer size; out: actual size of returned string
-        return false;
-
-    if( !s_info.m_reg_close_key || (*s_info.m_reg_close_key)( reg_key ) != ERROR_SUCCESS )
-        return false;
-
-    // *************************************************** //
-    // Debugger command line
-
-    char cmd_line[MAX_CMD_LINE];
-    std::sprintf( cmd_line, format, ::GetCurrentProcessId(), dbg_init_done_ev );
-
-    // *************************************************** //
-    // Debugger window parameters
-
-    STARTUPINFOA    startup_info;
-    std::memset( &startup_info, 0, sizeof(startup_info) );
-
-    startup_info.cb             = sizeof(startup_info);
-    startup_info.dwFlags        = STARTF_USESHOWWINDOW;
-    startup_info.wShowWindow    = SW_SHOWNORMAL;
-
-    // debugger process s_info
-    PROCESS_INFORMATION debugger_info;
-
-    bool created = !!::CreateProcessA(
-        NULL,           // pointer to name of executable module; NULL - use the one in command line
-        cmd_line,       // pointer to command line string
-        NULL,           // pointer to process security attributes; NULL - debugger's handle can't be inherited
-        NULL,           // pointer to thread security attributes; NULL - debugger's handle can't be inherited
-        true,           // debugger inherit opened handles
-        0,              // priority flags; 0 - normal priority
-        NULL,           // pointer to new environment block; NULL - use this process environment
-        NULL,           // pointer to current directory name; NULL - use this process correct directory
-        &startup_info,  // pointer to STARTUPINFO that specifies main window appearance
-        &debugger_info  // pointer to PROCESS_INFORMATION that will contain the new process identification
-    );
-
-    if( created )
-        ::WaitForSingleObject( dbg_init_done_ev, INFINITE );
-
-    ::CloseHandle( dbg_init_done_ev );
-
-    if( !created )
-        return false;
-
-    if( break_or_continue )
-        debugger_break();
-
-    return true;
-
-#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 ) );
-
-    if( init_done_lock_fd == -1 )
-        return false;
-    
-    pid_t child_pid = fork();
-
-    if( child_pid == -1 )
-        return false;
-
-    if( child_pid != 0 ) { // parent process - here we will start the debugger
-        dbg_startup_info dsi;
-    
-        process_info pi( child_pid );
-        if( pi.binary_path().is_empty() )
-            ::exit( -1 );
-
-        dsi.pid                 = child_pid;
-        dsi.break_or_continue   = break_or_continue;
-        dsi.binary_path         = pi.binary_path();
-        dsi.display             = ::getenv( "DISPLAY" );
-        dsi.init_done_lock      = init_done_lock_fn;
-        
-        dbg_starter starter = s_info.m_dbg_starter_reg[s_info.p_dbg];
-        if( !!starter )
-            starter( dsi );
-
-        ::perror( "Boost.Test execution monitor failed to start a debugger:" );
-
-        ::exit( -1 );
-    }
-
-    // child process - here we will continue our test module execution ; // !! ?? should it be vice versa
-
-    while( ::access( init_done_lock_fn, F_OK ) == 0 ) {
-        struct timeval to = { 0, 100 };
-
-        ::select( 0, 0, 0, 0, &to );
-    }
-
-//    char dummy;
-//    while( ::read( init_done_lock_fd, &dummy, sizeof(char) ) == 0 );
-
-    if( break_or_continue )
-        debugger_break();
-
-    return true;
-
-#else // ****************************************************** default
-
-    return false;
-
-#endif
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************   switch on/off detect memory leaks feature  ************** //
-// ************************************************************************** //
-
-void
-detect_memory_leaks( bool on_off )
-{
-    unit_test::ut_detail::ignore_unused_variable_warning( on_off );
-
-#ifdef NDNBOOST_MS_CRT_BASED_DEBUG
-    int flags = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
-
-    if( !on_off )
-        flags &= ~_CRTDBG_LEAK_CHECK_DF;
-    else  {
-        flags |= _CRTDBG_LEAK_CHECK_DF;
-        _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
-        _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT);
-    }
-
-    _CrtSetDbgFlag ( flags );
-#endif // NDNBOOST_MS_CRT_BASED_DEBUG
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************      cause program to break execution in     ************** //
-// **************     debugger at specific allocation point    ************** //
-// ************************************************************************** //
-
-void
-break_memory_alloc( long mem_alloc_order_num )
-{
-    unit_test::ut_detail::ignore_unused_variable_warning( mem_alloc_order_num );
-
-#ifdef NDNBOOST_MS_CRT_BASED_DEBUG
-    _CrtSetBreakAlloc( mem_alloc_order_num );
-#endif // NDNBOOST_MS_CRT_BASED_DEBUG
-}
-
-} // namespace debug
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 1c36385..0000000
--- a/include/ndnboost/test/impl/exception_safety.ipp
+++ /dev/null
@@ -1,537 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : Facilities to perform exception safety tests
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_EXECUTION_SAFETY_IPP_112005GER
-#define NDNBOOST_TEST_EXECUTION_SAFETY_IPP_112005GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-
-#if NDNBOOST_TEST_SUPPORT_INTERACTION_TESTING
-
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/detail/unit_test_parameters.hpp>
-
-#include <ndnboost/test/utils/callback.hpp>
-#include <ndnboost/test/utils/wrap_stringstream.hpp>
-#include <ndnboost/test/utils/iterator/token_iterator.hpp>
-
-#include <ndnboost/test/interaction_based.hpp>
-#include <ndnboost/test/test_tools.hpp>
-#include <ndnboost/test/unit_test_log.hpp>
-#include <ndnboost/test/framework.hpp>
-#include <ndnboost/test/test_observer.hpp>
-#include <ndnboost/test/debug.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-// Boost
-#include <ndnboost/lexical_cast.hpp>
-
-// STL
-#include <vector>
-#include <cstdlib>
-#include <map>
-#include <iomanip>
-#include <cctype>
-#include <ndnboost/limits.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-using namespace ::ndnboost::unit_test;
- 
-namespace itest {
-
-// ************************************************************************** //
-// **************             execution_path_point             ************** //
-// ************************************************************************** //
-
-enum exec_path_point_type { EPP_SCOPE, EPP_EXCEPT, EPP_DECISION, EPP_ALLOC };
-
-struct execution_path_point {
-    execution_path_point( exec_path_point_type t, const_string file, std::size_t line_num )
-    : m_type( t )
-    , m_file_name( file )
-    , m_line_num( line_num )
-    {}
-
-    exec_path_point_type    m_type;
-    const_string             m_file_name;
-    std::size_t             m_line_num;
-
-    // Execution path point specific
-    struct decision_data {
-        bool            value;
-        unsigned        forced_exception_point;
-    };
-    struct scope_data {
-        unsigned        size;
-        char const*     name;
-    };
-    struct except_data {
-        char const*     description;
-    };
-    struct alloc_data {
-        void*           ptr;
-        std::size_t     size;
-    };
-
-    union {
-        struct decision_data    m_decision;
-        struct scope_data       m_scope;
-        struct except_data      m_except;
-        struct alloc_data       m_alloc;
-    };
-};
-
-// ************************************************************************** //
-// **************     exception safety test implementation     ************** //
-// ************************************************************************** //
-
-struct exception_safety_tester : itest::manager, test_observer {
-    // helpers types
-    struct unique_exception {};
-
-    // Constructor
-    explicit            exception_safety_tester( const_string test_name );
-    ~exception_safety_tester();
-
-    // check last run and prepare for next
-    bool                next_execution_path();
-
-    // memory tracking
-
-    // manager interface implementation
-    virtual void        exception_point( const_string file, std::size_t line_num, const_string description );
-    virtual bool        decision_point( const_string file, std::size_t line_num );
-    virtual unsigned    enter_scope( const_string file, std::size_t line_num, const_string scope_name );
-    virtual void        leave_scope( unsigned enter_scope_point );
-    virtual void        allocated( const_string file, std::size_t line_num, void* p, std::size_t s );
-    virtual void        freed( void* p );
-
-    // test observer interface
-    virtual void        assertion_result( bool passed );
-    virtual int         priority() { return (std::numeric_limits<int>::max)(); } // we want this observer to run the last
-
-private:
-    void                failure_point();
-    void                report_error();
-
-    typedef std::vector<execution_path_point>   exec_path;
-    typedef std::map<void*,unsigned>            registry;
-
-    // Data members
-    bool        m_internal_activity;
-    
-    unsigned    m_exception_point_counter;
-    unsigned    m_forced_exception_point;
-
-    unsigned    m_exec_path_point;
-    exec_path   m_execution_path;
-
-    unsigned    m_exec_path_counter;
-    unsigned    m_break_exec_path;
-    
-    bool        m_invairant_failed;
-    registry    m_memory_in_use;
-};
-
-//____________________________________________________________________________//
-
-struct activity_guard {
-    bool& m_v;
-
-    activity_guard( bool& v ) : m_v( v )    { m_v = true; }
-    ~activity_guard()                       { m_v = false; }
-};
-
-//____________________________________________________________________________//
-
-exception_safety_tester::exception_safety_tester( const_string test_name )
-: m_internal_activity( true )
-, m_exception_point_counter( 0 )
-, m_forced_exception_point( 1 )
-, m_exec_path_point( 0 )
-, m_exec_path_counter( 1 )
-, m_break_exec_path( static_cast<unsigned>(-1) )
-, m_invairant_failed( false )
-{
-    framework::register_observer( *this );
-
-    if( !runtime_config::break_exec_path().is_empty() ) {
-        using namespace unit_test;
-        
-        string_token_iterator tit( runtime_config::break_exec_path(), 
-                                   (dropped_delimeters = ":",kept_delimeters = " ") );
-        
-        const_string test_to_break = *tit;
-        
-        if( test_to_break == test_name ) {
-            ++tit;
-            
-            m_break_exec_path = lexical_cast<unsigned>( *tit );
-        }
-    }
-    
-    m_internal_activity = false;
-}
-
-//____________________________________________________________________________//
-
-exception_safety_tester::~exception_safety_tester()
-{
-    m_internal_activity = true;
-    
-    framework::deregister_observer( *this );
-}
-
-//____________________________________________________________________________//
-
-bool
-exception_safety_tester::next_execution_path()
-{
-    activity_guard ag( m_internal_activity );
-
-    // check memory usage
-    if( m_execution_path.size() > 0 ) {
-        bool errors_detected = m_invairant_failed || (m_memory_in_use.size() != 0);
-        framework::assertion_result( !errors_detected );
-
-        if( errors_detected )
-            report_error();
-
-        m_memory_in_use.clear();
-    }
-
-    m_exec_path_point           = 0;
-    m_exception_point_counter   = 0;
-    m_invairant_failed          = false;
-    ++m_exec_path_counter;
-
-    while( m_execution_path.size() > 0 ) {
-        switch( m_execution_path.back().m_type ) {
-        case EPP_SCOPE:
-        case EPP_ALLOC:
-            m_execution_path.pop_back();
-            break;
-
-        case EPP_DECISION:
-            if( !m_execution_path.back().m_decision.value ) {
-                m_execution_path.pop_back();
-                break;
-            }
-
-            m_execution_path.back().m_decision.value = false;
-            m_forced_exception_point = m_execution_path.back().m_decision.forced_exception_point;
-            return true;
-
-        case EPP_EXCEPT:
-            m_execution_path.pop_back();
-            ++m_forced_exception_point;
-            return true;
-        }
-    }
-
-    NDNBOOST_TEST_MESSAGE( "Total tested " << --m_exec_path_counter << " execution path" );
-
-    return false;
-}
-
-//____________________________________________________________________________//
-
-void
-exception_safety_tester::exception_point( const_string file, std::size_t line_num, const_string description )
-{
-    activity_guard ag( m_internal_activity );
-
-    if( ++m_exception_point_counter == m_forced_exception_point ) {
-        m_execution_path.push_back(
-            execution_path_point( EPP_EXCEPT, file, line_num ) );
-
-        m_execution_path.back().m_except.description = description.begin();
-
-        ++m_exec_path_point;
-
-        failure_point();
-    }
-}
-
-//____________________________________________________________________________//
-
-bool
-exception_safety_tester::decision_point( const_string file, std::size_t line_num )
-{
-    activity_guard ag( m_internal_activity );
-
-    if( m_exec_path_point < m_execution_path.size() ) {
-        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" );
-    }
-    else {
-        m_execution_path.push_back(
-            execution_path_point( EPP_DECISION, file, line_num ) );
-
-        m_execution_path.back().m_decision.value = true;
-        m_execution_path.back().m_decision.forced_exception_point = m_forced_exception_point;
-    }
-
-    return m_execution_path[m_exec_path_point++].m_decision.value;
-}
-
-//____________________________________________________________________________//
-
-unsigned
-exception_safety_tester::enter_scope( const_string file, std::size_t line_num, const_string scope_name )
-{
-    activity_guard ag( m_internal_activity );
-
-    if( m_exec_path_point < m_execution_path.size() ) {
-        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" );
-    }
-    else {
-        m_execution_path.push_back(
-            execution_path_point( EPP_SCOPE, file, line_num ) );
-    }
-
-    m_execution_path[m_exec_path_point].m_scope.size = 0;
-    m_execution_path[m_exec_path_point].m_scope.name = scope_name.begin();
-
-    return m_exec_path_point++;
-}
-
-//____________________________________________________________________________//
-
-void
-exception_safety_tester::leave_scope( unsigned enter_scope_point )
-{
-    activity_guard ag( m_internal_activity );
-
-    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;
-}
-
-//____________________________________________________________________________//
-
-void
-exception_safety_tester::allocated( const_string file, std::size_t line_num, void* p, std::size_t s )
-{
-    if( m_internal_activity )
-        return;
-
-    activity_guard ag( m_internal_activity );
-
-    if( m_exec_path_point < m_execution_path.size() )
-        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(
-            execution_path_point( EPP_ALLOC, file, line_num ) );
-
-    m_execution_path[m_exec_path_point].m_alloc.ptr  = p;
-    m_execution_path[m_exec_path_point].m_alloc.size = s;
-
-    m_memory_in_use.insert( std::make_pair( p, m_exec_path_point++ ) );
-}
-
-//____________________________________________________________________________//
-
-void
-exception_safety_tester::freed( void* p )
-{
-    if( m_internal_activity )
-        return;
-
-    activity_guard ag( m_internal_activity );
-
-    registry::iterator it = m_memory_in_use.find( p );
-    if( it != m_memory_in_use.end() ) {
-        m_execution_path[it->second].m_alloc.ptr = 0;
-        m_memory_in_use.erase( it );
-    }
-}
-
-//____________________________________________________________________________//
-
-void
-exception_safety_tester::assertion_result( bool passed )
-{
-    if( !m_internal_activity && !passed ) {
-        m_invairant_failed = true;
-
-        failure_point();
-    }
-}
-
-//____________________________________________________________________________//
-
-void
-exception_safety_tester::failure_point()
-{
-    if( m_exec_path_counter == m_break_exec_path )
-        debug::debugger_break();
-    
-    throw unique_exception();
-}
-
-//____________________________________________________________________________//
-    
-namespace {
-
-inline void
-format_location( wrap_stringstream& formatter, execution_path_point const& /*p*/, unsigned indent )
-{
-    if( indent )
-        formatter << std::left << std::setw( indent ) << "";
-
-// !! ?? optional   if( p.m_file_name )
-//        formatter << p.m_file_name << '(' << p.m_line_num << "): ";
-}
-
-//____________________________________________________________________________//
-
-template<typename ExecPathIt>
-inline void
-format_execution_path( wrap_stringstream& formatter, ExecPathIt it, ExecPathIt end, unsigned indent = 0 )
-{
-    while( it != end ) {
-        switch( it->m_type ) {
-        case EPP_SCOPE:
-            format_location( formatter, *it, indent );
-            formatter << "> \"" << it->m_scope.name << "\"\n";
-            format_execution_path( formatter, it+1, it + it->m_scope.size, indent + 2 );
-            format_location( formatter, *it, indent );
-            formatter << "< \"" << it->m_scope.name << "\"\n";
-            it += it->m_scope.size;
-            break;
-
-        case EPP_DECISION:
-            format_location( formatter, *it, indent );
-            formatter << "Decision made as " << std::boolalpha << it->m_decision.value << '\n';
-            ++it;
-            break;
-
-        case EPP_EXCEPT:
-            format_location( formatter, *it, indent );
-            formatter << "Forced failure";
-            if( it->m_except.description )
-                formatter << ": " << it->m_except.description;
-            formatter << "\n";
-            ++it;
-            break;
-
-        case EPP_ALLOC:
-            if( it->m_alloc.ptr ) {
-                format_location( formatter, *it, indent );
-                formatter << "Allocated memory block 0x" << std::uppercase << it->m_alloc.ptr 
-                          << ", " << it->m_alloc.size << " bytes long: <";
-
-                unsigned i;
-                for( i = 0; i < std::min<std::size_t>( it->m_alloc.size, 8 ); i++ ) {
-                    unsigned char c = static_cast<unsigned char*>(it->m_alloc.ptr)[i];
-                    if( (std::isprint)( c ) )
-                        formatter << c;
-                    else
-                        formatter << '.';
-                }
-
-                formatter << "> ";
-
-                for( i = 0; i < std::min<std::size_t>( it->m_alloc.size, 8 ); i++ ) {
-                    unsigned c = static_cast<unsigned char*>(it->m_alloc.ptr)[i];
-                    formatter << std::hex << std::uppercase << c << ' ';
-                }
-
-                formatter << "\n";
-            }
-            ++it;
-            break;
-        }
-    }
-}
-
-//____________________________________________________________________________//
-
-} // local namespace
-
-void
-exception_safety_tester::report_error()
-{
-    activity_guard ag( m_internal_activity );
-
-    unit_test_log << unit_test::log::begin( m_execution_path.back().m_file_name,
-                                            m_execution_path.back().m_line_num )
-                  << log_all_errors;
-
-    wrap_stringstream formatter;
-
-    if( m_invairant_failed )
-        formatter << "Failed invariant";
-
-    if( m_memory_in_use.size() != 0 ) {
-        if( m_invairant_failed )
-            formatter << " and ";
-
-        formatter << static_cast<unsigned int>(m_memory_in_use.size()) << " memory leak";
-        if( m_memory_in_use.size() > 1 )
-            formatter << 's';
-    }
-    formatter << " detected in the execution path " << m_exec_path_counter << ":\n";
-
-    format_execution_path( formatter, m_execution_path.begin(), m_execution_path.end() );
-
-    unit_test_log << const_string( formatter.str() ) << unit_test::log::end();
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************             exception safety test            ************** //
-// ************************************************************************** //
-
-void NDNBOOST_TEST_DECL
-exception_safety( callback0<> const& F, const_string test_name )
-{
-    exception_safety_tester est( test_name );
-
-    do {
-        try {
-            F();
-        }
-        catch( exception_safety_tester::unique_exception const& ) {}
-
-    } while( est.next_execution_path() );
-}
-
-//____________________________________________________________________________//
-
-}  // namespace itest
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // non-ancient compiler
-
-#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
deleted file mode 100644
index 715993f..0000000
--- a/include/ndnboost/test/impl/execution_monitor.ipp
+++ /dev/null
@@ -1,1367 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  (C) Copyright Beman Dawes and Ullrich Koethe 1995-2001.
-//  Use, modification, and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : provides execution monitor implementation for all supported
-//  configurations, including Microsoft structured exception based, unix signals
-//  based and special workarounds for borland
-//
-//  Note that when testing requirements or user wishes preclude use of this
-//  file as a separate compilation unit, it may be included as a header file.
-//
-//  Header dependencies are deliberately restricted to reduce coupling to other
-//  boost libraries.
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
-#define NDNBOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/test/detail/workaround.hpp>
-#include <ndnboost/test/execution_monitor.hpp>
-#include <ndnboost/test/debug.hpp>
-
-// Boost
-#include <ndnboost/cstdlib.hpp>    // for exit codes
-#include <ndnboost/config.hpp>     // for workarounds
-#include <ndnboost/exception/get_error_info.hpp> // for get_error_info
-#include <ndnboost/exception/current_exception_cast.hpp> // for current_exception_cast
-
-// STL
-#include <string>               // for std::string
-#include <new>                  // for std::bad_alloc
-#include <typeinfo>             // for std::bad_cast, std::bad_typeid
-#include <exception>            // for std::exception, std::bad_exception
-#include <stdexcept>            // for std exception hierarchy
-#include <cstring>              // for C string API
-#include <cassert>              // for assert
-#include <cstddef>              // for NULL
-#include <cstdio>               // for vsnprintf
-#include <cstdarg>              // for varargs
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::strerror; using ::strlen; using ::strncat; }
-#endif
-
-// to use vsnprintf
-#if defined(__SUNPRO_CC) || defined(__SunOS)
-#  include <stdio.h>
-#  include <stdarg.h>
-using std::va_list;
-#endif
-
-// to use vsnprintf 
-#if defined(__QNXNTO__) 
-#  include <stdio.h> 
-#endif
-
-#if defined(_WIN32) && !defined(NDNBOOST_DISABLE_WIN32) &&                  \
-    (!defined(__COMO__) && !defined(__MWERKS__) && !defined(__GNUC__) || \
-     NDNBOOST_WORKAROUND(__MWERKS__, >= 0x3000))
-
-#  define NDNBOOST_SEH_BASED_SIGNAL_HANDLING
-
-#  include <windows.h>
-
-#  if defined(__MWERKS__) || (defined(_MSC_VER) && !defined(UNDER_CE))
-#    include <eh.h>
-#  endif
-
-#  if defined(__BORLANDC__) && __BORLANDC__ >= 0x560 || defined(__MWERKS__)
-#    include <stdint.h>
-#  endif
-
-#  if defined(__BORLANDC__) && __BORLANDC__ < 0x560
-    typedef unsigned uintptr_t;
-#  endif
-
-#  if NDNBOOST_WORKAROUND(_MSC_VER,  < 1300 ) || defined(UNDER_CE)
-typedef void* uintptr_t;
-#  endif
-
-// for the FP control routines
-#include <float.h>
-
-#ifndef EM_INVALID
-#define EM_INVALID _EM_INVALID
-#endif
-
-#ifndef EM_DENORMAL
-#define EM_DENORMAL _EM_DENORMAL
-#endif
-
-#ifndef EM_ZERODIVIDE
-#define EM_ZERODIVIDE _EM_ZERODIVIDE
-#endif
-
-#ifndef EM_OVERFLOW
-#define EM_OVERFLOW _EM_OVERFLOW
-#endif
-
-#ifndef EM_UNDERFLOW
-#define EM_UNDERFLOW _EM_UNDERFLOW
-#endif
-
-#ifndef MCW_EM
-#define MCW_EM _MCW_EM
-#endif
-
-#  if !defined(NDEBUG) && defined(_MSC_VER) && !defined(UNDER_CE)
-#    include <crtdbg.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 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 !NDNBOOST_WORKAROUND(_MSC_VER,  >= 1400 ) || defined(UNDER_CE)
-
-typedef void* _invalid_parameter_handler;
-
-inline _invalid_parameter_handler
-_set_invalid_parameter_handler( _invalid_parameter_handler arg )
-{
-    return arg;
-}
-
-#  endif
-
-#  if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x0564)) || defined(UNDER_CE)
-
-namespace { void _set_se_translator( void* ) {} }
-
-#  endif
-
-#elif defined(NDNBOOST_HAS_SIGACTION)
-
-#  define NDNBOOST_SIGACTION_BASED_SIGNAL_HANDLING
-
-#  include <unistd.h>
-#  include <signal.h>
-#  include <setjmp.h>
-
-#  if defined(__FreeBSD__)  
-
-#    ifndef SIGPOLL
-#      define SIGPOLL SIGIO
-#    endif
-
-#    if (__FreeBSD_version < 70100)
-
-#      define ILL_ILLADR 0 // ILL_RESAD_FAULT
-#      define ILL_PRVOPC ILL_PRIVIN_FAULT
-#      define ILL_ILLOPN 2 // ILL_RESOP_FAULT
-#      define ILL_COPROC ILL_FPOP_FAULT
-
-#      define NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
-#      define NDNBOOST_TEST_IGNORE_SIGCHLD
-
-#    endif 
-#  endif 
-
-#  if !defined(__CYGWIN__) && !defined(__QNXNTO__)
-#   define NDNBOOST_TEST_USE_ALT_STACK
-#  endif
-
-#  if defined(SIGPOLL) && !defined(__CYGWIN__)                              && \
-      !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))  && \
-      !defined(__NetBSD__)                                                  && \
-      !defined(__QNXNTO__)
-#    define NDNBOOST_TEST_CATCH_SIGPOLL
-#  endif
-
-#  ifdef NDNBOOST_TEST_USE_ALT_STACK
-#    define NDNBOOST_TEST_ALT_STACK_SIZE SIGSTKSZ
-#  endif
-
-#else
-
-#  define NDNBOOST_NO_SIGNAL_HANDLING
-
-#endif
-
-#ifndef UNDER_CE
-#include <errno.h>
-#endif
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-// ************************************************************************** //
-// **************                  report_error                ************** //
-// ************************************************************************** //
-
-namespace detail {
-
-#ifdef __BORLANDC__
-#  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 NDNBOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) _vsnprintf( (a1), (a2), (a3), (a4) )
-#else
-#  define NDNBOOST_TEST_VSNPRINTF( a1, a2, a3, a4 ) vsnprintf( (a1), (a2), (a3), (a4) )
-#endif
-
-template <typename ErrorInfo>
-typename ErrorInfo::value_type
-extract( ndnboost::exception const* ex )
-{
-    if( !ex )
-        return 0;
-
-    typename ErrorInfo::value_type const * val = ndnboost::get_error_info<ErrorInfo>( *ex );
-
-    return val ? *val : 0;
-}
-
-//____________________________________________________________________________//
-
-static void
-report_error( execution_exception::error_code ec, ndnboost::exception const* be, char const* format, va_list* args )
-{
-    static const int REPORT_ERROR_BUFFER_SIZE = 512;
-    static char buf[REPORT_ERROR_BUFFER_SIZE];
-
-    NDNBOOST_TEST_VSNPRINTF( buf, sizeof(buf)-1, format, *args ); 
-    buf[sizeof(buf)-1] = 0;
-
-    va_end( *args );
-
-    throw execution_exception( ec, buf, execution_exception::location( extract<throw_file>( be ), 
-                                                                       extract<throw_line>( be ),
-                                                                       extract<throw_function>( be ) ) );
-}
-
-//____________________________________________________________________________//
-
-static void
-report_error( execution_exception::error_code ec, char const* format, ... )
-{
-    va_list args;
-    va_start( args, format );
-
-    report_error( ec, 0, format, &args );
-}
-
-//____________________________________________________________________________//
-
-static void
-report_error( execution_exception::error_code ec, ndnboost::exception const* be, char const* format, ... )
-{
-    va_list args;
-    va_start( args, format );
-
-    report_error( ec, be, format, &args );
-}
-
-//____________________________________________________________________________//
-
-template<typename Tr,typename Functor>
-inline int
-do_invoke( Tr const& tr, Functor const& F )
-{
-    return tr ? (*tr)( F ) : F();
-}
-
-//____________________________________________________________________________//
-
-} // namespace detail
-
-#if defined(NDNBOOST_SIGACTION_BASED_SIGNAL_HANDLING)
-
-// ************************************************************************** //
-// **************       Sigaction based signal handling        ************** //
-// ************************************************************************** //
-
-namespace detail {
-
-// ************************************************************************** //
-// **************    ndnboost::detail::system_signal_exception    ************** //
-// ************************************************************************** //
-
-class system_signal_exception {
-public:
-    // Constructor
-    system_signal_exception()
-    : m_sig_info( 0 )
-    , m_context( 0 )
-    {}
-
-    // Access methods
-    void        operator()( siginfo_t* i, void* c )
-    {
-        m_sig_info  = i;
-        m_context   = c;
-    }
-    void        report() const;
-
-private:
-    // Data members
-    siginfo_t*  m_sig_info; // system signal detailed info
-    void*       m_context;  // signal context
-};
-
-//____________________________________________________________________________//
-
-void
-system_signal_exception::report() const
-{
-    if( !m_sig_info )
-        return; // no error actually occur?
-
-    switch( m_sig_info->si_code ) {
-    case SI_USER:
-        report_error( execution_exception::system_error,
-                      "signal: generated by kill() (or family); uid=%d; pid=%d",
-                      (int)m_sig_info->si_uid, (int)m_sig_info->si_pid );
-        break;
-    case SI_QUEUE:
-        report_error( execution_exception::system_error,
-                      "signal: sent by sigqueue()" );
-        break;
-    case SI_TIMER:
-        report_error( execution_exception::system_error,
-                      "signal: the expiration of a timer set by timer_settimer()" );
-        break;
-    case SI_ASYNCIO:
-        report_error( execution_exception::system_error,
-                      "signal: generated by the completion of an asynchronous I/O request" );
-        break;
-    case SI_MESGQ:
-        report_error( execution_exception::system_error,
-                      "signal: generated by the the arrival of a message on an empty message queue" );
-        break;
-    default:
-        break;
-    }
-
-    switch( m_sig_info->si_signo ) {
-    case SIGILL:
-        switch( m_sig_info->si_code ) {
-#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",
-                          m_sig_info->si_addr );
-            break;
-        case ILL_ILLTRP:
-            report_error( execution_exception::system_fatal_error,
-                          "signal: illegal trap; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case ILL_PRVREG:
-            report_error( execution_exception::system_fatal_error,
-                          "signal: privileged register; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case ILL_BADSTK:
-            report_error( execution_exception::system_fatal_error,
-                          "signal: internal stack error; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-#endif
-        case ILL_ILLOPN:
-            report_error( execution_exception::system_fatal_error,
-                          "signal: illegal operand; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case ILL_ILLADR:
-            report_error( execution_exception::system_fatal_error,
-                          "signal: illegal addressing mode; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case ILL_PRVOPC:
-            report_error( execution_exception::system_fatal_error,
-                          "signal: privileged opcode; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case ILL_COPROC:
-            report_error( execution_exception::system_fatal_error,
-                          "signal: co-processor error; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        default: 
-            report_error( execution_exception::system_fatal_error, 
-                          "signal: SIGILL, si_code: %d (illegal instruction; address of failing instruction: 0x%08lx)", 
-                          m_sig_info->si_addr, m_sig_info->si_code ); 
-            break;
-        }
-        break;
-
-    case SIGFPE:
-        switch( m_sig_info->si_code ) {
-        case FPE_INTDIV:
-            report_error( execution_exception::system_error,
-                          "signal: integer divide by zero; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case FPE_INTOVF:
-            report_error( execution_exception::system_error,
-                          "signal: integer overflow; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case FPE_FLTDIV:
-            report_error( execution_exception::system_error,
-                          "signal: floating point divide by zero; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case FPE_FLTOVF:
-            report_error( execution_exception::system_error,
-                          "signal: floating point overflow; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case FPE_FLTUND:
-            report_error( execution_exception::system_error,
-                          "signal: floating point underflow; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case FPE_FLTRES:
-            report_error( execution_exception::system_error,
-                          "signal: floating point inexact result; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case FPE_FLTINV:
-            report_error( execution_exception::system_error,
-                          "signal: invalid floating point operation; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        case FPE_FLTSUB:
-            report_error( execution_exception::system_error,
-                          "signal: subscript out of range; address of failing instruction: 0x%08lx",
-                          m_sig_info->si_addr );
-            break;
-        default:
-            report_error( execution_exception::system_error,
-                          "signal: SIGFPE, si_code: %d (errnoneous arithmetic operations; address of failing instruction: 0x%08lx)",
-                          m_sig_info->si_addr, m_sig_info->si_code );
-            break;
-        }
-        break;
-
-    case SIGSEGV:
-        switch( m_sig_info->si_code ) {
-#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",
-                          m_sig_info->si_addr );
-            break;
-        case SEGV_ACCERR:
-            report_error( execution_exception::system_fatal_error,
-                          "memory access violation at address: 0x%08lx: invalid permissions",
-                          m_sig_info->si_addr );
-            break;
-#endif
-        default:
-            report_error( execution_exception::system_fatal_error,
-                          "signal: SIGSEGV, si_code: %d (memory access violation at address: 0x%08lx)",
-                          m_sig_info->si_addr, m_sig_info->si_code );
-            break;
-        }
-        break;
-
-    case SIGBUS:
-        switch( m_sig_info->si_code ) {
-#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",
-                          m_sig_info->si_addr );
-            break;
-        case BUS_ADRERR:
-            report_error( execution_exception::system_fatal_error,
-                          "memory access violation at address: 0x%08lx: non-existent physical address",
-                          m_sig_info->si_addr );
-            break;
-        case BUS_OBJERR:
-            report_error( execution_exception::system_fatal_error,
-                          "memory access violation at address: 0x%08lx: object specific hardware error",
-                          m_sig_info->si_addr );
-            break;
-#endif
-        default:
-            report_error( execution_exception::system_fatal_error,
-                          "signal: SIGSEGV, si_code: %d (memory access violation at address: 0x%08lx)",
-                          m_sig_info->si_addr, m_sig_info->si_code );
-            break;
-        }
-        break;
-
-    case SIGCHLD:
-        switch( m_sig_info->si_code ) {
-#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",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_KILLED:
-            report_error( execution_exception::system_error,
-                          "child was killed; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_DUMPED:
-            report_error( execution_exception::system_error,
-                          "child terminated abnormally; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_TRAPPED:
-            report_error( execution_exception::system_error,
-                          "traced child has trapped; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_STOPPED:
-            report_error( execution_exception::system_error,
-                          "child has stopped; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-        case CLD_CONTINUED:
-            report_error( execution_exception::system_error,
-                          "stopped child had continued; pid: %d; uid: %d; exit value: %d",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status );
-            break;
-#endif
-        default:
-            report_error( execution_exception::system_error,
-                          "signal: SIGCHLD, si_code: %d (child process has terminated; pid: %d; uid: %d; exit value: %d)",
-                          (int)m_sig_info->si_pid, (int)m_sig_info->si_uid, (int)m_sig_info->si_status, m_sig_info->si_code );
-            break;
-        }
-        break;
-
-#if defined(NDNBOOST_TEST_CATCH_SIGPOLL)
-
-    case SIGPOLL:
-        switch( m_sig_info->si_code ) {
-#ifndef NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
-        case POLL_IN:
-            report_error( execution_exception::system_error,
-                          "data input available; band event %d",
-                          (int)m_sig_info->si_band );
-            break;
-        case POLL_OUT:
-            report_error( execution_exception::system_error,
-                          "output buffers available; band event %d",
-                          (int)m_sig_info->si_band );
-            break;
-        case POLL_MSG:
-            report_error( execution_exception::system_error,
-                          "input message available; band event %d",
-                          (int)m_sig_info->si_band );
-            break;
-        case POLL_ERR:
-            report_error( execution_exception::system_error,
-                          "i/o error; band event %d",
-                          (int)m_sig_info->si_band );
-            break;
-        case POLL_PRI:
-            report_error( execution_exception::system_error,
-                          "high priority input available; band event %d",
-                          (int)m_sig_info->si_band );
-            break;
-#if defined(POLL_ERR) && defined(POLL_HUP) && (POLL_ERR - POLL_HUP)
-        case POLL_HUP:
-            report_error( execution_exception::system_error,
-                          "device disconnected; band event %d",
-                          (int)m_sig_info->si_band );
-            break;
-#endif
-#endif
-        default: 
-            report_error( execution_exception::system_error, 
-                          "signal: SIGPOLL, si_code: %d (asynchronous I/O event occured; band event %d)", 
-                          (int)m_sig_info->si_band, m_sig_info->si_code ); 
-            break; 
-        }
-        break;
-
-#endif
-
-    case SIGABRT:
-        report_error( execution_exception::system_error,
-                      "signal: SIGABRT (application abort requested)" );
-        break;
-
-    case SIGALRM:
-        report_error( execution_exception::timeout_error,
-                      "signal: SIGALRM (timeout while executing function)" );
-        break;
-
-    default:
-        report_error( execution_exception::system_error, "unrecognized signal" );
-    }
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************         ndnboost::detail::signal_action         ************** //
-// ************************************************************************** //
-
-// Forward declaration
-extern "C" {
-static void execution_monitor_jumping_signal_handler( int sig, siginfo_t* info, void* context );
-static void execution_monitor_attaching_signal_handler( int sig, siginfo_t* info, void* context );
-}
-
-class signal_action {
-    typedef struct sigaction* sigaction_ptr;
-public:
-    //Constructor
-    signal_action();
-    signal_action( int sig, bool install, bool attach_dbg, char* alt_stack );
-    ~signal_action();
-
-private:
-    // Data members
-    int                 m_sig;
-    bool                m_installed;
-    struct sigaction    m_new_action;
-    struct sigaction    m_old_action;
-};
-
-//____________________________________________________________________________//
-
-signal_action::signal_action()
-: m_installed( false )
-{}
-
-//____________________________________________________________________________//
-
-signal_action::signal_action( int sig, bool install, bool attach_dbg, char* alt_stack )
-: m_sig( sig )
-, m_installed( install )
-{
-    if( !install )
-        return;
-
-    std::memset( &m_new_action, 0, sizeof(struct sigaction) );
-
-    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;
-        return;
-    }
-
-    m_new_action.sa_flags     |= SA_SIGINFO;
-    m_new_action.sa_sigaction  = attach_dbg ? &execution_monitor_attaching_signal_handler
-                                            : &execution_monitor_jumping_signal_handler;
-    NDNBOOST_TEST_SYS_ASSERT( sigemptyset( &m_new_action.sa_mask ) != -1 );
-
-#ifdef NDNBOOST_TEST_USE_ALT_STACK
-    if( alt_stack )
-        m_new_action.sa_flags |= SA_ONSTACK;
-#endif
-
-    NDNBOOST_TEST_SYS_ASSERT( ::sigaction( m_sig, &m_new_action, &m_old_action ) != -1 );
-}
-
-//____________________________________________________________________________//
-
-signal_action::~signal_action()
-{
-    if( m_installed )
-        ::sigaction( m_sig, &m_old_action , sigaction_ptr() );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************        ndnboost::detail::signal_handler         ************** //
-// ************************************************************************** //
-
-class signal_handler {
-public:
-    // Constructor
-    explicit signal_handler( bool catch_system_errors, int timeout, bool attach_dbg, char* alt_stack );
-
-    // Destructor
-    ~signal_handler();
-
-    // access methods
-    static sigjmp_buf&      jump_buffer()
-    {
-        assert( !!s_active_handler );
-
-        return s_active_handler->m_sigjmp_buf;
-    }
-
-    static system_signal_exception&  sys_sig()
-    {
-        assert( !!s_active_handler );
-
-        return s_active_handler->m_sys_sig;
-    }
-
-private:
-    // Data members
-    signal_handler*         m_prev_handler;
-    int                     m_timeout;
-
-    signal_action           m_ILL_action;
-    signal_action           m_FPE_action;
-    signal_action           m_SEGV_action;
-    signal_action           m_BUS_action;
-    signal_action           m_CHLD_action;
-    signal_action           m_POLL_action;
-    signal_action           m_ABRT_action;
-    signal_action           m_ALRM_action;
-
-    sigjmp_buf              m_sigjmp_buf;
-    system_signal_exception m_sys_sig;
-
-    static signal_handler*  s_active_handler;
-};
-
-// !! need to be placed in thread specific storage
-typedef signal_handler* signal_handler_ptr;
-signal_handler* signal_handler::s_active_handler = signal_handler_ptr();
-
-//____________________________________________________________________________//
-
-signal_handler::signal_handler( bool catch_system_errors, int timeout, bool attach_dbg, char* alt_stack )
-: m_prev_handler( s_active_handler )
-, m_timeout( timeout )
-, m_ILL_action ( SIGILL , catch_system_errors, attach_dbg, alt_stack )
-, 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 NDNBOOST_TEST_IGNORE_SIGCHLD
-, m_CHLD_action( SIGCHLD, catch_system_errors, attach_dbg, alt_stack )
-#endif
-#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 )
-, m_ALRM_action( SIGALRM, timeout > 0        , attach_dbg, alt_stack )
-{
-    s_active_handler = this;
-
-    if( m_timeout > 0 ) {
-        ::alarm( 0 );
-        ::alarm( timeout );
-    }
-
-#ifdef NDNBOOST_TEST_USE_ALT_STACK
-    if( alt_stack ) {
-        stack_t sigstk;
-        std::memset( &sigstk, 0, sizeof(stack_t) );
-
-        NDNBOOST_TEST_SYS_ASSERT( ::sigaltstack( 0, &sigstk ) != -1 );
-
-        if( sigstk.ss_flags & SS_DISABLE ) {
-            sigstk.ss_sp    = alt_stack;
-            sigstk.ss_size  = NDNBOOST_TEST_ALT_STACK_SIZE;
-            sigstk.ss_flags = 0;
-            NDNBOOST_TEST_SYS_ASSERT( ::sigaltstack( &sigstk, 0 ) != -1 );
-        }
-    }
-#endif
-}
-
-//____________________________________________________________________________//
-
-signal_handler::~signal_handler()
-{
-    assert( s_active_handler == this );
-
-    if( m_timeout > 0 )
-        ::alarm( 0 );
-
-#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
-    // members specified in the POSIX std:
-    stack_t sigstk = { 0, 0, 0 };
-#else
-    stack_t sigstk = { };
-#endif
-
-    sigstk.ss_size  = MINSIGSTKSZ;
-    sigstk.ss_flags = SS_DISABLE;
-    NDNBOOST_TEST_SYS_ASSERT( ::sigaltstack( &sigstk, 0 ) != -1 );
-#endif
-
-    s_active_handler = m_prev_handler;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************       execution_monitor_signal_handler       ************** //
-// ************************************************************************** //
-
-extern "C" {
-
-static bool ignore_sigchild( siginfo_t* info )
-{
-    return info->si_signo == SIGCHLD
-#ifndef NDNBOOST_TEST_LIMITED_SIGNAL_DETAILS
-            && info->si_code == CLD_EXITED 
-#endif
-#ifdef NDNBOOST_TEST_IGNORE_NON_ZERO_CHILD_CODE
-            ;
-#else
-            && (int)info->si_status == 0;
-#endif
-}
-
-//____________________________________________________________________________//
-
-static void execution_monitor_jumping_signal_handler( int sig, siginfo_t* info, void* context )
-{
-    if( ignore_sigchild( info ) )
-        return;
-
-    signal_handler::sys_sig()( info, context );
-
-    siglongjmp( signal_handler::jump_buffer(), sig );
-}
-
-//____________________________________________________________________________//
-
-static void execution_monitor_attaching_signal_handler( int sig, siginfo_t* info, void* context )
-{
-    if( ignore_sigchild( info ) )
-        return;
-
-    if( !debug::attach_debugger( false ) )
-        execution_monitor_jumping_signal_handler( sig, info, context );
-
-    // debugger attached; it will handle the signal
-    NDNBOOST_TEST_SYS_ASSERT( ::signal( sig, SIG_DFL ) != SIG_ERR );
-}
-
-//____________________________________________________________________________//
-
-}
-
-} // namespace detail
-
-// ************************************************************************** //
-// **************        execution_monitor::catch_signals      ************** //
-// ************************************************************************** //
-
-int
-execution_monitor::catch_signals( unit_test::callback0<int> const& F )
-{
-    using namespace detail;
-
-#if defined(__CYGWIN__)
-    p_catch_system_errors.value = false;
-#endif
-
-#ifdef NDNBOOST_TEST_USE_ALT_STACK
-    if( !!p_use_alt_stack && !m_alt_stack )
-        m_alt_stack.reset( new char[NDNBOOST_TEST_ALT_STACK_SIZE] );
-#else
-    p_use_alt_stack.value = false;
-#endif
-
-    signal_handler local_signal_handler( p_catch_system_errors, p_timeout, p_auto_start_dbg, 
-                                         !p_use_alt_stack ? 0 : m_alt_stack.get() );
-
-    if( !sigsetjmp( signal_handler::jump_buffer(), 1 ) )
-        return detail::do_invoke( m_custom_translators , F );
-    else
-        throw local_signal_handler.sys_sig();
-}
-
-//____________________________________________________________________________//
-
-#elif defined(NDNBOOST_SEH_BASED_SIGNAL_HANDLING)
-
-// ************************************************************************** //
-// **************   Microsoft structured exception handling    ************** //
-// ************************************************************************** //
-
-#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x0564))
-namespace { void _set_se_translator( void* ) {} }
-#endif
-
-namespace detail {
-
-// ************************************************************************** //
-// **************    ndnboost::detail::system_signal_exception    ************** //
-// ************************************************************************** //
-
-class system_signal_exception {
-public:
-    // Constructor
-    explicit            system_signal_exception( execution_monitor* em )
-    : m_em( em )
-    , m_se_id( 0 )
-    , m_fault_address( 0 )
-    , m_dir( false )
-    {}
-
-    void                report() const;
-    int                 operator()( unsigned int id, _EXCEPTION_POINTERS* exps );
-
-private:
-    // Data members
-    execution_monitor*  m_em;
-
-    unsigned int        m_se_id;
-    void*               m_fault_address;
-    bool                m_dir;
-};
-
-static void
-seh_catch_preventer( unsigned int /* id */, _EXCEPTION_POINTERS* /* exps */ )
-{
-    throw;
-}
-
-//____________________________________________________________________________//
-
-int
-system_signal_exception::operator()( unsigned int id, _EXCEPTION_POINTERS* exps )
-{
-    const unsigned int MSFT_CPP_EXCEPT = 0xE06d7363; // EMSC
-
-    if( !m_em->p_catch_system_errors || (id == MSFT_CPP_EXCEPT) )
-        return EXCEPTION_CONTINUE_SEARCH;
-
-    if( !!m_em->p_auto_start_dbg && debug::attach_debugger( false ) ) {
-        m_em->p_catch_system_errors.value = false;
-        _set_se_translator( &seh_catch_preventer );
-
-        return EXCEPTION_CONTINUE_EXECUTION;
-    }
-
-    m_se_id = id;
-    if( m_se_id == EXCEPTION_ACCESS_VIOLATION && exps->ExceptionRecord->NumberParameters == 2 ) {
-        m_fault_address = (void*)exps->ExceptionRecord->ExceptionInformation[1];
-        m_dir           = exps->ExceptionRecord->ExceptionInformation[0] == 0;
-    }
-
-    return EXCEPTION_EXECUTE_HANDLER;
-}
-
-//____________________________________________________________________________//
-
-void
-system_signal_exception::report() const
-{
-    switch( m_se_id ) {
-    // cases classified as system_fatal_error
-    case EXCEPTION_ACCESS_VIOLATION: {
-        if( !m_fault_address )
-            detail::report_error( execution_exception::system_fatal_error, "memory access violation" );
-        else
-            detail::report_error(
-                execution_exception::system_fatal_error,
-                    "memory access violation occurred at address 0x%08lx, while attempting to %s",
-                    m_fault_address,
-                    m_dir ? " read inaccessible data"
-                          : " write to an inaccessible (or protected) address"
-                    );
-        break;
-    }
-
-    case EXCEPTION_ILLEGAL_INSTRUCTION:
-        detail::report_error( execution_exception::system_fatal_error, "illegal instruction" );
-        break;
-
-    case EXCEPTION_PRIV_INSTRUCTION:
-        detail::report_error( execution_exception::system_fatal_error, "tried to execute an instruction whose operation is not allowed in the current machine mode" );
-        break;
-
-    case EXCEPTION_IN_PAGE_ERROR:
-        detail::report_error( execution_exception::system_fatal_error, "access to a memory page that is not present" );
-        break;
-
-    case EXCEPTION_STACK_OVERFLOW:
-        detail::report_error( execution_exception::system_fatal_error, "stack overflow" );
-        break;
-
-    case EXCEPTION_NONCONTINUABLE_EXCEPTION:
-        detail::report_error( execution_exception::system_fatal_error, "tried to continue execution after a non continuable exception occurred" );
-        break;
-
-    // cases classified as (non-fatal) system_trap
-    case EXCEPTION_DATATYPE_MISALIGNMENT:
-        detail::report_error( execution_exception::system_error, "data misalignment" );
-        break;
-
-    case EXCEPTION_INT_DIVIDE_BY_ZERO:
-        detail::report_error( execution_exception::system_error, "integer divide by zero" );
-        break;
-
-    case EXCEPTION_INT_OVERFLOW:
-        detail::report_error( execution_exception::system_error, "integer overflow" );
-        break;
-
-    case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
-        detail::report_error( execution_exception::system_error, "array bounds exceeded" );
-        break;
-
-    case EXCEPTION_FLT_DIVIDE_BY_ZERO:
-        detail::report_error( execution_exception::system_error, "floating point divide by zero" );
-        break;
-
-    case EXCEPTION_FLT_STACK_CHECK:
-        detail::report_error( execution_exception::system_error,
-                              "stack overflowed or underflowed as the result of a floating-point operation" );
-        break;
-
-    case EXCEPTION_FLT_DENORMAL_OPERAND:
-        detail::report_error( execution_exception::system_error,
-                              "operand of floating point operation is denormal" );
-        break;
-
-# if 0 // !! ?? 
-    case EXCEPTION_FLT_INEXACT_RESULT:
-        detail::report_error( execution_exception::system_error,
-                              "result of a floating-point operation cannot be represented exactly" );
-        break;
-#endif
-
-    case EXCEPTION_FLT_OVERFLOW:
-        detail::report_error( execution_exception::system_error,
-                              "exponent of a floating-point operation is greater than the magnitude allowed by the corresponding type" );
-        break;
-
-    case EXCEPTION_FLT_UNDERFLOW:
-        detail::report_error( execution_exception::system_error,
-                              "exponent of a floating-point operation is less than the magnitude allowed by the corresponding type" );
-        break;
-
-    case EXCEPTION_FLT_INVALID_OPERATION:
-        detail::report_error( execution_exception::system_error, "floating point error" );
-        break;
-
-    case EXCEPTION_BREAKPOINT:
-        detail::report_error( execution_exception::system_error, "breakpoint encountered" );
-        break;
-
-    default:
-        detail::report_error( execution_exception::system_error, "unrecognized exception. Id: 0x%08lx", m_se_id );
-        break;
-    }
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************          assert_reporting_function           ************** //
-// ************************************************************************** //
-
-int NDNBOOST_TEST_CALL_DECL
-assert_reporting_function( int reportType, char* userMessage, int* )
-{
-    switch( reportType ) {
-    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 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
-    default:
-        return 0; // use usual reporting method
-    }
-} // assert_reporting_function
-
-//____________________________________________________________________________//
-
-void NDNBOOST_TEST_CALL_DECL
-invalid_param_handler( wchar_t const* /* expr */, 
-                       wchar_t const* /* func */, 
-                       wchar_t const* /* file */, 
-                       unsigned int   /* line */,
-                       uintptr_t      /* reserved */)
-{
-    detail::report_error( execution_exception::user_error, 
-                          "Invalid parameter detected by C runtime library" );
-}
-
-//____________________________________________________________________________//
-
-void NDNBOOST_TEST_CALL_DECL
-switch_fp_exceptions( bool on_off )
-{
-    if( !on_off )
-        _clearfp();
-
-    int cw = ::_controlfp( 0, 0 );
-
-    int exceptions_mask = EM_INVALID|EM_DENORMAL|EM_ZERODIVIDE|EM_OVERFLOW|EM_UNDERFLOW;
-
-    if( on_off )
-        cw &= ~exceptions_mask; // Set the exception masks on, turn exceptions off
-    else
-        cw |= exceptions_mask;  // Set the exception masks off, turn exceptions on
-
-    if( on_off )
-        _clearfp();
-        
-    // Set the control word
-    ::_controlfp( cw, MCW_EM );
-}
-
-//____________________________________________________________________________//
-
-} // namespace detail
-
-// ************************************************************************** //
-// **************        execution_monitor::catch_signals      ************** //
-// ************************************************************************** //
-
-int
-execution_monitor::catch_signals( unit_test::callback0<int> const& F )
-{
-    _invalid_parameter_handler old_iph = _invalid_parameter_handler();
-    NDNBOOST_TEST_CRT_HOOK_TYPE old_crt_hook = 0;
-
-    if( !p_catch_system_errors )
-        _set_se_translator( &detail::seh_catch_preventer );
-    else {
-        if( !!p_detect_fp_exceptions )
-            detail::switch_fp_exceptions( true );
-
-       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 ) );
-    }
-
-    detail::system_signal_exception SSE( this );
-    
-    int ret_val = 0;
-
-    __try {
-        __try {
-            ret_val = detail::do_invoke( m_custom_translators, F );
-        }
-        __except( SSE( GetExceptionCode(), GetExceptionInformation() ) ) {
-            throw SSE;
-        }
-    }
-    __finally {
-        if( !!p_catch_system_errors ) {
-            if( !!p_detect_fp_exceptions )
-                detail::switch_fp_exceptions( false );
-
-            NDNBOOST_TEST_CRT_SET_HOOK( old_crt_hook );
-
-           _set_invalid_parameter_handler( old_iph );
-        }
-    }
-
-    return ret_val;
-}
-
-//____________________________________________________________________________//
-
-#else  // default signal handler
-
-namespace detail {
-
-class system_signal_exception {
-public:
-    void   report() const {}
-};
-
-} // namespace detail
-
-int
-execution_monitor::catch_signals( unit_test::callback0<int> const& F )
-{
-    return detail::do_invoke( m_custom_translators , F );
-}
-
-//____________________________________________________________________________//
-
-#endif  // choose signal handler
-
-// ************************************************************************** //
-// **************          execution_monitor::execute          ************** //
-// ************************************************************************** //
-
-int
-execution_monitor::execute( unit_test::callback0<int> const& F )
-{
-    if( debug::under_debugger() )
-        p_catch_system_errors.value = false;
-
-    try {
-        return catch_signals( F );
-    }
-
-    //  Catch-clause reference arguments are a bit different from function
-    //  arguments (ISO 15.3 paragraphs 18 & 19).  Apparently const isn't
-    //  required.  Programmers ask for const anyhow, so we supply it.  That's
-    //  easier than answering questions about non-const usage.
-
-    catch( char const* ex )
-      { detail::report_error( execution_exception::cpp_exception_error,
-                              "C string: %s", ex ); }
-    catch( std::string const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              "std::string: %s", ex.c_str() ); }
-
-    //  std:: exceptions
-
-    catch( std::bad_alloc const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::bad_alloc: %s", ex.what() ); }
-
-#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>(),
-                              "std::bad_cast" ); }
-    catch( std::bad_typeid const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::bad_typeid" ); }
-#else
-    catch( std::bad_cast const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::bad_cast: %s", ex.what() ); }
-    catch( std::bad_typeid const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::bad_typeid: %s", ex.what() ); }
-#endif
-
-    catch( std::bad_exception const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::bad_exception: %s", ex.what() ); }
-    catch( std::domain_error const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::domain_error: %s", ex.what() ); }
-    catch( std::invalid_argument const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::invalid_argument: %s", ex.what() ); }
-    catch( std::length_error const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::length_error: %s", ex.what() ); }
-    catch( std::out_of_range const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::out_of_range: %s", ex.what() ); }
-    catch( std::range_error const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::range_error: %s", ex.what() ); }
-    catch( std::overflow_error const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::overflow_error: %s", ex.what() ); }
-    catch( std::underflow_error const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::underflow_error: %s", ex.what() ); }
-    catch( std::logic_error const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::logic_error: %s", ex.what() ); }
-    catch( std::runtime_error const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::runtime_error: %s", ex.what() ); }
-    catch( std::exception const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              current_exception_cast<ndnboost::exception const>(),
-                              "std::exception: %s", ex.what() ); }
-
-    catch( ndnboost::exception const& ex )
-    { detail::report_error( execution_exception::cpp_exception_error, 
-                            &ex,
-                            "unknown ndnboost::exception" ); }
-
-    // system errors
-    catch( system_error const& ex )
-      { detail::report_error( execution_exception::cpp_exception_error, 
-                              "system_error produced by: %s: %s", ex.p_failed_exp.get(), std::strerror( ex.p_errno ) ); }
-    catch( detail::system_signal_exception const& ex )
-      { ex.report(); }
-
-    // not an error
-    catch( execution_aborted const& )
-      { return 0; }
-
-    // just forward
-    catch( execution_exception const& )
-      { throw; }
-
-    // unknown error
-    catch( ... )
-      { detail::report_error( execution_exception::cpp_exception_error, "unknown type" ); }
-
-    return 0;  // never reached; supplied to quiet compiler warnings
-} // execute
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  system_error                ************** //
-// ************************************************************************** //
-
-system_error::system_error( char const* exp )
-#ifdef UNDER_CE
-: p_errno( GetLastError() )
-#else
-: p_errno( errno )
-#endif
-, p_failed_exp( exp )
-{}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************              execution_exception             ************** //
-// ************************************************************************** //
-
-execution_exception::execution_exception( error_code ec_, const_string what_msg_, location const& location_ )
-: m_error_code( ec_ )
-, m_what( what_msg_.empty() ? NDNBOOST_TEST_L( "uncaught exception, system error or abort requested" ) : what_msg_ )
-, m_location( location_ )
-{}
-
-//____________________________________________________________________________//
-
-execution_exception::location::location( char const* file_name, size_t line_num, char const* func )
-: m_file_name( file_name ? file_name : "unknown location" )
-, m_line_num( line_num )
-, m_function( func )
-{}
-
-//____________________________________________________________________________//
-
-} // namespace ndnboost
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_EXECUTION_MONITOR_IPP_012205GER
-
diff --git a/include/ndnboost/test/impl/framework.ipp b/include/ndnboost/test/impl/framework.ipp
deleted file mode 100644
index 2da90c6..0000000
--- a/include/ndnboost/test/impl/framework.ipp
+++ /dev/null
@@ -1,503 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57991 $
-//
-//  Description : implements framework API - main driver for the test
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_FRAMEWORK_IPP_021005GER
-#define NDNBOOST_TEST_FRAMEWORK_IPP_021005GER
-
-// Boost.Test
-#include <ndnboost/test/framework.hpp>
-#include <ndnboost/test/execution_monitor.hpp>
-#include <ndnboost/test/debug.hpp>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/unit_test_log.hpp>
-#include <ndnboost/test/unit_test_monitor.hpp>
-#include <ndnboost/test/test_observer.hpp>
-#include <ndnboost/test/results_collector.hpp>
-#include <ndnboost/test/progress_monitor.hpp>
-#include <ndnboost/test/results_reporter.hpp>
-#include <ndnboost/test/test_tools.hpp>
-
-#include <ndnboost/test/detail/unit_test_parameters.hpp>
-#include <ndnboost/test/detail/global_typedef.hpp>
-
-#include <ndnboost/test/utils/foreach.hpp>
-
-// Boost
-#include <ndnboost/timer.hpp>
-
-// STL
-#include <map>
-#include <set>
-#include <cstdlib>
-#include <ctime>
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::time; using ::srand; }
-#endif
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************            test_start calls wrapper          ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-struct test_start_caller {
-    test_start_caller( test_observer* to, counter_t tc_amount )
-    : m_to( to )
-    , m_tc_amount( tc_amount )
-    {}
-
-    int operator()()
-    {
-        m_to->test_start( m_tc_amount );
-        return 0;
-    }
-
-private:
-    // Data members
-    test_observer*  m_to;
-    counter_t       m_tc_amount;
-};
-
-//____________________________________________________________________________//
-
-struct test_init_caller {
-    explicit    test_init_caller( init_unit_test_func init_func ) 
-    : m_init_func( init_func )
-    {}
-    int         operator()()
-    {
-#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
-        if( !(*m_init_func)() )
-            throw std::runtime_error( "test module initialization failed" );
-#else
-        test_suite*  manual_test_units = (*m_init_func)( framework::master_test_suite().argc, framework::master_test_suite().argv );
-
-        if( manual_test_units )
-            framework::master_test_suite().add( manual_test_units );
-#endif
-        return 0;
-    }
-
-    // Data members
-    init_unit_test_func m_init_func;
-};
-
-}
-
-// ************************************************************************** //
-// **************                   framework                  ************** //
-// ************************************************************************** //
-
-class framework_impl : public test_tree_visitor {
-public:
-    framework_impl()
-    : m_master_test_suite( 0 )
-    , m_curr_test_case( INV_TEST_UNIT_ID )
-    , m_next_test_case_id( MIN_TEST_CASE_ID )
-    , m_next_test_suite_id( MIN_TEST_SUITE_ID )
-    , m_is_initialized( false )
-    , m_test_in_progress( false )
-    {}
-
-    ~framework_impl() { clear(); }
-
-    void            clear()
-    {
-        while( !m_test_units.empty() ) {
-            test_unit_store::value_type const& tu     = *m_test_units.begin();
-            test_unit*                         tu_ptr = tu.second;
-
-            // the delete will erase this element from map
-            if( ut_detail::test_id_2_unit_type( tu.second->p_id ) == tut_suite )
-                delete  (test_suite const*)tu_ptr;
-            else
-                delete  (test_case const*)tu_ptr;
-        }
-    }
-
-    void            set_tu_id( test_unit& tu, test_unit_id id ) { tu.p_id.value = id; }
-
-    // test_tree_visitor interface implementation
-    void            visit( test_case const& tc )
-    {
-        if( !tc.check_dependencies() ) {
-            NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
-                to->test_unit_skipped( tc );
-
-            return;
-        }
-
-        NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
-            to->test_unit_start( tc );
-
-        ndnboost::timer tc_timer;
-        test_unit_id bkup = m_curr_test_case;
-        m_curr_test_case = tc.p_id;
-        unit_test_monitor_t::error_level run_result = unit_test_monitor.execute_and_translate( tc );
-
-        unsigned long elapsed = static_cast<unsigned long>( tc_timer.elapsed() * 1e6 );
-
-        if( unit_test_monitor.is_critical_error( run_result ) ) {
-            NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
-                to->test_aborted();
-        }
-
-        NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
-            to->test_unit_finish( tc, elapsed );
-
-        m_curr_test_case = bkup;
-
-        if( unit_test_monitor.is_critical_error( run_result ) )
-            throw test_being_aborted();
-    }
-
-    bool            test_suite_start( test_suite const& ts )
-    {
-        if( !ts.check_dependencies() ) {
-            NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
-                to->test_unit_skipped( ts );
-
-            return false;
-        }
-
-        NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
-            to->test_unit_start( ts );
-
-        return true;
-    }
-
-    void            test_suite_finish( test_suite const& ts )
-    {
-        NDNBOOST_TEST_FOREACH( test_observer*, to, m_observers )
-            to->test_unit_finish( ts, 0 );
-    }
-
-    //////////////////////////////////////////////////////////////////
-    struct priority_order {
-        bool operator()( test_observer* lhs, test_observer* rhs ) const
-        {
-            return (lhs->priority() < rhs->priority()) || ((lhs->priority() == rhs->priority()) && (lhs < rhs));
-        }
-    };
-
-    typedef std::map<test_unit_id,test_unit*>       test_unit_store;
-    typedef std::set<test_observer*,priority_order> observer_store;
-
-    master_test_suite_t* m_master_test_suite;
-    test_unit_id    m_curr_test_case;
-    test_unit_store m_test_units;
-
-    test_unit_id    m_next_test_case_id;
-    test_unit_id    m_next_test_suite_id;
-
-    bool            m_is_initialized;
-    bool            m_test_in_progress;
-
-    observer_store  m_observers;
-};
-
-//____________________________________________________________________________//
-
-namespace {
-
-#if defined(__CYGWIN__)
-framework_impl& s_frk_impl() { static framework_impl* the_inst = 0; if(!the_inst) the_inst = new framework_impl; return *the_inst; }
-#else
-framework_impl& s_frk_impl() { static framework_impl the_inst; return the_inst; }
-#endif
-
-} // local namespace
-
-//____________________________________________________________________________//
-
-namespace framework {
-
-void
-init( init_unit_test_func init_func, int argc, char* argv[] )
-{
-    runtime_config::init( argc, argv );
-
-    // set the log level and format
-    unit_test_log.set_threshold_level( runtime_config::log_level() );
-    unit_test_log.set_format( runtime_config::log_format() );
-
-    // set the report level and format
-    results_reporter::set_level( runtime_config::report_level() );
-    results_reporter::set_format( runtime_config::report_format() );
-
-    register_observer( results_collector );
-    register_observer( unit_test_log );
-
-    if( runtime_config::show_progress() )
-        register_observer( progress_monitor );
-
-    if( runtime_config::detect_memory_leaks() > 0 ) {
-        debug::detect_memory_leaks( true );
-        debug::break_memory_alloc( runtime_config::detect_memory_leaks() );
-    }
-
-    // init master unit test suite
-    master_test_suite().argc = argc;
-    master_test_suite().argv = argv;
-
-    try {
-        ndnboost::execution_monitor em;
-
-        ut_detail::test_init_caller tic( init_func );
-
-        em.execute( tic );
-    }
-    catch( execution_exception const& ex )  {
-        throw setup_error( ex.what() );
-    }
-
-    s_frk_impl().m_is_initialized = true;
-}
-
-//____________________________________________________________________________//
-
-bool
-is_initialized()
-{
-    return  s_frk_impl().m_is_initialized;
-}
-
-//____________________________________________________________________________//
-
-void
-register_test_unit( test_case* tc )
-{
-    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;
-
-    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;
-
-    s_frk_impl().m_test_units.insert( map_value_type( new_id, tc ) );
-    s_frk_impl().m_next_test_case_id++;
-
-    s_frk_impl().set_tu_id( *tc, new_id );
-}
-
-//____________________________________________________________________________//
-
-void
-register_test_unit( test_suite* ts )
-{
-    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;
-
-    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 ) );
-    s_frk_impl().m_next_test_suite_id++;
-
-    s_frk_impl().set_tu_id( *ts, new_id );
-}
-
-//____________________________________________________________________________//
-
-void
-deregister_test_unit( test_unit* tu )
-{
-    s_frk_impl().m_test_units.erase( tu->p_id );
-}
-
-//____________________________________________________________________________//
-
-void
-clear()
-{
-    s_frk_impl().clear();
-}
-
-//____________________________________________________________________________//
-
-void
-register_observer( test_observer& to )
-{
-    s_frk_impl().m_observers.insert( &to );
-}
-
-//____________________________________________________________________________//
-
-void
-deregister_observer( test_observer& to )
-{
-    s_frk_impl().m_observers.erase( &to );
-}
-
-//____________________________________________________________________________//
-
-void
-reset_observers()
-{
-    s_frk_impl().m_observers.clear();
-}
-
-//____________________________________________________________________________//
-
-master_test_suite_t&
-master_test_suite()
-{
-    if( !s_frk_impl().m_master_test_suite )
-        s_frk_impl().m_master_test_suite = new master_test_suite_t;
-
-    return *s_frk_impl().m_master_test_suite;
-}
-
-//____________________________________________________________________________//
-
-test_case const&
-current_test_case()
-{
-    return get<test_case>( s_frk_impl().m_curr_test_case );
-}
-
-//____________________________________________________________________________//
-
-test_unit&
-get( test_unit_id id, test_unit_type t )
-{
-    test_unit* res = s_frk_impl().m_test_units[id];
-
-    if( (res->p_type & t) == 0 )
-        throw internal_error( "Invalid test unit type" );
-
-    return *res;
-}
-
-//____________________________________________________________________________//
-
-void
-run( test_unit_id id, bool continue_test )
-{
-    if( id == INV_TEST_UNIT_ID )
-        id = master_test_suite().p_id;
-
-    test_case_counter tcc;
-    traverse_test_tree( id, tcc );
-
-    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;
-
-    s_frk_impl().m_test_in_progress = true;
-
-    if( call_start_finish ) {
-        NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers ) {
-            ndnboost::execution_monitor em;
-
-            try {
-                em.execute( ut_detail::test_start_caller( to, tcc.p_count ) );
-            }
-            catch( execution_exception const& ex )  {
-                throw setup_error( ex.what() );
-            }
-        }
-    }
-
-    switch( runtime_config::random_seed() ) {
-    case 0:
-        break;
-    case 1: {
-        unsigned int seed = static_cast<unsigned int>( std::time( 0 ) );
-        NDNBOOST_TEST_MESSAGE( "Test cases order is shuffled using seed: " << seed );
-        std::srand( seed );
-        break;
-    }
-    default:
-        NDNBOOST_TEST_MESSAGE( "Test cases order is shuffled using seed: " << runtime_config::random_seed() );
-        std::srand( runtime_config::random_seed() );
-    }
-
-    try {
-        traverse_test_tree( id, s_frk_impl() );
-    }
-    catch( test_being_aborted const& ) {
-        // abort already reported
-    }
-
-    if( call_start_finish ) {
-        NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
-            to->test_finish();
-    }
-
-    s_frk_impl().m_test_in_progress = was_in_progress;
-}
-
-//____________________________________________________________________________//
-
-void
-run( test_unit const* tu, bool continue_test )
-{
-    run( tu->p_id, continue_test );
-}
-
-//____________________________________________________________________________//
-
-void
-assertion_result( bool passed )
-{
-    NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
-        to->assertion_result( passed );
-}
-
-//____________________________________________________________________________//
-
-void
-exception_caught( execution_exception const& ex )
-{
-    NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
-        to->exception_caught( ex );
-}
-
-//____________________________________________________________________________//
-
-void
-test_unit_aborted( test_unit const& tu )
-{
-    NDNBOOST_TEST_FOREACH( test_observer*, to, s_frk_impl().m_observers )
-        to->test_unit_aborted( tu );
-}
-
-//____________________________________________________________________________//
-
-} // namespace framework
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_FRAMEWORK_IPP_021005GER
diff --git a/include/ndnboost/test/impl/interaction_based.ipp b/include/ndnboost/test/impl/interaction_based.ipp
deleted file mode 100644
index 2d12fae..0000000
--- a/include/ndnboost/test/impl/interaction_based.ipp
+++ /dev/null
@@ -1,90 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : Facilities to perform interaction-based testing
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_INTERACTION_BASED_IPP_112105GER
-#define NDNBOOST_TEST_INTERACTION_BASED_IPP_112105GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-
-#if NDNBOOST_TEST_SUPPORT_INTERACTION_TESTING
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/test/utils/callback.hpp>
-#include <ndnboost/test/interaction_based.hpp>
-#include <ndnboost/test/mock_object.hpp>
-#include <ndnboost/test/framework.hpp>     // for setup_error
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-// STL
-#include <stdexcept>
-#include <string>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace itest { // interaction-based testing
-
-// ************************************************************************** //
-// **************                    manager                   ************** //
-// ************************************************************************** //
-
-manager::manager()
-{
-    instance_ptr( true, this );
-}
-
-//____________________________________________________________________________//
-
-manager::~manager()
-{
-    instance_ptr( true );
-}
-
-//____________________________________________________________________________//
-    
-manager*
-manager::instance_ptr( bool reset, manager* new_ptr )
-{
-    static manager dummy( 0 );
-    
-    static manager* ptr = &dummy;
-    
-    if( reset ) {
-        if( new_ptr ) {
-            NDNBOOST_TEST_SETUP_ASSERT( ptr == &dummy, NDNBOOST_TEST_L( "Can't run two interation based test the same time" ) );
-                
-            ptr = new_ptr;
-        }
-        else
-            ptr = &dummy;
-    }
-    
-    return ptr;
-}
-    
-}  // namespace itest
-
-}  // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // not ancient compiler
-
-#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
deleted file mode 100644
index cfe961a..0000000
--- a/include/ndnboost/test/impl/logged_expectations.ipp
+++ /dev/null
@@ -1,246 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to the
-//  Boost Software License, ELOG_VER 1.0. (See accompanying file
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : Facilities to perform interaction based testng of logged expectations
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_LOGGED_EXPECTATIONS_IPP_120905GER
-#define NDNBOOST_TEST_LOGGED_EXPECTATIONS_IPP_120905GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-
-#if NDNBOOST_TEST_SUPPORT_INTERACTION_TESTING
-
-#include <ndnboost/test/detail/global_typedef.hpp>
-
-#include <ndnboost/test/utils/callback.hpp>
-#include <ndnboost/test/utils/iterator/token_iterator.hpp>
-
-#include <ndnboost/test/interaction_based.hpp>
-#include <ndnboost/test/test_tools.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-// Boost
-#include <ndnboost/lexical_cast.hpp>
-
-// STL
-#include <fstream>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-using namespace ::ndnboost::unit_test;
-
-namespace itest {
-
-// ************************************************************************** //
-// **************    logged expectation test implementation    ************** //
-// ************************************************************************** //
-
-struct expectations_logger : itest::manager {
-    // Constructor
-    expectations_logger( const_string log_file_name, bool test_or_log );
-
-    virtual bool        decision_point( const_string, std::size_t );
-    virtual unsigned    enter_scope( const_string, std::size_t, const_string scope_name );
-    virtual void        allocated( const_string, std::size_t, void*, std::size_t s );
-    virtual void        data_flow( const_string d );
-    virtual std::string return_value( const_string default_value );
-    
-private:
-    // Data members
-    bool            m_test_or_log;
-    std::fstream    m_log_file;
-};
-
-literal_string ELOG_VER     = "1.0";
-literal_string CLMN_SEP     = "|";
-static const char LINE_SEP  = '\n';
-
-literal_string FILE_SIG     = "ELOG";
-literal_string SCOPE_SIG    = "SCOPE";
-literal_string ALLOC_SIG    = "ALLOC";
-literal_string DP_SIG       = "SWITCH";
-literal_string DATA_SIG     = "DATA";
-literal_string RETURN_SIG   = "RETURN";
-
-//____________________________________________________________________________//
-
-expectations_logger::expectations_logger( const_string log_file_name, bool test_or_log )
-: m_test_or_log( test_or_log )
-{
-    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 );
-
-    NDNBOOST_REQUIRE_MESSAGE( m_log_file.is_open(),
-                           "Can't open expectations log file " << log_file_name
-                                << " for " << ( m_test_or_log ? "reading" : "writing") );
-
-    if( m_test_or_log ) {
-        std::string line;
-        
-        std::getline( m_log_file, line, LINE_SEP );
-        
-        const_string cline( line );
-        string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
-
-        NDNBOOST_CHECK_EQUAL( *tit, FILE_SIG ); 
-        ++tit;
-        NDNBOOST_CHECK_EQUAL( *tit, ELOG_VER );
-    }
-    else {
-        m_log_file << FILE_SIG << CLMN_SEP << ELOG_VER << LINE_SEP;
-    }
-}
-
-//____________________________________________________________________________//
-
-bool
-expectations_logger::decision_point( const_string, std::size_t )
-{
-    if( m_test_or_log ) {
-        std::string line;
-        
-        std::getline( m_log_file, line, LINE_SEP );
-        
-        const_string cline( line );
-        string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
-        
-        NDNBOOST_CHECK_EQUAL( *tit, DP_SIG ); ++tit;
-        return lexical_cast<bool>( *tit );
-    }
-    else {
-        m_log_file << DP_SIG << CLMN_SEP << std::boolalpha << true << LINE_SEP;
-        
-        return true;
-    }
-}
-
-//____________________________________________________________________________//
-    
-unsigned
-expectations_logger::enter_scope( const_string, std::size_t, const_string scope_name )
-{
-    if( m_test_or_log ) {
-        std::string line;
-        
-        std::getline( m_log_file, line, LINE_SEP );
-        
-        const_string cline( line );
-        string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
-        
-        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;
-    }
-    
-    return 0;
-}
-    
-//____________________________________________________________________________//
-
-void
-expectations_logger::allocated( const_string, std::size_t, void*, std::size_t s )
-{
-    if( m_test_or_log ) {
-        std::string line;
-        
-        std::getline( m_log_file, line, LINE_SEP );
-        
-        const_string cline( line );
-        string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
-        
-        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;
-    }
-}
-
-//____________________________________________________________________________//
-
-void
-expectations_logger::data_flow( const_string d )
-{
-    if( m_test_or_log ) {
-        std::string line;
-        
-        std::getline( m_log_file, line, LINE_SEP );
-        
-        const_string cline( line );
-        string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
-        
-        NDNBOOST_CHECK_EQUAL( *tit, DATA_SIG ); ++tit;
-        NDNBOOST_CHECK_EQUAL( *tit, d );
-    }
-    else {
-        m_log_file << DATA_SIG << CLMN_SEP << d << LINE_SEP;
-    }
-}
-
-//____________________________________________________________________________//
-
-std::string
-expectations_logger::return_value( const_string default_value )
-{
-    if( m_test_or_log ) {
-        std::string line;
-        
-        std::getline( m_log_file, line, LINE_SEP );
-        
-        const_string cline( line );
-        string_token_iterator tit( cline, (dropped_delimeters = CLMN_SEP, kept_delimeters = dt_none));
-        
-        NDNBOOST_CHECK_EQUAL( *tit, RETURN_SIG ); ++tit;
-        
-        return std::string( tit->begin(), tit->size() );
-    }
-    else {
-        m_log_file << RETURN_SIG << CLMN_SEP << default_value << LINE_SEP;
-                                 
-        return std::string();
-    }
-}
-
-//____________________________________________________________________________//
-    
-// ************************************************************************** //
-// **************           logged expectations test           ************** //
-// ************************************************************************** //
-
-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 );
-
-    F();
-}
-
-//____________________________________________________________________________//
-
-}  // namespace itest
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // not ancient compiler
-
-#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
deleted file mode 100644
index 97bfd1d..0000000
--- a/include/ndnboost/test/impl/plain_report_formatter.ipp
+++ /dev/null
@@ -1,198 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : plain report formatter definition
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/custom_manip.hpp>
-#include <ndnboost/test/results_collector.hpp>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-
-// STL
-#include <iomanip>
-#include <ndnboost/config/no_tr1/cmath.hpp>
-#include <iostream>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-# ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::log10; }
-# endif
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace output {
-
-namespace {
-
-typedef custom_manip<struct quote_t> quote;
-
-template<typename T>
-inline std::ostream&
-operator<<( custom_printer<quote> const& p, T const& value )
-{
-    *p << '"' << value << '"';
-
-    return *p;
-}
-
-//____________________________________________________________________________//
-
-void
-print_stat_value( std::ostream& ostr, counter_t v, counter_t indent, counter_t total,
-                  const_string name, const_string res )
-{
-    if( v > 0 ) {
-        ostr << std::setw( indent ) << ""
-             << v << ' ' << name << ( v != 1 ? "s" : "" );
-        if( total > 0 )
-            ostr << " out of " << total;
-
-        ostr << ' ' << res << '\n';
-    }
-}
-
-//____________________________________________________________________________//
-
-} // local namespace
-
-// ************************************************************************** //
-// **************             plain_report_formatter           ************** //
-// ************************************************************************** //
-
-void
-plain_report_formatter::results_report_start( std::ostream& ostr )
-{
-    m_indent = 0;
-    ostr << '\n';
-}
-
-//____________________________________________________________________________//
-
-void
-plain_report_formatter::results_report_finish( std::ostream& ostr )
-{
-    ostr.flush();
-}
-
-//____________________________________________________________________________//
-
-void
-plain_report_formatter::test_unit_report_start( test_unit const& tu, std::ostream& ostr )
-{
-    test_results const& tr = results_collector.results( tu.p_id );
-
-    const_string descr;
-
-    if( tr.passed() )
-        descr = "passed";
-    else if( tr.p_skipped )
-        descr = "skipped";
-    else if( tr.p_aborted )
-        descr = "aborted";
-    else
-        descr = "failed";
-
-    ostr << std::setw( m_indent ) << ""
-         << "Test " << (tu.p_type == tut_case ? "case " : "suite " ) << quote() << tu.p_name << ' ' << descr;
-
-    if( tr.p_skipped ) {
-        ostr << " due to " << (tu.check_dependencies() ? "test aborting\n" : "failed dependancy\n" );
-        m_indent += 2;
-        return;
-    }
-    
-    counter_t total_assertions  = tr.p_assertions_passed + tr.p_assertions_failed;
-    counter_t total_tc          = tr.p_test_cases_passed + tr.p_test_cases_failed + tr.p_test_cases_skipped;
-
-    if( total_assertions > 0 || total_tc > 0 )
-        ostr << " with:";
-
-    ostr << '\n';
-    m_indent += 2;
-
-    print_stat_value( ostr, tr.p_assertions_passed, m_indent, total_assertions, "assertion", "passed" );
-    print_stat_value( ostr, tr.p_assertions_failed, m_indent, total_assertions, "assertion", "failed" );
-    print_stat_value( ostr, tr.p_expected_failures, m_indent, 0               , "failure"  , "expected" );
-    print_stat_value( ostr, tr.p_test_cases_passed, m_indent, total_tc        , "test case", "passed" );
-    print_stat_value( ostr, tr.p_test_cases_failed, m_indent, total_tc        , "test case", "failed" );
-    print_stat_value( ostr, tr.p_test_cases_skipped, m_indent, total_tc       , "test case", "skipped" );
-    print_stat_value( ostr, tr.p_test_cases_aborted, m_indent, total_tc       , "test case", "aborted" );
-    
-    ostr << '\n';
-}
-
-//____________________________________________________________________________//
-
-void
-plain_report_formatter::test_unit_report_finish( test_unit const&, std::ostream& )
-{
-    m_indent -= 2;
-}
-
-//____________________________________________________________________________//
-
-void
-plain_report_formatter::do_confirmation_report( test_unit const& tu, std::ostream& ostr )
-{
-    test_results const& tr = results_collector.results( tu.p_id );
-    
-    if( tr.passed() ) {
-        ostr << "*** No errors detected\n";
-        return;
-    }
-        
-    if( tr.p_skipped ) {
-        ostr << "*** Test " << tu.p_type_name << " skipped due to " 
-             << (tu.check_dependencies() ? "test aborting\n" : "failed dependancy\n" );
-        return;
-    }
-
-    if( tr.p_assertions_failed == 0 ) {
-        ostr << "*** errors detected in test " << tu.p_type_name << " " << quote() << tu.p_name
-             << "; see standard output for details\n";
-        return;
-    }
-
-    counter_t num_failures = tr.p_assertions_failed;
-    
-    ostr << "*** " << num_failures << " failure" << ( num_failures != 1 ? "s" : "" ) << " detected";
-    
-    if( tr.p_expected_failures > 0 )
-        ostr << " (" << tr.p_expected_failures << " failure" << ( tr.p_expected_failures != 1 ? "s" : "" ) << " expected)";
-    
-    ostr << " in test " << tu.p_type_name << " " << quote() << tu.p_name << "\n";
-}
-
-//____________________________________________________________________________//
-
-} // namespace output
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 9c4ee88..0000000
--- a/include/ndnboost/test/impl/progress_monitor.ipp
+++ /dev/null
@@ -1,110 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : implements simple text based progress monitor
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
-#define NDNBOOST_TEST_PROGRESS_MONITOR_IPP_020105GER
-
-// Boost.Test
-#include <ndnboost/test/progress_monitor.hpp>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-
-#include <ndnboost/test/detail/unit_test_parameters.hpp>
-
-// Boost
-#include <ndnboost/progress.hpp>
-#include <ndnboost/scoped_ptr.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                progress_monitor              ************** //
-// ************************************************************************** //
-
-namespace {
-
-struct progress_monitor_impl {
-    // Constructor
-    progress_monitor_impl()
-        : m_stream( runtime_config::log_sink() )
-    {}
-
-    std::ostream*                m_stream;
-    scoped_ptr<progress_display> m_progress_display;
-};
-
-progress_monitor_impl& s_pm_impl() { static progress_monitor_impl the_inst; return the_inst; }
-
-} // local namespace
-
-//____________________________________________________________________________//
-
-void
-progress_monitor_t::test_start( counter_t test_cases_amount )
-{
-    s_pm_impl().m_progress_display.reset( new progress_display( test_cases_amount, *s_pm_impl().m_stream ) );
-}
-
-//____________________________________________________________________________//
-
-void
-progress_monitor_t::test_aborted()
-{
-    (*s_pm_impl().m_progress_display) += s_pm_impl().m_progress_display->count();
-}
-
-//____________________________________________________________________________//
-
-void
-progress_monitor_t::test_unit_finish( test_unit const& tu, unsigned long )
-{
-    if( tu.p_type == tut_case )
-        ++(*s_pm_impl().m_progress_display);
-}
-
-//____________________________________________________________________________//
-
-void
-progress_monitor_t::test_unit_skipped( test_unit const& tu )
-{
-    test_case_counter tcc;
-    traverse_test_tree( tu, tcc );
-    
-    (*s_pm_impl().m_progress_display) += tcc.p_count;
-}
-
-//____________________________________________________________________________//
-
-void
-progress_monitor_t::set_stream( std::ostream& ostr )
-{
-    s_pm_impl().m_stream = &ostr;
-}
-
-//____________________________________________________________________________//
-    
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index d862f68..0000000
--- a/include/ndnboost/test/impl/results_collector.ipp
+++ /dev/null
@@ -1,294 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : implements Unit Test results collecting facility.
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
-#define NDNBOOST_TEST_RESULTS_COLLECTOR_IPP_021105GER
-
-// Boost.Test
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/unit_test_log.hpp>
-#include <ndnboost/test/results_collector.hpp>
-#include <ndnboost/test/framework.hpp>
-
-// Boost
-#include <ndnboost/cstdlib.hpp>
-
-// STL
-#include <map>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                 test_results                 ************** //
-// ************************************************************************** //
-
-test_results::test_results()
-{
-    clear();
-}
-
-//____________________________________________________________________________//
-
-bool
-test_results::passed() const
-{
-    return  !p_skipped                                  &&
-            p_test_cases_failed == 0                    &&
-            p_assertions_failed <= p_expected_failures  &&
-            !p_aborted;
-}
-
-//____________________________________________________________________________//
-
-int
-test_results::result_code() const
-{
-    return passed() ? exit_success
-           : ( (p_assertions_failed > p_expected_failures || p_skipped )
-                    ? exit_test_failure
-                    : exit_exception_failure );
-}
-
-//____________________________________________________________________________//
-
-void
-test_results::operator+=( test_results const& tr )
-{
-    p_assertions_passed.value   += tr.p_assertions_passed;
-    p_assertions_failed.value   += tr.p_assertions_failed;
-    p_test_cases_passed.value   += tr.p_test_cases_passed;
-    p_test_cases_failed.value   += tr.p_test_cases_failed;
-    p_test_cases_skipped.value  += tr.p_test_cases_skipped;
-    p_test_cases_aborted.value  += tr.p_test_cases_aborted;
-}
-
-//____________________________________________________________________________//
-
-void
-test_results::clear()
-{
-    p_assertions_passed.value    = 0;
-    p_assertions_failed.value    = 0;
-    p_expected_failures.value    = 0;
-    p_test_cases_passed.value    = 0;
-    p_test_cases_failed.value    = 0;
-    p_test_cases_skipped.value   = 0;
-    p_test_cases_aborted.value   = 0;
-    p_aborted.value              = false;
-    p_skipped.value              = true;
-}
-
-//____________________________________________________________________________//
-    
-// ************************************************************************** //
-// **************               results_collector              ************** //
-// ************************************************************************** //
-
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, <1300)
-
-namespace {
-
-struct results_collector_impl {
-    std::map<test_unit_id,test_results> m_results_store;
-};
-
-results_collector_impl& s_rc_impl() { static results_collector_impl the_inst; return the_inst; }
-
-} // local namespace
-
-#else
-
-struct results_collector_impl {
-    std::map<test_unit_id,test_results> m_results_store;
-};
-
-static results_collector_impl& s_rc_impl() { static results_collector_impl the_inst; return the_inst; }
-
-#endif
-
-//____________________________________________________________________________//
-
-void
-results_collector_t::test_start( counter_t )
-{
-    s_rc_impl().m_results_store.clear();
-}
-
-//____________________________________________________________________________//
-
-void
-results_collector_t::test_finish()
-{
-    // do nothing
-}
-
-//____________________________________________________________________________//
-
-void
-results_collector_t::test_aborted()
-{
-    // do nothing
-}
-
-//____________________________________________________________________________//
-
-void
-results_collector_t::test_unit_start( test_unit const& tu )
-{
-    // init test_results entry
-    test_results& tr = s_rc_impl().m_results_store[tu.p_id];
-
-    tr.clear();
-    
-    tr.p_expected_failures.value    = tu.p_expected_failures;
-    tr.p_skipped.value              = false;
-}
-
-//____________________________________________________________________________//
-
-class results_collect_helper : public test_tree_visitor {
-public:
-    explicit results_collect_helper( test_results& tr, test_unit const& ts ) : m_tr( tr ), m_ts( ts ) {}
-
-    void    visit( test_case const& tc )
-    {
-        test_results const& tr = results_collector.results( tc.p_id );
-        m_tr += tr;
-
-        if( tr.passed() )
-            m_tr.p_test_cases_passed.value++;
-        else if( tr.p_skipped )
-            m_tr.p_test_cases_skipped.value++;
-        else {
-            if( tr.p_aborted )
-                m_tr.p_test_cases_aborted.value++;
-            m_tr.p_test_cases_failed.value++;
-        }
-    }
-    bool    test_suite_start( test_suite const& ts )
-    {
-        if( m_ts.p_id == ts.p_id )
-            return true;
-        else {
-            m_tr += results_collector.results( ts.p_id );
-            return false;
-        }
-    }
-
-private:
-    // Data members
-    test_results&       m_tr;
-    test_unit const&    m_ts;
-};
-
-//____________________________________________________________________________//
-
-void
-results_collector_t::test_unit_finish( test_unit const& tu, unsigned long )
-{
-    if( tu.p_type == tut_suite ) {
-        results_collect_helper ch( s_rc_impl().m_results_store[tu.p_id], tu );
-
-        traverse_test_tree( tu, ch );
-    }
-    else {
-        test_results const& tr = s_rc_impl().m_results_store[tu.p_id];
-        
-        bool num_failures_match = tr.p_aborted || tr.p_assertions_failed >= tr.p_expected_failures;
-        if( !num_failures_match )
-            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 )
-            NDNBOOST_TEST_MESSAGE( "Test case " << tu.p_name << " did not check any assertions" );
-    }
-}
-
-//____________________________________________________________________________//
-
-void
-results_collector_t::test_unit_skipped( test_unit const& tu )
-{
-    if( tu.p_type == tut_suite ) {
-        test_case_counter tcc;
-        traverse_test_tree( tu, tcc );
-
-        test_results& tr = s_rc_impl().m_results_store[tu.p_id];
-
-        tr.clear();
-    
-        tr.p_skipped.value              = true;
-        tr.p_test_cases_skipped.value   = tcc.p_count;
-    }
-}
-
-//____________________________________________________________________________//
-
-void
-results_collector_t::assertion_result( bool passed )
-{
-    test_results& tr = s_rc_impl().m_results_store[framework::current_test_case().p_id];
-
-    if( passed )
-        tr.p_assertions_passed.value++;
-    else
-        tr.p_assertions_failed.value++;
-
-    if( tr.p_assertions_failed == 1 )
-        first_failed_assertion();
-}
-
-//____________________________________________________________________________//
-
-void
-results_collector_t::exception_caught( execution_exception const& )
-{
-    test_results& tr = s_rc_impl().m_results_store[framework::current_test_case().p_id];
-
-    tr.p_assertions_failed.value++;
-}
-
-//____________________________________________________________________________//
-
-void
-results_collector_t::test_unit_aborted( test_unit const& tu )
-{
-    s_rc_impl().m_results_store[tu.p_id].p_aborted.value = true;
-}
-
-//____________________________________________________________________________//
-
-test_results const&
-results_collector_t::results( test_unit_id id ) const
-{
-    return s_rc_impl().m_results_store[id];
-}
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index d66fa84..0000000
--- a/include/ndnboost/test/impl/results_reporter.ipp
+++ /dev/null
@@ -1,202 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : result reporting facilties
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_RESULTS_REPORTER_IPP_020105GER
-#define NDNBOOST_TEST_RESULTS_REPORTER_IPP_020105GER
-
-// Boost.Test
-#include <ndnboost/test/results_reporter.hpp>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/results_collector.hpp>
-#include <ndnboost/test/framework.hpp>
-#include <ndnboost/test/output/plain_report_formatter.hpp>
-#include <ndnboost/test/output/xml_report_formatter.hpp>
-
-#include <ndnboost/test/detail/unit_test_parameters.hpp>
-
-// Boost
-#include <ndnboost/scoped_ptr.hpp>
-#include <ndnboost/io/ios_state.hpp>
-typedef ::ndnboost::io::ios_base_all_saver io_saver_type;
-
-// STL
-#include <iostream>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace results_reporter {
-
-// ************************************************************************** //
-// **************        result reporter implementation        ************** //
-// ************************************************************************** //
-
-namespace {
-
-struct results_reporter_impl : test_tree_visitor {
-    // Constructor
-    results_reporter_impl()
-    : m_output( runtime_config::report_sink() )
-    , m_stream_state_saver( new io_saver_type( *m_output ) )
-    , m_report_level( CONFIRMATION_REPORT )
-    , m_formatter( new output::plain_report_formatter )
-    {}
-
-    // test tree visitor interface implementation
-    void    visit( test_case const& tc )
-    {
-        m_formatter->test_unit_report_start( tc, *m_output );
-        m_formatter->test_unit_report_finish( tc, *m_output );
-    }
-    bool    test_suite_start( test_suite const& ts )
-    {
-        m_formatter->test_unit_report_start( ts, *m_output );
-
-        if( m_report_level == DETAILED_REPORT && !results_collector.results( ts.p_id ).p_skipped )
-            return true;
-
-        m_formatter->test_unit_report_finish( ts, *m_output );
-        return false;
-    }
-    void    test_suite_finish( test_suite const& ts )
-    {
-        m_formatter->test_unit_report_finish( ts, *m_output );
-    }
-
-    typedef scoped_ptr<io_saver_type> saver_ptr;
-
-    // Data members
-    std::ostream*       m_output;
-    saver_ptr           m_stream_state_saver;
-    report_level        m_report_level;
-    scoped_ptr<format>  m_formatter;
-};
-
-results_reporter_impl& s_rr_impl() { static results_reporter_impl the_inst; return the_inst; }
-
-} // local namespace
-
-// ************************************************************************** //
-// **************              report configuration            ************** //
-// ************************************************************************** //
-
-void
-set_level( report_level l )
-{
-    if( l != INV_REPORT_LEVEL )
-        s_rr_impl().m_report_level = l;
-}
-
-//____________________________________________________________________________//
-
-void
-set_stream( std::ostream& ostr )
-{
-    s_rr_impl().m_output = &ostr;
-    s_rr_impl().m_stream_state_saver.reset( new io_saver_type( ostr ) );
-}
-
-//____________________________________________________________________________//
-
-std::ostream&
-get_stream()
-{
-    return *s_rr_impl().m_output;
-}
-
-//____________________________________________________________________________//
-
-void
-set_format( output_format rf )
-{
-    switch( rf ) {
-    case CLF:
-        set_format( new output::plain_report_formatter );
-        break;
-    case XML:
-        set_format( new output::xml_report_formatter );
-        break;
-    default:
-        break;
-    }
-}
-
-//____________________________________________________________________________//
-
-void
-set_format( results_reporter::format* f )
-{
-    if( f )
-        s_rr_impl().m_formatter.reset( f );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************               report initiation              ************** //
-// ************************************************************************** //
-
-void
-make_report( report_level l, test_unit_id id )
-{
-    if( l == INV_REPORT_LEVEL )
-        l = s_rr_impl().m_report_level;
-
-    if( l == NO_REPORT )
-        return;
-
-    if( id == INV_TEST_UNIT_ID )
-        id = framework::master_test_suite().p_id;
-
-    s_rr_impl().m_stream_state_saver->restore();
-
-    report_level bkup = s_rr_impl().m_report_level;
-    s_rr_impl().m_report_level = l;
-
-    s_rr_impl().m_formatter->results_report_start( *s_rr_impl().m_output );
-
-    switch( l ) {
-    case CONFIRMATION_REPORT:
-        s_rr_impl().m_formatter->do_confirmation_report( framework::get<test_unit>( id ), *s_rr_impl().m_output );
-        break;
-    case SHORT_REPORT:
-    case DETAILED_REPORT:
-        traverse_test_tree( id, s_rr_impl() );
-        break;
-    default:
-        break;
-    }
-
-    s_rr_impl().m_formatter->results_report_finish( *s_rr_impl().m_output );
-    s_rr_impl().m_report_level = bkup;
-}
-
-//____________________________________________________________________________//
-
-} // namespace results_reporter
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 933183e..0000000
--- a/include/ndnboost/test/impl/test_main.ipp
+++ /dev/null
@@ -1,68 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  (C) Copyright Beman Dawes 1995-2001.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $$Revision: 49312 $
-//
-//  Description : implements main function for Test Execution Monitor.
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_TEST_MAIN_IPP_012205GER
-#define NDNBOOST_TEST_TEST_MAIN_IPP_012205GER
-
-// Boost.Test
-#include <ndnboost/test/framework.hpp>
-#include <ndnboost/test/test_tools.hpp>
-#include <ndnboost/test/unit_test_suite.hpp>
-
-// Boost
-#include <ndnboost/cstdlib.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-extern int test_main( int argc, char* argv[] );    // prototype for user's test_main()
-
-struct test_main_caller {
-    test_main_caller( int argc, char** argv ) : m_argc( argc ), m_argv( argv ) {}
-    
-    void operator()() {
-        int test_main_result = test_main( m_argc, m_argv );
-
-        // translate a test_main non-success return into a test error
-        NDNBOOST_CHECK( test_main_result == 0 || test_main_result == ndnboost::exit_success );
-    }
-  
-private:
-    // Data members    
-    int      m_argc;
-    char**   m_argv;
-};
-
-// ************************************************************************** //
-// **************                   test main                  ************** //
-// ************************************************************************** //
-
-::ndnboost::unit_test::test_suite*
-init_unit_test_suite( int argc, char* argv[] ) {
-    using namespace ::ndnboost::unit_test;
-    
-    framework::master_test_suite().p_name.value = "Test Program";
-    
-    framework::master_test_suite().add( NDNBOOST_TEST_CASE( test_main_caller( argc, argv ) ) );
-    
-    return 0;
-}
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 488af33..0000000
--- a/include/ndnboost/test/impl/test_tools.ipp
+++ /dev/null
@@ -1,628 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : supplies offline implementation for the Test Tools
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_TEST_TOOLS_IPP_012205GER
-#define NDNBOOST_TEST_TEST_TOOLS_IPP_012205GER
-
-// Boost.Test
-#include <ndnboost/test/test_tools.hpp>
-#include <ndnboost/test/unit_test_log.hpp>
-#include <ndnboost/test/output_test_stream.hpp>
-#include <ndnboost/test/framework.hpp>
-#include <ndnboost/test/execution_monitor.hpp> // execution_aborted
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-
-// Boost
-#include <ndnboost/config.hpp>
-
-// STL
-#include <fstream>
-#include <string>
-#include <cstring>
-#include <cctype>
-#include <cwchar>
-#include <stdexcept>
-#include <ios>
-
-// !! should we use #include <cstdarg>
-#include <stdarg.h>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-# ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::strcmp; using ::strlen; using ::isprint; }
-#if !defined( NDNBOOST_NO_CWCHAR )
-namespace std { using ::wcscmp; }
-#endif
-# endif
-
-namespace ndnboost {
-
-namespace test_tools {
-
-// ************************************************************************** //
-// **************                print_log_value               ************** //
-// ************************************************************************** //
-
-void
-print_log_value<char>::operator()( std::ostream& ostr, char t )
-{
-    if( (std::isprint)( static_cast<unsigned char>(t) ) )
-        ostr << '\'' << t << '\'';
-    else
-        ostr << std::hex
-#if NDNBOOST_TEST_USE_STD_LOCALE
-        << std::showbase
-#else
-        << "0x"
-#endif
-        << static_cast<int>(t);
-}
-
-//____________________________________________________________________________//
-
-void
-print_log_value<unsigned char>::operator()( std::ostream& ostr, unsigned char t )
-{
-    ostr << std::hex
-        // showbase is only available for new style streams:
-#if NDNBOOST_TEST_USE_STD_LOCALE
-        << std::showbase
-#else
-        << "0x"
-#endif
-        << static_cast<int>(t);
-}
-
-//____________________________________________________________________________//
-
-void
-print_log_value<char const*>::operator()( std::ostream& ostr, char const* t )
-{
-    ostr << ( t ? t : "null string" );
-}
-
-//____________________________________________________________________________//
-
-void
-print_log_value<wchar_t const*>::operator()( std::ostream& ostr, wchar_t const* t )
-{
-    ostr << ( t ? t : L"null string" );
-}
-
-//____________________________________________________________________________//
-
-namespace tt_detail {
-
-// ************************************************************************** //
-// **************            TOOL BOX Implementation           ************** //
-// ************************************************************************** //
-
-using ::ndnboost::unit_test::lazy_ostream;
-
-bool
-check_impl( predicate_result const& pr, lazy_ostream const& check_descr,
-            const_string file_name, std::size_t line_num,
-            tool_level tl, check_type ct,
-            std::size_t num_of_args, ... )
-{
-    using namespace unit_test;
-
-    if( !framework::is_initialized() )
-        throw std::runtime_error( "can't use testing tools before framework is initialized" );
-
-    if( !!pr )
-        tl = PASS;
-
-    log_level    ll;
-    char const*  prefix;
-    char const*  suffix;
-       
-    switch( tl ) {
-    case PASS:
-        ll      = log_successful_tests;
-        prefix  = "check ";
-        suffix  = " passed";
-        break;
-    case WARN:
-        ll      = log_warnings;
-        prefix  = "condition ";
-        suffix  = " is not satisfied";
-        break;
-    case CHECK:
-        ll      = log_all_errors;
-        prefix  = "check ";
-        suffix  = " failed";
-        break;
-    case REQUIRE:
-        ll      = log_fatal_errors;
-        prefix  = "critical check ";
-        suffix  = " failed";
-        break;
-    default:
-        return true;
-    }
-
-    switch( ct ) {
-    case CHECK_PRED:
-        unit_test_log << unit_test::log::begin( file_name, line_num ) 
-                      << ll << prefix << check_descr << suffix;
-        
-        if( !pr.has_empty_message() )
-            unit_test_log << ". " << pr.message();
-        
-        unit_test_log << unit_test::log::end();
-        break;
-
-    case CHECK_MSG:
-        unit_test_log << unit_test::log::begin( file_name, line_num ) << ll;
-        
-        if( tl == PASS )
-            unit_test_log << prefix << "'" << check_descr << "'" << suffix;
-        else
-            unit_test_log << check_descr;
-        
-        if( !pr.has_empty_message() )
-            unit_test_log << ". " << pr.message();
-
-        unit_test_log << unit_test::log::end();
-        break;
-
-    case CHECK_EQUAL: 
-    case CHECK_NE: 
-    case CHECK_LT: 
-    case CHECK_LE: 
-    case CHECK_GT: 
-    case CHECK_GE: {
-        static char const* check_str [] = { " == ", " != ", " < " , " <= ", " > " , " >= " };
-        static char const* rever_str [] = { " != ", " == ", " >= ", " > " , " <= ", " < "  };
-
-        va_list args;
-
-        va_start( args, num_of_args );
-        char const*         arg1_descr  = va_arg( args, char const* );
-        lazy_ostream const* arg1_val    = va_arg( args, lazy_ostream const* );
-        char const*         arg2_descr  = va_arg( args, char const* );
-        lazy_ostream const* arg2_val    = va_arg( args, lazy_ostream const* );
-
-        unit_test_log << unit_test::log::begin( file_name, line_num ) 
-                      << ll << prefix << arg1_descr << check_str[ct-CHECK_EQUAL] << arg2_descr << suffix;
-
-        if( tl != PASS )
-            unit_test_log << " [" << *arg1_val << rever_str[ct-CHECK_EQUAL] << *arg2_val << "]" ;
-
-        va_end( args );
-        
-        if( !pr.has_empty_message() )
-            unit_test_log << ". " << pr.message();
-
-        unit_test_log << unit_test::log::end();
-        break;
-    }
-
-    case CHECK_CLOSE:
-    case CHECK_CLOSE_FRACTION: {
-        va_list args;
-
-        va_start( args, num_of_args );
-        char const*         arg1_descr  = va_arg( args, char const* );
-        lazy_ostream const* arg1_val    = va_arg( args, lazy_ostream const* );
-        char const*         arg2_descr  = va_arg( args, char const* );
-        lazy_ostream const* arg2_val    = va_arg( args, lazy_ostream const* );
-        /* toler_descr = */               va_arg( args, char const* );
-        lazy_ostream const* toler_val   = va_arg( args, lazy_ostream const* );
-
-        unit_test_log << unit_test::log::begin( file_name, line_num ) << ll;
-
-        unit_test_log << "difference{" << pr.message() << (ct == CHECK_CLOSE ? "%" : "")
-                      << "} between " << arg1_descr << "{" << *arg1_val
-                      << "} and "               << arg2_descr << "{" << *arg2_val
-                      << ( tl == PASS ? "} doesn't exceed " : "} exceeds " )
-                      << *toler_val;
-        if( ct == CHECK_CLOSE )
-            unit_test_log << "%";
-
-        va_end( args );
-        
-        unit_test_log << unit_test::log::end();
-        break;
-    }
-    case CHECK_SMALL: {
-        va_list args;
-
-        va_start( args, num_of_args );
-        char const*         arg1_descr  = va_arg( args, char const* );
-        lazy_ostream const* arg1_val    = va_arg( args, lazy_ostream const* );
-        /* toler_descr = */               va_arg( args, char const* );
-        lazy_ostream const* toler_val   = va_arg( args, lazy_ostream const* );
-
-        unit_test_log << unit_test::log::begin( file_name, line_num ) << ll;
-
-        unit_test_log << "absolute value of " << arg1_descr << "{" << *arg1_val << "}" 
-                      << ( tl == PASS ? " doesn't exceed " : " exceeds " )
-                      << *toler_val;
-
-        va_end( args );
-        
-        if( !pr.has_empty_message() )
-            unit_test_log << ". " << pr.message();
-
-        unit_test_log << unit_test::log::end();
-        break;
-    }
-
-    case CHECK_PRED_WITH_ARGS: {
-        unit_test_log << unit_test::log::begin( file_name, line_num ) 
-                      << ll << prefix << check_descr;
-
-        // print predicate call description
-        {
-            va_list args;
-            va_start( args, num_of_args );
-
-            unit_test_log << "( ";
-            for( std::size_t i = 0; i < num_of_args; ++i ) {
-                unit_test_log << va_arg( args, char const* );
-                va_arg( args, lazy_ostream const* ); // skip argument value;
-                
-                if( i != num_of_args-1 )
-                    unit_test_log << ", ";
-            }
-            unit_test_log << " )" << suffix;
-            va_end( args );
-        }
-                        
-        if( tl != PASS ) {
-            va_list args;
-            va_start( args, num_of_args );
-
-            unit_test_log << " for ( ";
-            for( std::size_t i = 0; i < num_of_args; ++i ) {
-                va_arg( args, char const* ); // skip argument description;            
-                unit_test_log << *va_arg( args, lazy_ostream const* );
-                
-                if( i != num_of_args-1 )
-                    unit_test_log << ", ";
-            }
-            unit_test_log << " )";
-            va_end( args );
-        }
-       
-        if( !pr.has_empty_message() )
-            unit_test_log << ". " << pr.message();
-
-        unit_test_log << unit_test::log::end();
-        break;
-    }
-
-    case CHECK_EQUAL_COLL: {
-        va_list args;
-
-        va_start( args, num_of_args );
-        char const* left_begin_descr    = va_arg( args, char const* );
-        char const* left_end_descr      = va_arg( args, char const* );
-        char const* right_begin_descr   = va_arg( args, char const* );
-        char const* right_end_descr     = va_arg( args, char const* );
-
-        unit_test_log << unit_test::log::begin( file_name, line_num ) 
-                      << ll << prefix 
-                      << "{ " << left_begin_descr  << ", " << left_end_descr  << " } == { " 
-                              << right_begin_descr << ", " << right_end_descr << " }"
-                      << suffix;
-
-        va_end( args );
-        
-        if( !pr.has_empty_message() )
-            unit_test_log << ". " << pr.message();
-
-        unit_test_log << unit_test::log::end();
-        break;
-    }
-
-    case CHECK_BITWISE_EQUAL: {
-        va_list args;
-
-        va_start( args, num_of_args );
-        char const* left_descr    = va_arg( args, char const* );
-        char const* right_descr   = va_arg( args, char const* );
-
-        unit_test_log << unit_test::log::begin( file_name, line_num )
-                      << ll << prefix << left_descr  << " =.= " << right_descr << suffix;
-
-        va_end( args );
-        
-        if( !pr.has_empty_message() )
-            unit_test_log << ". " << pr.message();
-
-        unit_test_log << unit_test::log::end();
-        break;
-    }
-    }
-
-    switch( tl ) {
-    case PASS:
-        framework::assertion_result( true );
-        return true;
-
-    case WARN:
-        return false;
-
-    case CHECK:
-        framework::assertion_result( false );
-        return false;
-        
-    case REQUIRE:
-        framework::assertion_result( false );
-
-        framework::test_unit_aborted( framework::current_test_case() );
-
-        throw execution_aborted();
-    }
-
-    return true;
-}
-
-//____________________________________________________________________________//
-
-predicate_result
-equal_impl( char const* left, char const* right )
-{
-    return (left && right) ? std::strcmp( left, right ) == 0 : (left == right);
-}
-
-//____________________________________________________________________________//
-
-#if !defined( NDNBOOST_NO_CWCHAR )
-
-predicate_result
-equal_impl( wchar_t const* left, wchar_t const* right )
-{
-    return (left && right) ? std::wcscmp( left, right ) == 0 : (left == right);
-}
-
-#endif // !defined( NDNBOOST_NO_CWCHAR )
-
-//____________________________________________________________________________//
-
-bool
-is_defined_impl( const_string symbol_name, const_string symbol_value )
-{
-    symbol_value.trim_left( 2 );
-    return symbol_name != symbol_value;
-}
-
-//____________________________________________________________________________//
-
-} // namespace tt_detail
-
-// ************************************************************************** //
-// **************               output_test_stream             ************** //
-// ************************************************************************** //
-
-struct output_test_stream::Impl
-{
-    std::fstream    m_pattern;
-    bool            m_match_or_save;
-    bool            m_text_or_binary;
-    std::string     m_synced_string;
-
-    char            get_char()
-    {
-        char res;
-        do {
-            m_pattern.get( res );
-        } while( m_text_or_binary && res == '\r' && !m_pattern.fail() && !m_pattern.eof() );
-
-        return res;
-    }
-
-    void            check_and_fill( predicate_result& res )
-    {
-        if( !res.p_predicate_value )
-            res.message() << "Output content: \"" << m_synced_string << '\"';
-    }
-};
-
-//____________________________________________________________________________//
-
-output_test_stream::output_test_stream( const_string pattern_file_name, bool match_or_save, bool text_or_binary )
-: m_pimpl( new Impl )
-{
-    if( !pattern_file_name.is_empty() ) {
-        std::ios::openmode m = match_or_save ? std::ios::in : std::ios::out;
-        if( !text_or_binary )
-            m |= std::ios::binary;
-
-        m_pimpl->m_pattern.open( pattern_file_name.begin(), m );
-
-        NDNBOOST_WARN_MESSAGE( m_pimpl->m_pattern.is_open(),
-                             "Can't open pattern file " << pattern_file_name
-                                << " for " << (match_or_save ? "reading" : "writing") );
-    }
-
-    m_pimpl->m_match_or_save    = match_or_save;
-    m_pimpl->m_text_or_binary   = text_or_binary;
-}
-
-//____________________________________________________________________________//
-
-output_test_stream::~output_test_stream()
-{
-    delete m_pimpl;
-}
-
-//____________________________________________________________________________//
-
-predicate_result
-output_test_stream::is_empty( bool flush_stream )
-{
-    sync();
-
-    result_type res( m_pimpl->m_synced_string.empty() );
-
-    m_pimpl->check_and_fill( res );
-
-    if( flush_stream )
-        flush();
-
-    return res;
-}
-
-//____________________________________________________________________________//
-
-predicate_result
-output_test_stream::check_length( std::size_t length_, bool flush_stream )
-{
-    sync();
-
-    result_type res( m_pimpl->m_synced_string.length() == length_ );
-
-    m_pimpl->check_and_fill( res );
-
-    if( flush_stream )
-        flush();
-
-    return res;
-}
-
-//____________________________________________________________________________//
-
-predicate_result
-output_test_stream::is_equal( const_string arg, bool flush_stream )
-{
-    sync();
-
-    result_type res( const_string( m_pimpl->m_synced_string ) == arg );
-
-    m_pimpl->check_and_fill( res );
-
-    if( flush_stream )
-        flush();
-
-    return res;
-}
-
-//____________________________________________________________________________//
-
-predicate_result
-output_test_stream::match_pattern( bool flush_stream )
-{
-    sync();
-
-    result_type result( true );
-
-    if( !m_pimpl->m_pattern.is_open() ) {
-        result = false;
-        result.message() << "Pattern file can't be opened!";
-    }
-    else {
-        if( m_pimpl->m_match_or_save ) {
-            for ( std::string::size_type i = 0; i < m_pimpl->m_synced_string.length(); ++i ) {
-                char c = m_pimpl->get_char();
-
-                result = !m_pimpl->m_pattern.fail() &&
-                         !m_pimpl->m_pattern.eof()  &&
-                         (m_pimpl->m_synced_string[i] == c);
-
-                if( !result ) {
-                    std::string::size_type suffix_size  = (std::min)( m_pimpl->m_synced_string.length() - i,
-                                                                    static_cast<std::string::size_type>(5) );
-
-                    // try to log area around the mismatch
-                    result.message() << "Mismatch at position " << i << '\n'
-                        << "..." << m_pimpl->m_synced_string.substr( i, suffix_size ) << "..." << '\n'
-                        << "..." << c;
-
-                    std::string::size_type counter = suffix_size;
-                    while( --counter ) {
-                        char c = m_pimpl->get_char();
-
-                        if( m_pimpl->m_pattern.fail() || m_pimpl->m_pattern.eof() )
-                            break;
-
-                        result.message() << c;
-                    }
-
-                    result.message() << "...";
-
-                    // skip rest of the bytes. May help for further matching
-                    m_pimpl->m_pattern.ignore( 
-                        static_cast<std::streamsize>( m_pimpl->m_synced_string.length() - i - suffix_size) );
-                    break;
-                }
-            }
-        }
-        else {
-            m_pimpl->m_pattern.write( m_pimpl->m_synced_string.c_str(),
-                                      static_cast<std::streamsize>( m_pimpl->m_synced_string.length() ) );
-            m_pimpl->m_pattern.flush();
-        }
-    }
-
-    if( flush_stream )
-        flush();
-
-    return result;
-}
-
-//____________________________________________________________________________//
-
-void
-output_test_stream::flush()
-{
-    m_pimpl->m_synced_string.erase();
-
-#ifndef NDNBOOST_NO_STRINGSTREAM
-    str( std::string() );
-#else
-    seekp( 0, std::ios::beg );
-#endif
-}
-
-//____________________________________________________________________________//
-
-std::size_t
-output_test_stream::length()
-{
-    sync();
-
-    return m_pimpl->m_synced_string.length();
-}
-
-//____________________________________________________________________________//
-
-void
-output_test_stream::sync()
-{
-#ifdef NDNBOOST_NO_STRINGSTREAM
-    m_pimpl->m_synced_string.assign( str(), pcount() );
-    freeze( false );
-#else
-    m_pimpl->m_synced_string = str();
-#endif
-}
-
-//____________________________________________________________________________//
-
-} // namespace test_tools
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index c5b7c12..0000000
--- a/include/ndnboost/test/impl/unit_test_log.ipp
+++ /dev/null
@@ -1,444 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : implemets Unit Test Log
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/unit_test_log_formatter.hpp>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/execution_monitor.hpp>
-
-#include <ndnboost/test/detail/unit_test_parameters.hpp>
-
-#include <ndnboost/test/utils/basic_cstring/compare.hpp>
-
-#include <ndnboost/test/output/compiler_log_formatter.hpp>
-#include <ndnboost/test/output/xml_log_formatter.hpp>
-
-// Boost
-#include <ndnboost/scoped_ptr.hpp>
-#include <ndnboost/io/ios_state.hpp>
-typedef ::ndnboost::io::ios_base_all_saver io_saver_type;
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************             entry_value_collector            ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-entry_value_collector const&
-entry_value_collector::operator<<( lazy_ostream const& v ) const
-{
-    unit_test_log << v;
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-entry_value_collector const& 
-entry_value_collector::operator<<( const_string v ) const
-{
-    unit_test_log << v;
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-entry_value_collector::~entry_value_collector()
-{
-    if( m_last )
-        unit_test_log << log::end();
-}
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-// ************************************************************************** //
-// **************                 unit_test_log                ************** //
-// ************************************************************************** //
-
-namespace {
-
-struct unit_test_log_impl {
-    // Constructor
-    unit_test_log_impl()
-    : m_stream( runtime_config::log_sink() )
-    , m_stream_state_saver( new io_saver_type( *m_stream ) )
-    , m_threshold_level( log_all_errors )
-    , m_log_formatter( new output::compiler_log_formatter )
-    {
-    }
-
-    // log data
-    typedef scoped_ptr<unit_test_log_formatter> formatter_ptr;
-    typedef scoped_ptr<io_saver_type>           saver_ptr;
-
-    std::ostream*       m_stream;
-    saver_ptr           m_stream_state_saver;
-    log_level           m_threshold_level;
-    formatter_ptr       m_log_formatter;
-
-    // entry data
-    bool                m_entry_in_progress;
-    bool                m_entry_started;
-    log_entry_data      m_entry_data;
-
-    // check point data
-    log_checkpoint_data m_checkpoint_data;
-
-    // helper functions
-    std::ostream&       stream()            { return *m_stream; }
-    void                set_checkpoint( const_string file, std::size_t line_num, const_string msg )
-    {
-        assign_op( m_checkpoint_data.m_message, msg, 0 );
-        m_checkpoint_data.m_file_name    = file;
-        m_checkpoint_data.m_line_num    = line_num;
-    }
-};
-
-unit_test_log_impl& s_log_impl() { static unit_test_log_impl the_inst; return the_inst; }
-
-} // local namespace
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::test_start( counter_t test_cases_amount )
-{
-    if( s_log_impl().m_threshold_level == log_nothing )
-        return;
-
-    s_log_impl().m_log_formatter->log_start( s_log_impl().stream(), test_cases_amount );
-
-    if( runtime_config::show_build_info() )
-        s_log_impl().m_log_formatter->log_build_info( s_log_impl().stream() );
-
-    s_log_impl().m_entry_in_progress = false;
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::test_finish()
-{
-    if( s_log_impl().m_threshold_level == log_nothing )
-        return;
-
-    s_log_impl().m_log_formatter->log_finish( s_log_impl().stream() );
-
-    s_log_impl().stream().flush();
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::test_aborted()
-{
-    NDNBOOST_TEST_LOG_ENTRY( log_messages ) << "Test is aborted";
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::test_unit_start( test_unit const& tu )
-{
-    if( s_log_impl().m_threshold_level > log_test_units )
-        return;
-
-    if( s_log_impl().m_entry_in_progress )
-        *this << log::end();
-
-    s_log_impl().m_log_formatter->test_unit_start( s_log_impl().stream(), tu );
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::test_unit_finish( test_unit const& tu, unsigned long elapsed )
-{
-    if( s_log_impl().m_threshold_level > log_test_units )
-        return;
-
-    s_log_impl().m_checkpoint_data.clear();
-
-    if( s_log_impl().m_entry_in_progress )
-        *this << log::end();
-
-    s_log_impl().m_log_formatter->test_unit_finish( s_log_impl().stream(), tu, elapsed );
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::test_unit_skipped( test_unit const& tu )
-{
-    if( s_log_impl().m_threshold_level > log_test_units )
-        return;
-
-    if( s_log_impl().m_entry_in_progress )
-        *this << log::end();
-
-    s_log_impl().m_log_formatter->test_unit_skipped( s_log_impl().stream(), tu );
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::test_unit_aborted( test_unit const& )
-{
-    // do nothing
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::assertion_result( bool )
-{
-    // do nothing
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::exception_caught( execution_exception const& ex )
-{
-    log_level l =
-        ex.code() <= execution_exception::cpp_exception_error   ? log_cpp_exception_errors :
-        (ex.code() <= execution_exception::timeout_error        ? log_system_errors
-                                                                : log_fatal_errors );
-
-    if( l >= s_log_impl().m_threshold_level ) {
-        if( s_log_impl().m_entry_in_progress )
-            *this << log::end();
-
-        s_log_impl().m_log_formatter->log_exception( s_log_impl().stream(), s_log_impl().m_checkpoint_data, ex );
-    }
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::set_checkpoint( const_string file, std::size_t line_num, const_string msg )
-{
-    s_log_impl().set_checkpoint( file, line_num, msg );
-}
-
-//____________________________________________________________________________//
-
-char
-set_unix_slash( char in )
-{
-    return in == '\\' ? '/' : in;
-}
-    
-unit_test_log_t&
-unit_test_log_t::operator<<( log::begin const& b )
-{
-    if( s_log_impl().m_entry_in_progress )
-        *this << log::end();
-
-    s_log_impl().m_stream_state_saver->restore();
-
-    s_log_impl().m_entry_data.clear();
-
-    assign_op( s_log_impl().m_entry_data.m_file_name, b.m_file_name, 0 );
-
-    // normalize file name
-    std::transform( s_log_impl().m_entry_data.m_file_name.begin(), s_log_impl().m_entry_data.m_file_name.end(),
-                    s_log_impl().m_entry_data.m_file_name.begin(),
-                    &set_unix_slash );
-
-    s_log_impl().m_entry_data.m_line_num = b.m_line_num;
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-unit_test_log_t&
-unit_test_log_t::operator<<( log::end const& )
-{
-    if( s_log_impl().m_entry_in_progress )
-        s_log_impl().m_log_formatter->log_entry_finish( s_log_impl().stream() );
-
-    s_log_impl().m_entry_in_progress = false;
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-unit_test_log_t&
-unit_test_log_t::operator<<( log_level l )
-{
-    s_log_impl().m_entry_data.m_level = l;
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-ut_detail::entry_value_collector
-unit_test_log_t::operator()( log_level l )
-{
-    *this << l;
-
-    return ut_detail::entry_value_collector();
-}
-
-//____________________________________________________________________________//
-
-bool
-unit_test_log_t::log_entry_start()
-{
-    if( s_log_impl().m_entry_in_progress ) 
-        return true;
-
-    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::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::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::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::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::NDNBOOST_UTL_ET_FATAL_ERROR );
-        break;
-    case log_nothing:
-    case log_test_units:
-    case invalid_log_level:
-        return false;
-    }
-
-    s_log_impl().m_entry_in_progress = true;
-
-    return true;
-}
-
-//____________________________________________________________________________//
-
-unit_test_log_t&
-unit_test_log_t::operator<<( const_string value )
-{
-    if( s_log_impl().m_entry_data.m_level >= s_log_impl().m_threshold_level && !value.empty() && log_entry_start() )
-        s_log_impl().m_log_formatter->log_entry_value( s_log_impl().stream(), value );
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-unit_test_log_t&
-unit_test_log_t::operator<<( lazy_ostream const& value )
-{
-    if( s_log_impl().m_entry_data.m_level >= s_log_impl().m_threshold_level && !value.empty() && log_entry_start() )
-        s_log_impl().m_log_formatter->log_entry_value( s_log_impl().stream(), value );
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::set_stream( std::ostream& str )
-{
-    if( s_log_impl().m_entry_in_progress )
-        return;
-
-    s_log_impl().m_stream = &str;
-    s_log_impl().m_stream_state_saver.reset( new io_saver_type( str ) );
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::set_threshold_level( log_level lev )
-{
-    if( s_log_impl().m_entry_in_progress || lev == invalid_log_level )
-        return;
-
-    s_log_impl().m_threshold_level = lev;
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::set_format( output_format log_format )
-{
-    if( s_log_impl().m_entry_in_progress )
-        return;
-
-    if( log_format == CLF )
-        set_formatter( new output::compiler_log_formatter );
-    else
-        set_formatter( new output::xml_log_formatter );
-}
-
-//____________________________________________________________________________//
-
-void
-unit_test_log_t::set_formatter( unit_test_log_formatter* the_formatter )
-{
-    s_log_impl().m_log_formatter.reset( the_formatter );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************            unit_test_log_formatter           ************** //
-// ************************************************************************** //
-
-void
-unit_test_log_formatter::log_entry_value( std::ostream& ostr, lazy_ostream const& value )
-{
-    log_entry_value( ostr, (wrap_stringstream().ref() << value).str() );
-}
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 12691f5..0000000
--- a/include/ndnboost/test/impl/unit_test_main.ipp
+++ /dev/null
@@ -1,246 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : main function implementation for Unit Test Framework
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_UNIT_TEST_MAIN_IPP_012205GER
-#define NDNBOOST_TEST_UNIT_TEST_MAIN_IPP_012205GER
-
-// Boost.Test
-#include <ndnboost/test/framework.hpp>
-#include <ndnboost/test/results_collector.hpp>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/results_reporter.hpp>
-
-#include <ndnboost/test/detail/unit_test_parameters.hpp>
-
-#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
-
-// Boost
-#include <ndnboost/cstdlib.hpp>
-#include <ndnboost/bind.hpp>
-
-// STL
-#include <stdexcept>
-#include <iostream>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                 test_case_filter             ************** //
-// ************************************************************************** //
-
-class test_case_filter : public test_tree_visitor {
-public:
-    struct single_filter {
-        single_filter( const_string in )
-        {
-            if( in == "*" )
-                m_kind  = SFK_ALL;
-            else if( first_char( in ) == '*' && last_char( in ) == '*' ) {
-                m_kind  = SFK_SUBSTR;
-                m_value = in.substr( 1, in.size()-1 );
-            }
-            else if( first_char( in ) == '*' ) {
-                m_kind  = SFK_TRAILING;
-                m_value = in.substr( 1 );
-            }
-            else if( last_char( in ) == '*' ) {
-                m_kind  = SFK_LEADING;
-                m_value = in.substr( 0, in.size()-1 );
-            }
-            else {
-                m_kind  = SFK_MATCH;
-                m_value = in;
-            }
-        };
-
-        bool            pass( test_unit const& tu ) const
-        {
-            const_string name( tu.p_name );
-    
-            switch( m_kind ) {
-            default:
-            case SFK_ALL:
-                return true;
-
-            case SFK_LEADING:
-                return name.substr( 0, m_value.size() ) == m_value;
-
-            case SFK_TRAILING:
-                return name.size() >= m_value.size() && name.substr( name.size() - m_value.size() ) == m_value;
-
-            case SFK_SUBSTR:
-                return name.find( m_value ) != const_string::npos;
-
-            case SFK_MATCH:
-                return m_value == tu.p_name.get();
-            }
-        }
-        enum kind { SFK_ALL, SFK_LEADING, SFK_TRAILING, SFK_SUBSTR, SFK_MATCH };
-
-        kind            m_kind;
-        const_string    m_value;
-    };
-    // Constructor
-#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 ) 
-    : m_depth( 0 )
-    {
-        string_token_iterator tit( tc_to_run, (dropped_delimeters = "/", kept_delimeters = dt_none) );
-
-        while( tit != string_token_iterator() ) {
-            m_filters.push_back( 
-                std::vector<single_filter>( string_token_iterator( *tit, (dropped_delimeters = ",", kept_delimeters = dt_none)  ), 
-                                            string_token_iterator() ) );
-
-            ++tit;           
-        }
-    }
-#endif
-    
-    void            filter_unit( test_unit const& tu )
-    {
-        if( (++m_depth - 1) > m_filters.size() ) {
-            tu.p_enabled.value = true;
-            return;
-        }
-
-        if( m_depth == 1 )
-            return;
-
-        std::vector<single_filter> const& filters = m_filters[m_depth-2];
-
-        tu.p_enabled.value =
-            std::find_if( filters.begin(), filters.end(), bind( &single_filter::pass, _1, ndnboost::ref(tu) ) ) != filters.end();
-    }
-
-    // test tree visitor interface
-    virtual void    visit( test_case const& tc )
-    {
-        if( m_depth < m_filters.size() ) {
-            tc.p_enabled.value = false;
-            return;
-        }
-
-        filter_unit( tc );
-
-        --m_depth;
-    }
-
-    virtual bool    test_suite_start( test_suite const& ts )
-    { 
-        filter_unit( ts );
-
-        if( !ts.p_enabled )
-            --m_depth;
-
-        return ts.p_enabled;
-    }
-
-    virtual void    test_suite_finish( test_suite const& )  { --m_depth; }
-
-private:
-    // Data members
-    std::vector<std::vector<single_filter> >    m_filters;
-    unsigned                                    m_depth;
-};
-
-// ************************************************************************** //
-// **************                  unit_test_main              ************** //
-// ************************************************************************** //
-
-int NDNBOOST_TEST_DECL
-unit_test_main( init_unit_test_func init_func, int argc, char* argv[] )
-{
-    try {
-        framework::init( init_func, argc, argv );
-
-        if( !runtime_config::test_to_run().is_empty() ) {
-            test_case_filter filter( runtime_config::test_to_run() );
-
-            traverse_test_tree( framework::master_test_suite().p_id, filter );
-        }
-
-        framework::run();
-
-        results_reporter::make_report();
-
-        return runtime_config::no_result_code() 
-                    ? ndnboost::exit_success
-                    : results_collector.results( framework::master_test_suite().p_id ).result_code();
-    }
-    catch( framework::nothing_to_test const& ) {
-        return ndnboost::exit_success;
-    }
-    catch( framework::internal_error const& ex ) {
-        results_reporter::get_stream() << "Boost.Test framework internal error: " << ex.what() << std::endl;
-        
-        return ndnboost::exit_exception_failure;
-    }
-    catch( framework::setup_error const& ex ) {
-        results_reporter::get_stream() << "Test setup error: " << ex.what() << std::endl;
-        
-        return ndnboost::exit_exception_failure;
-    }
-    catch( ... ) {
-        results_reporter::get_stream() << "Boost.Test framework internal error: unknown reason" << std::endl;
-        
-        return ndnboost::exit_exception_failure;
-    }
-}
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-#if !defined(NDNBOOST_TEST_DYN_LINK) && !defined(NDNBOOST_TEST_NO_MAIN)
-
-// ************************************************************************** //
-// **************        main function for tests using lib     ************** //
-// ************************************************************************** //
-
-int NDNBOOST_TEST_CALL_DECL
-main( int argc, char* argv[] )
-{
-    // prototype for user's unit test init function
-#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
-    extern bool init_unit_test();
-
-    ndnboost::unit_test::init_unit_test_func init_func = &init_unit_test;
-#else
-    extern ::ndnboost::unit_test::test_suite* init_unit_test_suite( int argc, char* argv[] );
-
-    ndnboost::unit_test::init_unit_test_func init_func = &init_unit_test_suite;
-#endif
-
-    return ::ndnboost::unit_test::unit_test_main( init_func, argc, argv );
-}
-
-#endif // !NDNBOOST_TEST_DYN_LINK && !NDNBOOST_TEST_NO_MAIN
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index b74701d..0000000
--- a/include/ndnboost/test/impl/unit_test_monitor.ipp
+++ /dev/null
@@ -1,101 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : implements specific subclass of Executon Monitor used by Unit
-//  Test Framework to monitor test cases run.
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/test_tools.hpp>
-#include <ndnboost/test/framework.hpp>
-
-#include <ndnboost/test/detail/unit_test_parameters.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace {
-
-template<typename F>
-struct zero_return_wrapper_t {
-    explicit zero_return_wrapper_t( F const& f ) : m_f( f ) {}
-    
-    int operator()() { m_f(); return 0; }
-    
-    F const& m_f;
-};
-
-template<typename F>
-zero_return_wrapper_t<F>
-zero_return_wrapper( F const& f )
-{
-    return zero_return_wrapper_t<F>( f );
-}
-
-}
-
-// ************************************************************************** //
-// **************               unit_test_monitor              ************** //
-// ************************************************************************** //
-
-unit_test_monitor_t::error_level
-unit_test_monitor_t::execute_and_translate( test_case const& tc )
-{
-    try {
-        p_catch_system_errors.value     = runtime_config::catch_sys_errors();
-        p_timeout.value                 = tc.p_timeout.get();
-        p_auto_start_dbg.value          = runtime_config::auto_start_dbg();
-        p_use_alt_stack.value           = runtime_config::use_alt_stack();
-        p_detect_fp_exceptions.value    = runtime_config::detect_fp_exceptions();
-
-        execute( callback0<int>( zero_return_wrapper( tc.test_func() ) ) );
-    }
-    catch( execution_exception const& ex ) {
-        framework::exception_caught( ex );
-        framework::test_unit_aborted( framework::current_test_case() );
-
-        // translate execution_exception::error_code to error_level
-        switch( ex.code() ) {
-        case execution_exception::no_error:             return test_ok;
-        case execution_exception::user_error:           return unexpected_exception;
-        case execution_exception::cpp_exception_error:  return unexpected_exception;
-        case execution_exception::system_error:         return os_exception;
-        case execution_exception::timeout_error:        return os_timeout;
-        case execution_exception::user_fatal_error:
-        case execution_exception::system_fatal_error:   return fatal_error;
-        default:                                        return unexpected_exception;
-        }
-    }
-
-    return test_ok;
-}
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 65f3fa5..0000000
--- a/include/ndnboost/test/impl/unit_test_parameters.ipp
+++ /dev/null
@@ -1,527 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 63640 $
-//
-//  Description : simple implementation for Unit Test Framework parameter
-//  handling routines. May be rewritten in future to use some kind of
-//  command-line arguments parsing facility and environment variable handling
-//  facility
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
-#include <ndnboost/test/utils/basic_cstring/compare.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-#include <ndnboost/test/utils/fixed_mapping.hpp>
-#include <ndnboost/test/debug.hpp>
-#include <ndnboost/test/framework.hpp>
-
-// Boost.Runtime.Param
-#include <ndnboost/test/utils/runtime/cla/dual_name_parameter.hpp>
-#include <ndnboost/test/utils/runtime/cla/parser.hpp>
-
-namespace rt  = ndnboost::runtime;
-namespace cla = rt::cla;
-
-
-#ifndef UNDER_CE
-#include <ndnboost/test/utils/runtime/env/variable.hpp>
-
-namespace env = rt::env;
-#endif
-
-
-// Boost
-#include <ndnboost/config.hpp>
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-#include <ndnboost/lexical_cast.hpp>
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-// STL
-#include <map>
-#include <cstdlib>
-#include <iostream>
-#include <fstream>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-# ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::getenv; using ::strncmp; using ::strcmp; }
-# endif
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************    input operations for unit_test's enums    ************** //
-// ************************************************************************** //
-
-std::istream&
-operator>>( std::istream& in, unit_test::log_level& ll )
-{
-    static fixed_mapping<const_string,unit_test::log_level,case_ins_less<char const> > log_level_name(
-        "all"           , log_successful_tests,
-        "success"       , log_successful_tests,
-        "test_suite"    , log_test_units,
-        "unit_scope"    , log_test_units,
-        "message"       , log_messages,
-        "warning"       , log_warnings,
-        "error"         , log_all_errors,
-        "cpp_exception" , log_cpp_exception_errors,
-        "system_error"  , log_system_errors,
-        "fatal_error"   , log_fatal_errors,
-        "nothing"       , log_nothing,
-
-        invalid_log_level
-        );
-
-    std::string val;
-    in >> val;
-
-    ll = log_level_name[val];
-    NDNBOOST_TEST_SETUP_ASSERT( ll != unit_test::invalid_log_level, "invalid log level " + val );
-
-    return in;
-}
-
-//____________________________________________________________________________//
-
-std::istream&
-operator>>( std::istream& in, unit_test::report_level& rl )
-{
-    fixed_mapping<const_string,unit_test::report_level,case_ins_less<char const> > report_level_name (
-        "confirm",  CONFIRMATION_REPORT,
-        "short",    SHORT_REPORT,
-        "detailed", DETAILED_REPORT,
-        "no",       NO_REPORT,
-
-        INV_REPORT_LEVEL
-        );
-
-    std::string val;
-    in >> val;
-
-    rl = report_level_name[val];
-    NDNBOOST_TEST_SETUP_ASSERT( rl != INV_REPORT_LEVEL, "invalid report level " + val );
-
-    return in;
-}
-
-//____________________________________________________________________________//
-
-std::istream&
-operator>>( std::istream& in, unit_test::output_format& of )
-{
-    fixed_mapping<const_string,unit_test::output_format,case_ins_less<char const> > output_format_name (
-        "HRF", unit_test::CLF,
-        "CLF", unit_test::CLF,
-        "XML", unit_test::XML,
-
-        unit_test::INV_OF
-        );
-
-    std::string val;
-    in >> val;
-
-    of = output_format_name[val];
-    NDNBOOST_TEST_SETUP_ASSERT( of != unit_test::INV_OF, "invalid output format " + val );
-
-    return in;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                 runtime_config               ************** //
-// ************************************************************************** //
-
-namespace runtime_config {
-
-namespace {
-
-// framework parameters and corresponding command-line arguments
-std::string AUTO_START_DBG    = "auto_start_dbg";
-std::string BREAK_EXEC_PATH   = "break_exec_path";
-std::string BUILD_INFO        = "build_info";
-std::string CATCH_SYS_ERRORS  = "catch_system_errors";
-std::string DETECT_FP_EXCEPT  = "detect_fp_exceptions";
-std::string DETECT_MEM_LEAKS  = "detect_memory_leaks";
-std::string LOG_FORMAT        = "log_format";
-std::string LOG_LEVEL         = "log_level";
-std::string LOG_SINK          = "log_sink";
-std::string OUTPUT_FORMAT     = "output_format";
-std::string RANDOM_SEED       = "random";
-std::string REPORT_FORMAT     = "report_format";
-std::string REPORT_LEVEL      = "report_level";
-std::string REPORT_SINK       = "report_sink";
-std::string RESULT_CODE       = "result_code";
-std::string TESTS_TO_RUN      = "run_test";
-std::string SAVE_TEST_PATTERN = "save_pattern";
-std::string SHOW_PROGRESS     = "show_progress";
-std::string USE_ALT_STACK     = "use_alt_stack";
-
-fixed_mapping<const_string,const_string> parameter_2_env_var(
-    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",
-
-    ""
-);
-
-//____________________________________________________________________________//
-
-// storage for the CLAs
-cla::parser     s_cla_parser;
-std::string     s_empty;
-
-output_format   s_report_format;
-output_format   s_log_format;
-
-//____________________________________________________________________________//
-
-template<typename T>
-T
-retrieve_parameter( const_string parameter_name, cla::parser const& s_cla_parser, T const& default_value = T(), T const& optional_value = T() )
-{
-    rt::const_argument_ptr arg = s_cla_parser[parameter_name];
-    if( arg ) {
-        if( rtti::type_id<T>() == rtti::type_id<bool>() ||
-            !static_cast<cla::parameter const&>( arg->p_formal_parameter.get() ).p_optional_value )
-            return s_cla_parser.get<T>( parameter_name );
-
-        optional<T> val = s_cla_parser.get<optional<T> >( parameter_name );
-        if( val )
-            return *val;
-        else
-            return optional_value;
-    }
-
-    ndnboost::optional<T> v;
-
-#ifndef UNDER_CE
-    env::get( parameter_2_env_var[parameter_name], v );
-#endif
-
-    if( v )
-        return *v;
-    else
-        return default_value;
-}
-
-//____________________________________________________________________________//
-
-} // local namespace 
-
-void
-init( int& argc, char** argv )
-{
-    using namespace cla;
-
-    try {
-        s_cla_parser - cla::ignore_mismatch
-          << cla::dual_name_parameter<bool>( AUTO_START_DBG + "|d" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Automatically starts debugger if system level error (signal) occurs")
-          << cla::named_parameter<std::string>( BREAK_EXEC_PATH )
-            - (cla::prefix = "--",cla::separator = "=",cla::guess_name,cla::optional,
-               cla::description = "For the exception safety testing allows to break at specific execution path")
-          << cla::dual_name_parameter<bool>( BUILD_INFO + "|i" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Shows library build information" )
-          << cla::dual_name_parameter<bool>( CATCH_SYS_ERRORS + "|s" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Allows to switch between catching and ignoring system errors (signals)")
-          << cla::named_parameter<bool>( DETECT_FP_EXCEPT )
-            - (cla::prefix = "--",cla::separator = "=",cla::guess_name,cla::optional,
-               cla::description = "Allows to switch between catching and ignoring floating point exceptions")
-          << cla::named_parameter<long>( DETECT_MEM_LEAKS )
-            - (cla::prefix = "--",cla::separator = "=",cla::guess_name,cla::optional,
-               cla::description = "Allows to switch between catching and ignoring memory leaks")
-          << cla::dual_name_parameter<unit_test::output_format>( LOG_FORMAT + "|f" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Specifies log format")
-          << cla::dual_name_parameter<unit_test::log_level>( LOG_LEVEL + "|l" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Specifies log level")
-          << cla::dual_name_parameter<std::string>( LOG_SINK + "|k" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Specifies log sink:stdout(default),stderr or file name")
-          << cla::dual_name_parameter<unit_test::output_format>( OUTPUT_FORMAT + "|o" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Specifies output format (both log and report)")
-          << cla::dual_name_parameter<int>( RANDOM_SEED + "|a" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,cla::optional_value,
-               cla::description = "Allows to switch between sequential and random order of test units execution.\n"
-                                  "Optionally allows to specify concrete seed for random number generator")
-          << cla::dual_name_parameter<unit_test::output_format>( REPORT_FORMAT + "|m" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Specifies report format")
-          << cla::dual_name_parameter<unit_test::report_level>(REPORT_LEVEL + "|r")
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Specifies report level")
-          << cla::dual_name_parameter<std::string>( REPORT_SINK + "|e" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Specifies report sink:stderr(default),stdout or file name")
-          << cla::dual_name_parameter<bool>( RESULT_CODE + "|c" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Allows to disable test modules's result code generation")
-          << cla::dual_name_parameter<std::string>( TESTS_TO_RUN + "|t" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Allows to filter which test units to run")
-          << cla::named_parameter<bool>( SAVE_TEST_PATTERN )
-            - (cla::prefix = "--",cla::separator = "=",cla::guess_name,cla::optional,
-               cla::description = "Allows to switch between saving and matching against test pattern file")
-          << cla::dual_name_parameter<bool>( SHOW_PROGRESS + "|p" )
-            - (cla::prefix = "--|-",cla::separator = "=| ",cla::guess_name,cla::optional,
-               cla::description = "Turns on progress display")
-          << cla::named_parameter<bool>( USE_ALT_STACK )
-            - (cla::prefix = "--",cla::separator = "=",cla::guess_name,cla::optional,
-               cla::description = "Turns on/off usage of an alternative stack for signal handling")
-
-          << cla::dual_name_parameter<bool>( "help|?" )
-            - (cla::prefix = "--|-",cla::separator = "=",cla::guess_name,cla::optional,
-               cla::description = "this help message")
-            ;
-
-        s_cla_parser.parse( argc, argv );
-
-        if( s_cla_parser["help"] ) {
-            s_cla_parser.help( std::cout );
-            throw framework::nothing_to_test();
-        }
-
-        s_report_format     = retrieve_parameter( REPORT_FORMAT, s_cla_parser, unit_test::CLF );
-        s_log_format        = retrieve_parameter( LOG_FORMAT, s_cla_parser, unit_test::CLF );
-
-        unit_test::output_format of = retrieve_parameter( OUTPUT_FORMAT, s_cla_parser, unit_test::INV_OF );
-
-        if( of != unit_test::INV_OF )
-            s_report_format = s_log_format = of;
-    }
-    catch( rt::logic_error const& ex ) {
-        std::ostringstream err;
-        
-        err << "Fail to process runtime parameters: " << ex.msg() << std::endl;
-        s_cla_parser.usage( err );
-
-        throw framework::setup_error( err.str() );
-    }
-}
-
-//____________________________________________________________________________//
-
-unit_test::log_level
-log_level()
-{
-    return retrieve_parameter( LOG_LEVEL, s_cla_parser, unit_test::log_all_errors );
-}
-
-//____________________________________________________________________________//
-
-bool
-no_result_code()
-{
-    return !retrieve_parameter( RESULT_CODE, s_cla_parser, true );
-}
-
-//____________________________________________________________________________//
-
-unit_test::report_level
-report_level()
-{
-    return retrieve_parameter( REPORT_LEVEL, s_cla_parser, unit_test::CONFIRMATION_REPORT );
-}
-
-//____________________________________________________________________________//
-
-const_string
-test_to_run()
-{
-    static std::string s_test_to_run = retrieve_parameter( TESTS_TO_RUN, s_cla_parser, s_empty );
-
-    return s_test_to_run;
-}
-
-//____________________________________________________________________________//
-
-const_string
-break_exec_path()
-{
-    static std::string s_break_exec_path = retrieve_parameter( BREAK_EXEC_PATH, s_cla_parser, s_empty );
-
-    return s_break_exec_path;
-}
-
-//____________________________________________________________________________//
-
-bool
-save_pattern()
-{
-    return retrieve_parameter( SAVE_TEST_PATTERN, s_cla_parser, false );
-}
-
-//____________________________________________________________________________//
-
-bool
-show_progress()
-{
-    return retrieve_parameter( SHOW_PROGRESS, s_cla_parser, false );
-}
-
-//____________________________________________________________________________//
-
-bool
-show_build_info()
-{
-    return retrieve_parameter( BUILD_INFO, s_cla_parser, false );
-}
-
-//____________________________________________________________________________//
-
-bool
-catch_sys_errors()
-{
-    return retrieve_parameter( CATCH_SYS_ERRORS, s_cla_parser, 
-#ifdef NDNBOOST_TEST_DEFAULTS_TO_CORE_DUMP
-        false
-#else
-        true 
-#endif
-        );
-}
-
-//____________________________________________________________________________//
-
-bool
-auto_start_dbg()
-{
-    // !! set debugger as an option
-    return retrieve_parameter( AUTO_START_DBG, s_cla_parser, false );
-;
-}
-
-//____________________________________________________________________________//
-
-bool
-use_alt_stack()
-{
-    return retrieve_parameter( USE_ALT_STACK, s_cla_parser, true );
-}
-
-//____________________________________________________________________________//
-
-bool
-detect_fp_exceptions()
-{
-    return retrieve_parameter( DETECT_FP_EXCEPT, s_cla_parser, false );
-}
-
-//____________________________________________________________________________//
-
-output_format
-report_format()
-{
-    return s_report_format;
-}
-
-//____________________________________________________________________________//
-
-output_format
-log_format()
-{
-    return s_log_format;
-}
-
-//____________________________________________________________________________//
-
-std::ostream*
-report_sink()
-{
-    std::string sink_name = retrieve_parameter( REPORT_SINK, s_cla_parser, s_empty );
-
-    if( sink_name.empty() || sink_name == "stderr" )
-        return &std::cerr;    
-    
-    if( sink_name == "stdout" )
-        return &std::cout;
-
-    static std::ofstream log_file( sink_name.c_str() );
-    return &log_file;
-}
-
-//____________________________________________________________________________//
-
-std::ostream*
-log_sink()
-{
-    std::string sink_name = retrieve_parameter( LOG_SINK, s_cla_parser, s_empty );
-
-    if( sink_name.empty() || sink_name == "stdout" )
-        return &std::cout;    
-
-    if( sink_name == "stderr" )
-        return &std::cerr;    
-
-    static std::ofstream report_file( sink_name.c_str() );
-    return &report_file;
-}
-
-//____________________________________________________________________________//
-
-long
-detect_memory_leaks()
-{
-    return retrieve_parameter( DETECT_MEM_LEAKS, s_cla_parser, static_cast<long>(1) );
-}
-
-//____________________________________________________________________________//
-
-int
-random_seed()
-{
-    return retrieve_parameter( RANDOM_SEED, s_cla_parser, 0, 1 );
-}
-
-//____________________________________________________________________________//
-
-} // namespace runtime_config
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index aea396e..0000000
--- a/include/ndnboost/test/impl/unit_test_suite.ipp
+++ /dev/null
@@ -1,346 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : privides core implementation for Unit Test Framework.
-//                Extensions can be provided in separate files
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
-#define NDNBOOST_TEST_UNIT_TEST_SUITE_IPP_012205GER
-
-// Boost.Test
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/framework.hpp>
-#include <ndnboost/test/utils/foreach.hpp>
-#include <ndnboost/test/results_collector.hpp>
-#include <ndnboost/test/detail/unit_test_parameters.hpp>
-
-// Boost
-#include <ndnboost/timer.hpp>
-
-// STL
-#include <algorithm>
-#include <vector>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-#if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600) && \
-    NDNBOOST_WORKAROUND(_STLPORT_VERSION, <= 0x450) \
-    /**/
-    using std::rand; // rand is in std and random_shuffle is in _STL
-#endif
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                   test_unit                  ************** //
-// ************************************************************************** //
-
-test_unit::test_unit( const_string name, test_unit_type t )
-: p_type( t )
-, p_type_name( t == tut_case ? "case" : "suite" )
-, p_id( INV_TEST_UNIT_ID )
-, p_name( std::string( name.begin(), name.size() ) )
-, p_enabled( true )
-{
-}
-
-//____________________________________________________________________________//
-
-test_unit::~test_unit()
-{
-    framework::deregister_test_unit( this );
-}
-
-//____________________________________________________________________________//
-
-void
-test_unit::depends_on( test_unit* tu )
-{
-    m_dependencies.push_back( tu->p_id );
-}
-
-//____________________________________________________________________________//
-
-bool
-test_unit::check_dependencies() const
-{
-    NDNBOOST_TEST_FOREACH( test_unit_id, tu_id, m_dependencies ) {
-        if( !unit_test::results_collector.results( tu_id ).passed() )
-            return false;
-    }
-
-    return true;
-}
-
-//____________________________________________________________________________//
-
-void
-test_unit::increase_exp_fail( unsigned num )
-{
-    p_expected_failures.value += num;
-
-    if( p_parent_id != 0 )
-        framework::get<test_suite>( p_parent_id ).increase_exp_fail( num );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                   test_case                  ************** //
-// ************************************************************************** //
-
-test_case::test_case( const_string name, callback0<> const& test_func )
-: test_unit( name, static_cast<test_unit_type>(type) )
-, m_test_func( test_func )
-{
-     // !! weirdest MSVC BUG; try to remove this statement; looks like it eats first token of next statement   
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<1300)   
-     0;   
-#endif 
-    framework::register_test_unit( this );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  test_suite                  ************** //
-// ************************************************************************** //
-
-//____________________________________________________________________________//
-
-test_suite::test_suite( const_string name )
-: test_unit( name, static_cast<test_unit_type>(type) )
-{
-    framework::register_test_unit( this );
-}
-
-//____________________________________________________________________________//
-
-void
-test_suite::add( test_unit* tu, counter_t expected_failures, unsigned timeout )
-{
-    if( timeout != 0 )
-        tu->p_timeout.value = timeout;
-
-    m_members.push_back( tu->p_id );
-    tu->p_parent_id.value = p_id;
-
-    if( tu->p_expected_failures )
-        increase_exp_fail( tu->p_expected_failures );
-
-    if( expected_failures )
-        tu->increase_exp_fail( expected_failures );
-}
-
-//____________________________________________________________________________//
-
-void
-test_suite::add( test_unit_generator const& gen, unsigned timeout )
-{
-    test_unit* tu;
-    while((tu = gen.next(), tu))
-        add( tu, 0, timeout );
-}
-
-//____________________________________________________________________________//
-
-void
-test_suite::remove( test_unit_id id )
-{
-    std::vector<test_unit_id>::iterator it = std::find( m_members.begin(), m_members.end(), id );
-
-    if( it != m_members.end() )
-        m_members.erase( it );
-}
-
-//____________________________________________________________________________//
-
-test_unit_id
-test_suite::get( const_string tu_name ) const
-{
-    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;
-    }
-
-    return INV_TEST_UNIT_ID;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************               traverse_test_tree             ************** //
-// ************************************************************************** //
-
-void
-traverse_test_tree( test_case const& tc, test_tree_visitor& V )
-{
-    if( tc.p_enabled )
-    V.visit( tc );
-}
-
-//____________________________________________________________________________//
-
-void
-traverse_test_tree( test_suite const& suite, test_tree_visitor& V )
-{
-    if( !suite.p_enabled || !V.test_suite_start( suite ) )
-        return;
-
-    try {
-        if( runtime_config::random_seed() == 0 ) {
-            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() );
-            NDNBOOST_TEST_FOREACH( test_unit_id, id, members )
-                traverse_test_tree( id, V );
-        }
-        
-    } catch( test_being_aborted const& ) {
-        V.test_suite_finish( suite );
-        framework::test_unit_aborted( suite );
-
-        throw;
-    }
-
-    V.test_suite_finish( suite );
-}
-
-//____________________________________________________________________________//
-
-void
-traverse_test_tree( test_unit_id id, test_tree_visitor& V )
-{
-    if( ut_detail::test_id_2_unit_type( id ) == tut_case )
-        traverse_test_tree( framework::get<test_case>( id ), V );
-    else
-        traverse_test_tree( framework::get<test_suite>( id ), V );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                test_case_counter             ************** //
-// ************************************************************************** //
-
-void
-test_case_counter::visit( test_case const& tc )
-{
-    if( tc.p_enabled )
-        ++p_count.value;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************               object generators              ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-std::string
-normalize_test_case_name( const_string name )
-{
-    return ( name[0] == '&'
-                ? std::string( name.begin()+1, name.size()-1 )
-                : std::string( name.begin(), name.size() ) );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************           auto_test_unit_registrar           ************** //
-// ************************************************************************** //
-
-auto_test_unit_registrar::auto_test_unit_registrar( test_case* tc, counter_t exp_fail )
-{
-    curr_ts_store().back()->add( tc, exp_fail );
-}
-
-//____________________________________________________________________________//
-
-auto_test_unit_registrar::auto_test_unit_registrar( const_string ts_name )
-{
-    test_unit_id id = curr_ts_store().back()->get( ts_name );
-
-    test_suite* ts;
-
-    if( id != INV_TEST_UNIT_ID ) {
-        ts = &framework::get<test_suite>( id ); // !! test for invalid tu type
-        NDNBOOST_ASSERT( ts->p_parent_id == curr_ts_store().back()->p_id );
-    }
-    else {
-        ts = new test_suite( ts_name );
-        curr_ts_store().back()->add( ts );
-    }
-
-    curr_ts_store().push_back( ts );
-}
-
-//____________________________________________________________________________//
-
-auto_test_unit_registrar::auto_test_unit_registrar( test_unit_generator const& tc_gen )
-{
-    curr_ts_store().back()->add( tc_gen );
-}
-
-//____________________________________________________________________________//
-
-auto_test_unit_registrar::auto_test_unit_registrar( int )
-{
-    if( curr_ts_store().size() == 0 )
-        return; // report error?
-
-    curr_ts_store().pop_back();
-}
-
-//____________________________________________________________________________//
-
-std::list<test_suite*>&
-auto_test_unit_registrar::curr_ts_store()
-{
-    static std::list<test_suite*> inst( 1, &framework::master_test_suite() );
-    return inst;
-}
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-// ************************************************************************** //
-// **************                global_fixture                ************** //
-// ************************************************************************** //
-
-global_fixture::global_fixture()
-{
-    framework::register_observer( *this );
-} 
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 49321c3..0000000
--- a/include/ndnboost/test/impl/xml_log_formatter.ipp
+++ /dev/null
@@ -1,180 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : implements XML Log formatter
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/framework.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-
-#include <ndnboost/test/utils/xml_printer.hpp>
-
-// Boost
-#include <ndnboost/version.hpp>
-
-// STL
-#include <iostream>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace output {
-
-static const_string tu_type_name( test_unit const& tu )
-{
-    return tu.p_type == tut_case ? "TestCase" : "TestSuite";
-}
-
-// ************************************************************************** //
-// **************               xml_log_formatter              ************** //
-// ************************************************************************** //
-
-void
-xml_log_formatter::log_start( std::ostream& ostr, counter_t )
-{
-    ostr  << "<TestLog>";
-}
-
-//____________________________________________________________________________//
-
-void
-xml_log_formatter::log_finish( std::ostream& ostr )
-{
-    ostr  << "</TestLog>";
-}
-
-//____________________________________________________________________________//
-
-void
-xml_log_formatter::log_build_info( std::ostream& ostr )
-{
-    ostr  << "<BuildInfo"
-            << " 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      << '\"'
-            << "/>";
-}
-
-//____________________________________________________________________________//
-
-void
-xml_log_formatter::test_unit_start( std::ostream& ostr, test_unit const& tu )
-{
-    ostr << "<" << tu_type_name( tu ) << " name" << attr_value() << tu.p_name.get() << ">";
-}
-
-//____________________________________________________________________________//
-
-void
-xml_log_formatter::test_unit_finish( std::ostream& ostr, test_unit const& tu, unsigned long elapsed )
-{
-    if( tu.p_type == tut_case )
-        ostr << "<TestingTime>" << elapsed << "</TestingTime>";
-        
-    ostr << "</" << tu_type_name( tu ) << ">";
-}
-
-//____________________________________________________________________________//
-
-void
-xml_log_formatter::test_unit_skipped( std::ostream& ostr, test_unit const& tu )
-{
-    ostr << "<" << tu_type_name( tu )
-         << " name"    << attr_value() << tu.p_name.get()
-         << " skipped" << attr_value() << "yes"
-         << "/>";
-}
-    
-//____________________________________________________________________________//
-
-void
-xml_log_formatter::log_exception( std::ostream& ostr, log_checkpoint_data const& checkpoint_data, execution_exception const& ex )
-{
-    execution_exception::location const& loc = ex.where();
-
-    ostr << "<Exception file" << attr_value() << loc.m_file_name
-         << " line"           << attr_value() << loc.m_line_num;
-
-    if( !loc.m_function.is_empty() )
-        ostr << " function"   << attr_value() << loc.m_function;
-
-    ostr << ">" << cdata() << ex.what();
-
-    if( !checkpoint_data.m_file_name.is_empty() ) {
-        ostr << "<LastCheckpoint file" << attr_value() << checkpoint_data.m_file_name
-             << " line"                << attr_value() << checkpoint_data.m_line_num
-             << ">"
-             << cdata() << checkpoint_data.m_message
-             << "</LastCheckpoint>";
-    }
-
-    ostr << "</Exception>";
-}
-
-//____________________________________________________________________________//
-
-void
-xml_log_formatter::log_entry_start( std::ostream& ostr, log_entry_data const& entry_data, log_entry_types let )
-{
-    static literal_string xml_tags[] = { "Info", "Message", "Warning", "Error", "FatalError" };
-
-    m_curr_tag = xml_tags[let];
-    ostr << '<' << m_curr_tag
-         << 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[" );
-}
-
-//____________________________________________________________________________//
-
-void
-xml_log_formatter::log_entry_value( std::ostream& ostr, const_string value )
-{
-    ostr << value;
-}
-
-//____________________________________________________________________________//
-
-void
-xml_log_formatter::log_entry_finish( std::ostream& ostr )
-{
-    ostr << NDNBOOST_TEST_L( "]]></" ) << m_curr_tag << NDNBOOST_TEST_L( ">" );
-
-    m_curr_tag.clear();
-}
-
-//____________________________________________________________________________//
-
-} // namespace output
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 42b28a7..0000000
--- a/include/ndnboost/test/impl/xml_report_formatter.ipp
+++ /dev/null
@@ -1,115 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : XML report formatter
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
-#define NDNBOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
-
-// Boost.Test
-#include <ndnboost/test/results_collector.hpp>
-#include <ndnboost/test/unit_test_suite_impl.hpp>
-#include <ndnboost/test/output/xml_report_formatter.hpp>
-
-#include <ndnboost/test/utils/xml_printer.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace output {
-
-void
-xml_report_formatter::results_report_start( std::ostream& ostr )
-{
-    ostr << "<TestResult>";
-}
-
-//____________________________________________________________________________//
-
-void
-xml_report_formatter::results_report_finish( std::ostream& ostr )
-{
-    ostr << "</TestResult>";
-}
-
-
-//____________________________________________________________________________//
-
-void
-xml_report_formatter::test_unit_report_start( test_unit const& tu, std::ostream& ostr )
-{
-    test_results const& tr = results_collector.results( tu.p_id );
-
-    const_string descr;
-
-    if( tr.passed() )
-        descr = "passed";
-    else if( tr.p_skipped )
-        descr = "skipped";
-    else if( tr.p_aborted )
-        descr = "aborted";
-    else
-        descr = "failed";
-
-    ostr << '<' << ( tu.p_type == tut_case ? "TestCase" : "TestSuite" ) 
-         << " name"     << attr_value() << tu.p_name.get()
-         << " result"   << attr_value() << descr
-         << " assertions_passed"        << attr_value() << tr.p_assertions_passed
-         << " assertions_failed"        << attr_value() << tr.p_assertions_failed
-         << " expected_failures"        << attr_value() << tr.p_expected_failures;
-
-    if( tu.p_type == tut_suite )
-        ostr << " test_cases_passed"    << attr_value() << tr.p_test_cases_passed
-             << " test_cases_failed"    << attr_value() << tr.p_test_cases_failed
-             << " test_cases_skipped"   << attr_value() << tr.p_test_cases_skipped
-             << " test_cases_aborted"   << attr_value() << tr.p_test_cases_aborted;
-             
-    
-    ostr << '>';
-}
-
-//____________________________________________________________________________//
-
-void
-xml_report_formatter::test_unit_report_finish( test_unit const& tu, std::ostream& ostr )
-{
-    ostr << "</" << ( tu.p_type == tut_case ? "TestCase" : "TestSuite" ) << '>';
-}
-
-//____________________________________________________________________________//
-
-void
-xml_report_formatter::do_confirmation_report( test_unit const& tu, std::ostream& ostr )
-{
-    test_unit_report_start( tu, ostr );
-    test_unit_report_finish( tu, ostr );    
-}
-
-//____________________________________________________________________________//
-
-} // namespace output
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_XML_REPORT_FORMATTER_IPP_020105GER
diff --git a/include/ndnboost/test/interaction_based.hpp b/include/ndnboost/test/interaction_based.hpp
deleted file mode 100644
index 0f158c3..0000000
--- a/include/ndnboost/test/interaction_based.hpp
+++ /dev/null
@@ -1,262 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : Facilities to perform interaction-based testing
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_INTERACTION_BASED_HPP_112105GER
-#define NDNBOOST_TEST_INTERACTION_BASED_HPP_112105GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/test/detail/global_typedef.hpp>
-
-#include <ndnboost/test/utils/wrap_stringstream.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-// Boost
-#include <ndnboost/lexical_cast.hpp>
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************               NDNBOOST_ITEST_EPOINT             ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_ITEST_EPOINT( description ) \
-    ::ndnboost::itest::manager::instance().exception_point( NDNBOOST_TEST_L(__FILE__), __LINE__, description )
-/**/
-
-// ************************************************************************** //
-// **************               NDNBOOST_ITEST_DPOINT             ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_ITEST_DPOINT() \
-    ::ndnboost::itest::manager::instance().decision_point( NDNBOOST_TEST_L(__FILE__), __LINE__ )
-/**/
-
-// ************************************************************************** //
-// **************                NDNBOOST_ITEST_SCOPE             ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_ITEST_SCOPE( scope_name ) \
-    ::ndnboost::itest::scope_guard itest_scope_guard ## __LINE__( NDNBOOST_TEST_L(__FILE__), __LINE__, NDNBOOST_STRINGIZE(scope_name) )
-/**/
-
-// ************************************************************************** //
-// **************                 NDNBOOST_ITEST_NEW              ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_ITEST_NEW( type_name ) \
-    new ( ::ndnboost::itest::location( NDNBOOST_TEST_L(__FILE__), __LINE__ ) ) type_name
-/**/
-
-// ************************************************************************** //
-// **************              NDNBOOST_ITEST_DATA_FLOW           ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_ITEST_DATA_FLOW( v ) \
-    ::ndnboost::itest::manager::instance().generic_data_flow( v )
-/**/
-
-// ************************************************************************** //
-// **************               NDNBOOST_ITEST_RETURN             ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_ITEST_RETURN( type, default_value ) \
-    ::ndnboost::itest::manager::instance().generic_return<type>( default_value )
-/**/
-
-// ************************************************************************** //
-// **************              NDNBOOST_ITEST_MOCK_FUNC           ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_ITEST_MOCK_FUNC( function_name )          \
-    NDNBOOST_ITEST_SCOPE( function_name );                 \
-    NDNBOOST_ITEST_EPOINT( 0 );                            \
-    return ::ndnboost::itest::mock_object<>::prototype();  \
-/**/
-
-namespace ndnboost {
-
-namespace itest { // interaction-based testing
-
-using unit_test::const_string;
-
-// ************************************************************************** //
-// **************                    manager                   ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL manager {
-public:
-    // instance access
-    static manager&     instance() { return *instance_ptr(); }
-
-    // Mock objects interface hooks
-    virtual void        exception_point( const_string /*file*/, 
-                                         std::size_t /*line_num*/, 
-                                         const_string /*descr*/ ){}
-    virtual bool        decision_point( const_string /*file*/, 
-                                        std::size_t /*line_num*/ )          { return true; }
-    virtual unsigned    enter_scope( const_string /*file*/, 
-                                     std::size_t /*line_num*/,
-                                     const_string /*scope_name*/){ return 0; }
-    virtual void        leave_scope( unsigned )                             {}
-    virtual void        allocated( const_string /*file*/, 
-                                   std::size_t /*line_num*/, 
-                                   void* /*p*/, std::size_t /*s*/ )         {}
-    virtual void        freed( void* /*p*/ )                                {}
-    virtual void        data_flow( const_string /*d*/ )                     {}
-    virtual std::string return_value( const_string /*default_value */ )     { return ""; }
-
-    template<typename T>
-    void                generic_data_flow( T const& t )
-    {
-        wrap_stringstream ws;
-
-        data_flow( (ws << t).str() );
-    }
-    template<typename T, typename DefaultValueType>
-    T                   generic_return( DefaultValueType const& dv )
-    {
-        wrap_stringstream ws;
-
-        std::string const& res = return_value( (ws << dv).str() );
-
-        if( res.empty() )
-            return dv;
-
-        return lexical_cast<T>( res );
-    }
-
-protected:
-    manager();
-#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564)) 
-public:
-#endif
-    NDNBOOST_TEST_PROTECTED_VIRTUAL ~manager();
-
-private:
-    struct dummy_constr{};
-    explicit manager( dummy_constr* ) {}
-
-    static manager*     instance_ptr( bool reset = false, manager* ptr = 0 );
-}; // manager
-
-// ************************************************************************** //
-// **************                  scope_guard                 ************** //
-// ************************************************************************** //
-
-class scope_guard {
-public:
-    // Constructor
-    scope_guard( const_string file, std::size_t line_num, const_string scope_name )
-    {
-        m_scope_index = manager::instance().enter_scope( file, line_num, scope_name );
-    }
-    ~scope_guard()
-    {
-        manager::instance().leave_scope( m_scope_index );
-    }
-
-    unsigned m_scope_index;
-};
-
-// ************************************************************************** //
-// **************                    location                  ************** //
-// ************************************************************************** //
-
-struct location {
-    location( const_string file, std::size_t line ) 
-    : m_file_name( file )
-    , m_line_num( line )
-    {}
-
-    const_string    m_file_name;
-    std::size_t     m_line_num;
-};
-
-}  // namespace itest
-
-} // namespace ndnboost
-
-// ************************************************************************** //
-// **************              operator new overload           ************** //
-// ************************************************************************** //
-
-#if !defined(NDNBOOST_ITEST_NO_NEW_OVERLOADS)
-
-// STL
-#include <cstdlib>
-
-# ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::malloc; using ::free; }
-# endif
-# ifdef _CRTDBG_MAP_ALLOC
-namespace std { using ::_malloc_dbg; using ::_free_dbg; }
-# endif
-
-inline void*
-operator new( std::size_t s, ::ndnboost::itest::location const& l )
-{
-    void* res = std::malloc(s ? s : 1);
-
-    if( res )
-        ::ndnboost::itest::manager::instance().allocated( l.m_file_name, l.m_line_num, res, s );
-    else
-        throw std::bad_alloc();
-        
-    return res;
-}
-
-//____________________________________________________________________________//
-
-inline void*
-operator new[]( std::size_t s, ::ndnboost::itest::location const& l )
-{
-    void* res = std::malloc(s ? s : 1);
-
-    if( res )
-        ::ndnboost::itest::manager::instance().allocated( l.m_file_name, l.m_line_num, res, s );
-    else
-        throw std::bad_alloc();
-        
-    return res;
-}
-
-//____________________________________________________________________________//
-
-inline void
-operator delete( void* p, ::ndnboost::itest::location const& )
-{
-    ::ndnboost::itest::manager::instance().freed( p );
-
-    std::free( p );
-}
-
-//____________________________________________________________________________//
-
-inline void
-operator delete[]( void* p, ::ndnboost::itest::location const& )
-{
-    ::ndnboost::itest::manager::instance().freed( p );
-
-    std::free( p );
-}
-
-//____________________________________________________________________________//
-
-#endif
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_INTERACTION_BASED_HPP_112105GER
diff --git a/include/ndnboost/test/minimal.hpp b/include/ndnboost/test/minimal.hpp
deleted file mode 100644
index b2059f8..0000000
--- a/include/ndnboost/test/minimal.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2002-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : simple minimal testing definitions and implementation
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_MINIMAL_HPP_071894GER
-#define NDNBOOST_TEST_MINIMAL_HPP_071894GER
-
-#define NDNBOOST_CHECK(exp)       \
-  ( (exp)                      \
-      ? static_cast<void>(0)   \
-      : ndnboost::minimal_test::report_error(#exp,__FILE__,__LINE__, NDNBOOST_CURRENT_FUNCTION) )
-
-#define NDNBOOST_REQUIRE(exp)     \
-  ( (exp)                      \
-      ? static_cast<void>(0)   \
-      : ndnboost::minimal_test::report_critical_error(#exp,__FILE__,__LINE__,NDNBOOST_CURRENT_FUNCTION))
-
-#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 )
-
-//____________________________________________________________________________//
-
-// Boost.Test
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/impl/execution_monitor.ipp>
-#include <ndnboost/test/impl/debug.ipp>
-#include <ndnboost/test/utils/class_properties.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-
-// Boost
-#include <ndnboost/cstdlib.hpp>            // for exit codes#include <ndnboost/cstdlib.hpp>            // for exit codes
-#include <ndnboost/current_function.hpp>   // for NDNBOOST_CURRENT_FUNCTION
-
-// STL
-#include <iostream>                     // std::cerr, std::endl
-#include <string>                       // std::string
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-int test_main( int argc, char* argv[] );  // prototype for users test_main()
-
-namespace ndnboost {
-namespace minimal_test {
-
-typedef ndnboost::unit_test::const_string const_string;
-
-inline unit_test::counter_t& errors_counter() { static unit_test::counter_t ec = 0; return ec; }
-
-inline void
-report_error( const char* msg, const char* file, int line, const_string func_name, bool is_msg = false )
-{
-    ++errors_counter();
-    std::cerr << file << "(" << line << "): ";
-
-    if( is_msg )
-        std::cerr << msg;
-    else
-        std::cerr << "test " << msg << " failed";
-
-    if( func_name != "(unknown)" )
-        std::cerr << " in function: '" << func_name << "'";
-
-    std::cerr << std::endl;
-}
-
-inline void
-report_critical_error( const char* msg, const char* file, int line, const_string func_name, bool is_msg = false )
-{
-    report_error( msg, file, line, func_name, is_msg );
-
-    throw ndnboost::execution_aborted();
-}
-
-class caller {
-public:
-    // constructor
-    caller( int argc, char** argv )
-    : m_argc( argc ), m_argv( argv ) {}
-
-    // execution monitor hook implementation
-    int operator()() { return test_main( m_argc, m_argv ); }
-
-private:
-    // Data members
-    int         m_argc;
-    char**      m_argv;
-}; // monitor
-
-} // namespace minimal_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-int NDNBOOST_TEST_CALL_DECL main( int argc, char* argv[] )
-{
-    using namespace ndnboost::minimal_test;
-
-    try {
-        ::ndnboost::execution_monitor ex_mon;
-        int run_result = ex_mon.execute( caller( argc, argv ) );
-
-        NDNBOOST_CHECK( run_result == 0 || run_result == ndnboost::exit_success );
-    }
-    catch( ndnboost::execution_exception const& exex ) {
-        if( exex.code() != ndnboost::execution_exception::no_error )
-            NDNBOOST_ERROR( (std::string( "exception \"" ).
-                            append( exex.what().begin(), exex.what().end() ).
-                            append( "\" caught" ) ).c_str() );
-        std::cerr << "\n**** Testing aborted.";
-    }
-
-    if( ndnboost::minimal_test::errors_counter() != 0 ) {
-        std::cerr << "\n**** " << errors_counter()
-                  << " error" << (errors_counter() > 1 ? "s" : "" ) << " detected\n";
-
-        return ndnboost::exit_test_failure;
-    }
-
-    std::cout << "\n**** no errors detected\n";
-    
-    return ndnboost::exit_success;
-}
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_MINIMAL_HPP_071894GER
diff --git a/include/ndnboost/test/mock_object.hpp b/include/ndnboost/test/mock_object.hpp
deleted file mode 100644
index 585d94e..0000000
--- a/include/ndnboost/test/mock_object.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : Facilities to perform exception safety_tests
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_MOCK_OBJECT_HPP_112205GER
-#define NDNBOOST_TEST_MOCK_OBJECT_HPP_112205GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/test/interaction_based.hpp>
-
-// Boost
-#include <ndnboost/preprocessor/punctuation/comma.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace itest {
-
-// ************************************************************************** //
-// **************                mock_object_base              ************** //
-// ************************************************************************** //
-
-class mock_object_base {
-public:
-    mock_object_base() {}
-
-    template<typename T1>
-    mock_object_base( T1 const& ) {}
-
-    template<typename T1, typename T2>
-    mock_object_base( T1 const&, T2 const& ) {}
-
-    template<typename T1, typename T2, typename T3>
-    mock_object_base( T1 const&, T2 const&, T3 const& ) {}
-
-    template<typename T1, typename T2, typename T3, typename T4>
-    mock_object_base( T1 const&, T2 const&, T3 const&, T4 const& ) {}
-
-    template<typename T1, typename T2, typename T3, typename T4, typename T5>
-    mock_object_base( T1 const&, T2 const&, T3 const&, T4 const&, T5 const& ) {}
-};
-
-// ************************************************************************** //
-// **************      mock_object implementation helpers      ************** //
-// ************************************************************************** //
-
-#define MO_OP_IMPL( op, descr, ret )                        \
-    NDNBOOST_ITEST_SCOPE( mock_object::operator op );          \
-    NDNBOOST_ITEST_EPOINT( descr );                            \
-    return ret                                              \
-/**/
-
-#define MO_UNARY_OP( op, descr )                            \
-self_type const& operator op() const                        \
-{                                                           \
-    MO_OP_IMPL( op, descr, prototype() );                   \
-}                                                           \
-/**/
-
-#define MO_UNARY_BOOL_OP( op, descr )                       \
-bool operator op() const                                    \
-{                                                           \
-    MO_OP_IMPL( op, descr, (!!NDNBOOST_ITEST_DPOINT()) );      \
-}                                                           \
-/**/
-
-#define MO_BINARY_OP( op, descr )                           \
-template<int i1, typename Base1,int i2, typename Base2>     \
-inline mock_object<i1,Base1> const&                         \
-operator op( mock_object<i1,Base1> const& mo,               \
-             mock_object<i2,Base2> const& )                 \
-{                                                           \
-    MO_OP_IMPL( op, descr, mo );                            \
-}                                                           \
-                                                            \
-template<int i, typename Base, typename T>                  \
-inline mock_object<i,Base> const&                           \
-operator op( mock_object<i,Base> const& mo, T const& )      \
-{                                                           \
-    MO_OP_IMPL( op, descr, mo );                            \
-}                                                           \
-                                                            \
-template<int i, typename Base, typename T>                  \
-inline mock_object<i,Base> const&                           \
-operator op( T const&, mock_object<i,Base> const& mo )      \
-{                                                           \
-    MO_OP_IMPL( op, descr, mo );                            \
-}                                                           \
-/**/
-
-#define MO_BINARY_BOOL_OP( op, descr )                      \
-template<int i1, typename Base1,int i2, typename Base2>     \
-inline bool                                                 \
-operator op( mock_object<i1,Base1> const&,                  \
-             mock_object<i2,Base2> const& )                 \
-{                                                           \
-    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, 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, NDNBOOST_ITEST_DPOINT() );          \
-}                                                           \
-/**/
-
-// ************************************************************************** //
-// **************                  mock_object                 ************** //
-// ************************************************************************** //
-
-template<int i = 0, typename Base=mock_object_base>
-class mock_object;
-
-template<int i, typename Base>
-class mock_object : public Base {
-    // Private typeefs
-    typedef mock_object<i,Base> self_type;
-    struct dummy { void nonnull() {}; };
-    typedef void (dummy::*safe_bool)();
-
-    // prototype constructor
-    mock_object( dummy* ) {}
-
-public:
-    static mock_object& prototype()
-    {
-        static mock_object p( reinterpret_cast<dummy*>(0) ); 
-        return p;
-    }
-
-    // Constructors
-    mock_object()
-    {
-        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 )
-    {
-        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 )
-    {
-        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 )
-    {
-        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 )
-    {
-        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 )
-    {
-        NDNBOOST_ITEST_SCOPE( mock_object::mock_object );
-        NDNBOOST_ITEST_EPOINT( "Mock object constructor" );
-    }
-
-    mock_object( mock_object const& )
-    {
-        NDNBOOST_ITEST_SCOPE( mock_object::mock_object );
-        NDNBOOST_ITEST_EPOINT( "Mock object copy constructor" );
-    }
-
-    // assignment
-    self_type const&    operator =( mock_object const& ) const
-    {
-        MO_OP_IMPL( =, "Copy assignment", prototype() );
-    }
-
-    template <typename T>
-    self_type const&    operator =( T const& ) const
-    {
-        MO_OP_IMPL( =, "Copy assignment", prototype() );
-    }
-
-    // Unary operators
-    MO_UNARY_BOOL_OP( !, "Logical NOT operator" )
-    MO_UNARY_OP( &, "Address-of operator" )
-    MO_UNARY_OP( ~, "One's complement operator" )
-    MO_UNARY_OP( *, "Pointer dereference" )
-    MO_UNARY_OP( +, "Unary plus" )
-
-    // Increment and Decrement
-    MO_UNARY_OP( ++, "Prefix increment" )
-    MO_UNARY_OP( --, "Prefix decrement" )
-    self_type const&    operator ++(int) const
-    {
-        MO_OP_IMPL( ++, "Postfix increment", prototype() );
-    }
-    self_type const&    operator --(int) const
-    {
-        MO_OP_IMPL( --, "Postfix decrement", prototype() );
-    }
-
-    // Bool context convertion
-    operator safe_bool() const
-    {
-        MO_OP_IMPL( safe_bool, "Bool context conversion",
-                    (NDNBOOST_ITEST_DPOINT() ? 0 : &dummy::nonnull) );
-    }
-
-    // Function-call operators
-    self_type const&    operator ()() const
-    {
-        MO_OP_IMPL( (), "0-arity function-call", prototype() );
-    }
-    template<typename T1>
-    self_type const&    operator ()( T1 const& arg1 ) const
-    {
-        MO_OP_IMPL( (), "1-arity function-call", prototype() );
-    }
-    template<typename T1, typename T2>
-    self_type const&    operator ()( T1 const&, T2 const& ) const
-    {
-        MO_OP_IMPL( (), "2-arity function-call", prototype() );
-    }
-    template<typename T1, typename T2, typename T3>
-    self_type const&    operator ()( T1 const&, T2 const&, T3 const& ) const
-    {
-        MO_OP_IMPL( (), "3-arity function-call", prototype() );
-    }
-    template<typename T1, typename T2, typename T3, typename T4>
-    self_type const&    operator ()( T1 const&, T2 const&, T3 const&, T4 const& ) const
-    {
-        MO_OP_IMPL( (), "4-arity function-call", prototype() );
-    }
-    template<typename T1, typename T2, typename T3, typename T4, typename T5>
-    self_type const&    operator ()( T1 const&, T2 const&, T3 const&, T4 const&, T5 const& ) const
-    {
-        MO_OP_IMPL( (), "5-arity function-call", prototype() );
-    }
-
-    // Substripting
-    template<typename T>
-    self_type const&    operator []( T const& ) const
-    {
-        MO_OP_IMPL( [], "Substripting", prototype() );
-    }
-
-    // Class member access
-    self_type const*    operator->() const
-    {
-        MO_OP_IMPL( ->, "Class member access", this );
-    }
-};
-
-// !! MO_BINARY_OP( NDNBOOST_PP_COMMA(), "Comma operator" )
-
-MO_BINARY_BOOL_OP( !=, "Inequality" )
-MO_BINARY_OP( %, "Modulus" )
-MO_BINARY_OP( %=, "Modulus/assignment" )
-MO_BINARY_OP( &, "Bitwise AND" )
-MO_BINARY_BOOL_OP( &&, "Logical AND" )
-MO_BINARY_OP( &=, "Bitwise AND/assignment" )
-MO_BINARY_OP( *, "Multiplication" )
-MO_BINARY_OP( *=, "Multiplication/assignment" )
-MO_BINARY_OP( +, "Addition" )
-MO_BINARY_OP( +=, "Addition/assignment" )
-//MO_BINARY_OP( -, "Subtraction" )
-MO_BINARY_OP( -=, "Subtraction/assignment" )
-MO_BINARY_OP( ->*, "Pointer-to-member selection" )
-MO_BINARY_OP( /, "Division" )
-MO_BINARY_OP( /=, "Division/assignment" )
-MO_BINARY_BOOL_OP( <, "Less than" )
-MO_BINARY_OP( <<=, "Left shift/assignment" )
-MO_BINARY_BOOL_OP( <=, "Less than or equal to" )
-MO_BINARY_BOOL_OP( ==, "Equality" )
-MO_BINARY_BOOL_OP( >, "Greater than" )
-MO_BINARY_BOOL_OP( >=, "Greater than or equal to" )
-MO_BINARY_OP( >>=, "Right shift/assignment" )
-MO_BINARY_OP( ^, "Exclusive OR" )
-MO_BINARY_OP( ^=, "Exclusive OR/assignment" )
-MO_BINARY_OP( |, "Bitwise inclusive OR" )
-MO_BINARY_OP( |=, "Bitwise inclusive OR/assignment" )
-MO_BINARY_BOOL_OP( ||, "Logical OR" )
-
-MO_BINARY_OP( <<, "Left shift" )
-MO_BINARY_OP( >>, "Right shift" )
-
-} // namespace itest
-
-} // namespace ndnboost
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index f41df07..0000000
--- a/include/ndnboost/test/output/compiler_log_formatter.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : contains compiler like Log formatter definition
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/unit_test_log_formatter.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace output {
-
-// ************************************************************************** //
-// **************             compiler_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 );
-    void    log_finish( std::ostream& );
-    void    log_build_info( std::ostream& );
-
-    void    test_unit_start( std::ostream&, test_unit const& tu );
-    void    test_unit_finish( std::ostream&, test_unit const& tu, unsigned long elapsed );
-    void    test_unit_skipped( std::ostream&, test_unit const& tu );
-
-    void    log_exception( std::ostream&, log_checkpoint_data const&, execution_exception const& ex );
-
-    void    log_entry_start( std::ostream&, log_entry_data const&, log_entry_types let );
-    void    log_entry_value( std::ostream&, const_string value );
-    void    log_entry_value( std::ostream&, lazy_ostream const& value );
-    void    log_entry_finish( std::ostream& );
-
-protected:
-    virtual void    print_prefix( std::ostream&, const_string file, std::size_t line );
-};
-
-} // namespace output
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 0907c3f..0000000
--- a/include/ndnboost/test/output/plain_report_formatter.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : plain report formatter implementation
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/results_reporter.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace output {
-
-// ************************************************************************** //
-// **************             plain_report_formatter           ************** //
-// ************************************************************************** //
-
-class plain_report_formatter : public results_reporter::format {
-public:
-    // Formatter interface
-    void    results_report_start( std::ostream& ostr );
-    void    results_report_finish( std::ostream& ostr );
-
-    void    test_unit_report_start( test_unit const&, std::ostream& ostr );
-    void    test_unit_report_finish( test_unit const&, std::ostream& ostr );
-
-    void    do_confirmation_report( test_unit const&, std::ostream& ostr );
-
-private:
-    // Data members
-    counter_t m_indent;
-};
-
-} // namespace output
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 7e548ad..0000000
--- a/include/ndnboost/test/output/xml_log_formatter.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : contains XML Log formatter definition
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_XML_LOG_FORMATTER_020105GER
-#define NDNBOOST_TEST_XML_LOG_FORMATTER_020105GER
-
-// Boost.Test
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/unit_test_log_formatter.hpp>
-
-// STL
-#include <cstddef> // std::size_t
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace output {
-
-// ************************************************************************** //
-// **************               xml_log_formatter              ************** //
-// ************************************************************************** //
-
-class xml_log_formatter : public unit_test_log_formatter {
-public:
-    // Formatter interface
-    void    log_start( std::ostream&, counter_t test_cases_amount );
-    void    log_finish( std::ostream& );
-    void    log_build_info( std::ostream& );
-
-    void    test_unit_start( std::ostream&, test_unit const& tu );
-    void    test_unit_finish( std::ostream&, test_unit const& tu, unsigned long elapsed );
-    void    test_unit_skipped( std::ostream&, test_unit const& tu );
-
-    void    log_exception( std::ostream&, log_checkpoint_data const&, execution_exception const& ex );
-
-    void    log_entry_start( std::ostream&, log_entry_data const&, log_entry_types let );
-    using   unit_test_log_formatter::log_entry_value; // bring base class functions into overload set
-    void    log_entry_value( std::ostream&, const_string value );
-    void    log_entry_finish( std::ostream& );
-
-private:
-    // Data members
-    const_string    m_curr_tag;
-};
-
-} // namespace output
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 57f02c0..0000000
--- a/include/ndnboost/test/output/xml_report_formatter.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : XML report formatter implementation
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/results_reporter.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace output {
-
-// ************************************************************************** //
-// **************              xml_report_formatter            ************** //
-// ************************************************************************** //
-
-class xml_report_formatter : public results_reporter::format {
-public:
-    // Formatter interface
-    void    results_report_start( std::ostream& ostr );
-    void    results_report_finish( std::ostream& ostr );
-
-    void    test_unit_report_start( test_unit const&, std::ostream& ostr );
-    void    test_unit_report_finish( test_unit const&, std::ostream& ostr );
-
-    void    do_confirmation_report( test_unit const&, std::ostream& ostr );
-};
-
-} // namespace output
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 4f0ab02..0000000
--- a/include/ndnboost/test/output_test_stream.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : output_test_stream class definition
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/wrap_stringstream.hpp>
-#include <ndnboost/test/predicate_result.hpp>
-
-// STL
-#include <cstddef>          // for std::size_t
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************               output_test_stream             ************** //
-// ************************************************************************** //
-
-// class to be used to simplify testing of ostream-based output operations
-
-namespace ndnboost {
-
-namespace test_tools {
-
-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:
-    // Constructor
-    explicit        output_test_stream( const_string    pattern_file_name = const_string(),
-                                        bool            match_or_save     = true,
-                                        bool            text_or_binary    = true );
-
-    // Destructor
-    ~output_test_stream();
-
-    // checking function
-    result_type     is_empty( bool flush_stream = true );
-    result_type     check_length( std::size_t length, bool flush_stream = true );
-    result_type     is_equal( const_string arg_, bool flush_stream = true );
-    result_type     match_pattern( bool flush_stream = true );
-
-    // explicit flush
-    void            flush();
-
-private:
-    // helper functions
-    std::size_t     length();
-    void            sync();
-
-    struct Impl;
-    Impl*           m_pimpl;
-};
-
-} // namespace test_tools
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_OUTPUT_TEST_STREAM_HPP_012705GER
diff --git a/include/ndnboost/test/predicate_result.hpp b/include/ndnboost/test/predicate_result.hpp
deleted file mode 100644
index 532b689..0000000
--- a/include/ndnboost/test/predicate_result.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : enhanced result for test predicate that include message explaining failure
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_PREDICATE_RESULT_HPP_012705GER
-#define NDNBOOST_TEST_PREDICATE_RESULT_HPP_012705GER
-
-// Boost.Test
-#include <ndnboost/test/utils/class_properties.hpp>
-#include <ndnboost/test/utils/wrap_stringstream.hpp>
-#include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
-
-// Boost
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-// STL
-#include <cstddef>          // for std::size_t
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace test_tools {
-
-// ************************************************************************** //
-// **************                predicate_result              ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL predicate_result {
-    typedef unit_test::const_string      const_string;
-    struct dummy { void nonnull() {}; };
-    typedef void (dummy::*safe_bool)();
-
-public:
-    // Constructor
-    predicate_result( bool pv_ ) 
-    : p_predicate_value( pv_ )
-    {}
-
-    template<typename BoolConvertable>
-    predicate_result( BoolConvertable const& pv_ ) : p_predicate_value( !!pv_ ) {}
-
-    // Access methods
-    bool                operator!() const           { return !p_predicate_value; }
-    void                operator=( bool pv_ )       { p_predicate_value.value = pv_; }
-    operator            safe_bool() const           { return !!p_predicate_value ? &dummy::nonnull : 0; }
-
-    // Public properties
-    NDNBOOST_READONLY_PROPERTY( bool, (predicate_result) ) p_predicate_value;
-
-    // Access methods
-    bool                has_empty_message() const   { return !m_message; }
-    wrap_stringstream&  message()
-    {
-        if( !m_message )
-            m_message.reset( new wrap_stringstream );
-
-        return *m_message;
-    }
-    const_string        message() const                   { return !m_message ? const_string() : const_string( m_message->str() ); }
-
-private:
-    // Data members
-    shared_ptr<wrap_stringstream> m_message;
-};
-
-} // namespace test_tools
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_PREDICATE_RESULT_HPP_012705GER
diff --git a/include/ndnboost/test/progress_monitor.hpp b/include/ndnboost/test/progress_monitor.hpp
deleted file mode 100644
index bf2c489..0000000
--- a/include/ndnboost/test/progress_monitor.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : defines simple text based progress monitor
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_PROGRESS_MONITOR_HPP_020105GER
-#define NDNBOOST_TEST_PROGRESS_MONITOR_HPP_020105GER
-
-// Boost.Test
-#include <ndnboost/test/test_observer.hpp>
-#include <ndnboost/test/utils/trivial_singleton.hpp>
-
-// STL
-#include <iosfwd>   // for std::ostream&
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                progress_monitor              ************** //
-// ************************************************************************** //
-
-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 );
-    void    test_finish() {}
-    void    test_aborted();
-
-    void    test_unit_start( test_unit const& ) {}
-    void    test_unit_finish( test_unit const&, unsigned long );
-    void    test_unit_skipped( test_unit const& );
-    void    test_unit_aborted( test_unit const& ) {}
-
-    void    assertion_result( bool ) {}
-    void    exception_caught( execution_exception const& ) {}
-
-    // configuration
-    void    set_stream( std::ostream& );
-
-private:
-    NDNBOOST_TEST_SINGLETON_CONS( progress_monitor_t );
-}; // progress_monitor_t
-
-NDNBOOST_TEST_SINGLETON_INST( progress_monitor )
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_PROGRESS_MONITOR_HPP_020105GER
-
diff --git a/include/ndnboost/test/results_collector.hpp b/include/ndnboost/test/results_collector.hpp
deleted file mode 100644
index 3fdccfa..0000000
--- a/include/ndnboost/test/results_collector.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : defines class unit_test_result that is responsible for 
-//  gathering test results and presenting this information to end-user
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
-#define NDNBOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
-
-// Boost.Test
-#include <ndnboost/test/test_observer.hpp>
-
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/detail/fwd_decl.hpp>
-
-#include <ndnboost/test/utils/trivial_singleton.hpp>
-#include <ndnboost/test/utils/class_properties.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************      first failed assertion debugger hook    ************** //
-// ************************************************************************** //
-
-namespace {
-inline void first_failed_assertion() {}
-}
-
-// ************************************************************************** //
-// **************                 test_results                 ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL test_results {
-public:
-    test_results();
-
-    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;
-    counter_prop    p_expected_failures;
-    counter_prop    p_test_cases_passed;
-    counter_prop    p_test_cases_failed;
-    counter_prop    p_test_cases_skipped;
-    counter_prop    p_test_cases_aborted;
-    bool_prop       p_aborted;
-    bool_prop       p_skipped;
-
-    // "conclusion" methods
-    bool            passed() const;
-    int             result_code() const;
-
-    // collection helper
-    void            operator+=( test_results const& );
-
-    void            clear();
-};
-
-// ************************************************************************** //
-// **************               results_collector              ************** //
-// ************************************************************************** //
-
-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 );
-    void                test_finish();
-    void                test_aborted();
-
-    void                test_unit_start( test_unit const& );
-    void                test_unit_finish( test_unit const&, unsigned long elapsed );
-    void                test_unit_skipped( test_unit const& );
-    void                test_unit_aborted( test_unit const& );
-
-    void                assertion_result( bool passed );
-    void                exception_caught( execution_exception const& );
-
-    // results access
-    test_results const& results( test_unit_id ) const;
-
-private:
-    NDNBOOST_TEST_SINGLETON_CONS( results_collector_t );
-};
-
-NDNBOOST_TEST_SINGLETON_INST( results_collector )
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_RESULTS_COLLECTOR_HPP_071894GER
-
diff --git a/include/ndnboost/test/results_reporter.hpp b/include/ndnboost/test/results_reporter.hpp
deleted file mode 100644
index 16b9ec3..0000000
--- a/include/ndnboost/test/results_reporter.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : defines class unit_test_result that is responsible for 
-//  gathering test results and presenting this information to end-user
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_RESULTS_REPORTER_HPP_021205GER
-#define NDNBOOST_TEST_RESULTS_REPORTER_HPP_021205GER
-
-// Boost.Test
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/detail/fwd_decl.hpp>
-
-// STL
-#include <iosfwd>   // for std::ostream&
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace results_reporter {
-
-// ************************************************************************** //
-// **************              formatter interface             ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL format {
-public:
-    // Destructor
-    virtual ~format() {}
-
-    virtual void    results_report_start( std::ostream& ostr ) = 0;
-    virtual void    results_report_finish( std::ostream& ostr ) = 0;
-
-    virtual void    test_unit_report_start( test_unit const&, std::ostream& ostr ) = 0;
-    virtual void    test_unit_report_finish( test_unit const&, std::ostream& ostr ) = 0;
-
-    virtual void    do_confirmation_report( test_unit const&, std::ostream& ostr ) = 0;
-};
-
-// ************************************************************************** //
-// **************              report configuration            ************** //
-// ************************************************************************** //
-
-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* );
-
-NDNBOOST_TEST_DECL std::ostream& get_stream();
-
-// ************************************************************************** //
-// **************               report initiation              ************** //
-// ************************************************************************** //
-
-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 )
-{ make_report( SHORT_REPORT, id ); }
-inline void             detailed_report( test_unit_id id = INV_TEST_UNIT_ID )
-{ make_report( DETAILED_REPORT, id ); }
-
-} // namespace results_reporter
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_RESULTS_REPORTER_HPP_021205GER
-
diff --git a/include/ndnboost/test/test_observer.hpp b/include/ndnboost/test/test_observer.hpp
deleted file mode 100644
index 7757a92..0000000
--- a/include/ndnboost/test/test_observer.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : defines abstract interface for test observer
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_TEST_OBSERVER_HPP_021005GER
-#define NDNBOOST_TEST_TEST_OBSERVER_HPP_021005GER
-
-// Boost.Test
-#include <ndnboost/test/detail/fwd_decl.hpp>
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/detail/config.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                 test_observer                ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL test_observer {
-public:
-    // test observer interface
-    virtual void    test_start( counter_t /* test_cases_amount */ ) {}
-    virtual void    test_finish() {}
-    virtual void    test_aborted() {}
-
-    virtual void    test_unit_start( test_unit const& ) {}
-    virtual void    test_unit_finish( test_unit const&, unsigned long /* elapsed */ ) {}
-    virtual void    test_unit_skipped( test_unit const& ) {}
-    virtual void    test_unit_aborted( test_unit const& ) {}
-
-    virtual void    assertion_result( bool /* passed */ ) {}
-    virtual void    exception_caught( execution_exception const& ) {}
-
-    virtual int     priority() { return 0; }
-
-protected:
-    NDNBOOST_TEST_PROTECTED_VIRTUAL ~test_observer() {}
-};
-
-} // unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_TEST_OBSERVER_HPP_021005GER
-
diff --git a/include/ndnboost/test/test_tools.hpp b/include/ndnboost/test/test_tools.hpp
deleted file mode 100644
index 8e71c02..0000000
--- a/include/ndnboost/test/test_tools.hpp
+++ /dev/null
@@ -1,719 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : contains definition for all test tools in test toolbox
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_TEST_TOOLS_HPP_012705GER
-#define NDNBOOST_TEST_TEST_TOOLS_HPP_012705GER
-
-// Boost.Test
-#include <ndnboost/test/predicate_result.hpp>
-#include <ndnboost/test/unit_test_log.hpp>
-#include <ndnboost/test/floating_point_comparison.hpp>
-
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/detail/workaround.hpp>
-
-#include <ndnboost/test/utils/wrap_stringstream.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-#include <ndnboost/test/utils/lazy_ostream.hpp>
-
-// Boost
-#include <ndnboost/preprocessor/seq/for_each.hpp>
-#include <ndnboost/preprocessor/seq/size.hpp>
-#include <ndnboost/preprocessor/seq/enum.hpp> 
-#include <ndnboost/preprocessor/repetition/repeat.hpp>
-#include <ndnboost/preprocessor/punctuation/comma_if.hpp>
-#include <ndnboost/preprocessor/arithmetic/add.hpp>
-
-#include <ndnboost/limits.hpp>
-
-#include <ndnboost/type_traits/is_array.hpp>
-#include <ndnboost/type_traits/is_function.hpp>
-#include <ndnboost/type_traits/is_abstract.hpp>
-
-#include <ndnboost/mpl/or.hpp>
-
-// STL
-#include <cstddef>          // for std::size_t
-#include <iosfwd>
-#include <ios>              // for std::boolalpha
-#include <climits>          // for CHAR_BIT
-
-#ifdef NDNBOOST_MSVC
-# pragma warning(disable: 4127) // conditional expression is constant
-#endif
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                    TOOL BOX                  ************** //
-// ************************************************************************** //
-
-// In macros below following argument abbreviations are used:
-// P - predicate
-// M - message
-// S - statement
-// E - exception
-// L - left argument
-// R - right argument
-// TL - tool level
-// CT - check type
-// ARGS - arguments list
-
-#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,    \
-        NDNBOOST_TEST_L(__FILE__),                                         \
-        static_cast<std::size_t>(__LINE__),                             \
-        ::ndnboost::test_tools::tt_detail::TL,                             \
-        ::ndnboost::test_tools::tt_detail::CT                              \
-/**/
-
-//____________________________________________________________________________//
-
-#define NDNBOOST_CHECK_IMPL( P, check_descr, TL, CT )                  \
-do {                                                                \
-    NDNBOOST_TEST_PASSPOINT();                                         \
-    NDNBOOST_TEST_TOOL_IMPL( check_impl, P, check_descr, TL, CT ), 0 );\
-} while( ::ndnboost::test_tools::dummy_cond )                          \
-/**/
-
-//____________________________________________________________________________//
-
-#define NDNBOOST_TEST_PASS_ARG_INFO( r, data, arg ) , arg, NDNBOOST_STRINGIZE( arg )
-
-#define NDNBOOST_CHECK_WITH_ARGS_IMPL( P, check_descr, TL, CT, ARGS )  \
-do {                                                                \
-    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 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 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 NDNBOOST_ERROR( M )                    NDNBOOST_CHECK_MESSAGE( false, M )
-#define NDNBOOST_FAIL( M )                     NDNBOOST_REQUIRE_MESSAGE( false, M )
-
-//____________________________________________________________________________//
-
-#define NDNBOOST_CHECK_THROW_IMPL( S, E, P, prefix, TL )                                                   \
-    try {                                                                                               \
-        NDNBOOST_TEST_PASSPOINT();                                                                         \
-        S;                                                                                              \
-        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 );                            \
-        NDNBOOST_CHECK_IMPL( P, prefix NDNBOOST_STRINGIZE( E ) " is caught", TL, CHECK_MSG );                 \
-    }                                                                                                   \
-/**/
-
-//____________________________________________________________________________//
-
-#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 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 NDNBOOST_CHECK_NO_THROW_IMPL( S, TL )                                                          \
-    try {                                                                                           \
-        S;                                                                                          \
-        NDNBOOST_CHECK_IMPL( true, "no exceptions thrown by " NDNBOOST_STRINGIZE( S ), TL, CHECK_MSG ); } \
-    catch( ... ) {                                                                                  \
-        NDNBOOST_CHECK_IMPL( false, "exception thrown by " NDNBOOST_STRINGIZE( S ), TL, CHECK_MSG );      \
-    }                                                                                               \
-/**/
-
-#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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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,                                                                          \
-    NDNBOOST_STRINGIZE( L_begin ), NDNBOOST_STRINGIZE( L_end ),                       \
-    NDNBOOST_STRINGIZE( R_begin ), NDNBOOST_STRINGIZE( R_end ) )                      \
-/**/
-
-#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 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, NDNBOOST_STRINGIZE( L ), NDNBOOST_STRINGIZE( R ) )                             \
-/**/
-
-#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 NDNBOOST_IS_DEFINED( symb )            ::ndnboost::test_tools::tt_detail::is_defined_impl( #symb, NDNBOOST_STRINGIZE(= symb) )
-
-//____________________________________________________________________________//
-
-// ***************************** //
-// deprecated interface
-
-#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 {
-
-namespace test_tools {
-
-typedef unit_test::const_string      const_string;
-
-namespace { bool dummy_cond = false; }
-
-// ************************************************************************** //
-// **************                print_log_value               ************** //
-// ************************************************************************** //
-
-template<typename T>
-struct print_log_value {
-    void    operator()( std::ostream& ostr, T const& t )
-    {
-        // avoid warning: 'ndnboost::test_tools::<unnamed>::dummy_cond' defined but not used 
-        if (::ndnboost::test_tools::dummy_cond) {}
-
-        typedef typename mpl::or_<is_array<T>,is_function<T>,is_abstract<T> >::type cant_use_nl;
-
-        set_precision( ostr, cant_use_nl() );
-
-        ostr << t; // by default print the value
-    }
-
-    void set_precision( std::ostream& ostr, mpl::false_ )
-    {
-        if( std::numeric_limits<T>::is_specialized && std::numeric_limits<T>::radix == 2 )
-            ostr.precision( 2 + std::numeric_limits<T>::digits * 301/1000 ); 
-    }
-
-    void set_precision( std::ostream&, mpl::true_ ) {}
-};
-
-//____________________________________________________________________________//
-
-#define NDNBOOST_TEST_DONT_PRINT_LOG_VALUE( the_type )         \
-namespace ndnboost { namespace test_tools {                    \
-template<>                                                  \
-struct print_log_value<the_type > {                         \
-    void operator()( std::ostream&, the_type const& ) {}    \
-};                                                          \
-}}                                                          \
-/**/
-
-//____________________________________________________________________________//
-
-#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 )
-    {
-        ostr << t;
-    }
-};
-#endif
-
-//____________________________________________________________________________//
-
-template<>
-struct NDNBOOST_TEST_DECL print_log_value<bool> {
-    void    operator()( std::ostream& ostr, bool t )
-    {
-         ostr << std::boolalpha << t;
-    }
-};
-
-//____________________________________________________________________________//
-
-template<>
-struct NDNBOOST_TEST_DECL print_log_value<char> {
-    void    operator()( std::ostream& ostr, char t );
-};
-
-//____________________________________________________________________________//
-
-template<>
-struct NDNBOOST_TEST_DECL print_log_value<unsigned char> {
-    void    operator()( std::ostream& ostr, unsigned char t );
-};
-
-//____________________________________________________________________________//
-
-template<>
-struct NDNBOOST_TEST_DECL print_log_value<char const*> {
-    void    operator()( std::ostream& ostr, char const* t );
-};
-
-//____________________________________________________________________________//
-
-template<>
-struct NDNBOOST_TEST_DECL print_log_value<wchar_t const*> {
-    void    operator()( std::ostream& ostr, wchar_t const* t );
-};
-
-//____________________________________________________________________________//
-
-namespace tt_detail {
-
-// ************************************************************************** //
-// **************              tools classification            ************** //
-// ************************************************************************** //
-
-enum check_type {
-    CHECK_PRED, 
-    CHECK_MSG,
-    CHECK_EQUAL,
-    CHECK_NE,
-    CHECK_LT,
-    CHECK_LE,
-    CHECK_GT,
-    CHECK_GE,
-    CHECK_CLOSE,
-    CHECK_CLOSE_FRACTION,
-    CHECK_SMALL,
-    CHECK_BITWISE_EQUAL,
-    CHECK_PRED_WITH_ARGS,
-    CHECK_EQUAL_COLL
-};
-
-enum tool_level {
-    WARN, CHECK, REQUIRE, PASS
-};
-
-// ************************************************************************** //
-// **************                 print_helper                 ************** //
-// ************************************************************************** //
-// Adds level of indirection to the output operation, allowing us to customize 
-// it for types that do not support operator << directly or for any other reason
-
-template<typename T>
-struct print_helper_t {
-    explicit    print_helper_t( T const& t ) : m_t( t ) {}
-
-    T const&    m_t;
-};
-
-//____________________________________________________________________________//
-
-#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] > {
-    explicit    print_helper_t( T const * t ) : m_t( t ) {}
-
-    T const *   m_t;
-};
-#endif
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline print_helper_t<T> print_helper( T const& t )
-{
-    return print_helper_t<T>( t );
-}
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline std::ostream& 
-operator<<( std::ostream& ostr, print_helper_t<T> const& ph )
-{
-    print_log_value<T>()( ostr, ph.m_t );
-
-    return ostr;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************            TOOL BOX Implementation           ************** //
-// ************************************************************************** //
-
-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,
-                 std::size_t num_args, ... );
-
-//____________________________________________________________________________//
-
-#define TEMPL_PARAMS( z, m, dummy ) , typename NDNBOOST_JOIN( Arg, m )
-#define FUNC_PARAMS( z, m, dummy )                                                  \
- , NDNBOOST_JOIN( Arg, m ) const& NDNBOOST_JOIN( arg, m )                                 \
- , char const* NDNBOOST_JOIN( NDNBOOST_JOIN( arg, m ), _descr )                           \
-/**/
-
-#define PRED_PARAMS( z, m, dummy ) NDNBOOST_PP_COMMA_IF( m ) NDNBOOST_JOIN( arg, m ) 
-
-#define ARG_INFO( z, m, dummy )                                                     \
- , 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( NDNBOOST_JOIN( arg, m ) ))    \
-/**/
-
-#define IMPL_FRWD( z, n, dummy )                                                    \
-template<typename Pred                                                              \
-         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                                            \
-            NDNBOOST_PP_REPEAT_ ## z( NDNBOOST_PP_ADD( n, 1 ), FUNC_PARAMS, _ )           \
-)                                                                                   \
-{                                                                                   \
-    return                                                                          \
-    check_impl( P( NDNBOOST_PP_REPEAT_ ## z( NDNBOOST_PP_ADD( n, 1 ), PRED_PARAMS, _ ) ), \
-                check_descr, file_name, line_num, tl, ct,                           \
-                NDNBOOST_PP_ADD( n, 1 )                                                \
-                NDNBOOST_PP_REPEAT_ ## z( NDNBOOST_PP_ADD( n, 1 ), ARG_INFO, _ )          \
-    );                                                                              \
-}                                                                                   \
-/**/
-
-#ifndef NDNBOOST_TEST_MAX_PREDICATE_ARITY
-#define NDNBOOST_TEST_MAX_PREDICATE_ARITY 5
-#endif
-
-NDNBOOST_PP_REPEAT( NDNBOOST_TEST_MAX_PREDICATE_ARITY, IMPL_FRWD, _ )
-
-#undef TEMPL_PARAMS
-#undef FUNC_PARAMS
-#undef PRED_INFO
-#undef ARG_INFO
-#undef IMPL_FRWD
-
-//____________________________________________________________________________//
-
-template <class Left, class Right>
-predicate_result equal_impl( Left const& left, Right const& right )
-{
-    return left == 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( 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) ); }
-#endif
-
-//____________________________________________________________________________//
-
-struct equal_impl_frwd {
-    template <typename Left, typename Right>
-    inline predicate_result
-    call_impl( Left const& left, Right const& right, mpl::false_ ) const
-    {
-        return equal_impl( left, right );
-    }
-
-    template <typename Left, typename Right>
-    inline predicate_result
-    call_impl( Left const& left, Right const& right, mpl::true_ ) const
-    {
-        return (*this)( right, &left[0] );
-    }
-
-    template <typename Left, typename Right>
-    inline predicate_result
-    operator()( Left const& left, Right const& right ) const
-    {
-        typedef typename is_array<Left>::type left_is_array;
-        return call_impl( left, right, left_is_array() );
-    }
-};
-
-//____________________________________________________________________________//
-
-struct ne_impl {
-    template <class Left, class Right>
-    predicate_result operator()( Left const& left, Right const& right )
-    {
-        return !equal_impl_frwd()( left, right );
-    }
-};
-
-//____________________________________________________________________________//
-
-struct lt_impl {
-    template <class Left, class Right>
-    predicate_result operator()( Left const& left, Right const& right )
-    {
-        return left < right;
-    }
-};
-
-//____________________________________________________________________________//
-
-struct le_impl {
-    template <class Left, class Right>
-    predicate_result operator()( Left const& left, Right const& right )
-    {
-        return left <= right;
-    }
-};
-
-//____________________________________________________________________________//
-
-struct gt_impl {
-    template <class Left, class Right>
-    predicate_result operator()( Left const& left, Right const& right )
-    {
-        return left > right;
-    }
-};
-
-//____________________________________________________________________________//
-
-struct ge_impl {
-    template <class Left, class Right>
-    predicate_result operator()( Left const& left, Right const& right )
-    {
-        return left >= right;
-    }
-};
-
-//____________________________________________________________________________//
-
-template <typename Left, typename Right>
-inline predicate_result
-equal_coll_impl( Left left_begin, Left left_end, Right right_begin, Right right_end )
-{
-    predicate_result    res( true );
-    std::size_t         pos = 0;
-
-    for( ; left_begin != left_end && right_begin != right_end; ++left_begin, ++right_begin, ++pos ) {
-        if( *left_begin != *right_begin ) {
-            res = false;
-            res.message() << "\nMismatch in a position " << pos << ": "  << *left_begin << " != " << *right_begin;
-        }
-    }
-
-    if( left_begin != left_end ) {
-        std::size_t r_size = pos;
-        while( left_begin != left_end ) {
-            ++pos;
-            ++left_begin;
-        }
-
-        res = false;
-        res.message() << "\nCollections size mismatch: " << pos << " != " << r_size;
-    }
-
-    if( right_begin != right_end ) {
-        std::size_t l_size = pos;
-        while( right_begin != right_end ) {
-            ++pos;
-            ++right_begin;
-        }
-
-        res = false;
-        res.message() << "\nCollections size mismatch: " << l_size << " != " << pos;
-    }
-
-    return res;
-}
-
-//____________________________________________________________________________//
-
-template <class Left, class Right>
-inline predicate_result
-bitwise_equal_impl( Left const& left, Right const& right )
-{
-    predicate_result    res( true );
-
-    std::size_t left_bit_size  = sizeof(Left)*CHAR_BIT;
-    std::size_t right_bit_size = sizeof(Right)*CHAR_BIT;
-
-    static Left const leftOne( 1 );
-    static Right const rightOne( 1 );
-
-    std::size_t total_bits = left_bit_size < right_bit_size ? left_bit_size : right_bit_size;
-
-    for( std::size_t counter = 0; counter < total_bits; ++counter ) {
-        if( ( left & ( leftOne << counter ) ) != ( right & ( rightOne << counter ) ) ) {
-            res = false;
-            res.message() << "\nMismatch in a position " << counter;
-        }
-    }
-
-    if( left_bit_size != right_bit_size ) {
-        res = false;
-        res.message() << "\nOperands bit sizes mismatch: " << left_bit_size << " != " << right_bit_size;
-    }
-
-    return res;
-}
-
-//____________________________________________________________________________//
-
-bool NDNBOOST_TEST_DECL is_defined_impl( const_string symbol_name, const_string symbol_value );
-
-//____________________________________________________________________________//
-
-} // namespace tt_detail
-
-} // namespace test_tools
-
-namespace test_toolbox = test_tools;
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_TEST_TOOLS_HPP_012705GER
diff --git a/include/ndnboost/test/unit_test.hpp b/include/ndnboost/test/unit_test.hpp
deleted file mode 100644
index 1adb805..0000000
--- a/include/ndnboost/test/unit_test.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : Entry point for the end user into the Unit Test Framework.
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_UNIT_TEST_HPP_071894GER
-#define NDNBOOST_TEST_UNIT_TEST_HPP_071894GER
-
-// Boost.Test
-#include <ndnboost/test/test_tools.hpp>
-#include <ndnboost/test/unit_test_suite.hpp>
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                 Auto Linking                 ************** //
-// ************************************************************************** //
-
-#if !defined(NDNBOOST_ALL_NO_LIB) && !defined(NDNBOOST_TEST_NO_LIB) && \
-    !defined(NDNBOOST_TEST_SOURCE) && !defined(NDNBOOST_TEST_INCLUDED)
-#  define NDNBOOST_LIB_NAME ndnboost_unit_test_framework
-
-#  if defined(NDNBOOST_ALL_DYN_LINK) || defined(NDNBOOST_TEST_DYN_LINK)
-#    define NDNBOOST_DYN_LINK
-#  endif
-
-#  include <ndnboost/config/auto_link.hpp>
-
-#endif  // auto-linking disabled
-
-// ************************************************************************** //
-// **************                  unit_test_main              ************** //
-// ************************************************************************** //
-
-namespace ndnboost { namespace unit_test {
-
-int NDNBOOST_TEST_DECL unit_test_main( init_unit_test_func init_func, int argc, char* argv[] );
-
-}}
-
-#if defined(NDNBOOST_TEST_DYN_LINK) && defined(NDNBOOST_TEST_MAIN) && !defined(NDNBOOST_TEST_NO_MAIN)
-
-// ************************************************************************** //
-// **************        main function for tests using dll     ************** //
-// ************************************************************************** //
-
-int NDNBOOST_TEST_CALL_DECL
-main( int argc, char* argv[] )
-{
-    return ::ndnboost::unit_test::unit_test_main( &init_unit_test, argc, argv );
-}
-
-//____________________________________________________________________________//
-
-#endif // NDNBOOST_TEST_DYN_LINK && NDNBOOST_TEST_MAIN && !NDNBOOST_TEST_NO_MAIN
-
-#endif // NDNBOOST_TEST_UNIT_TEST_HPP_071894GER
diff --git a/include/ndnboost/test/unit_test_log.hpp b/include/ndnboost/test/unit_test_log.hpp
deleted file mode 100644
index 97fcde4..0000000
--- a/include/ndnboost/test/unit_test_log.hpp
+++ /dev/null
@@ -1,177 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : defines singleton class unit_test_log and all manipulators.
-//  unit_test_log has output stream like interface. It's implementation is
-//  completely hidden with pimple idiom
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
-#define NDNBOOST_TEST_UNIT_TEST_LOG_HPP_071894GER
-
-// Boost.Test
-#include <ndnboost/test/test_observer.hpp>
-
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/detail/log_level.hpp>
-#include <ndnboost/test/detail/fwd_decl.hpp>
-
-#include <ndnboost/test/utils/wrap_stringstream.hpp>
-#include <ndnboost/test/utils/trivial_singleton.hpp>
-#include <ndnboost/test/utils/lazy_ostream.hpp>
-
-// Boost
-#include <ndnboost/utility.hpp>
-
-// STL
-#include <iosfwd>   // for std::ostream&
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                log manipulators              ************** //
-// ************************************************************************** //
-
-namespace log {
-
-struct NDNBOOST_TEST_DECL begin {
-    begin( const_string fn, std::size_t ln )
-    : m_file_name( fn )
-    , m_line_num( ln )
-    {}
-
-    const_string m_file_name;
-    std::size_t m_line_num;
-};
-
-struct end {};
-
-} // namespace log
-
-// ************************************************************************** //
-// **************             entry_value_collector            ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-class NDNBOOST_TEST_DECL entry_value_collector {
-public:
-    // Constructors
-    entry_value_collector() : m_last( true ) {}
-    entry_value_collector( entry_value_collector const& rhs ) : m_last( true ) { rhs.m_last = false; }
-    ~entry_value_collector();
-
-    // collection interface
-    entry_value_collector const& operator<<( lazy_ostream const& ) const;
-    entry_value_collector const& operator<<( const_string ) const;
-
-private:
-    // Data members
-    mutable bool    m_last;
-};
-
-} // namespace ut_detail
-
-// ************************************************************************** //
-// **************                 unit_test_log                ************** //
-// ************************************************************************** //
-
-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 );
-    void                test_finish();
-    void                test_aborted();
-
-    void                test_unit_start( test_unit const& );
-    void                test_unit_finish( test_unit const&, unsigned long elapsed );
-    void                test_unit_skipped( test_unit const& );
-    void                test_unit_aborted( test_unit const& );
-
-    void                assertion_result( bool passed );
-    void                exception_caught( execution_exception const& );
-
-    virtual int         priority() { return 1; }
-
-    // log configuration methods
-    void                set_stream( std::ostream& );
-    void                set_threshold_level( log_level );
-    void                set_format( output_format );
-    void                set_formatter( unit_test_log_formatter* );
-
-    // test progress logging
-    void                set_checkpoint( const_string file, std::size_t line_num, const_string msg = const_string() );
-
-    // entry logging
-    unit_test_log_t&    operator<<( log::begin const& );        // begin entry 
-    unit_test_log_t&    operator<<( log::end const& );          // end entry
-    unit_test_log_t&    operator<<( log_level );                // set entry level
-    unit_test_log_t&    operator<<( const_string );             // log entry value
-    unit_test_log_t&    operator<<( lazy_ostream const& );      // log entry value
-
-    ut_detail::entry_value_collector operator()( log_level );   // initiate entry collection
-
-private:
-    bool            log_entry_start();
-
-    NDNBOOST_TEST_SINGLETON_CONS( unit_test_log_t );
-}; // unit_test_log_t
-
-NDNBOOST_TEST_SINGLETON_INST( unit_test_log )
-
-// helper macros
-#define NDNBOOST_TEST_LOG_ENTRY( ll )                                                  \
-    (::ndnboost::unit_test::unit_test_log                                              \
-        << ::ndnboost::unit_test::log::begin( NDNBOOST_TEST_L(__FILE__), __LINE__ ))(ll)  \
-/**/
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-// ************************************************************************** //
-// **************       Unit test log interface helpers        ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_TEST_MESSAGE( M )                                 \
-    NDNBOOST_TEST_LOG_ENTRY( ::ndnboost::unit_test::log_messages )    \
-    << (::ndnboost::unit_test::lazy_ostream::instance() << M)      \
-/**/
-
-//____________________________________________________________________________//
-
-#define NDNBOOST_TEST_PASSPOINT()                                  \
-    ::ndnboost::unit_test::unit_test_log.set_checkpoint(           \
-        NDNBOOST_TEST_L(__FILE__),                                 \
-        static_cast<std::size_t>(__LINE__) )                    \
-/**/
-
-//____________________________________________________________________________//
-
-#define NDNBOOST_TEST_CHECKPOINT( M )                              \
-    ::ndnboost::unit_test::unit_test_log.set_checkpoint(           \
-        NDNBOOST_TEST_L(__FILE__),                                 \
-        static_cast<std::size_t>(__LINE__),                     \
-        (::ndnboost::wrap_stringstream().ref() << M).str() )       \
-/**/
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 31d2161..0000000
--- a/include/ndnboost/test/unit_test_log_formatter.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2003-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : 
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/detail/log_level.hpp>
-#include <ndnboost/test/detail/fwd_decl.hpp>
-
-#include <ndnboost/test/execution_monitor.hpp>
-
-// STL
-#include <iosfwd>
-#include <string> // for std::string
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                log_entry_data                ************** //
-// ************************************************************************** //
-
-struct NDNBOOST_TEST_DECL log_entry_data {
-    log_entry_data()
-    {
-        m_file_name.reserve( 200 );
-    }
-
-    std::string     m_file_name;
-    std::size_t     m_line_num;
-    log_level       m_level;
-
-    void clear()
-    {
-        m_file_name.erase();
-        m_line_num      = 0;
-        m_level     = log_nothing;
-    }
-};
-
-// ************************************************************************** //
-// **************                checkpoint_data               ************** //
-// ************************************************************************** //
-
-struct NDNBOOST_TEST_DECL log_checkpoint_data
-{
-    const_string    m_file_name;
-    std::size_t     m_line_num;
-    std::string     m_message;
-
-    void clear()
-    {
-        m_file_name.clear();
-        m_line_num    = 0;
-        m_message = std::string();
-    }
-};
-
-// ************************************************************************** //
-// **************            unit_test_log_formatter           ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL unit_test_log_formatter {
-public:
-    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() {}
-
-    // Formatter interface
-    virtual void        log_start( std::ostream&, counter_t test_cases_amount ) = 0;
-    virtual void        log_finish( std::ostream& ) = 0;
-    virtual void        log_build_info( std::ostream& ) = 0;
-
-    virtual void        test_unit_start( std::ostream&, test_unit const& tu ) = 0;
-    virtual void        test_unit_finish( std::ostream&, test_unit const& tu, unsigned long elapsed ) = 0;
-    virtual void        test_unit_skipped( std::ostream&, test_unit const& ) = 0;
-
-    virtual void        log_exception( std::ostream& os, log_checkpoint_data const& cd, execution_exception const& ex )
-    {
-        // for backward compatibility
-        log_exception( os, cd, ex.what() );
-    }
-    virtual void        log_exception( std::ostream&, log_checkpoint_data const&, const_string /* explanation */ ) {}
-
-    virtual void        log_entry_start( std::ostream&, log_entry_data const&, log_entry_types let ) = 0;
-    virtual void        log_entry_value( std::ostream&, const_string value ) = 0;
-    virtual void        log_entry_value( std::ostream&, lazy_ostream const& value ); // there is a default impl
-    virtual void        log_entry_finish( std::ostream& ) = 0;
-};
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 834378e..0000000
--- a/include/ndnboost/test/unit_test_monitor.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : defines specific version of execution monitor used to managed 
-//  run unit of test cases. Translates execution exception into error level
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_UNIT_TEST_MONITOR_HPP_020905GER
-#define NDNBOOST_TEST_UNIT_TEST_MONITOR_HPP_020905GER
-
-// Boost.Test
-#include <ndnboost/test/execution_monitor.hpp>
-#include <ndnboost/test/detail/fwd_decl.hpp>
-#include <ndnboost/test/utils/trivial_singleton.hpp>
-#include <ndnboost/test/utils/callback.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************               unit_test_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,
-        test_ok                 =  0,
-        constructor_error       = -1, 
-        unexpected_exception    = -2, 
-        os_exception            = -3, 
-        os_timeout              = -4, 
-        fatal_error             = -5,  // includes both system and user
-        destructor_error        = -6
-    };
-
-    static bool is_critical_error( error_level e ) { return e <= fatal_error; }
-
-    // monitor method
-    error_level execute_and_translate( test_case const& );
-
-private:
-    NDNBOOST_TEST_SINGLETON_CONS( unit_test_monitor_t );
-};
-
-NDNBOOST_TEST_SINGLETON_INST( unit_test_monitor )
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index bc70ca6..0000000
--- a/include/ndnboost/test/unit_test_suite.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : defines Unit Test Framework public API
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/framework.hpp>
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************    Non-auto (explicit) test case interface   ************** //
-// ************************************************************************** //
-
-#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 )
-
-// ************************************************************************** //
-// **************               NDNBOOST_TEST_SUITE               ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_TEST_SUITE( testsuite_name ) \
-( new ndnboost::unit_test::test_suite( testsuite_name ) )
-
-// ************************************************************************** //
-// **************             NDNBOOST_AUTO_TEST_SUITE            ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_AUTO_TEST_SUITE( suite_name )                             \
-namespace suite_name {                                                  \
-NDNBOOST_AUTO_TU_REGISTRAR( suite_name )( NDNBOOST_STRINGIZE( suite_name ) ); \
-/**/
-
-// ************************************************************************** //
-// **************            NDNBOOST_FIXTURE_TEST_SUITE          ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_FIXTURE_TEST_SUITE( suite_name, F )                       \
-NDNBOOST_AUTO_TEST_SUITE( suite_name )                                     \
-typedef F NDNBOOST_AUTO_TEST_CASE_FIXTURE;                                 \
-/**/
-
-// ************************************************************************** //
-// **************           NDNBOOST_AUTO_TEST_SUITE_END          ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_AUTO_TEST_SUITE_END()                                     \
-NDNBOOST_AUTO_TU_REGISTRAR( NDNBOOST_JOIN( end_suite, __LINE__ ) )( 1 );      \
-}                                                                       \
-/**/
-
-// ************************************************************************** //
-// **************    NDNBOOST_AUTO_TEST_CASE_EXPECTED_FAILURES    ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_AUTO_TEST_CASE_EXPECTED_FAILURES( test_name, n )          \
-struct NDNBOOST_AUTO_TC_UNIQUE_ID( test_name );                            \
-                                                                        \
-static struct NDNBOOST_JOIN( test_name, _exp_fail_num_spec )               \
-: ndnboost::unit_test::ut_detail::                                         \
-  auto_tc_exp_fail<NDNBOOST_AUTO_TC_UNIQUE_ID( test_name ) >               \
-{                                                                       \
-    NDNBOOST_JOIN( test_name, _exp_fail_num_spec )()                       \
-    : ndnboost::unit_test::ut_detail::                                     \
-      auto_tc_exp_fail<NDNBOOST_AUTO_TC_UNIQUE_ID( test_name ) >( n )      \
-    {}                                                                  \
-} NDNBOOST_JOIN( test_name, _exp_fail_num_spec_inst );                     \
-                                                                        \
-/**/
-
-// ************************************************************************** //
-// **************            NDNBOOST_FIXTURE_TEST_CASE           ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_FIXTURE_TEST_CASE( test_name, F )                         \
-struct test_name : public F { void test_method(); };                    \
-                                                                        \
-static void NDNBOOST_AUTO_TC_INVOKER( test_name )()                        \
-{                                                                       \
-    test_name t;                                                        \
-    t.test_method();                                                    \
-}                                                                       \
-                                                                        \
-struct NDNBOOST_AUTO_TC_UNIQUE_ID( test_name ) {};                         \
-                                                                        \
-NDNBOOST_AUTO_TU_REGISTRAR( test_name )(                                   \
-    ndnboost::unit_test::make_test_case(                                   \
-        &NDNBOOST_AUTO_TC_INVOKER( test_name ), #test_name ),              \
-    ndnboost::unit_test::ut_detail::auto_tc_exp_fail<                      \
-        NDNBOOST_AUTO_TC_UNIQUE_ID( test_name )>::instance()->value() );   \
-                                                                        \
-void test_name::test_method()                                           \
-/**/
-
-// ************************************************************************** //
-// **************             NDNBOOST_AUTO_TEST_CASE             ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_AUTO_TEST_CASE( test_name )                               \
-NDNBOOST_FIXTURE_TEST_CASE( test_name, NDNBOOST_AUTO_TEST_CASE_FIXTURE )
-/**/
-
-// ************************************************************************** //
-// **************       NDNBOOST_FIXTURE_TEST_CASE_TEMPLATE       ************** //
-// ************************************************************************** //
-
-#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 NDNBOOST_AUTO_TC_INVOKER( test_name ) {                             \
-    template<typename TestType>                                         \
-    static void run( ndnboost::type<TestType>* = 0 )                       \
-    {                                                                   \
-        test_name<TestType> t;                                          \
-        t.test_method();                                                \
-    }                                                                   \
-};                                                                      \
-                                                                        \
-NDNBOOST_AUTO_TU_REGISTRAR( test_name )(                                   \
-    ndnboost::unit_test::ut_detail::template_test_case_gen<                \
-        NDNBOOST_AUTO_TC_INVOKER( test_name ),TL >(                        \
-          NDNBOOST_STRINGIZE( test_name ) ) );                             \
-                                                                        \
-template<typename type_name>                                            \
-void test_name<type_name>::test_method()                                \
-/**/
-
-// ************************************************************************** //
-// **************        NDNBOOST_AUTO_TEST_CASE_TEMPLATE         ************** //
-// ************************************************************************** //
-
-#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 )
-
-// ************************************************************************** //
-// **************           NDNBOOST_TEST_CASE_TEMPLATE           ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_TEST_CASE_TEMPLATE( name, typelist )                          \
-    ndnboost::unit_test::ut_detail::template_test_case_gen<name,typelist >(    \
-        NDNBOOST_TEST_STRINGIZE( name ) )                                      \
-/**/
-
-// ************************************************************************** //
-// **************      NDNBOOST_TEST_CASE_TEMPLATE_FUNCTION       ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_TEST_CASE_TEMPLATE_FUNCTION( name, type_name )    \
-template<typename type_name>                                    \
-void NDNBOOST_JOIN( name, _impl )( ndnboost::type<type_name>* );      \
-                                                                \
-struct name {                                                   \
-    template<typename TestType>                                 \
-    static void run( ndnboost::type<TestType>* frwrd = 0 )         \
-    {                                                           \
-       NDNBOOST_JOIN( name, _impl )( frwrd );                      \
-    }                                                           \
-};                                                              \
-                                                                \
-template<typename type_name>                                    \
-void NDNBOOST_JOIN( name, _impl )( ndnboost::type<type_name>* )       \
-/**/
-
-// ************************************************************************** //
-// **************              NDNBOOST_GLOBAL_FIXURE             ************** //
-// ************************************************************************** //
-
-#define NDNBOOST_GLOBAL_FIXTURE( F ) \
-static ndnboost::unit_test::ut_detail::global_fixture_impl<F> NDNBOOST_JOIN( gf_, F ) ; \
-/**/
-
-// ************************************************************************** //
-// **************         NDNBOOST_AUTO_TEST_CASE_FIXTURE         ************** //
-// ************************************************************************** //
-
-namespace ndnboost { namespace unit_test { namespace ut_detail {
-
-struct nil_t {};
-
-} // namespace ut_detail
-} // unit_test
-} // 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 NDNBOOST_AUTO_TEST_CASE_FIXTURE;
-
-// ************************************************************************** //
-// **************   Auto registration facility helper macros   ************** //
-// ************************************************************************** //
-
-#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 )
-
-// ************************************************************************** //
-// **************                NDNBOOST_TEST_MAIN               ************** //
-// ************************************************************************** //
-
-#if defined(NDNBOOST_TEST_MAIN)
-
-#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
-bool init_unit_test()                   {
-#else
-::ndnboost::unit_test::test_suite*
-init_unit_test_suite( int, char* [] )   {
-#endif
-
-#ifdef NDNBOOST_TEST_MODULE
-    using namespace ::ndnboost::unit_test;
-    assign_op( framework::master_test_suite().p_name.value, NDNBOOST_TEST_STRINGIZE( NDNBOOST_TEST_MODULE ).trim( "\"" ), 0 );
-    
-#endif
-
-#ifdef NDNBOOST_TEST_ALTERNATIVE_INIT_API
-    return true;
-}
-#else
-    return 0;
-}
-#endif
-
-#endif
-
-//____________________________________________________________________________//
-
-#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
deleted file mode 100644
index 93e1097..0000000
--- a/include/ndnboost/test/unit_test_suite_impl.hpp
+++ /dev/null
@@ -1,434 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : defines test_unit, test_case, test_case_results, test_suite and test_tree_visitor
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/detail/global_typedef.hpp>
-#include <ndnboost/test/utils/class_properties.hpp>
-#include <ndnboost/test/utils/callback.hpp>
-#include <ndnboost/test/detail/fwd_decl.hpp>
-#include <ndnboost/test/detail/workaround.hpp>
-#include <ndnboost/test/test_observer.hpp>
-
-// Boost
-#include <ndnboost/shared_ptr.hpp>
-#include <ndnboost/mpl/for_each.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/type.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-
-// STL
-#include <typeinfo> // for typeid
-#include <string>   // for std::string
-#include <list>     // for std::list
-#include <vector>   // for std::vector
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                   test_unit                  ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL test_unit {
-public:
-    enum { type = tut_any };
-
-    // Constructor
-    test_unit( const_string tu_name, test_unit_type t );
-
-    // dependencies management
-    void    depends_on( test_unit* tu );
-    bool    check_dependencies() const;
-
-    // Public r/o properties
-    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
-    parent_id_t                         p_parent_id;            // parent test suite id
-
-    // Public r/w properties
-    readwrite_property<std::string>     p_name;                 // name for this test unit
-    readwrite_property<unsigned>        p_timeout;              // timeout for the test unit execution 
-    readwrite_property<counter_t>       p_expected_failures;    // number of expected failures in this test unit
-    mutable readwrite_property<bool>    p_enabled;              // enabled status for this unit
-
-    void                                increase_exp_fail( unsigned num );
-
-protected:
-    ~test_unit();
-
-private:
-    // Data members
-    std::list<test_unit_id>             m_dependencies;
-};
-
-// ************************************************************************** //
-// **************              test_case_generator             ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL test_unit_generator {
-public:
-    virtual test_unit*  next() const = 0;
-
-protected:
-    NDNBOOST_TEST_PROTECTED_VIRTUAL ~test_unit_generator() {}
-};
-
-// ************************************************************************** //
-// **************                   test_case                  ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL test_case : public test_unit {
-public:
-    enum { type = tut_case };
-
-    // Constructor
-    test_case( const_string tc_name, callback0<> const& test_func );
-
-    // Access methods
-    callback0<> const&  test_func() const { return m_test_func; }
-
-private:
-    friend class framework_impl;
-    ~test_case() {}
-
-    // NDNBOOST_MSVC <= 1200 have problems with callback as property
-    // Data members
-    callback0<> m_test_func;
-};
-
-// ************************************************************************** //
-// **************                  test_suite                  ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL test_suite : public test_unit {
-public:
-    enum { type = tut_suite };
-
-    // Constructor
-    explicit        test_suite( const_string ts_name );
-
-    // test unit list management
-    void            add( test_unit* tu, counter_t expected_failures = 0, unsigned timeout = 0 );
-    void            add( test_unit_generator const& gen, unsigned timeout = 0 );
-    void            remove( test_unit_id id );
-
-    // access methods
-    test_unit_id    get( const_string tu_name ) const;
-    std::size_t     size() const { return m_members.size(); }
-
-protected:
-    friend NDNBOOST_TEST_DECL 
-    void        traverse_test_tree( test_suite const&, test_tree_visitor& );
-    friend class framework_impl;
-    virtual     ~test_suite() {}
-
-    // Data members
-    std::vector<test_unit_id> m_members;
-};
-
-// ************************************************************************** //
-// **************               master_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 )
-    , argv( 0 )
-    {}
-    
-    // Data members    
-    int      argc;
-    char**   argv;
-};
-
-
-// ************************************************************************** //
-// **************               test_tree_visitor              ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL test_tree_visitor {
-public:
-    // test tree visitor interface
-    virtual void    visit( test_case const& )               {}
-    virtual bool    test_suite_start( test_suite const& )   { return true; }
-    virtual void    test_suite_finish( test_suite const& )  {}
-
-protected:
-    NDNBOOST_TEST_PROTECTED_VIRTUAL ~test_tree_visitor() {}
-};
-
-// ************************************************************************** //
-// **************               traverse_test_tree             ************** //
-// ************************************************************************** //
-
-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& );
-
-//____________________________________________________________________________//
-
-inline void
-traverse_test_tree( test_unit const& tu, test_tree_visitor& V )
-{
-    if( tu.p_type == tut_case )
-        traverse_test_tree( static_cast<test_case const&>( tu ), V );
-    else
-        traverse_test_tree( static_cast<test_suite const&>( tu ), V );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                test_case_counter             ************** //
-// ************************************************************************** //
-
-class test_case_counter : public test_tree_visitor {
-public:
-    // Constructor
-    test_case_counter() : p_count( 0 ) {}
-
-    NDNBOOST_READONLY_PROPERTY( counter_t, (test_case_counter)) p_count;
-private:
-    // test tree visitor interface
-    virtual void    visit( test_case const& );
-    virtual bool    test_suite_start( test_suite const& ts )    { return ts.p_enabled; }
-};
-
-// ************************************************************************** //
-// **************               test_being_aborted             ************** //
-// ************************************************************************** //
-
-struct NDNBOOST_TEST_DECL test_being_aborted {};
-
-// ************************************************************************** //
-// **************               object generators              ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-NDNBOOST_TEST_DECL std::string normalize_test_case_name( const_string tu_name );
-
-template<typename InstanceType,typename UserTestCase>
-struct user_tc_method_invoker {
-    typedef void (UserTestCase::*TestMethod )();
-
-    user_tc_method_invoker( shared_ptr<InstanceType> inst, TestMethod test_method )
-    : m_inst( inst ), m_test_method( test_method ) {}
-
-    void operator()() { ((*m_inst).*m_test_method)(); }
-
-    shared_ptr<InstanceType> m_inst;
-    TestMethod               m_test_method;
-};
-
-} // namespace ut_detail
-
-//____________________________________________________________________________//
-
-inline test_case*
-make_test_case( callback0<> const& test_func, const_string tc_name )
-{
-    return new test_case( ut_detail::normalize_test_case_name( tc_name ), test_func );
-}
-
-//____________________________________________________________________________//
-
-template<typename UserTestCase, typename InstanceType>
-inline test_case*
-make_test_case( void (UserTestCase::*           test_method )(),
-                const_string                    tc_name,
-                ndnboost::shared_ptr<InstanceType> user_test_case )
-{
-    return new test_case( ut_detail::normalize_test_case_name( tc_name ), 
-                          ut_detail::user_tc_method_invoker<InstanceType,UserTestCase>( user_test_case, test_method ) );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************           auto_test_unit_registrar           ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-struct NDNBOOST_TEST_DECL auto_test_unit_registrar
-{
-    // Constructors
-                auto_test_unit_registrar( test_case* tc, counter_t exp_fail );
-    explicit    auto_test_unit_registrar( const_string ts_name );
-    explicit    auto_test_unit_registrar( test_unit_generator const& tc_gen );
-    explicit    auto_test_unit_registrar( int );
-
-private:
-    static std::list<test_suite*>& curr_ts_store();
-};
-
-//____________________________________________________________________________//
-
-template<typename T>
-struct auto_tc_exp_fail {
-    auto_tc_exp_fail() : m_value( 0 ) {}
-
-    explicit    auto_tc_exp_fail( unsigned v )
-    : m_value( v )
-    {
-        instance() = this;
-    }
-
-    static auto_tc_exp_fail*& instance() 
-    {
-        static auto_tc_exp_fail     inst; 
-        static auto_tc_exp_fail*    inst_ptr = &inst; 
-
-        return inst_ptr;
-    }
-
-    unsigned    value() const { return m_value; }
-
-private:
-    // Data members
-    unsigned    m_value;
-};
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-// ************************************************************************** //
-// **************                global_fixture                ************** //
-// ************************************************************************** //
-
-class NDNBOOST_TEST_DECL global_fixture : public test_observer { 
-public: 
-    // Constructor
-    global_fixture();
-}; 
-
-//____________________________________________________________________________//
-
-namespace ut_detail {
-
-template<typename F> 
-struct global_fixture_impl : public global_fixture {
-    // Constructor
-    global_fixture_impl(): m_fixure( 0 )    {}
-
-    // test observer interface
-    virtual void    test_start( counter_t ) { m_fixure = new F; }
-    virtual void    test_finish()           { delete m_fixure; m_fixure = 0; } 
-    virtual void    test_aborted()          { delete m_fixure; m_fixure = 0; } 
-
-private:
-    // Data members
-    F*  m_fixure;
-}; 
-
-// ************************************************************************** //
-// **************          test_case_template_invoker          ************** //
-// ************************************************************************** //
-
-template<typename TestCaseTemplate,typename TestType>
-class test_case_template_invoker {
-public:
-    void    operator()()    { TestCaseTemplate::run( (ndnboost::type<TestType>*)0 ); }
-};
-
-// ************************************************************************** //
-// **************           generate_test_case_4_type          ************** //
-// ************************************************************************** //
-
-template<typename Generator,typename TestCaseTemplate>
-struct generate_test_case_4_type {
-    explicit    generate_test_case_4_type( const_string tc_name, Generator& G )
-    : m_test_case_name( tc_name )
-    , m_holder( G )
-    {}
-
-    template<typename TestType>
-    void        operator()( mpl::identity<TestType> )
-    {
-        std::string full_name;
-        assign_op( full_name, m_test_case_name, 0 );
-        full_name += '<';
-        full_name += typeid(TestType).name();
-        if( ndnboost::is_const<TestType>::value )
-            full_name += " const";
-        full_name += '>';
-
-        m_holder.m_test_cases.push_back( 
-            new test_case( full_name, test_case_template_invoker<TestCaseTemplate,TestType>() ) );
-    }
-
-private:
-    // Data members
-    const_string    m_test_case_name;
-    Generator&      m_holder;
-};
-
-// ************************************************************************** //
-// **************              test_case_template              ************** //
-// ************************************************************************** //
-
-template<typename TestCaseTemplate,typename TestTypesList>
-class template_test_case_gen : public test_unit_generator {
-public:
-    // Constructor
-    template_test_case_gen( const_string tc_name )
-    {
-        typedef generate_test_case_4_type<template_test_case_gen<TestCaseTemplate,TestTypesList>,
-                                          TestCaseTemplate
-        > single_test_gen;
-        mpl::for_each<TestTypesList,mpl::make_identity<mpl::_> >( single_test_gen( tc_name, *this ) );
-    }
-
-    virtual test_unit* next() const
-    {
-        if( m_test_cases.empty() )
-            return 0;
-    
-        test_unit* res = m_test_cases.front();
-        m_test_cases.pop_front();
-
-        return res;
-    }
-
-    // Data members
-    mutable std::list<test_unit*> m_test_cases;
-};
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-} // unit_test
-
-} // namespace ndnboost
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 3ff7d06..0000000
--- a/include/ndnboost/test/utils/algorithm.hpp
+++ /dev/null
@@ -1,228 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : addition to STL algorithms
-// ***************************************************************************
-
-#ifndef NDNBOOST_ALGORITHM_HPP_062304GER
-#define NDNBOOST_ALGORITHM_HPP_062304GER
-
-#include <utility>
-#include <algorithm> // std::find
-#include <functional> // std::bind1st
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-/// @brief this algorithm search through two collections for first mismatch position that get returned as a pair
-/// of iterators, first pointing to the mismatch position in first collection, second iterator in second one
-
-/// @param first1 - first collection begin iterator
-/// @param last1 - first collection end iterator
-/// @param first2 - second collection begin iterator
-/// @param last2 - second collection end iterator
-template <class InputIter1, class InputIter2>
-inline std::pair<InputIter1, InputIter2>
-mismatch( InputIter1 first1, InputIter1 last1,
-          InputIter2 first2, InputIter2 last2 )
-{
-    while( first1 != last1 && first2 != last2 && *first1 == *first2 ) {
-        ++first1;
-        ++first2;
-    }
-
-    return std::pair<InputIter1, InputIter2>(first1, first2);
-}
-
-//____________________________________________________________________________//
-
-/// @brief this algorithm search through two collections for first mismatch position that get returned as a pair
-/// of iterators, first pointing to the mismatch position in first collection, second iterator in second one. This algorithms
-/// uses supplied predicate for collection elements comparison
-
-/// @param first1 - first collection begin iterator
-/// @param last1 - first collection end iterator
-/// @param first2 - second collection begin iterator
-/// @param last2 - second collection end iterator
-/// @param pred - predicate to be used for search
-template <class InputIter1, class InputIter2, class Predicate>
-inline std::pair<InputIter1, InputIter2>
-mismatch( InputIter1 first1, InputIter1 last1,
-          InputIter2 first2, InputIter2 last2,
-          Predicate pred )
-{
-    while( first1 != last1 && first2 != last2 && pred( *first1, *first2 ) ) {
-        ++first1;
-        ++first2;
-    }
-
-    return std::pair<InputIter1, InputIter2>(first1, first2);
-}
-
-//____________________________________________________________________________//
-
-/// @brief this algorithm search through first collection for first element that does not belong a second one
-
-/// @param first1 - first collection begin iterator
-/// @param last1 - first collection end iterator
-/// @param first2 - second collection begin iterator
-/// @param last2 - second collection end iterator
-template<class ForwardIterator1, class ForwardIterator2>
-inline ForwardIterator1
-find_first_not_of( ForwardIterator1 first1, ForwardIterator1 last1, 
-                   ForwardIterator2 first2, ForwardIterator2 last2 )
-{
-    while( first1 != last1 ) {
-        if( std::find( first2, last2, *first1 ) == last2 )
-            break;
-        ++first1;
-    }
-
-    return first1;
-}
-
-//____________________________________________________________________________//
-
-/// @brief this algorithm search through first collection for first element that does not satisfy binary 
-/// predicate in conjunction will any element in second collection
-
-/// @param first1 - first collection begin iterator
-/// @param last1 - first collection end iterator
-/// @param first2 - second collection begin iterator
-/// @param last2 - second collection end iterator
-/// @param pred - predicate to be used for search
-template<class ForwardIterator1, class ForwardIterator2, class Predicate>
-inline ForwardIterator1
-find_first_not_of( ForwardIterator1 first1, ForwardIterator1 last1, 
-                   ForwardIterator2 first2, ForwardIterator2 last2, 
-                   Predicate pred )
-{
-    while( first1 != last1 ) {
-        if( std::find_if( first2, last2, std::bind1st( pred, *first1 ) ) == last2 )
-            break;
-        ++first1;
-    }
-
-    return first1;
-}
-
-//____________________________________________________________________________//
-
-/// @brief this algorithm search through first collection for last element that belongs to a second one
-
-/// @param first1 - first collection begin iterator
-/// @param last1 - first collection end iterator
-/// @param first2 - second collection begin iterator
-/// @param last2 - second collection end iterator
-template<class BidirectionalIterator1, class ForwardIterator2>
-inline BidirectionalIterator1
-find_last_of( BidirectionalIterator1 first1, BidirectionalIterator1 last1, 
-              ForwardIterator2 first2, ForwardIterator2 last2 )
-{
-    if( first1 == last1 || first2 == last2 )
-        return last1;
-
-    BidirectionalIterator1 it1 = last1;
-    while( --it1 != first1 && std::find( first2, last2, *it1 ) == last2 ) {}
-
-    return it1 == first1 && std::find( first2, last2, *it1 ) == last2 ? last1 : it1;
-}
-
-//____________________________________________________________________________//
-
-/// @brief this algorithm search through first collection for last element that satisfy binary 
-/// predicate in conjunction will at least one element in second collection
-
-/// @param first1 - first collection begin iterator
-/// @param last1 - first collection end iterator
-/// @param first2 - second collection begin iterator
-/// @param last2 - second collection end iterator
-/// @param pred - predicate to be used for search
-template<class BidirectionalIterator1, class ForwardIterator2, class Predicate>
-inline BidirectionalIterator1
-find_last_of( BidirectionalIterator1 first1, BidirectionalIterator1 last1, 
-              ForwardIterator2 first2, ForwardIterator2 last2, 
-              Predicate pred )
-{
-    if( first1 == last1 || first2 == last2 )
-        return last1;
-
-    BidirectionalIterator1 it1 = last1;
-    while( --it1 != first1 && std::find_if( first2, last2, std::bind1st( pred, *it1 ) ) == last2 ) {}
-
-    return it1 == first1 && std::find_if( first2, last2, std::bind1st( pred, *it1 ) ) == last2 ? last1 : it1;
-}
-
-//____________________________________________________________________________//
-
-/// @brief this algorithm search through first collection for last element that does not belong to a second one
-
-/// @param first1 - first collection begin iterator
-/// @param last1 - first collection end iterator
-/// @param first2 - second collection begin iterator
-/// @param last2 - second collection end iterator
-template<class BidirectionalIterator1, class ForwardIterator2>
-inline BidirectionalIterator1
-find_last_not_of( BidirectionalIterator1 first1, BidirectionalIterator1 last1, 
-                  ForwardIterator2 first2, ForwardIterator2 last2 )
-{
-    if( first1 == last1 || first2 == last2 )
-        return last1;
-
-    BidirectionalIterator1 it1 = last1;
-    while( --it1 != first1 && std::find( first2, last2, *it1 ) != last2 ) {}
-
-    return it1 == first1 && std::find( first2, last2, *it1 ) != last2 ? last1 : it1;
-}
-
-//____________________________________________________________________________//
-
-/// @brief this algorithm search through first collection for last element that does not satisfy binary 
-/// predicate in conjunction will any element in second collection
-
-/// @param first1 - first collection begin iterator
-/// @param last1 - first collection end iterator
-/// @param first2 - second collection begin iterator
-/// @param last2 - second collection end iterator
-/// @param pred - predicate to be used for search
-template<class BidirectionalIterator1, class ForwardIterator2, class Predicate>
-inline BidirectionalIterator1
-find_last_not_of( BidirectionalIterator1 first1, BidirectionalIterator1 last1, 
-                  ForwardIterator2 first2, ForwardIterator2 last2, 
-                  Predicate pred )
-{
-    if( first1 == last1 || first2 == last2 )
-        return last1;
-
-    BidirectionalIterator1 it1 = last1;
-    while( --it1 != first1 && std::find_if( first2, last2, std::bind1st( pred, *it1 ) ) != last2 ) {}
-
-    return it1 == first1 && std::find_if( first2, last2, std::bind1st( pred, *it1 ) ) == last2 ? last1 : it1;
-}
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_ALGORITHM_HPP_062304GER
-
-
diff --git a/include/ndnboost/test/utils/assign_op.hpp b/include/ndnboost/test/utils/assign_op.hpp
deleted file mode 100644
index 4e4be04..0000000
--- a/include/ndnboost/test/utils/assign_op.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : overloadable assignment
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_ASSIGN_OP_033005GER
-#define NDNBOOST_TEST_ASSIGN_OP_033005GER
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************             generic assign operator          ************** //
-// ************************************************************************** //
-
-// generic
-template<typename T,typename S>
-inline void
-assign_op( T& t, S const& s, long )
-{
-    t = s;
-}
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 41a64cd..0000000
--- a/include/ndnboost/test/utils/basic_cstring/basic_cstring.hpp
+++ /dev/null
@@ -1,731 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : class basic_cstring wraps C string and provide std_string like 
-//                interface
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/basic_cstring/bcs_char_traits.hpp>
-
-// STL
-#include <string>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                basic_cstring                 ************** //
-// ************************************************************************** //
-
-template<typename CharT>
-class basic_cstring {
-    typedef basic_cstring<CharT>                        self_type;
-public:
-    // Subtypes
-    typedef ut_detail::bcs_char_traits<CharT>           traits_type;
-    typedef typename ut_detail::bcs_char_traits<CharT>::std_string  std_string;
-
-    typedef CharT                                       value_type;
-    typedef value_type*                                 pointer;
-    typedef value_type const*                           const_pointer;
-    typedef value_type&                                 reference;
-    typedef const value_type&                           const_reference;
-    typedef std::size_t                                 size_type;
-    typedef std::ptrdiff_t                              difference_type;
-
-    typedef value_type const*                           const_iterator;
-    typedef value_type*                                 iterator;
-
-    // !! should also present reverse_iterator, const_reverse_iterator
-
-#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.
-    // But size_type is 8 bytes in 64bit mode.
-    static const size_type npos = -1 ;
-#endif
-
-    static pointer  null_str();
-
-    // Constructors; default copy constructor is generated by compiler
-    basic_cstring();
-    basic_cstring( std_string const& s );
-    basic_cstring( pointer s );
-    basic_cstring( pointer s, size_type arg_size );
-    basic_cstring( pointer first, pointer last );
-
-    // data access methods
-    value_type      operator[]( size_type index ) const;
-    value_type      at( size_type index ) const;
-
-    // size operators
-    size_type       size() const;
-    bool            is_empty() const;
-    void            clear();
-    void            resize( size_type new_len );
-
-    // !! only for STL container conformance use is_empty instead
-    bool            empty() const; 
-
-    // Trimming
-    self_type&      trim_right( size_type trim_size );
-    self_type&      trim_left( size_type trim_size );
-    self_type&      trim_right( iterator it );
-    self_type&      trim_left( iterator it );
-#ifndef __IBMCPP__
-    self_type&      trim_left( self_type exclusions = self_type() ) ;
-    self_type&      trim_right( self_type exclusions = self_type() ) ;
-    self_type&      trim( self_type exclusions = self_type() ) ;
-#else
-    // VisualAge version 6 has in this case a problem with the default arguments.
-    self_type&      trim_left( self_type exclusions ) ;
-    self_type&      trim_right( self_type exclusions ) ;
-    self_type&      trim( self_type exclusions ) ;
-    self_type&      trim_left() { trim_left( self_type() ) ; }
-    self_type&      trim_right() { trim_right( self_type() ) ; }
-    self_type&      trim() { trim( self_type() ) ; }
-#endif
-
-    // Assignment operators
-    basic_cstring&  operator=( self_type const& s );
-    basic_cstring&  operator=( std_string const& s );
-    basic_cstring&  operator=( pointer s );
-
-    template<typename CharT2>
-    basic_cstring&  assign( basic_cstring<CharT2> const& s ) { *this = basic_cstring<CharT>( s.begin(), s.end() ); return *this; }
-    basic_cstring&  assign( self_type const& s, size_type pos, size_type len );
-    basic_cstring&  assign( std_string const& s );
-    basic_cstring&  assign( std_string const& s, size_type pos, size_type len );
-    basic_cstring&  assign( pointer s );
-    basic_cstring&  assign( pointer s, size_type len );
-    basic_cstring&  assign( pointer f, pointer l );
-
-    // swapping
-    void            swap( self_type& s );
-
-    // Iterators
-    iterator        begin();
-    const_iterator  begin() const;
-    iterator        end();
-    const_iterator  end() const;
-
-    // !! should have rbegin, rend
-
-    // substring search operation
-    size_type       find( basic_cstring ) const;
-    size_type       rfind( basic_cstring ) const;
-    self_type       substr( size_type beg_index, size_type end_index = npos ) const;
-
-private:
-    static self_type default_trim_ex();
-
-    // Data members
-    iterator        m_begin;
-    iterator        m_end;
-};
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::pointer
-basic_cstring<CharT>::null_str()
-{
-    static CharT null = 0;
-    return &null;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline
-basic_cstring<CharT>::basic_cstring()
-: m_begin( null_str() )
-, m_end( m_begin )
-{
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline
-basic_cstring<CharT>::basic_cstring( std_string const& s )
-: m_begin( s.c_str() )
-, m_end( m_begin + s.size() )
-{
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline
-basic_cstring<CharT>::basic_cstring( pointer s )
-: m_begin( s ? s : null_str() )
-, m_end  ( m_begin + (s ? traits_type::length( s ) : 0 ) )
-{
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline
-basic_cstring<CharT>::basic_cstring( pointer s, size_type arg_size )
-: m_begin( s ), m_end( m_begin + arg_size )
-{
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline
-basic_cstring<CharT>::basic_cstring( pointer first, pointer last )
-: m_begin( first )
-, m_end( last )
-{
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::value_type
-basic_cstring<CharT>::operator[]( size_type index ) const
-{
-    return m_begin[index];
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::value_type
-basic_cstring<CharT>::at( size_type index ) const
-{
-    if( m_begin + index >= m_end )
-        return static_cast<value_type>(0);
-
-    return m_begin[index];
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::size_type
-basic_cstring<CharT>::size() const
-{
-    return m_end - m_begin;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline bool
-basic_cstring<CharT>::is_empty() const
-{
-    return m_end == m_begin;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline bool
-basic_cstring<CharT>::empty() const
-{
-    return is_empty();
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline void
-basic_cstring<CharT>::clear()
-{
-    m_begin = m_end;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline void
-basic_cstring<CharT>::resize( size_type new_len )
-{
-    if( m_begin + new_len < m_end )
-        m_end = m_begin + new_len;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::trim_left( size_type trim_size )
-{
-    m_begin += trim_size;
-    if( m_end <= m_begin )
-        clear();
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::trim_left( iterator it )
-{
-    m_begin = it;
-    if( m_end <= m_begin )
-        clear();
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::trim_left( basic_cstring exclusions )
-{
-    if( exclusions.is_empty() )
-        exclusions = default_trim_ex();
-
-    iterator it;
-    for( it = begin(); it != end(); ++it ) {
-        if( traits_type::find( exclusions.begin(), exclusions.size(), *it ) == reinterpret_cast<pointer>(0) )
-            break;
-    }
-    
-    return trim_left( it );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::trim_right( size_type trim_size )
-{
-    m_end  -= trim_size;
-    if( m_end <= m_begin )
-        clear();
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::trim_right( iterator it )
-{
-    m_end = it;
-    if( m_end <= m_begin )
-        clear();
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::trim_right( basic_cstring exclusions )
-{
-    if( exclusions.is_empty() )
-        exclusions = default_trim_ex();
-
-    iterator it;
-
-    for( it = end()-1; it != begin()-1; --it ) {
-        if( self_type::traits_type::find( exclusions.begin(),  exclusions.size(), *it ) == reinterpret_cast<pointer>(0) )
-            break;
-    }
-    
-    return trim_right( it+1 );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::trim( basic_cstring exclusions )
-{
-    trim_left( exclusions );
-    trim_right( exclusions );
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::operator=( basic_cstring<CharT> const& s )
-{
-    m_begin = s.m_begin;
-    m_end   = s.m_end;
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::operator=( std_string const& s )
-{
-    return *this = self_type( s );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::operator=( pointer s )
-{
-    return *this = self_type( s );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::assign( basic_cstring<CharT> const& s, size_type pos, size_type len )
-{
-    return *this = self_type( s.m_begin + pos, len );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::assign( std_string const& s )
-{
-    return *this = self_type( s );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::assign( std_string const& s, size_type pos, size_type len )
-{
-    return *this = self_type( s.c_str() + pos, len );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::assign( pointer s )
-{
-    return *this = self_type( s );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::assign( pointer s, size_type len )
-{
-    return *this = self_type( s, len );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>&
-basic_cstring<CharT>::assign( pointer f, pointer l )
-{
-    return *this = self_type( f, l );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline void
-basic_cstring<CharT>::swap( basic_cstring<CharT>& s )
-{
-    // do not want to include alogrithm
-    pointer tmp1    = m_begin;
-    pointer tmp2    = m_end;
-
-    m_begin         = s.m_begin;
-    m_end           = s.m_end;
-
-    s.m_begin       = tmp1;
-    s.m_end         = tmp2;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::iterator
-basic_cstring<CharT>::begin()
-{
-    return m_begin;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::const_iterator
-basic_cstring<CharT>::begin() const
-{
-    return m_begin;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::iterator
-basic_cstring<CharT>::end()
-{
-    return m_end;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::const_iterator
-basic_cstring<CharT>::end() const
-{
-    return m_end;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::size_type
-basic_cstring<CharT>::find( basic_cstring<CharT> str ) const
-{
-    if( str.is_empty() || str.size() > size() )
-        return static_cast<size_type>(npos);
-
-    const_iterator it   = begin();
-    const_iterator last = end() - str.size() + 1;
-
-    while( it != last ) {
-        if( traits_type::compare( it, str.begin(), str.size() ) == 0 )
-            break;
-
-        ++it;
-    }
-
-    return it == last ? static_cast<size_type>(npos) : it - begin();
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::size_type
-basic_cstring<CharT>::rfind( basic_cstring<CharT> str ) const
-{
-    if( str.is_empty() || str.size() > size() )
-        return static_cast<size_type>(npos);
-
-    const_iterator it   = end() - str.size();
-    const_iterator last = begin()-1;
-
-    while( it != last ) {
-        if( traits_type::compare( it, str.begin(), str.size() ) == 0 )
-            break;
-
-        --it;
-    }
-
-    return it == last ? static_cast<size_type>(npos) : static_cast<size_type>(it - begin());
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>
-basic_cstring<CharT>::substr( size_type beg_index, size_type end_index ) const
-{
-    return beg_index > size()
-            ?       self_type()
-            : end_index > size()
-                ?   self_type( m_begin + beg_index, m_end )
-                :   self_type( m_begin + beg_index, m_begin + end_index );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline basic_cstring<CharT>
-basic_cstring<CharT>::default_trim_ex()
-{
-    static CharT ws[3] = { CharT(' '), CharT('\t'), CharT('\n') }; // !! wide case
-
-    return self_type( ws, 3 );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************             comparison operators             ************** //
-// ************************************************************************** //
-
-template<typename CharT1,typename CharT2>
-inline bool
-operator==( basic_cstring<CharT1> const& s1, basic_cstring<CharT2> const& s2 )
-{
-    typedef typename basic_cstring<CharT1>::traits_type traits_type;
-    return s1.size() == s2.size() && 
-               traits_type::compare( s1.begin(), s2.begin(), s1.size() ) == 0;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT1,typename CharT2>
-inline bool
-operator==( basic_cstring<CharT1> const& s1, CharT2* s2 )
-{
-#if !defined(__DMC__)
-    return s1 == basic_cstring<CharT2>( s2 );
-#else
-    return s1 == basic_cstring<CharT2 const>( s2 );
-#endif
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline bool
-operator==( basic_cstring<CharT> const& s1, typename basic_cstring<CharT>::std_string const& s2 )
-{
-    return s1 == basic_cstring<CharT>( s2 );
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT1,typename CharT2>
-inline bool
-operator==( CharT1* s2, basic_cstring<CharT2> const& s1 )
-{
-    return s1 == s2;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline bool
-operator==( typename basic_cstring<CharT>::std_string const& s2, basic_cstring<CharT> const& s1 )
-{
-    return s1 == s2;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline bool
-operator!=( basic_cstring<CharT> const& s1, CharT* s2 )
-{
-    return !(s1 == s2);
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline bool
-operator!=( CharT* s2, basic_cstring<CharT> const& s1 )
-{
-    return !(s1 == s2);
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline bool
-operator!=( basic_cstring<CharT> const& s1, basic_cstring<CharT> const& s2 )
-{
-    return !(s1 == s2);
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline bool
-operator!=( basic_cstring<CharT> const& s1, typename basic_cstring<CharT>::std_string const& s2 )
-{
-    return !(s1 == s2);
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT>
-inline bool
-operator!=( typename basic_cstring<CharT>::std_string const& s2, basic_cstring<CharT> const& s1 )
-{
-    return !(s1 == s2);
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  first_char                  ************** //
-// ************************************************************************** //
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::value_type
-first_char( basic_cstring<CharT> source )
-{
-    typedef typename basic_cstring<CharT>::value_type string_value_type;
-
-    return source.is_empty() ? static_cast<string_value_type>(0) : *source.begin();
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  last_char                   ************** //
-// ************************************************************************** //
-
-template<typename CharT>
-inline typename basic_cstring<CharT>::value_type
-last_char( basic_cstring<CharT> source )
-{
-    typedef typename basic_cstring<CharT>::value_type string_value_type;
-
-    return source.is_empty() ? static_cast<string_value_type>(0) : *(source.end()-1);
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  assign_op                   ************** //
-// ************************************************************************** //
-
-template<typename CharT1, typename CharT2>
-inline void
-assign_op( std::basic_string<CharT1>& target, basic_cstring<CharT2> src, int )
-{
-    target.assign( src.begin(), src.size() );
-}
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 7b9adb2..0000000
--- a/include/ndnboost/test/utils/basic_cstring/basic_cstring_fwd.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : basic_cstring class wrap C string and provide std_string like 
-//                interface
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_BASIC_CSTRING_FWD_HPP_071894GER
-#define NDNBOOST_TEST_BASIC_CSTRING_FWD_HPP_071894GER
-
-#include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost {
-
-namespace unit_test {
-
-template<typename CharT> class      basic_cstring;
-typedef basic_cstring<char const>   const_string;
-#if NDNBOOST_WORKAROUND(__DECCXX_VER, NDNBOOST_TESTED_AT(60590041))
-typedef const_string                literal_string;
-#else
-typedef const_string const          literal_string;
-#endif
-
-typedef char const* const           c_literal_string;
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index d9afcb5..0000000
--- a/include/ndnboost/test/utils/basic_cstring/bcs_char_traits.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : generic char traits class; wraps std::char_traits
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_BCS_CHAR_TRAITS_HPP_071894GER
-#define NDNBOOST_TEST_BCS_CHAR_TRAITS_HPP_071894GER
-
-// Boost
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/type_traits/add_const.hpp>
-
-// STL
-#include <string>                       // std::char_traits
-#include <cstddef>                      // std::size_t
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace ut_detail {
-
-template<typename CharT> struct bcs_base_char           { typedef CharT type; };
-
-template<> struct bcs_base_char<char const>             { typedef char type; };
-template<> struct bcs_base_char<unsigned char>          { typedef char type; };
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x551))
-template<> struct bcs_base_char<unsigned char const>    { typedef char type; };
-#endif
-
-template<> struct bcs_base_char<wchar_t const>          { typedef wchar_t type; };
-
-// ************************************************************************** //
-// **************               bcs_char_traits                ************** //
-// ************************************************************************** //
-
-template<typename CharT>
-struct bcs_char_traits_impl
-{
-#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
-    typedef CharT const const_char;
-#else
-    typedef typename ndnboost::add_const<CharT>::type const_char;
-#endif
-    static bool eq( CharT c1, CharT c2 )
-    {
-        return c1 == c2;
-    }
-    static bool lt( CharT c1, CharT c2 )
-    {
-        return c1 < c2;
-    }
-
-    static int compare( const_char* cstr1, const_char* cstr2, std::size_t n )
-    {
-        while( n > 0 ) {
-            if( !eq( *cstr1, *cstr2 ) )
-                return lt( *cstr1, *cstr2 ) ? -1 : 1;
-            ++cstr1;
-            ++cstr2;
-            --n;
-        }
-
-        return 0;
-    }
-
-    static std::size_t length( const_char* cstr )
-    {
-        const_char null_char = CharT();
-
-        const_char* ptr = cstr;
-        while( !eq( *ptr, null_char ) )
-            ++ptr;
-
-        return ptr - cstr;
-    }
-
-    static const_char* find( const_char* s, std::size_t n, CharT c )
-    {
-        while( n > 0 ) {
-            if( eq( *s, c ) )
-                return s;
-
-            ++s;
-            --n;
-        }
-        return 0;
-    }
-};
-
-#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 )
-    {
-        while( n > 0 ) {
-            if( eq( *s, c ) )
-                return s;
-
-            ++s;
-            --n;
-        }
-        return 0;
-    }
-};
-
-template<> struct bcs_char_traits_impl<char> : char_traits_with_find<char> {};
-template<> struct bcs_char_traits_impl<wchar_t> : char_traits_with_find<wchar_t> {};
-#else
-template<> struct bcs_char_traits_impl<char> : std::char_traits<char> {};
-template<> struct bcs_char_traits_impl<wchar_t> : std::char_traits<wchar_t> {};
-#endif
-
-template<typename CharT>
-class bcs_char_traits : public bcs_char_traits_impl<CharT> {
-    typedef typename ut_detail::bcs_base_char<CharT>::type                              the_base_char;
-public:
-#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;
-#endif
-};
-
-} // namespace ut_detail
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 1880c8a..0000000
--- a/include/ndnboost/test/utils/basic_cstring/compare.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : class basic_cstring comparisons implementation
-// ***************************************************************************
-
-#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>
-
-// STL
-#include <functional>
-#include <cctype>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-# if defined(NDNBOOST_NO_STDC_NAMESPACE) && !NDNBOOST_WORKAROUND(__BORLANDC__, <= 0x570)
-namespace std { using ::toupper; }
-# endif
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                case_ins_compare              ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-template<class CharT>
-struct case_ins
-{
-    static bool         eq( CharT c1, CharT c2 ) { return (std::toupper)( c1 ) == (std::toupper)( c2 ); }
-    static bool         lt( CharT c1, CharT c2 ) { return (std::toupper)( c1 ) <  (std::toupper)( c2 ); }
-
-    static int          compare( CharT const* s1, CharT const* s2, std::size_t n )
-    {
-        for( std::size_t i = 0; i < n; ++i ) {
-            if( !eq( s1[i], s2[i] ) )
-                return lt( s1[i], s2[i] ) ? -1 : 1;
-        }
-        return 0;
-    }
-};
-
-} // namespace ut_detail
-
-// ************************************************************************** //
-// **************                  case_ins_eq                 ************** //
-// ************************************************************************** //
-
-template<class CharT>
-inline bool
-case_ins_eq( basic_cstring<CharT> x, basic_cstring<CharT> y )
-{
-    return x.size() == y.size() && ut_detail::case_ins<CharT>::compare( x.begin(), y.begin(), x.size() ) == 0;
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                 case_ins_less                ************** //
-// ************************************************************************** //
-
-template<class CharT>
-class case_ins_less : public std::binary_function<basic_cstring<CharT>,basic_cstring<CharT>,bool>
-{
-public:
-    bool operator()( basic_cstring<CharT> x, basic_cstring<CharT> y ) const
-    {
-        return x.size() != y.size() 
-                ? x.size() < y.size() 
-                : ut_detail::case_ins<CharT>::compare( x.begin(), y.begin(), x.size() ) < 0;
-    }
-};
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  operator <                  ************** //
-// ************************************************************************** //
-
-template<class CharT>
-inline bool
-operator <( ndnboost::unit_test::basic_cstring<CharT> const& x,
-            ndnboost::unit_test::basic_cstring<CharT> const& y )
-{
-    typedef typename ndnboost::unit_test::basic_cstring<CharT>::traits_type traits_type;
-    return x.size() != y.size() 
-            ? x.size() < y.size() 
-            : traits_type::compare( x.begin(), y.begin(), x.size() ) < 0;
-}
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 8ad770a..0000000
--- a/include/ndnboost/test/utils/basic_cstring/io.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : basic_cstring i/o implementation
-// ***************************************************************************
-
-#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>
-
-// STL
-#include <iosfwd>
-#include <string>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-#ifdef NDNBOOST_CLASSIC_IOSTREAMS
-
-template<typename CharT>
-inline std::ostream&
-operator<<( std::ostream& os, basic_cstring<CharT> const& str )
-{
-    typedef typename ut_detail::bcs_base_char<CharT>::type char_type;
-    char_type const* const beg = reinterpret_cast<char_type const* const>( str.begin() );
-    char_type const* const end = reinterpret_cast<char_type const* const>( str.end() );
-    os << std::basic_string<char_type>( beg, end - beg );
-
-    return os;
-}
-
-#else
-
-template<typename CharT1, typename Tr,typename CharT2>
-inline std::basic_ostream<CharT1,Tr>&
-operator<<( std::basic_ostream<CharT1,Tr>& os, basic_cstring<CharT2> const& str )
-{
-    CharT1 const* const beg = reinterpret_cast<CharT1 const*>( str.begin() ); // !!
-    CharT1 const* const end = reinterpret_cast<CharT1 const*>( str.end() );
-    os << std::basic_string<CharT1,Tr>( beg, end - beg );
-
-    return os;
-}
-
-#endif
-
-//____________________________________________________________________________//
-
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_BASIC_CSTRING_IO_HPP_071894GER
diff --git a/include/ndnboost/test/utils/callback.hpp b/include/ndnboost/test/utils/callback.hpp
deleted file mode 100644
index 4bd786f..0000000
--- a/include/ndnboost/test/utils/callback.hpp
+++ /dev/null
@@ -1,310 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : 
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_CALLBACK_020505GER
-#define NDNBOOST_TEST_CALLBACK_020505GER
-
-// Boost
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/shared_ptr.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300) || NDNBOOST_WORKAROUND(NDNBOOST_INTEL, <= 700)
-#  define NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
-#endif
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace ut_detail {
-
-struct unused {};
-
-template<typename R>
-struct invoker {
-    template<typename Functor>
-    R       invoke( Functor& f )                        { return f(); }
-    template<typename Functor, typename T1>
-    R       invoke( Functor& f, T1 t1 )                 { return f( t1 ); }
-    template<typename Functor, typename T1, typename T2>
-    R       invoke( Functor& f, T1 t1, T2 t2 )          { return f( t1, t2 ); }
-    template<typename Functor, typename T1, typename T2, typename T3>
-    R       invoke( Functor& f, T1 t1, T2 t2, T3 t3 )   { return f( t1, t2, t3 ); }
-};
-
-//____________________________________________________________________________//
-
-template<>
-struct invoker<unused> {
-    template<typename Functor>
-    unused  invoke( Functor& f )                        { f(); return unused(); }
-    template<typename Functor, typename T1>
-    unused  invoke( Functor& f, T1 t1 )                 { f( t1 ); return unused(); }
-    template<typename Functor, typename T1, typename T2>
-    unused  invoke( Functor& f, T1 t1, T2 t2 )          { f( t1, t2 ); return unused(); }
-    template<typename Functor, typename T1, typename T2, typename T3>
-    unused  invoke( Functor& f, T1 t1, T2 t2, T3 t3 )   { f( t1, t2, t3 ); return unused(); }
-};
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-// ************************************************************************** //
-// **************             unit_test::callback0             ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-template<typename R>
-struct callback0_impl {
-    virtual ~callback0_impl() {}
-
-    virtual R invoke() = 0;
-};
-
-//____________________________________________________________________________//
-
-template<typename R, typename Functor>
-struct callback0_impl_t : callback0_impl<R> {
-    // Constructor
-    explicit callback0_impl_t( Functor f ) : m_f( f ) {}
-
-    virtual R invoke() { return invoker<R>().invoke( m_f ); }
-
-private:
-    // Data members
-    Functor m_f;
-};
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-template<typename R = ut_detail::unused>
-class callback0 {
-public:
-    // Constructors
-    callback0() {}
-#ifdef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
-    callback0( callback0 const& rhs ) : m_impl( rhs.m_impl ) {}
-#endif
-
-    template<typename Functor>
-    callback0( Functor f )
-    : m_impl( new ut_detail::callback0_impl_t<R,Functor>( f ) ) {}
-    
-    void        operator=( callback0 const& rhs ) { m_impl = rhs.m_impl; }
-
-    template<typename Functor>
-    void        operator=( Functor f ) { m_impl.reset( new ut_detail::callback0_impl_t<R,Functor>( f ) );  }
-
-    R           operator()() const { return m_impl->invoke(); }
-
-    bool        operator!() const { return !m_impl; }
-
-private:
-    // Data members
-    ndnboost::shared_ptr<ut_detail::callback0_impl<R> > m_impl;
-};
-
-// ************************************************************************** //
-// **************             unit_test::callback1             ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-template<typename R, typename T1>
-struct callback1_impl {
-    virtual ~callback1_impl() {}
-
-    virtual R invoke( T1 t1 ) = 0;
-};
-
-//____________________________________________________________________________//
-
-template<typename R, typename T1,typename Functor>
-struct callback1_impl_t : callback1_impl<R,T1> {
-    // Constructor
-    explicit callback1_impl_t( Functor f ) : m_f( f ) {}
-
-    virtual R invoke( T1 t1 ) { return invoker<R>().invoke( m_f, t1 ); }
-
-private:
-    // Data members
-    Functor m_f;
-};
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-template<typename T1,typename R = ut_detail::unused>
-class callback1 {
-public:
-    // Constructors
-    callback1() {}
-#ifdef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
-    callback1( callback1 const& rhs ) : m_impl( rhs.m_impl ) {}
-#endif
-
-    template<typename Functor>
-    callback1( Functor f )
-    : m_impl( new ut_detail::callback1_impl_t<R,T1,Functor>( f ) ) {}
-
-    void        operator=( callback1 const& rhs ) { m_impl = rhs.m_impl; }
-
-    template<typename Functor>
-    void        operator=( Functor f ) { m_impl.reset( new ut_detail::callback1_impl_t<R,T1,Functor>( f ) );  }
-
-    R           operator()( T1 t1 ) const { return m_impl->invoke( t1 ); }
-
-    bool        operator!() const { return !m_impl; }
-
-private:
-    // Data members
-    ndnboost::shared_ptr<ut_detail::callback1_impl<R,T1> > m_impl;
-};
-
-// ************************************************************************** //
-// **************             unit_test::callback2             ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-template<typename R, typename T1,typename T2>
-struct callback2_impl {
-    virtual ~callback2_impl() {}
-
-    virtual R invoke( T1 t1, T2 t2 ) = 0;
-};
-
-//____________________________________________________________________________//
-
-template<typename R, typename T1, typename T2, typename Functor>
-struct callback2_impl_t : callback2_impl<R,T1,T2> {
-    // Constructor
-    explicit callback2_impl_t( Functor f ) : m_f( f ) {}
-
-    virtual R invoke( T1 t1, T2 t2 ) { return invoker<R>().template invoke<Functor,T1,T2>( m_f, t1, t2 ); }
-
-private:
-    // Data members
-    Functor m_f;
-};
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-template<typename T1,typename T2, typename R = ut_detail::unused>
-class callback2 {
-public:
-    // Constructors
-    callback2() {}
-#ifdef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
-    callback2( callback2 const& rhs ) : m_impl( rhs.m_impl ) {}
-#endif
-
-    template<typename Functor>
-                callback2( Functor f ) : m_impl( new ut_detail::callback2_impl_t<R,T1,T2,Functor>( f ) ) {}
-
-    void        operator=( callback2 const& rhs ) { m_impl = rhs.m_impl; }
-
-    template<typename Functor>
-    void        operator=( Functor f ) { m_impl.reset( new ut_detail::callback2_impl_t<R,T1,T2,Functor>( f ) );  }
-
-    R           operator()( T1 t1, T2 t2 ) const { return m_impl->invoke( t1, t2 ); }
-
-    bool        operator!() const { return !m_impl; }
-
-private:
-    // Data members
-    ndnboost::shared_ptr<ut_detail::callback2_impl<R,T1,T2> > m_impl;
-};
-
-// ************************************************************************** //
-// **************             unit_test::callback3             ************** //
-// ************************************************************************** //
-
-namespace ut_detail {
-
-template<typename R, typename T1, typename T2, typename T3>
-struct callback3_impl {
-    virtual ~callback3_impl() {}
-
-    virtual R invoke( T1 t1, T2 t2, T3 t3 ) = 0;
-};
-
-//____________________________________________________________________________//
-
-template<typename R, typename T1, typename T2, typename T3, typename Functor>
-struct callback3_impl_t : callback3_impl<R,T1,T2,T3> {
-    // Constructor
-    explicit callback3_impl_t( Functor f ) : m_f( f ) {}
-
-    virtual R invoke( T1 t1, T2 t2, T3 t3 ) { return invoker<R>().invoke( m_f, t1, t2, t3 ); }
-
-private:
-    // Data members
-    Functor m_f;
-};
-
-//____________________________________________________________________________//
-
-} // namespace ut_detail
-
-template<typename T1,typename T2, typename T3, typename R = ut_detail::unused>
-class callback3 {
-public:
-    // Constructors
-    callback3() {}
-#ifdef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
-    callback3( callback3 const& rhs ) : m_impl( rhs.m_impl ) {}
-#endif
-
-    template<typename Functor>
-    callback3( Functor f )
-    : m_impl( new ut_detail::callback3_impl_t<R,T1,T2,T3,Functor>( f ) ) {}
-
-    void        operator=( callback3 const& rhs ) { m_impl = rhs.m_impl; }
-
-    template<typename Functor>
-    void        operator=( Functor f ) { m_impl.reset( new ut_detail::callback3_impl_t<R,T1,T2,T3,Functor>( f ) );  }
-
-    R           operator()( T1 t1, T2 t2, T3 t3 ) const { return m_impl->invoke( t1, t2, t3 ); }
-
-    bool        operator!() const { return !m_impl; }
-
-private:
-    // Data members
-    ndnboost::shared_ptr<ut_detail::callback3_impl<R,T1,T2,T3> > m_impl;
-};
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-#undef NDNBOOST_CALLBACK_EXPLICIT_COPY_CONSTRUCTOR
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_CALLBACK_020505GER
diff --git a/include/ndnboost/test/utils/class_properties.hpp b/include/ndnboost/test/utils/class_properties.hpp
deleted file mode 100644
index b5ea998..0000000
--- a/include/ndnboost/test/utils/class_properties.hpp
+++ /dev/null
@@ -1,221 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : simple facility that mimmic notion of read-only read-write 
-//  properties in C++ classes. Original idea by Henrik Ravn.
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_CLASS_PROPERTIES_HPP_071894GER
-#define NDNBOOST_TEST_CLASS_PROPERTIES_HPP_071894GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-
-// Boost
-#if !NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
-#include <ndnboost/preprocessor/seq/for_each.hpp>
-#endif
-#include <ndnboost/call_traits.hpp>
-#include <ndnboost/type_traits/add_pointer.hpp>
-#include <ndnboost/type_traits/add_const.hpp>
-#include <ndnboost/utility/addressof.hpp>
-
-// STL
-#include <iosfwd>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                 class_property               ************** //
-// ************************************************************************** //
-
-template<class PropertyType>
-class class_property {
-protected:
-    typedef typename call_traits<PropertyType>::const_reference     read_access_t;
-    typedef typename call_traits<PropertyType>::param_type          write_param_t;
-    typedef typename add_pointer<typename add_const<PropertyType>::type>::type address_res_t;
-public:
-    // Constructor
-                    class_property() : value( PropertyType() ) {}
-    explicit        class_property( write_param_t init_value )
-    : value( init_value ) {}
-
-    // Access methods
-    operator        read_access_t() const   { return value; }
-    read_access_t   get() const             { return value; }
-    bool            operator!() const       { return !value; }
-    address_res_t   operator&() const       { return &value; }
-
-    // Data members
-#ifndef NDNBOOST_TEST_NO_PROTECTED_USING
-protected:
-#endif
-    PropertyType        value;
-};
-
-//____________________________________________________________________________//
-
-#ifdef NDNBOOST_CLASSIC_IOSTREAMS
-
-template<class PropertyType>
-inline std::ostream&
-operator<<( std::ostream& os, class_property<PropertyType> const& p )
-
-#else
-
-template<typename CharT1, typename Tr,class PropertyType>
-inline std::basic_ostream<CharT1,Tr>&
-operator<<( std::basic_ostream<CharT1,Tr>& os, class_property<PropertyType> const& p )
-
-#endif
-{
-    return os << p.get();
-}
-
-//____________________________________________________________________________//
-
-#define DEFINE_PROPERTY_FREE_BINARY_OPERATOR( op )                              \
-template<class PropertyType>                                                    \
-inline bool                                                                     \
-operator op( PropertyType const& lhs, class_property<PropertyType> const& rhs ) \
-{                                                                               \
-    return lhs op rhs.get();                                                    \
-}                                                                               \
-template<class PropertyType>                                                    \
-inline bool                                                                     \
-operator op( class_property<PropertyType> const& lhs, PropertyType const& rhs ) \
-{                                                                               \
-    return lhs.get() op rhs;                                                    \
-}                                                                               \
-template<class PropertyType>                                                    \
-inline bool                                                                     \
-operator op( class_property<PropertyType> const& lhs,                           \
-             class_property<PropertyType> const& rhs )                          \
-{                                                                               \
-    return lhs.get() op rhs.get();                                              \
-}                                                                               \
-/**/
-
-DEFINE_PROPERTY_FREE_BINARY_OPERATOR( == )
-DEFINE_PROPERTY_FREE_BINARY_OPERATOR( != )
-
-#undef DEFINE_PROPERTY_FREE_BINARY_OPERATOR
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-
-#define DEFINE_PROPERTY_LOGICAL_OPERATOR( op )                                  \
-template<class PropertyType>                                                    \
-inline bool                                                                     \
-operator op( bool b, class_property<PropertyType> const& p )                    \
-{                                                                               \
-    return b op p.get();                                                        \
-}                                                                               \
-template<class PropertyType>                                                    \
-inline bool                                                                     \
-operator op( class_property<PropertyType> const& p, bool b )                    \
-{                                                                               \
-    return b op p.get();                                                        \
-}                                                                               \
-/**/
-
-DEFINE_PROPERTY_LOGICAL_OPERATOR( && )
-DEFINE_PROPERTY_LOGICAL_OPERATOR( || )
-
-#endif
-
-// ************************************************************************** //
-// **************               readonly_property              ************** //
-// ************************************************************************** //
-
-template<class PropertyType>
-class readonly_property : public class_property<PropertyType> {
-    typedef class_property<PropertyType>         base_prop;
-    typedef typename base_prop::address_res_t    arrow_res_t;
-protected:
-    typedef typename base_prop::write_param_t    write_param_t;
-public:
-    // Constructor
-                    readonly_property() {}
-    explicit        readonly_property( write_param_t init_value ) : base_prop( init_value ) {}
-
-    // access methods
-    arrow_res_t     operator->() const      { return ndnboost::addressof( base_prop::value ); }
-};
-
-//____________________________________________________________________________//
-
-#if NDNBOOST_WORKAROUND(__IBMCPP__, NDNBOOST_TESTED_AT(600))
-
-#define NDNBOOST_READONLY_PROPERTY( property_type, friends ) ndnboost::unit_test::readwrite_property<property_type >
-
-#else
-
-#define NDNBOOST_READONLY_PROPERTY_DECLARE_FRIEND(r, data, elem) friend class elem;
-
-#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;          \
-    NDNBOOST_PP_SEQ_FOR_EACH( NDNBOOST_READONLY_PROPERTY_DECLARE_FRIEND, ' ', friends )   \
-    typedef base_prop::write_param_t  write_param_t;                                \
-public:                                                                             \
-                NDNBOOST_JOIN( readonly_property, __LINE__ )() {}                      \
-    explicit    NDNBOOST_JOIN( readonly_property, __LINE__ )( write_param_t init_v  )  \
-    : base_prop( init_v ) {}                                                        \
-}                                                                                   \
-/**/
-
-#endif
-
-// ************************************************************************** //
-// **************              readwrite_property              ************** //
-// ************************************************************************** //
-
-template<class PropertyType>
-class readwrite_property : public class_property<PropertyType> {
-    typedef class_property<PropertyType>                base_prop;
-    typedef typename add_pointer<PropertyType>::type    arrow_res_t;
-    typedef typename base_prop::address_res_t           const_arrow_res_t;
-    typedef typename base_prop::write_param_t           write_param_t;
-public:
-                    readwrite_property() : base_prop() {}
-    explicit        readwrite_property( write_param_t init_value ) : base_prop( init_value ) {}
-
-    // access methods
-    void            set( write_param_t v )  { base_prop::value = v; }
-    arrow_res_t     operator->()            { return ndnboost::addressof( base_prop::value ); }
-    const_arrow_res_t operator->() const    { return ndnboost::addressof( base_prop::value ); }
-
-#ifndef NDNBOOST_TEST_NO_PROTECTED_USING
-    using           base_prop::value;
-#endif
-};
-
-//____________________________________________________________________________//
-
-} // unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#undef NDNBOOST_TEST_NO_PROTECTED_USING
-
-#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
deleted file mode 100644
index 165ddc7..0000000
--- a/include/ndnboost/test/utils/custom_manip.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : simple helpers for creating cusom output manipulators
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_CUSTOM_MANIP_HPP_071894GER
-#define NDNBOOST_TEST_CUSTOM_MANIP_HPP_071894GER
-
-// STL
-#include <iosfwd>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************          custom manipulators helpers         ************** //
-// ************************************************************************** //
-
-template<typename Manip>
-struct custom_printer {
-    explicit custom_printer( std::ostream& ostr ) : m_ostr( &ostr ) {}
-
-    std::ostream& operator*() const { return *m_ostr; }
-
-private:
-    std::ostream* const m_ostr;
-};
-
-//____________________________________________________________________________//
-
-template<typename Uniq> struct custom_manip {};
-
-//____________________________________________________________________________//
-
-template<typename Uniq>
-inline custom_printer<custom_manip<Uniq> >
-operator<<( std::ostream& ostr, custom_manip<Uniq> const& ) { return custom_printer<custom_manip<Uniq> >( ostr ); }
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 76ab30a..0000000
--- a/include/ndnboost/test/utils/fixed_mapping.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2001-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : fixed sized mapping with specified invalid value
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_FIXED_MAPPING_HPP_071894GER
-#define NDNBOOST_TEST_FIXED_MAPPING_HPP_071894GER
-
-// Boost
-#include <ndnboost/preprocessor/repetition/repeat.hpp>
-#include <ndnboost/preprocessor/arithmetic/add.hpp>
-#include <ndnboost/call_traits.hpp>
-#include <ndnboost/detail/binary_search.hpp>
-
-// STL
-#include <vector>
-#include <functional>
-#include <algorithm>
-#include <utility>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// configurable maximum fixed sized mapping size supported by this header.
-// You can redefine it before inclusion of this file.
-#ifndef MAX_MAP_SIZE
-#define MAX_MAP_SIZE 20
-#endif
-
-#define CONSTR_DECL_MID( z, i, dummy1 ) key_param_type key##i, value_param_type v##i,
-#define CONSTR_BODY_MID( z, i, dummy1 ) add_pair( key##i, v##i );
-
-#define CONSTR_DECL( z, n, dummy1 )                                 \
-    fixed_mapping( NDNBOOST_PP_REPEAT_ ## z( n, CONSTR_DECL_MID, "" )  \
-                         value_param_type invalid_value )           \
-    : m_invalid_value( invalid_value )                              \
-    {                                                               \
-        NDNBOOST_PP_REPEAT_ ## z( n, CONSTR_BODY_MID, "" )             \
-        init();                                                     \
-    }                                                               \
-/**/
-
-#define CONTRUCTORS( n ) NDNBOOST_PP_REPEAT( n, CONSTR_DECL, "" )
-
-template<typename Key, typename Value, typename Compare = std::less<Key> >
-class fixed_mapping
-{
-    typedef std::pair<Key,Value>                            elem_type;
-    typedef std::vector<elem_type>                          map_type;
-    typedef typename std::vector<elem_type>::const_iterator iterator;
-
-    typedef typename call_traits<Key>::param_type           key_param_type;
-    typedef typename call_traits<Value>::param_type         value_param_type;
-    typedef typename call_traits<Value>::const_reference    value_ref_type;
-
-#if NDNBOOST_WORKAROUND(__DECCXX_VER, NDNBOOST_TESTED_AT(60590042))
-    struct p1; friend struct p1;
-    struct p2; friend struct p2;
-#endif
-
-    // bind( Compare(), bind(select1st<elem_type>(), _1),  bind(identity<Key>(), _2) )
-    struct p1 : public std::binary_function<elem_type,Key,bool>
-    {
-        bool operator()( elem_type const& x, Key const& y ) const { return Compare()( x.first, y ); }
-    };
-
-    // bind( Compare(), bind(select1st<elem_type>(), _1), bind(select1st<elem_type>(), _2) )
-    struct p2 : public std::binary_function<elem_type,elem_type,bool>
-    {
-        bool operator()( elem_type const& x, elem_type const& y ) const { return Compare()( x.first, y.first ); }
-    };
-
-public:
-    // Constructors
-    CONTRUCTORS( NDNBOOST_PP_ADD( MAX_MAP_SIZE, 1 ) )
-
-    // key -> value access
-    value_ref_type  operator[]( key_param_type key ) const
-    {
-        iterator it = ndnboost::detail::lower_bound( m_map.begin(), m_map.end(), key, p1() );
-
-        return (it == m_map.end() || Compare()( key, it->first ) ) ? m_invalid_value : it->second;
-    }
-
-private:
-    // Implementation
-    void            init()                                                  { std::sort( m_map.begin(), m_map.end(), p2() ); }
-    void            add_pair( key_param_type key, value_param_type value )  { m_map.push_back( elem_type( key, value ) ); }
-
-    // Data members
-    Value           m_invalid_value;
-    map_type        m_map;
-};
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#undef MAX_MAP_SIZE
-#undef CONSTR_DECL_MID
-#undef CONSTR_BODY_MID
-#undef CONSTR_DECL
-#undef CONTRUCTORS
-
-#endif // NDNBOOST_TEST_FIXED_MAPPING_HPP_071894GER
-
diff --git a/include/ndnboost/test/utils/foreach.hpp b/include/ndnboost/test/utils/foreach.hpp
deleted file mode 100644
index 4bc2027..0000000
--- a/include/ndnboost/test/utils/foreach.hpp
+++ /dev/null
@@ -1,281 +0,0 @@
-//  (C) Copyright Eric Niebler 2004-2005
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  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 NDNBOOST_TEST_FOREACH_HPP_021005GER
-#define NDNBOOST_TEST_FOREACH_HPP_021005GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-
-// Boost
-#include <ndnboost/type.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/test/detail/workaround.hpp>
-
-#include <ndnboost/type_traits/is_const.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-namespace for_each {
-
-// ************************************************************************** //
-// **************                  static_any                  ************** //
-// ************************************************************************** //
-
-struct static_any_base
-{
-    operator bool() const { return false; }
-};
-
-//____________________________________________________________________________//
-
-template<typename Iter>
-struct static_any : static_any_base
-{
-    static_any( Iter const& t ) : m_it( t ) {}
-
-    mutable Iter m_it;
-};
-
-//____________________________________________________________________________//
-
-typedef static_any_base const& static_any_t;
-
-//____________________________________________________________________________//
-
-template<typename Iter>
-inline Iter&
-static_any_cast( static_any_t a, Iter* = 0 )
-{
-    return static_cast<Iter&>( static_cast<static_any<Iter> const&>( a ).m_it );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                   is_const                   ************** //
-// ************************************************************************** //
-
-template<typename C>
-inline is_const<C>
-is_const_coll( C& )
-{
-    return is_const<C>();
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                     begin                    ************** //
-// ************************************************************************** //
-
-template<typename C>
-inline static_any<NDNBOOST_DEDUCED_TYPENAME C::iterator>
-begin( C& t, mpl::false_ )
-{
-    return static_any<NDNBOOST_DEDUCED_TYPENAME C::iterator>( t.begin() );
-}
-
-//____________________________________________________________________________//
-
-template<typename C>
-inline static_any<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>
-begin( C const& t, mpl::true_ )
-{
-    return static_any<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( t.begin() );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                      end                     ************** //
-// ************************************************************************** //
-
-template<typename C>
-inline static_any<NDNBOOST_DEDUCED_TYPENAME C::iterator>
-end( C& t, mpl::false_ )
-{
-    return static_any<NDNBOOST_DEDUCED_TYPENAME C::iterator>( t.end() );
-}
-
-//____________________________________________________________________________//
-
-template<typename C>
-inline static_any<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>
-end( C const& t, mpl::true_ )
-{
-    return static_any<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( t.end() );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                      done                    ************** //
-// ************************************************************************** //
-
-template<typename C>
-inline bool
-done( static_any_t cur, static_any_t end, C&, mpl::false_ )
-{
-    return  static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::iterator>( cur ) ==
-            static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::iterator>( end );
-}
-
-//____________________________________________________________________________//
-
-template<typename C>
-inline bool
-done( static_any_t cur, static_any_t end, C const&, mpl::true_ )
-{
-    return  static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( cur ) ==
-            static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( end );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                      next                    ************** //
-// ************************************************************************** //
-
-template<typename C>
-inline void
-next( static_any_t cur, C&, mpl::false_ )
-{
-    ++static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::iterator>( cur );
-}
-
-//____________________________________________________________________________//
-
-template<typename C>
-inline void
-next( static_any_t cur, C const&, mpl::true_ )
-{
-    ++static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( cur );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                      deref                   ************** //
-// ************************************************************************** //
-
-template<class RefType,typename C>
-inline RefType
-deref( static_any_t cur, C&, ::ndnboost::type<RefType>, mpl::false_ )
-{
-    return *static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::iterator>( cur );
-}
-
-//____________________________________________________________________________//
-
-template<class RefType,typename C>
-inline RefType
-deref( static_any_t cur, C const&, ::ndnboost::type<RefType>, mpl::true_ )
-{
-    return *static_any_cast<NDNBOOST_DEDUCED_TYPENAME C::const_iterator>( cur );
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************              NDNBOOST_TEST_FOREACH              ************** //
-// ************************************************************************** //
-
-#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 NDNBOOST_TEST_FE_BEG( COL )            \
-    ::ndnboost::unit_test::for_each::begin(    \
-        COL,                                \
-        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
-/**/
-
-#define NDNBOOST_TEST_FE_END( COL )            \
-    ::ndnboost::unit_test::for_each::end(      \
-        COL,                                \
-        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
-/**/
-
-#define NDNBOOST_TEST_FE_DONE( COL )           \
-    ::ndnboost::unit_test::for_each::done(     \
-        NDNBOOST_TEST_FE_CUR_VAR,              \
-        NDNBOOST_TEST_FE_END_VAR,              \
-        COL,                                \
-        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
-/**/
-
-#define NDNBOOST_TEST_FE_NEXT( COL )           \
-    ::ndnboost::unit_test::for_each::next(     \
-        NDNBOOST_TEST_FE_CUR_VAR,              \
-        COL,                                \
-        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
-/**/
-
-#define NDNBOOST_FOREACH_NOOP(COL)             \
-    ((void)&(COL))
-
-#define NDNBOOST_TEST_FE_DEREF( COL, RefType ) \
-    ::ndnboost::unit_test::for_each::deref(    \
-        NDNBOOST_TEST_FE_CUR_VAR,              \
-        COL,                                \
-        ::ndnboost::type<RefType >(),          \
-        NDNBOOST_TEST_FE_IS_CONST( COL ) )     \
-/**/
-
-#if NDNBOOST_WORKAROUND( NDNBOOST_MSVC, == 1310 )
-#define NDNBOOST_TEST_LINE_NUM
-#else
-#define NDNBOOST_TEST_LINE_NUM     __LINE__
-#endif
-
-#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 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( (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 )                             \
-/**/
-
-//____________________________________________________________________________//
-
-} // namespace for_each
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 7763fce..0000000
--- a/include/ndnboost/test/utils/iterator/input_iterator_facade.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : Input iterator facade 
-// ***************************************************************************
-
-#ifndef NDNBOOST_INPUT_ITERATOR_FACADE_HPP_071894GER
-#define NDNBOOST_INPUT_ITERATOR_FACADE_HPP_071894GER
-
-// Boost
-#include <ndnboost/iterator/iterator_facade.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************          input_iterator_core_access          ************** //
-// ************************************************************************** //
-
-class input_iterator_core_access
-{
-#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;
-#endif
-
-    template <class Facade>
-    static bool get( Facade& f )
-    {
-        return f.get();
-    }
-
-private:
-    // objects of this class are useless
-    input_iterator_core_access(); //undefined
-};
-
-// ************************************************************************** //
-// **************            input_iterator_facade             ************** //
-// ************************************************************************** //
-
-template<typename Derived,
-         typename ValueType,
-         typename Reference = ValueType const&,
-         typename Traversal = single_pass_traversal_tag>
-class input_iterator_facade : public iterator_facade<Derived,ValueType,Traversal,Reference>
-{
-public:
-    // Constructor
-    input_iterator_facade() : m_valid( false ), m_value() {}
-
-protected: // provide access to the Derived
-    void                init()
-    {
-        m_valid = true;
-        increment();
-    }
-
-    // Data members
-    mutable bool        m_valid;
-    ValueType           m_value;
-
-private:
-    friend class ndnboost::iterator_core_access;
-
-    // iterator facade interface implementation
-    void                increment()
-    {
-        // we make post-end incrementation indefinetly safe 
-        if( m_valid )
-            m_valid = input_iterator_core_access::get( *static_cast<Derived*>(this) );
-    }
-    Reference           dereference() const
-    {
-        return m_value;
-    }
-
-    // iterator facade interface implementation
-    bool                equal( input_iterator_facade const& rhs ) const
-    {
-        // two invalid iterator equals, inequal otherwise
-        return !m_valid && !rhs.m_valid;
-    }
-};
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index efc99fe..0000000
--- a/include/ndnboost/test/utils/iterator/token_iterator.hpp
+++ /dev/null
@@ -1,418 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : token iterator for string and range tokenization
-// ***************************************************************************
-
-#ifndef NDNBOOST_TOKEN_ITERATOR_HPP_071894GER
-#define NDNBOOST_TOKEN_ITERATOR_HPP_071894GER
-
-// Boost
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#include <ndnboost/iterator/iterator_categories.hpp>
-#include <ndnboost/iterator/iterator_traits.hpp>
-
-#include <ndnboost/test/utils/iterator/input_iterator_facade.hpp>
-#include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
-#include <ndnboost/test/utils/named_params.hpp>
-#include <ndnboost/test/utils/foreach.hpp>
-
-// STL
-#include <iosfwd>
-#include <cctype>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std{ using ::ispunct; using ::isspace; }
-#endif
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************               ti_delimeter_type              ************** //
-// ************************************************************************** //
-
-enum ti_delimeter_type { 
-    dt_char,        // character is delimeter if it among explicit list of some characters
-    dt_ispunct,     // character is delimeter if it satisfies ispunct functor
-    dt_isspace,     // character is delimeter if it satisfies isspace functor
-    dt_none         // no character is delimeter
-};
-
-namespace ut_detail {
-
-// ************************************************************************** //
-// **************             default_char_compare             ************** //
-// ************************************************************************** //
-
-template<typename CharT>
-class default_char_compare {
-public:
-    bool operator()( CharT c1, CharT c2 )
-    {
-#ifdef NDNBOOST_CLASSIC_IOSTREAMS
-        return std::string_char_traits<CharT>::eq( c1, c2 );
-#else
-        return std::char_traits<CharT>::eq( c1, c2 );
-#endif
-    }
-};
-
-// ************************************************************************** //
-// **************                 delim_policy                 ************** //
-// ************************************************************************** //
-
-template<typename CharT,typename CharCompare>
-class delim_policy {
-    typedef basic_cstring<CharT const> cstring;
-public:
-    // Constructor
-    explicit    delim_policy( ti_delimeter_type t = dt_char, cstring d = cstring() )
-    : m_type( t )
-    {
-        set_delimeters( d );
-    }
-
-    void        set_delimeters( ti_delimeter_type t ) { m_type = t; }
-    template<typename Src>
-    void        set_delimeters( Src d )
-    {
-        nfp::optionally_assign( m_delimeters, d );
-        
-        if( !m_delimeters.is_empty() )
-            m_type = dt_char;
-    }
-
-    bool        operator()( CharT c )
-    {
-        switch( m_type ) {
-        case dt_char: {
-            NDNBOOST_TEST_FOREACH( CharT, delim, m_delimeters )
-                if( CharCompare()( delim, c ) )
-                    return true;
-
-            return false;
-        }
-        case dt_ispunct:
-            return (std::ispunct)( c ) != 0;
-        case dt_isspace:
-            return (std::isspace)( c ) != 0;
-        case dt_none:
-            return false;
-        }
-
-        return false;
-    }
-
-private:
-    // Data members
-    cstring             m_delimeters;
-    ti_delimeter_type   m_type;
-};
-
-// ************************************************************************** //
-// **************                 token_assigner               ************** //
-// ************************************************************************** //
-
-template<typename TraversalTag>
-struct token_assigner {
-#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; }
-    
-    template<typename Iterator, typename C>
-    static void assign( Iterator b, Iterator e, basic_cstring<C>& t )  { t.assign( b, e ); }
-#else
-    template<typename Iterator, typename Token>
-    static void assign( Iterator b, Iterator e, Token& t )  { t.assign( b, e ); }
-#endif
-    template<typename Iterator, typename Token>
-    static void append_move( Iterator& b, Token& )          { ++b; }
-};
-
-//____________________________________________________________________________//
-
-template<>
-struct token_assigner<single_pass_traversal_tag> {
-    template<typename Iterator, typename Token>
-    static void assign( Iterator b, Iterator e, Token& t )  {}
-
-    template<typename Iterator, typename Token>
-    static void append_move( Iterator& b, Token& t )        { t += *b; ++b; }
-};
-
-} // namespace ut_detail
-
-// ************************************************************************** //
-// **************                  modifiers                   ************** //
-// ************************************************************************** //
-
-namespace {
-nfp::keyword<struct dropped_delimeters_t >           dropped_delimeters;
-nfp::keyword<struct kept_delimeters_t >              kept_delimeters;
-nfp::typed_keyword<bool,struct keep_empty_tokens_t > keep_empty_tokens;
-nfp::typed_keyword<std::size_t,struct max_tokens_t > max_tokens;
-}
-
-// ************************************************************************** //
-// **************             token_iterator_base              ************** //
-// ************************************************************************** //
-
-template<typename Derived,
-         typename CharT,
-         typename CharCompare   = ut_detail::default_char_compare<CharT>,
-         typename ValueType     = basic_cstring<CharT const>,
-         typename Reference     = basic_cstring<CharT const>,
-         typename Traversal     = forward_traversal_tag>
-class token_iterator_base
-: public input_iterator_facade<Derived,ValueType,Reference,Traversal> {
-    typedef basic_cstring<CharT const>                                      cstring;
-    typedef ut_detail::delim_policy<CharT,CharCompare>                      delim_policy;
-    typedef input_iterator_facade<Derived,ValueType,Reference,Traversal>    base;
-
-protected:
-    // Constructor
-    explicit    token_iterator_base()
-    : m_is_dropped( dt_isspace )
-    , m_is_kept( dt_ispunct )
-    , m_keep_empty_tokens( false )
-    , m_tokens_left( static_cast<std::size_t>(-1) )
-    , m_token_produced( false )
-    {
-    }
-
-    template<typename Modifier>
-    void
-    apply_modifier( Modifier const& m )
-    {
-        if( m.has( dropped_delimeters ) )
-            m_is_dropped.set_delimeters( m[dropped_delimeters] );
-
-        if( m.has( kept_delimeters ) )
-            m_is_kept.set_delimeters( m[kept_delimeters] );
-
-        if( m.has( keep_empty_tokens ) )
-            m_keep_empty_tokens = true;
-
-        nfp::optionally_assign( m_tokens_left, m, max_tokens );
-    }
-
-    template<typename Iter> 
-    bool                    get( Iter& begin, Iter end )
-    {
-        typedef ut_detail::token_assigner<NDNBOOST_DEDUCED_TYPENAME iterator_traversal<Iter>::type> Assigner;
-        Iter check_point;
-
-        this->m_value.clear();
-
-        if( !m_keep_empty_tokens ) {
-            while( begin != end && m_is_dropped( *begin ) )
-                ++begin;
-
-            if( begin == end )
-                return false;
-
-            check_point = begin;
-
-            if( m_tokens_left == 1 )
-                while( begin != end )
-                    Assigner::append_move( begin, this->m_value );
-            else if( m_is_kept( *begin ) )
-                Assigner::append_move( begin, this->m_value );
-            else
-                while( begin != end && !m_is_dropped( *begin ) && !m_is_kept( *begin ) )
-                    Assigner::append_move( begin, this->m_value );
-
-            --m_tokens_left;
-        } 
-        else { // m_keep_empty_tokens is true
-            check_point = begin;
-
-            if( begin == end ) {
-                if( m_token_produced ) 
-                    return false;
-
-                m_token_produced = true;
-            }
-            if( m_is_kept( *begin ) ) {
-                if( m_token_produced ) 
-                    Assigner::append_move( begin, this->m_value );
-
-                m_token_produced = !m_token_produced;
-            } 
-            else if( !m_token_produced && m_is_dropped( *begin ) )
-                m_token_produced = true;
-            else {
-                if( m_is_dropped( *begin ) )
-                    check_point = ++begin;
-
-                while( begin != end && !m_is_dropped( *begin ) && !m_is_kept( *begin ) )
-                    Assigner::append_move( begin, this->m_value );
-
-                m_token_produced = true;
-            }
-        }
-
-        Assigner::assign( check_point, begin, this->m_value );
-
-        return true;
-    }
-
-private:
-    // Data members
-    delim_policy            m_is_dropped;
-    delim_policy            m_is_kept;
-    bool                    m_keep_empty_tokens;
-    std::size_t             m_tokens_left;
-    bool                    m_token_produced;
-};
-
-// ************************************************************************** //
-// **************          basic_string_token_iterator         ************** //
-// ************************************************************************** //
-
-template<typename CharT,
-         typename CharCompare = ut_detail::default_char_compare<CharT> >
-class basic_string_token_iterator
-: public token_iterator_base<basic_string_token_iterator<CharT,CharCompare>,CharT,CharCompare> {
-    typedef basic_cstring<CharT const> cstring;
-    typedef token_iterator_base<basic_string_token_iterator<CharT,CharCompare>,CharT,CharCompare> base;
-public:
-    explicit    basic_string_token_iterator() {}
-    explicit    basic_string_token_iterator( cstring src )
-    : m_src( src )
-    {
-        this->init();
-    }
-
-    template<typename Src, typename Modifier>
-    basic_string_token_iterator( Src src, Modifier const& m )
-    : m_src( src )
-    {
-        this->apply_modifier( m );
-
-        this->init();
-    }
-
-private:
-    friend class input_iterator_core_access;
-
-    // input iterator implementation
-    bool        get()
-    {
-        typename cstring::iterator begin = m_src.begin();
-        bool res = base::get( begin, m_src.end() );
-
-        m_src.assign( begin, m_src.end() );
-
-        return res;
-    }
-
-    // Data members
-    cstring     m_src;
-};
-
-typedef basic_string_token_iterator<char>       string_token_iterator;
-typedef basic_string_token_iterator<wchar_t>    wstring_token_iterator;
-
-// ************************************************************************** //
-// **************              range_token_iterator            ************** //
-// ************************************************************************** //
-
-template<typename Iter,
-         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>,
-                             typename iterator_value<Iter>::type,CharCompare,ValueType,Reference> {
-    typedef basic_cstring<typename ValueType::value_type> cstring;
-    typedef token_iterator_base<range_token_iterator<Iter,CharCompare,ValueType,Reference>,
-                                typename iterator_value<Iter>::type,CharCompare,ValueType,Reference> base;
-public:
-    explicit    range_token_iterator() {}
-    explicit    range_token_iterator( Iter begin, Iter end = Iter() )
-    : m_begin( begin ), m_end( end )
-    {
-        this->init();
-    }
-    range_token_iterator( range_token_iterator const& rhs )
-    : base( rhs )
-    {
-        if( this->m_valid ) {
-            m_begin = rhs.m_begin;
-            m_end   = rhs.m_end;
-        }
-    }
-
-    template<typename Modifier>
-    range_token_iterator( Iter begin, Iter end, Modifier const& m )
-    : m_begin( begin ), m_end( end )
-    {
-        this->apply_modifier( m );
-
-        this->init();
-    }
-
-private:
-    friend class input_iterator_core_access;
-
-    // input iterator implementation
-    bool        get()
-    {
-        return base::get( m_begin, m_end );
-    }
-
-    // Data members
-    Iter m_begin;
-    Iter m_end;
-};
-
-// ************************************************************************** //
-// **************            make_range_token_iterator         ************** //
-// ************************************************************************** //
-
-template<typename Iter>
-inline range_token_iterator<Iter>
-make_range_token_iterator( Iter begin, Iter end = Iter() )
-{
-    return range_token_iterator<Iter>( begin, end );
-}
-
-//____________________________________________________________________________//
-
-template<typename Iter,typename Modifier>
-inline range_token_iterator<Iter>
-make_range_token_iterator( Iter begin, Iter end, Modifier const& m )
-{
-    return range_token_iterator<Iter>( begin, end, m );
-}
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TOKEN_ITERATOR_HPP_071894GER
-
diff --git a/include/ndnboost/test/utils/lazy_ostream.hpp b/include/ndnboost/test/utils/lazy_ostream.hpp
deleted file mode 100644
index da3fa22..0000000
--- a/include/ndnboost/test/utils/lazy_ostream.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : contains definition for all test tools in test toolbox
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_LAZY_OSTREAM_HPP_070708GER
-#define NDNBOOST_TEST_LAZY_OSTREAM_HPP_070708GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-
-// STL
-#include <iosfwd>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  lazy_ostream                ************** //
-// ************************************************************************** //
-
-namespace ndnboost {
-
-namespace unit_test {
-
-class lazy_ostream {
-public:
-    static lazy_ostream&    instance()                                              { static lazy_ostream inst; return inst; }
-
-    friend std::ostream&    operator<<( std::ostream& ostr, lazy_ostream const& o ) { return o( ostr ); }
-
-    // access method
-    bool                    empty() const                                           { return m_empty; }
-
-    // actual printing interface; to be accessed only by this class and children
-    virtual std::ostream&   operator()( std::ostream& ostr ) const                  { return ostr; }
-protected:
-    explicit                lazy_ostream( bool empty = true ) : m_empty( empty )    {}
-
-    // protected destructor to make sure right one is called
-#if NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x582))
-public:
-#endif
-    NDNBOOST_TEST_PROTECTED_VIRTUAL ~lazy_ostream()                                    {}
-
-private:
-    // Data members
-    bool                    m_empty;
-};
-
-//____________________________________________________________________________//
-
-template<typename T>
-class lazy_ostream_impl : public lazy_ostream {
-public:
-    lazy_ostream_impl( lazy_ostream const& prev, T value )
-    : lazy_ostream( false )
-    , m_prev( prev )
-    , m_value( value )
-    {}
-private:
-    virtual std::ostream&   operator()( std::ostream& ostr ) const
-    {
-        return m_prev(ostr) << m_value;
-    }
-
-    // Data members
-    lazy_ostream const&     m_prev;
-    T                       m_value;
-};
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline lazy_ostream_impl<T const&>
-operator<<( lazy_ostream const& prev, T const& v )
-{
-    return lazy_ostream_impl<T const&>( prev, v );
-}
-
-//____________________________________________________________________________//
-
-#if NDNBOOST_TEST_USE_STD_LOCALE
-
-template<typename R,typename 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& (NDNBOOST_TEST_CALL_DECL *)(S&)>( prev, man );
-}
-
-//____________________________________________________________________________//
-
-#endif
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index b120e56..0000000
--- a/include/ndnboost/test/utils/named_params.hpp
+++ /dev/null
@@ -1,329 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : facilities for named function parameters support
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_NAMED_PARAM_022505GER
-#define NDNBOOST_TEST_NAMED_PARAM_022505GER
-
-// Boost
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/rtti.hpp>
-#include <ndnboost/test/utils/assign_op.hpp>
-
-#include <ndnboost/type_traits/remove_reference.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace nfp { // named function parameters
-
-// ************************************************************************** //
-// **************              forward declarations            ************** //
-// ************************************************************************** //
-
-template<typename T, typename unique_id,typename RefType>   struct named_parameter;
-template<typename unique_id,bool required>                  struct keyword;
-
-namespace nfp_detail {
-
-template<typename NP1,typename NP2>        struct named_parameter_combine;
-
-// ************************************************************************** //
-// **************          access_to_invalid_parameter         ************** //
-// ************************************************************************** //
-
-struct access_to_invalid_parameter {};
-
-//____________________________________________________________________________//
-
-inline void 
-report_access_to_invalid_parameter()
-{
-    throw access_to_invalid_parameter();
-}
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                       nil                    ************** //
-// ************************************************************************** //
-
-struct nil {
-    template<typename T>
-#if defined(__GNUC__) || defined(__HP_aCC) || defined(__EDG__) || defined(__SUNPRO_CC)
-    operator T() const
-#else
-    operator T const&() const
-#endif
-    { report_access_to_invalid_parameter(); static T* v = 0; return *v; }
-
-    template<typename T>
-    T any_cast() const
-    { report_access_to_invalid_parameter(); static typename remove_reference<T>::type* v = 0; return *v; }
-
-    template<typename Arg1>
-    nil operator()( Arg1 const& )
-    { report_access_to_invalid_parameter(); return nil(); }
-
-    template<typename Arg1,typename Arg2>
-    nil operator()( Arg1 const&, Arg2 const& )
-    { report_access_to_invalid_parameter(); return nil(); }
-
-    template<typename Arg1,typename Arg2,typename Arg3>
-    nil operator()( Arg1 const&, Arg2 const&, Arg3 const& )
-    { report_access_to_invalid_parameter(); return nil(); }
-
-    // Visitation support
-    template<typename Visitor>
-    void            apply_to( Visitor& V ) const {}
-
-    static nil&     inst() { static nil s_inst; return s_inst; }
-private:
-    nil() {}
-};
-    
-// ************************************************************************** //
-// **************              named_parameter_base            ************** //
-// ************************************************************************** //
-
-template<typename Derived>
-struct named_parameter_base {
-    template<typename NP>
-    named_parameter_combine<NP,Derived>
-    operator,( NP const& np ) const { return named_parameter_combine<NP,Derived>( np, *static_cast<Derived const*>(this) ); }
-};
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************             named_parameter_combine          ************** //
-// ************************************************************************** //
-
-template<typename NP, typename Rest = nil>
-struct named_parameter_combine 
-: Rest
-, named_parameter_base<named_parameter_combine<NP,Rest> > {
-    typedef typename NP::ref_type  res_type;
-    typedef named_parameter_combine<NP,Rest> self_type;
-
-    // Constructor
-    named_parameter_combine( NP const& np, Rest const& r )
-    : Rest( r )
-    , m_param( np )
-    {}
-
-    // Access methods
-    res_type    operator[]( keyword<typename NP::id,true> kw ) const    { return m_param[kw]; }
-    res_type    operator[]( keyword<typename NP::id,false> kw ) const   { return m_param[kw]; }
-    using       Rest::operator[];
-
-    bool        has( keyword<typename NP::id,false> kw ) const          { return m_param.has( kw ); }
-    using       Rest::has;
-
-    void        erase( keyword<typename NP::id,false> kw ) const        { m_param.erase( kw ); }
-    using       Rest::erase;
-
-#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 ); }
-#else
-    using       named_parameter_base<named_parameter_combine<NP,Rest> >::operator,;
-#endif
-
-    // Visitation support
-    template<typename Visitor>
-    void            apply_to( Visitor& V ) const
-    {
-        m_param.apply_to( V );
-
-        Rest::apply_to( V );
-    }
-private:
-    // Data members
-    NP          m_param;
-};
-
-} // namespace nfp_detail
-
-// ************************************************************************** //
-// **************                 named_parameter              ************** //
-// ************************************************************************** //
-
-template<typename T, typename unique_id,typename ReferenceType=T&>
-struct named_parameter
-: nfp_detail::named_parameter_base<named_parameter<T, unique_id,ReferenceType> >
-{
-    typedef nfp_detail::nil nil_t;
-    typedef T               data_type;
-    typedef ReferenceType   ref_type;
-    typedef unique_id       id;
-
-    // Constructor
-    explicit        named_parameter( ref_type v ) 
-    : m_value( v )
-    , m_erased( false )
-    {}
-    named_parameter( named_parameter const& np )
-    : m_value( np.m_value )
-    , m_erased( np.m_erased )
-    {}
-
-    // Access methods
-    ref_type        operator[]( keyword<unique_id,true> ) const     { return m_erased ? nil_t::inst().template any_cast<ref_type>() :  m_value; }
-    ref_type        operator[]( keyword<unique_id,false> ) const    { return m_erased ? nil_t::inst().template any_cast<ref_type>() :  m_value; }
-    template<typename UnknownId>
-    nil_t           operator[]( keyword<UnknownId,false> ) const    { return nil_t::inst(); }
-
-    bool            has( keyword<unique_id,false> ) const           { return !m_erased; }
-    template<typename UnknownId>
-    bool            has( keyword<UnknownId,false> ) const           { return false; }
-
-    void            erase( keyword<unique_id,false> ) const         { m_erased = true; }
-    template<typename UnknownId>
-    void            erase( keyword<UnknownId,false> ) const         {}
-
-    // Visitation support
-    template<typename Visitor>
-    void            apply_to( Visitor& V ) const
-    {
-        V.set_parameter( rtti::type_id<unique_id>(), m_value );
-    }
-
-private:
-    // Data members
-    ref_type        m_value;
-    mutable bool    m_erased;
-};
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                    no_params                 ************** //
-// ************************************************************************** //
-
-namespace nfp_detail {
-typedef named_parameter<char, struct no_params_type_t,char> no_params_type;
-} // namespace nfp_detail
-
-namespace {
-nfp_detail::no_params_type no_params( '\0' );
-} // local namespace
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                     keyword                  ************** //
-// ************************************************************************** //
-
-template<typename unique_id, bool required = false>
-struct keyword {
-    typedef unique_id id;
-
-    template<typename T>
-    named_parameter<T const,unique_id>
-    operator=( T const& t ) const       { return named_parameter<T const,unique_id>( t ); }
-
-    template<typename T>
-    named_parameter<T,unique_id>
-    operator=( T& t ) const   { return named_parameter<T,unique_id>( t ); }
-
-    named_parameter<char const*,unique_id,char const*>
-    operator=( char const* t ) const   { return named_parameter<char const*,unique_id,char const*>( t ); }
-};
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                  typed_keyword               ************** //
-// ************************************************************************** //
-
-template<typename T, typename unique_id, bool required = false>
-struct typed_keyword : keyword<unique_id,required> {
-    named_parameter<T const,unique_id>
-    operator=( T const& t ) const       { return named_parameter<T const,unique_id>( t ); }
-
-    named_parameter<T,unique_id>
-    operator=( T& t ) const             { return named_parameter<T,unique_id>( t ); }
-};
-
-//____________________________________________________________________________//
-
-template<typename unique_id>
-struct typed_keyword<bool,unique_id,false>
-: keyword<unique_id,false>
-, named_parameter<bool,unique_id,bool> {
-    typedef unique_id id;
-
-    typed_keyword() : named_parameter<bool,unique_id,bool>( true ) {}
-
-    named_parameter<bool,unique_id,bool>
-    operator!() const           { return named_parameter<bool,unique_id,bool>( false ); }
-};
-
-//____________________________________________________________________________//
-
-// ************************************************************************** //
-// **************                optionally_assign             ************** //
-// ************************************************************************** //
-
-template<typename T>
-inline void
-optionally_assign( T&, nfp_detail::nil )
-{
-    nfp_detail::report_access_to_invalid_parameter();
-}
-
-//____________________________________________________________________________//
-
-template<typename T, typename Source>
-inline void
-#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 )
-#endif
-{
-    using namespace unit_test;
-
-    assign_op( target, src, static_cast<int>(0) );
-}
-
-//____________________________________________________________________________//
-
-template<typename T, typename Params, typename Keyword>
-inline void
-optionally_assign( T& target, Params const& p, Keyword k )
-{
-    if( p.has(k) )
-        optionally_assign( target, p[k] );
-}
-
-//____________________________________________________________________________//
-
-} // namespace nfp
-
-} // namespace ndnboost
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_NAMED_PARAM_022505GER
-
diff --git a/include/ndnboost/test/utils/rtti.hpp b/include/ndnboost/test/utils/rtti.hpp
deleted file mode 100644
index e547ad2..0000000
--- a/include/ndnboost/test/utils/rtti.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : simple facilities for accessing type information at runtime
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_RTTI_HPP_062604GER
-#define NDNBOOST_TEST_RTTI_HPP_062604GER
-
-#include <cstddef>
-
-namespace ndnboost {
-
-namespace rtti {
-
-// ************************************************************************** //
-// **************                   rtti::type_id              ************** //
-// ************************************************************************** //
-
-typedef std::ptrdiff_t id_t;
-
-namespace rtti_detail {
-
-template<typename T>
-struct rttid_holder {
-    static id_t id() { return reinterpret_cast<id_t>( &inst() ); }
-
-private:
-    struct rttid {};
-
-    static rttid const& inst() { static rttid s_inst;  return s_inst; }
-};
-
-} // namespace rtti_detail
-
-//____________________________________________________________________________//
-
-template<typename T>   
-inline id_t
-type_id()
-{
-    return rtti_detail::rttid_holder<T>::id();
-}
-
-//____________________________________________________________________________//
-
-#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>() )
-
-//____________________________________________________________________________//
-
-} // namespace rtti
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_RT_RTTI_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/argument.hpp b/include/ndnboost/test/utils/runtime/argument.hpp
deleted file mode 100644
index fa2b29d..0000000
--- a/include/ndnboost/test/utils/runtime/argument.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : model of actual argument (both typed and abstract interface)
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_ARGUMENT_HPP_062604GER
-#define NDNBOOST_RT_ARGUMENT_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-#include <ndnboost/test/utils/runtime/fwd.hpp>
-#include <ndnboost/test/utils/runtime/validation.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/class_properties.hpp>
-#include <ndnboost/test/utils/rtti.hpp>
-
-// STL
-#include <cassert>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-// ************************************************************************** //
-// **************              runtime::argument               ************** //
-// ************************************************************************** //
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable:4244)
-#endif
-
-class argument {
-public:
-    // Constructor
-    argument( parameter const& p, rtti::id_t value_type )
-    : p_formal_parameter( p )
-    , p_value_type( value_type )
-    {}
-
-    // Destructor
-    virtual     ~argument()  {}
-
-    // Public properties
-    unit_test::readonly_property<parameter const&> p_formal_parameter;
-    unit_test::readonly_property<rtti::id_t>       p_value_type;
-};
-
-// ************************************************************************** //
-// **************             runtime::typed_argument          ************** //
-// ************************************************************************** //
-
-template<typename T>
-class typed_argument : public argument {
-public:
-    // Constructor
-    explicit typed_argument( parameter const& p )
-    : argument( p, rtti::type_id<T>() )
-    {}
-    typed_argument( parameter const& p, T const& t )
-    : argument( p, rtti::type_id<T>() )
-    , p_value( t )
-    {}
-
-    unit_test::readwrite_property<T>    p_value;
-};
-
-// ************************************************************************** //
-// **************               runtime::arg_value             ************** //
-// ************************************************************************** //
-
-template<typename T>
-inline T const&
-arg_value( argument const& arg_ )
-{
-    assert( arg_.p_value_type == rtti::type_id<T>() ); // detect logic error
-
-    return static_cast<typed_argument<T> const&>( arg_ ).p_value.value;
-}
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline T&
-arg_value( argument& arg_ )
-{
-    assert( arg_.p_value_type == rtti::type_id<T>() ); // detect logic error
-
-    return static_cast<typed_argument<T>&>( arg_ ).p_value.value;
-}
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-//____________________________________________________________________________//
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 90f1df4..0000000
--- a/include/ndnboost/test/utils/runtime/cla/argument_factory.hpp
+++ /dev/null
@@ -1,218 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : generic typed_argument_factory implementation
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/fwd.hpp>
-#include <ndnboost/test/utils/runtime/validation.hpp>
-#include <ndnboost/test/utils/runtime/argument.hpp>
-#include <ndnboost/test/utils/runtime/trace.hpp>
-#include <ndnboost/test/utils/runtime/interpret_argument_value.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/fwd.hpp>
-#include <ndnboost/test/utils/runtime/cla/value_generator.hpp>
-#include <ndnboost/test/utils/runtime/cla/value_handler.hpp>
-#include <ndnboost/test/utils/runtime/cla/validation.hpp>
-#include <ndnboost/test/utils/runtime/cla/argv_traverser.hpp>
-#include <ndnboost/test/utils/runtime/cla/detail/argument_value_usage.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/iface/argument_factory.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/callback.hpp>
-
-// Boost
-#include <ndnboost/optional.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************           default_value_interpreter          ************** //
-// ************************************************************************** //
-
-namespace rt_cla_detail {
-
-struct default_value_interpreter {
-    template<typename T>
-    void operator()( argv_traverser& tr, ndnboost::optional<T>& value )
-    {
-        if( interpret_argument_value( tr.token(), value, 0 ) )
-            tr.next_token();
-    }
-};
-
-} // namespace rt_cla_detail
-
-// ************************************************************************** //
-// **************             typed_argument_factory           ************** //
-// ************************************************************************** //
-
-template<typename T>
-struct typed_argument_factory : public argument_factory {
-    // Constructor
-    typed_argument_factory()
-    : m_value_interpreter( rt_cla_detail::default_value_interpreter() )
-    {}
-    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~typed_argument_factory() {}
-
-    // properties modification
-    template<typename Modifier>
-    void                accept_modifier( Modifier const& m )
-    {
-        optionally_assign( m_value_handler, m, handler );
-        optionally_assign( m_value_interpreter, m, interpreter );
-
-        if( m.has( default_value ) ) {
-            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 ) ) {
-            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 ) ) {
-            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] );
-        }
-    }
-
-    // Argument factory implementation
-    virtual argument_ptr produce_using( parameter& p, argv_traverser& tr );
-    virtual argument_ptr produce_using( parameter& p, parser const& );
-    virtual void         argument_usage_info( format_stream& fs );
-
-// !! private?
-    // Data members
-    unit_test::callback2<parameter const&,T&>                   m_value_handler;
-    unit_test::callback2<parser const&,ndnboost::optional<T>&>     m_value_generator;
-    unit_test::callback2<argv_traverser&,ndnboost::optional<T>&>   m_value_interpreter;
-};
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline argument_ptr
-typed_argument_factory<T>::produce_using( parameter& p, argv_traverser& tr )
-{
-    ndnboost::optional<T> value;
-
-    try {
-        m_value_interpreter( tr, value );
-    }
-    catch( ... ) { // !! should we do that?
-        NDNBOOST_RT_PARAM_TRACE( "Fail to parse argument value" );
-
-        if( !p.p_optional_value )
-            throw;
-    }
-
-    argument_ptr actual_arg = p.actual_argument();
-
-    NDNBOOST_RT_CLA_VALIDATE_INPUT( !!value || p.p_optional_value, tr, 
-        NDNBOOST_RT_PARAM_LITERAL( "Argument value missing for 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 );
-
-    if( !p.p_multiplicable )
-        actual_arg.reset( p.p_optional_value && (rtti::type_id<T>() != rtti::type_id<bool>())
-            ? static_cast<argument*>(new typed_argument<ndnboost::optional<T> >( p, value ))
-            : static_cast<argument*>(new typed_argument<T>( p, *value )) );
-    else {
-        typedef std::list<ndnboost::optional<T> > optional_list;
-
-        if( !actual_arg )
-            actual_arg.reset( p.p_optional_value 
-                ? static_cast<argument*>(new typed_argument<optional_list>( p ))
-                : static_cast<argument*>(new typed_argument<std::list<T> >( p )) );
-
-        if( p.p_optional_value ) {
-            optional_list& values = arg_value<optional_list>( *actual_arg );
-
-            values.push_back( value );
-        }
-        else {
-            std::list<T>& values = arg_value<std::list<T> >( *actual_arg );
-            
-            values.push_back( *value );
-        }
-    }
-
-    return actual_arg;
-}
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline argument_ptr 
-typed_argument_factory<T>::produce_using( parameter& p, parser const& pa )
-{
-    argument_ptr actual_arg;
-
-    if( !m_value_generator )
-        return actual_arg;
-
-    ndnboost::optional<T> value;
-    m_value_generator( pa, value );
-
-    if( !value )
-        return actual_arg;
-
-    if( !!m_value_handler )
-        m_value_handler( p, *value );
-
-    actual_arg.reset( new typed_argument<T>( p, *value ) );
-
-    return actual_arg;
-}
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline void
-typed_argument_factory<T>::argument_usage_info( format_stream& fs )
-{
-    rt_cla_detail::argument_value_usage( fs, 0, reinterpret_cast<T*>(0) );
-}
-
-//____________________________________________________________________________//
-
-} // namespace ndnboost
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace cla
-
-#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
deleted file mode 100644
index 1e1f7bc..0000000
--- a/include/ndnboost/test/utils/runtime/cla/argv_traverser.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : defines facility to hide input traversing details
-// ***************************************************************************
-
-#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>
-
-// Boost.Test
-#include <ndnboost/test/utils/class_properties.hpp>
-
-// Boost
-#include <ndnboost/noncopyable.hpp>
-#include <ndnboost/shared_array.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************          runtime::cla::argv_traverser        ************** //
-// ************************************************************************** //
-
-class argv_traverser : noncopyable {
-    class parser;
-public:
-    // Constructor
-    argv_traverser();
-
-    // public_properties
-    unit_test::readwrite_property<bool>         p_ignore_mismatch;
-    unit_test::readwrite_property<char_type>    p_separator;
-
-    // argc+argv <-> internal buffer exchange
-    void            init( int argc, char_type** argv );
-    void            remainder( int& argc, char_type** argv );
-
-    // token based parsing
-    cstring         token() const;
-    void            next_token();
-
-    // whole input parsing
-    cstring         input() const;
-    void            trim( std::size_t size );
-    bool            match_front( cstring );
-    bool            match_front( char_type c );
-    bool            eoi() const;
-
-    // transaction logic support
-    void            commit();
-    void            rollback();
-
-    // current position access; used to save some reference points in input
-    std::size_t     input_pos() const;
-
-    // returns true if mismatch detected during input parsing handled successfully
-    bool            handle_mismatch();
-
-private:
-    // Data members
-    dstring                 m_buffer;
-    cstring                 m_work_buffer;
-
-    cstring                 m_token;
-    cstring::iterator       m_commited_end;
-
-    shared_array<char_type> m_remainder;
-    std::size_t             m_remainder_size;
-};
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#ifndef NDNBOOST_RT_PARAM_OFFLINE
-
-#  define NDNBOOST_RT_PARAM_INLINE inline
-#  include <ndnboost/test/utils/runtime/cla/argv_traverser.ipp>
-
-#endif
-
-#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
deleted file mode 100644
index 99c047d..0000000
--- a/include/ndnboost/test/utils/runtime/cla/argv_traverser.ipp
+++ /dev/null
@@ -1,209 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : implements facility to hide input traversing details
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/argv_traverser.hpp>
-
-// STL
-#include <memory>
-#include <cstring>
-
-#ifdef NDNBOOST_NO_STDC_NAMESPACE
-namespace std { using ::memcpy; }
-#endif
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************          runtime::cla::argv_traverser        ************** //
-// ************************************************************************** //
-
-NDNBOOST_RT_PARAM_INLINE
-argv_traverser::argv_traverser()
-: p_ignore_mismatch( false ), p_separator( NDNBOOST_RT_PARAM_LITERAL( ' ' ) )
-{
-}
-
-//____________________________________________________________________________//
-
-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 += NDNBOOST_RT_PARAM_LITERAL( ' ' );
-    }
-
-    m_remainder.reset( new char_type[m_buffer.size()+1] );
-    m_remainder_size    = 0;
-    m_work_buffer       = m_buffer;
-    m_commited_end      = m_work_buffer.begin();
-
-    NDNBOOST_RT_PARAM_TRACE( "Input buffer: " << m_buffer );
-
-    next_token();
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-argv_traverser::remainder( int& argc, char_type** argv )
-{
-    argc = 1;
-    std::size_t pos = 0;
-    while(pos < m_remainder_size ) {
-        argv[argc++] = m_remainder.get() + pos;
-
-        pos = std::find( m_remainder.get() + pos, m_remainder.get() + m_remainder_size, 
-                         NDNBOOST_RT_PARAM_LITERAL( ' ' ) ) - m_remainder.get();
-        m_remainder[pos++] = NDNBOOST_RT_PARAM_LITERAL( '\0' );
-    }
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE cstring
-argv_traverser::token() const
-{
-    return m_token;
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-argv_traverser::next_token()
-{
-    if( m_work_buffer.is_empty() )
-        return;
-
-    m_work_buffer.trim_left( m_token.size() ); // skip remainder of current token
-
-    if( m_work_buffer.size() != m_buffer.size() ) // !! is there a better way to identify first token
-        m_work_buffer.trim_left( 1 ); // skip separator if not first token;
-
-    m_token.assign( m_work_buffer.begin(),
-                    std::find( m_work_buffer.begin(), m_work_buffer.end(), p_separator ) );
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE cstring
-argv_traverser::input() const
-{
-    return m_work_buffer;
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-argv_traverser::trim( std::size_t size )
-{
-    m_work_buffer.trim_left( size );
-
-    if( size <= m_token.size() )
-        m_token.trim_left( size );
-    else {
-        m_token.assign( m_work_buffer.begin(),
-                        std::find( m_work_buffer.begin(), m_work_buffer.end(), p_separator ) );
-    }
-}
-
-//____________________________________________________________________________//
-
-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;
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE bool
-argv_traverser::match_front( char_type c )
-{
-    return first_char( m_work_buffer ) == c;
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE bool
-argv_traverser::eoi() const
-{
-    return m_work_buffer.is_empty();
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-argv_traverser::commit()
-{
-    m_commited_end = m_work_buffer.begin();
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-argv_traverser::rollback()
-{
-    m_work_buffer.assign( m_commited_end, m_work_buffer.end() );
-    m_token.assign( m_work_buffer.begin(),
-                    std::find( m_work_buffer.begin(), m_work_buffer.end(), p_separator ) );
-
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE std::size_t
-argv_traverser::input_pos() const
-{
-    return m_work_buffer.begin() - m_commited_end;
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE bool
-argv_traverser::handle_mismatch()
-{
-    if( !p_ignore_mismatch )
-        return false;
-
-    std::memcpy( m_remainder.get() + m_remainder_size, token().begin(), token().size() );
-    m_remainder_size += token().size();
-    m_remainder[m_remainder_size++] = p_separator;
-
-    next_token();
-    commit();
-
-    return true;
-}
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 79ec2b8..0000000
--- a/include/ndnboost/test/utils/runtime/cla/basic_parameter.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : generic custom parameter generator
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/typed_parameter.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/rtti.hpp>
-
-// Boost
-#include <ndnboost/utility/base_from_member.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************         runtime::cla::basic_parameter        ************** //
-// ************************************************************************** //
-
-template<typename T, typename IdPolicy>
-class basic_parameter : private base_from_member<IdPolicy>, public typed_parameter<T> {
-public:
-    // Constructors
-    explicit    basic_parameter( cstring n ) 
-    : base_from_member<IdPolicy>()
-    , typed_parameter<T>( base_from_member<IdPolicy>::member )
-    {
-        this->accept_modifier( name = n );
-    }
-
-    // parameter properties modification
-    template<typename Modifier>
-    void        accept_modifier( Modifier const& m )
-    {
-        typed_parameter<T>::accept_modifier( m );
-
-        base_from_member<IdPolicy>::member.accept_modifier( m );
-    }
-};
-
-//____________________________________________________________________________//
-
-#define NDNBOOST_RT_CLA_NAMED_PARAM_GENERATORS( param_type )                                       \
-template<typename T>                                                                            \
-inline shared_ptr<param_type ## _t<T> >                                                         \
-param_type( cstring name = cstring() )                                                          \
-{                                                                                               \
-    return shared_ptr<param_type ## _t<T> >( new param_type ## _t<T>( name ) );                 \
-}                                                                                               \
-                                                                                                \
-inline shared_ptr<param_type ## _t<cstring> >                                                   \
-param_type( cstring name = cstring() )                                                          \
-{                                                                                               \
-    return shared_ptr<param_type ## _t<cstring> >( new param_type ## _t<cstring>( name ) );     \
-}                                                                                               \
-/**/
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index ff9abca..0000000
--- a/include/ndnboost/test/utils/runtime/cla/char_parameter.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : defines model of parameter with single char name
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/runtime/validation.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/basic_parameter.hpp>
-#include <ndnboost/test/utils/runtime/cla/id_policy.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************               char_name_policy               ************** //
-// ************************************************************************** //
-
-class char_name_policy : public basic_naming_policy {
-public:
-    // Constructor
-    char_name_policy();
-    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~char_name_policy() {}
-
-    // policy interface
-    virtual bool    conflict_with( identification_policy const& ) const;
-
-    // Accept modifier
-    template<typename Modifier>
-    void            accept_modifier( Modifier const& m )
-    {
-        basic_naming_policy::accept_modifier( m );
-
-        NDNBOOST_RT_PARAM_VALIDATE_LOGIC( p_name->size() <= 1, "Invalid parameter name "  << p_name );
-    }
-};
-
-// ************************************************************************** //
-// **************          runtime::cla::char_parameter        ************** //
-// ************************************************************************** //
-
-template<typename T>
-class char_parameter_t : public basic_parameter<T,char_name_policy> {
-    typedef basic_parameter<T,char_name_policy> base;
-public:
-    // Constructors
-    explicit    char_parameter_t( char_type name ) : base( cstring( &name, 1 ) ) {}
-};
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline shared_ptr<char_parameter_t<T> >
-char_parameter( char_type name )
-{
-    return shared_ptr<char_parameter_t<T> >( new char_parameter_t<T>( name ) );
-}
-
-//____________________________________________________________________________//
-
-inline shared_ptr<char_parameter_t<cstring> >
-char_parameter( char_type name )
-{
-    return shared_ptr<char_parameter_t<cstring> >( new char_parameter_t<cstring>( name ) );
-}
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#ifndef NDNBOOST_RT_PARAM_OFFLINE
-
-#  define NDNBOOST_RT_PARAM_INLINE inline
-#  include <ndnboost/test/utils/runtime/cla/char_parameter.ipp>
-
-#endif
-
-#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
deleted file mode 100644
index 3b1db63..0000000
--- a/include/ndnboost/test/utils/runtime/cla/char_parameter.ipp
+++ /dev/null
@@ -1,57 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : implements model of parameter with single char name
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/char_parameter.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************               char_name_policy               ************** //
-// ************************************************************************** //
-
-NDNBOOST_RT_PARAM_INLINE 
-char_name_policy::char_name_policy()
-: basic_naming_policy( rtti::type_id<char_name_policy>() )
-{
-    assign_op( p_prefix.value, NDNBOOST_RT_PARAM_CSTRING_LITERAL( "-" ), 0 );
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE bool
-char_name_policy::conflict_with( identification_policy const& id ) const
-{
-    return id.p_type_id == p_type_id && 
-           p_name == static_cast<char_name_policy const&>( id ).p_name;
-}
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index a8050b2..0000000
--- a/include/ndnboost/test/utils/runtime/cla/detail/argument_value_usage.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Permission to copy, use, modify, sell and distribute this software
-//  is granted provided this copyright notice appears in all copies.
-//  This software is provided "as is" without express or implied warranty,
-//  and with no claim as to its suitability for any purpose.
-  
-//  See http://www.boost.org for updates, documentation, and revision history.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : argument usage printing helpers
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/runtime/cla/argv_traverser.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-#include <ndnboost/test/utils/basic_cstring/compare.hpp>
-
-#include <ndnboost/lexical_cast.hpp>
-
-// STL
-// !! can we eliminate these includes?
-#include <list>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-namespace rt_cla_detail {
-
-// ************************************************************************** //
-// **************             argument_value_usage             ************** //
-// ************************************************************************** //
-
-// generic case
-template<typename T>
-inline void
-argument_value_usage( format_stream& fs, long, T* = 0 )
-{
-    fs << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "<value>" );
-}
-
-//____________________________________________________________________________//
-
-// specialization for list of values
-template<typename T>
-inline void
-argument_value_usage( format_stream& fs, int, std::list<T>* = 0 )
-{
-    fs << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "(<value1>, ..., <valueN>)" );
-}
-
-//____________________________________________________________________________//
-
-// specialization for type bool
-inline void
-argument_value_usage( format_stream& fs,  int, bool* = 0 )
-{
-    fs << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "yes|y|no|n" );
-}
-
-//____________________________________________________________________________//
-
-} // namespace rt_cla_detail
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 4c8c00d..0000000
--- a/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : defines model of generic parameter with dual naming
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/named_parameter.hpp>
-#include <ndnboost/test/utils/runtime/cla/char_parameter.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************               dual_name_policy               ************** //
-// ************************************************************************** //
-
-class dual_name_policy : public dual_id_policy<dual_name_policy,string_name_policy,char_name_policy> {
-public:
-    dual_name_policy();
-
-    // Accept modifier
-    template<typename Modifier>
-    void    accept_modifier( Modifier const& m )
-    {
-        if( m.has( prefix ) ) {
-            set_prefix( m[prefix] );
-            m.erase( prefix );
-        }
-
-        if( m.has( name ) ) {
-            set_name( m[name] );
-            m.erase( name );
-        }
-
-        if( m.has( separator ) ) {
-            set_separator( m[separator] );
-            m.erase( separator );
-        }
-
-        dual_id_policy<dual_name_policy,string_name_policy,char_name_policy>::accept_modifier( m );
-    }
-private:
-    void    set_prefix( cstring );
-    void    set_name( cstring );
-    void    set_separator( cstring );
-};
-
-// ************************************************************************** //
-// **************       runtime::cla::dual_name_parameter      ************** //
-// ************************************************************************** //
-
-template<typename T>
-class dual_name_parameter_t : public basic_parameter<T,dual_name_policy> {
-    typedef basic_parameter<T,dual_name_policy> base;
-public:
-    // Constructors
-    explicit    dual_name_parameter_t( cstring name ) : base( name ) {}
-};
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_CLA_NAMED_PARAM_GENERATORS( dual_name_parameter )
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#ifndef NDNBOOST_RT_PARAM_OFFLINE
-
-#  define NDNBOOST_RT_PARAM_INLINE inline
-#  include <ndnboost/test/utils/runtime/cla/dual_name_parameter.ipp>
-
-#endif
-
-#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
deleted file mode 100644
index 9caf386..0000000
--- a/include/ndnboost/test/utils/runtime/cla/dual_name_parameter.ipp
+++ /dev/null
@@ -1,90 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : implements model of generic parameter with dual naming
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/runtime/validation.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/dual_name_parameter.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************               dual_name_policy               ************** //
-// ************************************************************************** //
-
-NDNBOOST_RT_PARAM_INLINE 
-dual_name_policy::dual_name_policy()
-{
-    m_primary.accept_modifier( prefix = NDNBOOST_RT_PARAM_CSTRING_LITERAL( "--" ) );
-    m_secondary.accept_modifier( prefix = NDNBOOST_RT_PARAM_CSTRING_LITERAL( "-" ) );
-}
-
-//____________________________________________________________________________//
-
-namespace {
-
-template<typename K>
-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(), NDNBOOST_RT_PARAM_LITERAL( '|' ) );
-    
-    if( sep != src.begin() )
-        snp.accept_modifier( k = cstring( src.begin(), sep ) );
-
-    if( sep != src.end() )
-        cnp.accept_modifier( k = cstring( sep+1, src.end() ) );
-}
-
-} // local namespace
-
-NDNBOOST_RT_PARAM_INLINE void
-dual_name_policy::set_prefix( cstring src )
-{
-    split( m_primary, m_secondary, src, prefix );
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-dual_name_policy::set_name( cstring src )
-{
-    split( m_primary, m_secondary, src, name );
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-dual_name_policy::set_separator( cstring src )
-{
-    split( m_primary, m_secondary, src, separator );
-}
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index d221808..0000000
--- a/include/ndnboost/test/utils/runtime/cla/fwd.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : cla subsystem forward declarations
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_CLA_FWD_HPP_062604GER
-#define NDNBOOST_RT_CLA_FWD_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-
-// Boost
-#include <ndnboost/shared_ptr.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-class parser;
-class parameter;
-typedef shared_ptr<parameter> parameter_ptr;
-class naming_policy;
-typedef shared_ptr<naming_policy> naming_policy_ptr;
-class argv_traverser;
-
-namespace rt_cla_detail {
-
-template<typename T> class const_generator;
-template<typename T> class ref_generator;
-
-template<typename T> class assigner;
-
-class named_parameter_base;
-class positional_parameter_base;
-
-} // namespace rt_cla_detail
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 2f587b4..0000000
--- a/include/ndnboost/test/utils/runtime/cla/id_policy.hpp
+++ /dev/null
@@ -1,145 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : some generic identification policies definition
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/fwd.hpp>
-#include <ndnboost/test/utils/runtime/cla/modifier.hpp>
-#include <ndnboost/test/utils/runtime/cla/argv_traverser.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/iface/id_policy.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/class_properties.hpp>
-#include <ndnboost/test/utils/rtti.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************               naming_policy_base             ************** //
-// ************************************************************************** //
-// model: <prefix> <name> <separtor>
-
-class basic_naming_policy : public identification_policy {
-public:
-    // Public properties
-    unit_test::readwrite_property<dstring>    p_prefix;
-    unit_test::readwrite_property<dstring>    p_name;
-    unit_test::readwrite_property<dstring>    p_separator;
-
-    // Policy interface
-    virtual bool    responds_to( cstring name ) const       { return p_name == name; }
-    virtual cstring id_2_report() const                     { return p_name.get(); }
-    virtual void    usage_info( format_stream& fs ) const;
-    virtual bool    matching( parameter const& p, argv_traverser& tr, bool primary ) const;
-
-    // Accept modifier
-    template<typename Modifier>
-    void            accept_modifier( Modifier const& m )
-    {
-        nfp::optionally_assign( p_prefix.value,    m, prefix );
-        nfp::optionally_assign( p_name.value,      m, name );
-        nfp::optionally_assign( p_separator.value, m, separator );
-    }
-
-protected:
-    explicit basic_naming_policy( rtti::id_t dyn_type )
-    : identification_policy( dyn_type )
-    {}
-    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~basic_naming_policy() {}
-
-    // Naming policy interface
-    virtual bool    match_prefix( argv_traverser& tr ) const;
-    virtual bool    match_name( argv_traverser& tr ) const;
-    virtual bool    match_separator( argv_traverser& tr, bool optional_value ) const;
-};
-
-// ************************************************************************** //
-// **************                 dual_id_policy               ************** //
-// ************************************************************************** //
-
-template<typename MostDerived,typename PrimaryId,typename SecondId>
-class dual_id_policy : public identification_policy {
-public:
-    // Constructor
-    dual_id_policy()
-    : identification_policy( rtti::type_id<MostDerived>() )
-    , m_primary()
-    , m_secondary()
-    {}
-
-    // Policy interface
-    virtual bool    responds_to( cstring name ) const
-    {
-        return m_primary.responds_to( name ) || m_secondary.responds_to( name );
-    }
-    virtual bool    conflict_with( identification_policy const& id_p ) const
-    {
-        return id_p.conflict_with( m_primary ) || id_p.conflict_with( m_secondary );
-    }
-    virtual cstring id_2_report() const
-    {
-        return m_primary.id_2_report();
-    }
-    virtual void    usage_info( format_stream& fs ) const
-    {
-        fs << NDNBOOST_RT_PARAM_LITERAL( '{' );
-        m_primary.usage_info( fs );
-        fs << NDNBOOST_RT_PARAM_LITERAL( '|' );
-        m_secondary.usage_info( fs );
-        fs << NDNBOOST_RT_PARAM_LITERAL( '}' );
-    }
-    virtual bool    matching( parameter const& p, argv_traverser& tr, bool primary ) const
-    {
-        return m_primary.matching( p, tr, primary ) || m_secondary.matching( p, tr, primary );
-    }
-
-    // Accept modifier
-    template<typename Modifier>
-    void    accept_modifier( Modifier const& m )
-    {
-        m_primary.accept_modifier( m );
-        m_secondary.accept_modifier( m );
-    }
-
-protected:
-    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~dual_id_policy() {}
-
-    // Data members
-    PrimaryId       m_primary;
-    SecondId        m_secondary;
-};
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#ifndef NDNBOOST_RT_PARAM_OFFLINE
-
-#  define NDNBOOST_RT_PARAM_INLINE inline
-#  include <ndnboost/test/utils/runtime/cla/id_policy.ipp>
-
-#endif
-
-#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
deleted file mode 100644
index 49a462d..0000000
--- a/include/ndnboost/test/utils/runtime/cla/id_policy.ipp
+++ /dev/null
@@ -1,118 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : some generic identification policies implementation
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/id_policy.hpp>
-#include <ndnboost/test/utils/runtime/cla/parameter.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************              basic_naming_policy             ************** //
-// ************************************************************************** //
-
-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 << NDNBOOST_RT_PARAM_LITERAL( ' ' );
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE bool
-basic_naming_policy::match_prefix( argv_traverser& tr ) const
-{
-    if( !tr.match_front( p_prefix.get() ) )
-        return false;
-
-    tr.trim( p_prefix->size() );
-    return true;
-}
-
-//____________________________________________________________________________//
-    
-NDNBOOST_RT_PARAM_INLINE bool
-basic_naming_policy::match_name( argv_traverser& tr ) const
-{
-    if( !tr.match_front( p_name.get() ) )
-        return false;
-
-    tr.trim( p_name->size() );
-    return true;
-}
-
-//____________________________________________________________________________//
-    
-NDNBOOST_RT_PARAM_INLINE bool
-basic_naming_policy::match_separator( argv_traverser& tr, bool optional_value ) const
-{
-    if( p_separator->empty() ) {
-        if( !tr.token().is_empty() )
-            return false;
-
-        tr.trim( 1 );
-    }
-    else {
-        if( !tr.match_front( p_separator.get() ) ) {
-            // if parameter has optional value separator is optional as well
-            if( optional_value && ( tr.eoi() || tr.match_front( ' ' ) ) ) {
-                return true;
-            }
-            return false;
-        }
-
-        tr.trim( p_separator->size() );
-    }
-
-    return true;
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE bool
-basic_naming_policy::matching( parameter const& p, argv_traverser& tr, bool ) const
-{
-    if( !match_prefix( tr ) )
-        return false;
-        
-    if( !match_name( tr ) )
-        return false;
-
-    if( !match_separator( tr, p.p_optional_value ) )
-        return false;
-
-    return true;
-}
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 0c90bb9..0000000
--- a/include/ndnboost/test/utils/runtime/cla/iface/argument_factory.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : defines interface for argument_factory
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/runtime/fwd.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/fwd.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************                argument_factory              ************** //
-// ************************************************************************** //
-// another name can be argument production policy
-
-class argument_factory {
-public:
-    // Argument factory interface
-    virtual argument_ptr produce_using( parameter& p, argv_traverser& tr ) = 0;  /// produce argument based on input
-    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:
-    NDNBOOST_TEST_PROTECTED_VIRTUAL ~argument_factory() {}
-};
-
-} // namespace ndnboost
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace cla
-
-#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
deleted file mode 100644
index 06a0d0d..0000000
--- a/include/ndnboost/test/utils/runtime/cla/iface/id_policy.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : defines interface for identification_policy
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/fwd.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/class_properties.hpp>
-#include <ndnboost/test/utils/rtti.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************             identification_policy            ************** //
-// ************************************************************************** //
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable:4244)
-#endif
-
-class identification_policy {
-public:
-    // Public properties
-    unit_test::readwrite_property<rtti::id_t>    p_type_id;
-
-    // Policy interface
-    virtual bool    responds_to( cstring name ) const = 0;
-    virtual cstring id_2_report() const = 0;
-    virtual void    usage_info( format_stream& fs ) const = 0;
-    virtual bool    matching( parameter const& p, argv_traverser& tr, bool primary ) const = 0;
-
-    virtual bool    conflict_with( identification_policy const& ) const = 0;
-
-protected:
-    // Constructor
-    explicit        identification_policy( rtti::id_t dyn_type )
-    : p_type_id( dyn_type )
-    {}
-    NDNBOOST_TEST_PROTECTED_VIRTUAL ~identification_policy() {}
-};
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index d92e400..0000000
--- a/include/ndnboost/test/utils/runtime/cla/modifier.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : parameter modifiers
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_CLA_MODIFIER_HPP_062604GER
-#define NDNBOOST_RT_CLA_MODIFIER_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/named_params.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************         environment variable modifiers       ************** //
-// ************************************************************************** //
-
-namespace {
-
-nfp::typed_keyword<bool,struct optional_t>              optional_m;
-nfp::named_parameter<bool,optional_t,bool>              optional( true );
-nfp::typed_keyword<bool,struct required_t>              required_m;
-nfp::named_parameter<bool,required_t,bool>              required( true );
-nfp::typed_keyword<bool,struct multiplicable_t>         multiplicable_m;
-nfp::named_parameter<bool,multiplicable_t,bool>         multiplicable( true );
-nfp::typed_keyword<bool,struct guess_name_t>            guess_name_m;
-nfp::named_parameter<bool,guess_name_t,bool>            guess_name( true );
-nfp::typed_keyword<bool,struct ignore_mismatch_t>       ignore_mismatch_m;
-nfp::named_parameter<bool,ignore_mismatch_t,bool>       ignore_mismatch( true );
-nfp::typed_keyword<bool,struct optional_value_t>        optional_value_m;
-nfp::named_parameter<bool,optional_value_t,bool>        optional_value( true );
-
-nfp::typed_keyword<char_type,struct input_separator_t>  input_separator;
-nfp::typed_keyword<cstring,struct prefix_t>             prefix;
-nfp::typed_keyword<cstring,struct name_t>               name;
-nfp::typed_keyword<cstring,struct separator_t>          separator;
-nfp::typed_keyword<cstring,struct description_t>        description;
-nfp::typed_keyword<cstring,struct refer_to_t>           default_refer_to;
-
-nfp::keyword<struct default_value_t>                    default_value;
-nfp::keyword<struct handler_t>                          handler;
-nfp::keyword<struct interpreter_t>                      interpreter;
-nfp::keyword<struct assign_to_t>                        assign_to;
-
-} // local namespace
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 0160f79..0000000
--- a/include/ndnboost/test/utils/runtime/cla/named_parameter.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : defines model of named parameter
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/basic_parameter.hpp>
-#include <ndnboost/test/utils/runtime/cla/id_policy.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************              string_name_policy              ************** //
-// ************************************************************************** //
-
-class string_name_policy : public basic_naming_policy {
-public:
-    // Constructor
-    string_name_policy();
-    NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL ~string_name_policy() {}
-
-    // policy interface
-    virtual bool    responds_to( cstring name ) const;
-    virtual bool    conflict_with( identification_policy const& ) const;
-
-    // Accept modifier
-    template<typename Modifier>
-    void            accept_modifier( Modifier const& m )
-    {
-        basic_naming_policy::accept_modifier( m );
-
-        if( m.has( guess_name_m ) )
-            m_guess_name = true;
-    }
-
-private:
-    // Naming policy interface
-    virtual bool    match_name( argv_traverser& tr ) const;
-
-    // Data members
-    bool            m_guess_name;
-};
-
-// ************************************************************************** //
-// **************         runtime::cla::named_parameter        ************** //
-// ************************************************************************** //
-
-template<typename T>
-class named_parameter_t : public basic_parameter<T,string_name_policy> {
-    typedef basic_parameter<T,string_name_policy> base;
-public:
-    // Constructors
-    explicit    named_parameter_t( cstring name ) : base( name ) {}
-};
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_CLA_NAMED_PARAM_GENERATORS( named_parameter )
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#ifndef NDNBOOST_RT_PARAM_OFFLINE
-
-#  define NDNBOOST_RT_PARAM_INLINE inline
-#  include <ndnboost/test/utils/runtime/cla/named_parameter.ipp>
-
-#endif
-
-#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
deleted file mode 100644
index b626ee0..0000000
--- a/include/ndnboost/test/utils/runtime/cla/named_parameter.ipp
+++ /dev/null
@@ -1,129 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : implements model of named parameter
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/named_parameter.hpp>
-#include <ndnboost/test/utils/runtime/cla/char_parameter.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/algorithm.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************              string_name_policy              ************** //
-// ************************************************************************** //
-
-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, NDNBOOST_RT_PARAM_CSTRING_LITERAL( "-" ), 0 );
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE bool
-string_name_policy::responds_to( cstring name ) const
-{
-    std::pair<cstring::iterator,dstring::const_iterator> mm_pos;
-
-    mm_pos = unit_test::mismatch( name.begin(), name.end(), p_name->begin(), p_name->end() );
-
-    return mm_pos.first == name.end() && (m_guess_name || (mm_pos.second == p_name->end()) );
-}
-
-//____________________________________________________________________________//
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable:4244)
-#endif
-
-NDNBOOST_RT_PARAM_INLINE bool
-string_name_policy::conflict_with( identification_policy const& id ) const
-{
-    if( id.p_type_id == p_type_id ) {
-        string_name_policy const& snp = static_cast<string_name_policy const&>( id );
-
-        if( p_name->empty() || snp.p_name->empty() )
-            return false;
-
-        if( p_prefix != snp.p_prefix )
-            return false;
-
-        std::pair<dstring::const_iterator,dstring::const_iterator> mm_pos =
-            unit_test::mismatch( p_name->begin(), p_name->end(), snp.p_name->begin(), snp.p_name->end() );
-
-        return mm_pos.first != p_name->begin()                              &&  // there is common substring
-                ((m_guess_name    && (mm_pos.second == snp.p_name->end()) ) ||  // that match other guy and I am guessing
-                (snp.m_guess_name && (mm_pos.first  == p_name->end()) ));       // or me and the other guy is
-    }
-    
-    if( id.p_type_id == rtti::type_id<char_name_policy>() ) {
-        char_name_policy const& cnp = static_cast<char_name_policy const&>( id );
-
-        return m_guess_name                 && 
-               (p_prefix == cnp.p_prefix)   && 
-               unit_test::first_char( cstring( p_name ) ) == unit_test::first_char( cstring( cnp.p_name ) );
-    }
-    
-    return false;    
-}
-
-#ifdef NDNBOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE bool
-string_name_policy::match_name( argv_traverser& tr ) const
-{
-    if( !m_guess_name )
-        return basic_naming_policy::match_name( tr );
-
-    cstring in = tr.input();
-
-    std::pair<cstring::iterator,dstring::const_iterator> mm_pos;
-    
-    mm_pos = unit_test::mismatch( in.begin(), in.end(), p_name->begin(), p_name->end() );
-
-    if( mm_pos.first == in.begin() )
-        return false;
-
-    tr.trim( mm_pos.first - in.begin() );
-
-    return true;
-}
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 84d60d3..0000000
--- a/include/ndnboost/test/utils/runtime/cla/parameter.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 81913 $
-//
-//  Description : defines model of formal parameter
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_CLA_PARAMETER_HPP_062604GER
-#define NDNBOOST_RT_CLA_PARAMETER_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-
-#include <ndnboost/test/utils/runtime/fwd.hpp>
-#include <ndnboost/test/utils/runtime/parameter.hpp>
-#include <ndnboost/test/utils/runtime/validation.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/fwd.hpp>
-#include <ndnboost/test/utils/runtime/cla/modifier.hpp>
-#include <ndnboost/test/utils/runtime/cla/iface/argument_factory.hpp>
-#include <ndnboost/test/utils/runtime/cla/iface/id_policy.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/rtti.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************            runtime::cla::parameter           ************** //
-// ************************************************************************** //
-
-class parameter : public NDNBOOST_RT_PARAM_NAMESPACE::parameter {
-public:
-    parameter( identification_policy& ID, argument_factory& F, bool optional_value = false )
-    : p_optional( false )
-    , p_multiplicable( false )
-    , p_optional_value( optional_value )
-    , m_id_policy( ID )
-    , m_arg_factory( F )
-    {}
-
-    // Destructor
-    virtual         ~parameter()                                {}
-
-    unit_test::readwrite_property<bool>      p_optional;
-    unit_test::readwrite_property<bool>      p_multiplicable;
-    unit_test::readwrite_property<bool>      p_optional_value;
-    unit_test::readwrite_property<dstring>   p_description;
-
-    // parameter properties modification
-    template<typename Modifier>
-    void            accept_modifier( Modifier const& m )
-    {
-        if( m.has( optional_m ) )
-            p_optional.value = true;
-
-        if( m.has( required_m ) )
-            p_optional.value = false;
-
-        if( m.has( multiplicable_m ) )
-            p_multiplicable.value = true;
-
-        if( m.has( optional_value_m ) )
-            p_optional_value.value = true;
-
-        nfp::optionally_assign( p_description.value, m, description );
-    }
-
-    // access methods
-    bool            has_argument() const                        { return m_actual_argument!=0; }
-    argument const& actual_argument() const                     { return *m_actual_argument; }
-    argument_ptr    actual_argument()                           { return m_actual_argument; }
-
-
-    // identification interface
-    bool            responds_to( cstring name ) const           { return m_id_policy.responds_to( name ); }
-    bool            conflict_with( parameter const& p ) const
-    {
-        return (id_2_report() == p.id_2_report() && !id_2_report().is_empty())  ||
-               m_id_policy.conflict_with( p.m_id_policy )                       || 
-               ((m_id_policy.p_type_id != p.m_id_policy.p_type_id) && p.m_id_policy.conflict_with( m_id_policy ));
-    }
-    cstring         id_2_report() const                         { return m_id_policy.id_2_report(); }
-    void            usage_info( format_stream& fs ) const
-    { 
-        m_id_policy.usage_info( fs );
-        if( p_optional_value )
-            fs << NDNBOOST_RT_PARAM_LITERAL( '[' );
-
-        m_arg_factory.argument_usage_info( fs );
-
-        if( p_optional_value )
-            fs << NDNBOOST_RT_PARAM_LITERAL( ']' );
-    }
-
-    // argument match/produce based on input
-    bool            matching( argv_traverser& tr, bool primary ) const
-    {
-        return m_id_policy.matching( *this, tr, primary );
-    }
-
-    // argument production based on different source
-    void            produce_argument( argv_traverser& tr )
-    {
-        m_id_policy.matching( *this, tr, true ); // !! can we save this position somehow
-        m_actual_argument = m_arg_factory.produce_using( *this, tr );
-    }
-    void            produce_argument( parser const& p )
-    {
-        m_actual_argument = m_arg_factory.produce_using( *this, p );
-    }
-
-private:
-    //Data members
-    identification_policy&  m_id_policy;
-    argument_factory&       m_arg_factory;
-    argument_ptr            m_actual_argument;
-};
-
-//____________________________________________________________________________//
-
-template<typename Parameter,typename Modifier>
-inline shared_ptr<Parameter>
-operator-( shared_ptr<Parameter> p, Modifier const& m )
-{
-    p->accept_modifier( m );
-
-    return p;
-}
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index f303f69..0000000
--- a/include/ndnboost/test/utils/runtime/cla/parser.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : defines parser - public interface for CLA parsing and accessing
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_CLA_PARSER_HPP_062604GER
-#define NDNBOOST_RT_CLA_PARSER_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-#include <ndnboost/test/utils/runtime/fwd.hpp>
-#include <ndnboost/test/utils/runtime/argument.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/fwd.hpp>
-#include <ndnboost/test/utils/runtime/cla/modifier.hpp>
-#include <ndnboost/test/utils/runtime/cla/argv_traverser.hpp>
-
-// Boost
-#include <ndnboost/optional.hpp>
-
-// STL
-#include <list>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************             runtime::cla::parser             ************** //
-// ************************************************************************** //
-
-namespace cla_detail {
-
-template<typename Modifier>
-class global_mod_parser {
-public:
-    global_mod_parser( parser& p, Modifier const& m )
-    : m_parser( p )
-    , m_modifiers( m )
-    {}
-
-    template<typename Param>
-    global_mod_parser const&
-    operator<<( shared_ptr<Param> param ) const
-    {
-        param->accept_modifier( m_modifiers );
-
-        m_parser << param;
-
-        return *this;
-    }
-
-private:
-    // Data members;
-    parser&             m_parser;
-    Modifier const&     m_modifiers;
-};
-
-}
-
-// ************************************************************************** //
-// **************             runtime::cla::parser             ************** //
-// ************************************************************************** //
-
-class parser {
-public:
-    typedef std::list<parameter_ptr>::const_iterator param_iterator;
-
-    // Constructor
-    explicit            parser( cstring program_name = cstring() );
-
-    // parameter list construction interface
-    parser&             operator<<( parameter_ptr param );
-
-    // parser and global parameters modifiers
-    template<typename Modifier>
-    cla_detail::global_mod_parser<Modifier>
-    operator-( Modifier const& m )
-    {
-        nfp::optionally_assign( m_traverser.p_separator.value, m, input_separator );
-        nfp::optionally_assign( m_traverser.p_ignore_mismatch.value, m, ignore_mismatch_m );
-
-        return cla_detail::global_mod_parser<Modifier>( *this, m );
-    }
-
-    // input processing method
-    void                parse( int& argc, char_type** argv );
-
-    // parameters access
-    param_iterator      first_param() const;
-    param_iterator      last_param() const;
-
-    // arguments access
-    const_argument_ptr  operator[]( cstring string_id ) const;
-    cstring             get( cstring string_id ) const;    
-
-    template<typename T>
-    T const&            get( cstring string_id ) const
-    {
-        return arg_value<T>( valid_argument( string_id ) );
-    }
-
-    template<typename T>
-    void                get( cstring string_id, ndnboost::optional<T>& res ) const
-    {
-        const_argument_ptr actual_arg = (*this)[string_id];
-
-        if( actual_arg )
-            res = arg_value<T>( *actual_arg );
-        else
-            res.reset();
-    }
-
-    // help/usage
-    void                usage( out_stream& ostr );
-    void                help(  out_stream& ostr );
-
-private:
-    argument const&     valid_argument( cstring string_id ) const;
-
-    // Data members
-    argv_traverser              m_traverser;
-    std::list<parameter_ptr>    m_parameters;
-    dstring                     m_program_name;
-};
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#ifndef NDNBOOST_RT_PARAM_OFFLINE
-
-#  define NDNBOOST_RT_PARAM_INLINE inline
-#  include <ndnboost/test/utils/runtime/cla/parser.ipp>
-
-#endif
-
-#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
deleted file mode 100644
index aa39485..0000000
--- a/include/ndnboost/test/utils/runtime/cla/parser.ipp
+++ /dev/null
@@ -1,258 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : implements parser - public interface for CLA parsing and accessing
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_CLA_PARSER_IPP_062904GER
-#define NDNBOOST_RT_CLA_PARSER_IPP_062904GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-#include <ndnboost/test/utils/runtime/trace.hpp>
-#include <ndnboost/test/utils/runtime/argument.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/argv_traverser.hpp>
-#include <ndnboost/test/utils/runtime/cla/parameter.hpp>
-#include <ndnboost/test/utils/runtime/cla/modifier.hpp>
-#include <ndnboost/test/utils/runtime/cla/validation.hpp>
-#include <ndnboost/test/utils/runtime/cla/parser.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-#include <ndnboost/test/utils/foreach.hpp>
-
-// Boost
-#include <ndnboost/lexical_cast.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************             runtime::cla::parser             ************** //
-// ************************************************************************** //
-
-NDNBOOST_RT_PARAM_INLINE
-parser::parser( cstring program_name )
-{
-    assign_op( m_program_name, program_name, 0 );
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE parser::param_iterator
-parser::first_param() const
-{
-    return m_parameters.begin();
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE parser::param_iterator
-parser::last_param() const
-{
-    return m_parameters.end();
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE argument const&
-parser::valid_argument( cstring string_id ) const
-{
-    const_argument_ptr arg = (*this)[string_id];
-
-    NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !!arg, "Actual argument for parameter " << string_id << " is not present" );
-
-    return *arg;
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE parser&
-parser::operator<<( parameter_ptr new_param )
-{
-    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 );
-
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-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( NDNBOOST_RT_PARAM_LITERAL( "/\\" ) );
-
-        if( pos != static_cast<dstring::size_type>(cstring::npos) )
-            m_program_name.erase( 0, pos+1 );
-    }
-
-    m_traverser.init( argc, argv );
-
-    try {
-        while( !m_traverser.eoi() ) {
-            parameter_ptr found_param;
-
-            NDNBOOST_RT_PARAM_TRACE( "Total " << m_parameters.size() << " parameters registered" );
-
-            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 ) ) {
-                    NDNBOOST_RT_PARAM_TRACE( "Match found" );
-                    NDNBOOST_RT_CLA_VALIDATE_INPUT( !found_param, (m_traverser.rollback(),m_traverser), "Ambiguous input" );
-
-                    found_param = curr_param;
-                }
-
-                m_traverser.rollback();
-            }
-
-            if( !found_param ) {
-                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;
-            }
-
-            NDNBOOST_RT_PARAM_TRACE( "Parse argument value" );
-            found_param->produce_argument( m_traverser );
-
-            m_traverser.commit();
-        }
-
-        NDNBOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
-            if( !curr_param->p_optional && !curr_param->actual_argument() ) {
-                curr_param->produce_argument( *this );
-
-                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& ) {
-        NDNBOOST_RT_PARAM_REPORT_LOGIC_ERROR( 
-            NDNBOOST_RT_PARAM_LITERAL( "String to value convertion error during input parsing" ) );
-    }
-
-    m_traverser.remainder( argc, argv );
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE const_argument_ptr
-parser::operator[]( cstring string_id ) const
-{
-    parameter_ptr found_param;
-
-    NDNBOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
-        if( curr_param->responds_to( string_id ) ) {
-            NDNBOOST_RT_PARAM_VALIDATE_LOGIC( !found_param,
-                                           NDNBOOST_RT_PARAM_LITERAL( "Ambiguous parameter string id: " ) << string_id );
-
-            found_param = curr_param;
-        }
-    }
-
-    return found_param ? found_param->actual_argument() : argument_ptr();
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE cstring
-parser::get( cstring string_id ) const
-{
-    return get<cstring>( string_id );
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-parser::usage( out_stream& ostr )
-{
-    if( m_program_name.empty() )
-        assign_op( m_program_name, NDNBOOST_RT_PARAM_CSTRING_LITERAL( "<program>" ), 0 );
-
-    format_stream fs;
-
-    fs << m_program_name;
-
-    NDNBOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
-        fs << NDNBOOST_RT_PARAM_LITERAL( ' ' );
-
-        if( curr_param->p_optional )
-            fs << NDNBOOST_RT_PARAM_LITERAL( '[' );
-
-        curr_param->usage_info( fs );
-
-        if( curr_param->p_optional )
-            fs << NDNBOOST_RT_PARAM_LITERAL( ']' );
-
-        if( curr_param->p_multiplicable ) {
-            fs << NDNBOOST_RT_PARAM_CSTRING_LITERAL( " ... " );
-            
-            if( curr_param->p_optional )
-                fs << NDNBOOST_RT_PARAM_LITERAL( '[' );
-
-            curr_param->usage_info( fs );
-
-            if( curr_param->p_optional )
-                fs << NDNBOOST_RT_PARAM_LITERAL( ']' );
-        }
-    }
-
-    ostr << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "Usage:\n" ) << fs.str() << std::endl;
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-parser::help( out_stream& ostr )
-{
-    usage( ostr );
-
-    bool need_where = true;
-
-    NDNBOOST_TEST_FOREACH( parameter_ptr const&, curr_param, m_parameters ) {
-        if( curr_param->p_description->empty() )
-            continue;
-
-        if( need_where ) {
-            ostr << NDNBOOST_RT_PARAM_CSTRING_LITERAL( "where:\n" );
-            need_where = false;
-        }
-
-        ostr << curr_param->id_2_report() << NDNBOOST_RT_PARAM_CSTRING_LITERAL( " - " ) << curr_param->p_description << std::endl;
-    }
-}
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 743d755..0000000
--- a/include/ndnboost/test/utils/runtime/cla/typed_parameter.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : generic typed parameter model
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/fwd.hpp>
-#include <ndnboost/test/utils/runtime/validation.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/parameter.hpp>
-#include <ndnboost/test/utils/runtime/cla/argument_factory.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/rtti.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************         runtime::cla::typed_parameter        ************** //
-// ************************************************************************** //
-
-template<typename T>
-class typed_parameter : public cla::parameter {
-public:
-    explicit typed_parameter( identification_policy& ID ) 
-    : cla::parameter( ID, m_arg_factory, rtti::type_id<T>() == rtti::type_id<bool>() ) 
-    {}
-
-    // parameter properties modification
-    template<typename Modifier>
-    void    accept_modifier( Modifier const& m )
-    {
-        cla::parameter::accept_modifier( m );
-
-        m_arg_factory.accept_modifier( m );
-
-        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:
-    // Data members
-    typed_argument_factory<T>   m_arg_factory;
-};
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 011cfbe..0000000
--- a/include/ndnboost/test/utils/runtime/cla/validation.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : input validation helpers definition
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_CLA_VALIDATION_HPP_062604GER
-#define NDNBOOST_RT_CLA_VALIDATION_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-
-#include <ndnboost/test/utils/runtime/cla/fwd.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************       runtime::cla::report_input_error       ************** //
-// ************************************************************************** //
-
-void report_input_error( argv_traverser const& tr, format_stream& 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 NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#ifndef NDNBOOST_RT_PARAM_OFFLINE
-
-#  define NDNBOOST_RT_PARAM_INLINE inline
-#  include <ndnboost/test/utils/runtime/cla/validation.ipp>
-
-#endif
-
-#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
deleted file mode 100644
index 4af9370..0000000
--- a/include/ndnboost/test/utils/runtime/cla/validation.ipp
+++ /dev/null
@@ -1,65 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : input validation helpers implementation
-// ***************************************************************************
-
-#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> // NDNBOOST_RT_PARAM_NAMESPACE::logic_error
-
-// Boost
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-
-// STL
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-// ************************************************************************** //
-// **************           runtime::cla::validation           ************** //
-// ************************************************************************** //
-
-NDNBOOST_RT_PARAM_INLINE void
-report_input_error( argv_traverser const& tr, format_stream& msg )
-{
-    if( tr.eoi() )
-        msg << NDNBOOST_RT_PARAM_LITERAL( " at the end of input" );
-    else {
-        msg << NDNBOOST_RT_PARAM_LITERAL( " in the following position: " );
-
-        if( tr.input().size() > 5 )
-            msg << tr.input().substr( 0, 5 ) << NDNBOOST_RT_PARAM_LITERAL( "..." );
-        else
-            msg << tr.input();
-    }
-
-    throw NDNBOOST_RT_PARAM_NAMESPACE::logic_error( msg.str() );
-}
-
-//____________________________________________________________________________//
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index df92c36..0000000
--- a/include/ndnboost/test/utils/runtime/cla/value_generator.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : specific value generators
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/fwd.hpp>
-#include <ndnboost/test/utils/runtime/cla/parser.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-namespace rt_cla_detail {
-
-// ************************************************************************** //
-// **************        runtime::cla::const_generator         ************** //
-// ************************************************************************** //
-
-template<typename T>
-class const_generator {
-public:
-    // Constructor
-    explicit    const_generator( T const& t ) : m_const_value( t ) {}
-
-    // generator interface
-    void        operator()( parser const&, ndnboost::optional<T>& t ) const   { t = m_const_value; }
-
-private:
-    // Data members
-    T           m_const_value;
-};
-
-// ************************************************************************** //
-// **************         runtime::cla::ref_generator          ************** //
-// ************************************************************************** //
-
-template<typename T>
-class ref_generator {
-public:
-    // Constructor
-    explicit    ref_generator( cstring ref_id ) : m_ref_id( ref_id ) {}
-
-    // generator interface
-    void        operator()( parser const& p, ndnboost::optional<T>& t ) const
-    {
-        p.get( m_ref_id, t );
-    }
-
-private:
-    // Data members
-    cstring     m_ref_id;
-};
-
-//____________________________________________________________________________//
-
-} // namespace rt_cla_detail
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 0090603..0000000
--- a/include/ndnboost/test/utils/runtime/cla/value_handler.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : specific value handlers
-// ***************************************************************************
-
-#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>
-
-#include <ndnboost/test/utils/runtime/cla/fwd.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace cla {
-
-namespace rt_cla_detail {
-
-// ************************************************************************** //
-// **************            runtime::cla::assigner            ************** //
-// ************************************************************************** //
-
-template<typename T>
-class assigner {
-public:
-    // Constructor
-    explicit    assigner( T& loc ) : m_target( loc )    {}
-
-    // value handler implementation
-    void        operator()( parameter const&, T& t )  { m_target = t; }
-
-private:
-    // Data members
-    T&          m_target;
-};
-
-} // namespace rt_cla_detail
-
-} // namespace cla
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index f5f8f17..0000000
--- a/include/ndnboost/test/utils/runtime/config.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : Runtime.Param library configuration
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_CONFIG_HPP_062604GER
-#define NDNBOOST_RT_CONFIG_HPP_062604GER
-
-// Boost
-#include <ndnboost/config.hpp>
-#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
-# pragma warning(disable: 4675) // resolved overload was found by argument-dependent lookup
-#endif
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-#include <ndnboost/test/utils/basic_cstring/basic_cstring.hpp>
-#include <ndnboost/test/utils/wrap_stringstream.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp> // operator<<(ndnboost::runtime::cstring)
-
-// STL
-#include <string>
-#include <cstdlib>
-
-//____________________________________________________________________________//
-
-#ifndef NDNBOOST_RT_PARAM_CUSTOM_STRING
-#  ifndef NDNBOOST_RT_PARAM_WIDE_STRING
-#    define NDNBOOST_RT_PARAM_NAMESPACE                            runtime
-#  else
-#    define NDNBOOST_RT_PARAM_NAMESPACE                            wide_runtime
-#  endif
-#endif
-
-#ifdef __SUNPRO_CC
-extern int putenv(char*);
-#endif
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-#ifndef NDNBOOST_RT_PARAM_CUSTOM_STRING
-#  ifndef NDNBOOST_RT_PARAM_WIDE_STRING
-
-typedef char                                                    char_type;
-typedef std::string                                             dstring;
-typedef unit_test::const_string                                 cstring;
-typedef unit_test::literal_string                               literal_cstring;
-typedef wrap_stringstream                                       format_stream;
-
-#ifdef NDNBOOST_CLASSIC_IOSTREAMS
-typedef std::ostream                                            out_stream;
-#else
-typedef std::basic_ostream<char_type>                           out_stream;
-#endif
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4996) // putenv
-#endif
-
-#ifndef UNDER_CE
-#if defined(__COMO__) && 0
-inline void
-putenv_impl( cstring name, cstring value )
-{
-    using namespace std;
-    // !! this may actually fail. What should we do?
-    setenv( name.begin(), value.begin(), 1 );
-}
-#else
-inline void
-putenv_impl( cstring name, cstring value )
-{
-    format_stream fs;
-
-    fs << name << '=' << value;
-
-    // !! this may actually fail. What should we do?
-    // const_cast is used to satisfy putenv interface
-    using namespace std;
-    putenv( const_cast<char*>( fs.str().c_str() ) );
-}
-#endif
-#endif
-
-#ifdef NDNBOOST_MSVC 
-#pragma warning(pop) 
-#endif 
-
-#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
-
-//____________________________________________________________________________//
-
-#  else
-
-typedef wchar_t                                                 char_type;
-typedef std::basic_string<char_type>                            dstring;
-typedef unit_test::basic_cstring<wchar_t const>                 cstring;
-typedef const unit_test::basic_cstring<wchar_t const>           literal_cstring;
-typedef wrap_wstringstream                                      format_stream;
-typedef std::wostream                                           out_stream;
-
-#ifndef UNDER_CE
-inline void
-putenv_impl( cstring name, cstring value )
-{
-    format_stream fs;
-
-    fs << name << '=' << value;
-
-    // !! this may actually fail. What should we do?
-    // const_cast is used to satisfy putenv interface
-    using namespace std;
-    wputenv( const_cast<wchar_t*>( fs.str().c_str() ) );
-}
-#endif
-
-#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 NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL virtual
-#else
-#define NDNBOOST_RT_PARAM_UNNEEDED_VIRTUAL
-#endif
-
-//____________________________________________________________________________//
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 3634fac..0000000
--- a/include/ndnboost/test/utils/runtime/env/environment.hpp
+++ /dev/null
@@ -1,172 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : defines and implements inline model of program environment 
-// ***************************************************************************
-
-#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.
-#endif
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-#include <ndnboost/test/utils/runtime/fwd.hpp>
-#include <ndnboost/test/utils/runtime/argument.hpp>
-#include <ndnboost/test/utils/runtime/interpret_argument_value.hpp>
-
-#include <ndnboost/test/utils/runtime/env/fwd.hpp>
-#include <ndnboost/test/utils/runtime/env/modifier.hpp>
-#include <ndnboost/test/utils/runtime/env/variable.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/callback.hpp>
-
-// Boost
-#include <ndnboost/optional.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-// ************************************************************************** //
-// **************      runtime::environment implementation     ************** //
-// ************************************************************************** //
-
-namespace environment {
-
-namespace rt_env_detail {
-
-template<typename T, typename Modifiers>
-variable_data&
-init_new_var( cstring var_name, Modifiers m = nfp::no_params )
-{
-    rt_env_detail::variable_data& new_vd = new_var_record( var_name );
-
-    cstring str_value = sys_read_var( new_vd.m_var_name );
-
-    if( !str_value.is_empty() ) {
-        try {
-            ndnboost::optional<T> value;
-
-            if( m.has( interpreter ) )
-                m[interpreter]( str_value, value );
-            else
-                interpret_argument_value( str_value, value, 0 );
-
-            if( !!value ) {
-                new_vd.m_value.reset( new typed_argument<T>( new_vd ) );
-
-                arg_value<T>( *new_vd.m_value ) = *value;
-            }
-        }
-        catch( ... ) { // !! could we do that
-            // !! should we report an error?
-        }
-    }
-
-    if( !new_vd.m_value && m.has( default_value ) ) {
-        new_vd.m_value.reset( new typed_argument<T>( new_vd ) );
-
-        nfp::optionally_assign( arg_value<T>( *new_vd.m_value ), m[default_value] );
-    }
-
-    nfp::optionally_assign( new_vd.m_global_id, m, global_id );
-
-    return new_vd;
-}
-
-//____________________________________________________________________________//
-
-} // namespace rt_env_detail
-
-} // namespace environment
-
-// ************************************************************************** //
-// **************             runtime::environment             ************** //
-// ************************************************************************** //
-
-namespace environment {
-
-    // variable access
-    variable_base
-    var( cstring var_name );
-
-    //________________________________________________________________________//
-
-    template<typename T>
-    inline variable<T>
-    var( cstring var_name )
-    {
-        rt_env_detail::variable_data* vd = rt_env_detail::find_var_record( var_name );
-
-        return environment::variable<T>( !vd ? rt_env_detail::init_new_var<T>( var_name, nfp::no_params ) : *vd );
-    }
-
-    //________________________________________________________________________//
-
-    template<typename T, typename Modifiers>
-    inline variable<T>
-    var( cstring var_name, Modifiers const& m )
-    {
-        rt_env_detail::variable_data* vd = rt_env_detail::find_var_record( var_name );
-
-        return environment::variable<T>( !vd ? rt_env_detail::init_new_var<T>( var_name, m ) : *vd );
-    }
-
-    //________________________________________________________________________//
-
-    // direct variable value access
-    inline cstring
-    get( cstring var_name )
-    {
-        return environment::var<cstring>( var_name ).value();
-    }
-
-    //________________________________________________________________________//
-
-    template<typename T>
-    inline T const&
-    get( cstring var_name )
-    {
-        return environment::var<T>( var_name ).value();
-    }
-
-    //________________________________________________________________________//
-
-    template<typename T>
-    inline void
-    get( cstring var_name, ndnboost::optional<T>& res )
-    {
-        variable<T> const& v = environment::var<T>( var_name );
-        v.value( res );
-    }
-
-    //________________________________________________________________________//
-
-} // namespace environment
-
-namespace env = environment;
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#ifndef NDNBOOST_RT_PARAM_OFFLINE
-
-#define NDNBOOST_RT_PARAM_INLINE inline
-#include <ndnboost/test/utils/runtime/env/environment.ipp>
-
-#endif
-
-#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
deleted file mode 100644
index 3dd78f9..0000000
--- a/include/ndnboost/test/utils/runtime/env/environment.ipp
+++ /dev/null
@@ -1,125 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : implements model of program environment 
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_ENV_ENVIRONMENT_IPP_062904GER
-#define NDNBOOST_RT_ENV_ENVIRONMENT_IPP_062904GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-#include <ndnboost/test/utils/runtime/validation.hpp>
-
-#include <ndnboost/test/utils/runtime/env/variable.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/basic_cstring/compare.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-
-// STL
-#include <map>
-#include <list>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace environment {
-
-// ************************************************************************** //
-// **************             runtime::environment             ************** //
-// ************************************************************************** //
-
-namespace rt_env_detail {
-
-typedef std::map<cstring,rt_env_detail::variable_data> registry;
-typedef std::list<dstring> keys;
-
-NDNBOOST_RT_PARAM_INLINE registry& s_registry()    { static registry instance; return instance; }
-NDNBOOST_RT_PARAM_INLINE keys&     s_keys()        { static keys instance; return instance; }
-
-NDNBOOST_RT_PARAM_INLINE variable_data&
-new_var_record( cstring var_name )
-{
-    // save the name in list of keys
-    s_keys().push_back( dstring() );
-    dstring& key = s_keys().back();
-    assign_op( key, var_name, 0 );
-
-    // create and return new record
-    variable_data& new_var_data = s_registry()[key];
-    
-    new_var_data.m_var_name = key;
-    
-    return new_var_data;
-}
-
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE variable_data*
-find_var_record( cstring var_name )
-{
-    registry::iterator it = s_registry().find( var_name );
-
-    return it == s_registry().end() ? 0 : &(it->second);
-}
-
-//____________________________________________________________________________//
-
-#ifdef NDNBOOST_MSVC 
-#pragma warning(push) 
-#pragma warning(disable:4996) // getenv
-#endif
-
-NDNBOOST_RT_PARAM_INLINE cstring
-sys_read_var( cstring var_name )
-{
-    using namespace std;
-    return NDNBOOST_RT_PARAM_GETENV( var_name.begin() );
-}
-
-#ifdef NDNBOOST_MSVC 
-#pragma warning(pop) 
-#endif
-//____________________________________________________________________________//
-
-NDNBOOST_RT_PARAM_INLINE void
-sys_write_var( cstring var_name, format_stream& var_value )
-{
-    NDNBOOST_RT_PARAM_PUTENV( var_name, cstring( var_value.str() ) );
-}
-
-//____________________________________________________________________________//
-
-} // namespace rt_env_detail
-
-NDNBOOST_RT_PARAM_INLINE variable_base
-var( cstring var_name )
-{
-    rt_env_detail::variable_data* vd = rt_env_detail::find_var_record( var_name );
-
-    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 );
-}
-
-//____________________________________________________________________________//
-
-} // namespace environment
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 10721fc..0000000
--- a/include/ndnboost/test/utils/runtime/env/fwd.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 54633 $
-//
-//  Description : environment subsystem forward declarations
-// ***************************************************************************
-
-#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.
-#endif
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace environment {
-
-class variable_base;
-variable_base var( cstring var_name );
-
-namespace rt_env_detail {
-
-struct variable_data;
-
-variable_data&  new_var_record( cstring var_name );
-variable_data*  find_var_record( cstring var_name );
-
-cstring         sys_read_var( cstring var_name );
-void            sys_write_var( cstring var_name, format_stream& var_value );
-
-}
-
-template <typename T> class variable;
-
-} // namespace environment
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 0cfcff3..0000000
--- a/include/ndnboost/test/utils/runtime/env/modifier.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  Use, modification, and distribution are subject to 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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : defines variable modifiers
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_ENV_MODIFIER_HPP_062604GER
-#define NDNBOOST_RT_ENV_MODIFIER_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/named_params.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace environment {
-
-// ************************************************************************** //
-// **************         environment variable modifiers       ************** //
-// ************************************************************************** //
-
-namespace {
-
-nfp::typed_keyword<cstring,struct global_id_t>   global_id;
-nfp::keyword<struct default_value_t>             default_value;
-nfp::keyword<struct interpreter_t>               interpreter;
-
-} // local namespace
-} // namespace environment
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index d86bb22..0000000
--- a/include/ndnboost/test/utils/runtime/env/variable.hpp
+++ /dev/null
@@ -1,223 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 81913 $
-//
-//  Description : defines model of program environment variable
-// ***************************************************************************
-
-#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.
-#endif
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-#include <ndnboost/test/utils/runtime/fwd.hpp>
-#include <ndnboost/test/utils/runtime/parameter.hpp>
-#include <ndnboost/test/utils/runtime/argument.hpp>
-
-#include <ndnboost/test/utils/runtime/env/fwd.hpp>
-
-// Boost
-#include <ndnboost/optional.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace environment {
-
-// ************************************************************************** //
-// **************      runtime::environment::variable_data     ************** //
-// ************************************************************************** //
-
-namespace rt_env_detail {
-
-struct variable_data : public runtime::parameter {
-    cstring         m_var_name;
-    dstring         m_global_id;
-    argument_ptr    m_value;
-};
-
-} // namespace rt_env_detail
-
-// ************************************************************************** //
-// **************     runtime::environment::variable_base      ************** //
-// ************************************************************************** //
-
-class variable_base {
-public:
-    explicit    variable_base( rt_env_detail::variable_data& data ) : m_data( &data ) {}
-
-    // arguments access
-    template<typename T>
-    T const&    value() const
-    {
-        return arg_value<T>( *m_data->m_value );
-    }
-
-    template<typename T>
-    void        value( ndnboost::optional<T>& res ) const
-    {
-        if( has_value() )
-            res = arg_value<T>( *m_data->m_value );
-        else
-            res.reset();
-    }
-
-    bool        has_value() const   { return m_data->m_value!=0; }
-    cstring     name() const        { return m_data->m_var_name; }
-
-protected:
-    // Data members
-    rt_env_detail::variable_data*  m_data;
-} ;
-
-// ************************************************************************** //
-// **************        runtime::environment::variable        ************** //
-// ************************************************************************** //
-
-template<typename T = cstring>
-class variable : public variable_base {
-public:
-    // Constructors
-    explicit    variable( cstring var_name );
-
-    template<typename Modifiers>
-    explicit    variable( cstring var_name, Modifiers const& m );
-
-    explicit    variable( rt_env_detail::variable_data& data ) 
-    : variable_base( data )                                 {}
-
-    // other variable assignment
-    void        operator=( variable const& v )              { m_data = v.m_data; }
-
-    // access methods
-    T const&    value() const                               { return variable_base::value<T>(); }
-
-#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
-    using       variable_base::value;
-#endif
-
-    // Value assignment
-    template<typename V>
-    void        operator=( V const& v )
-    {
-        if( !has_value() )
-            m_data->m_value.reset( new typed_argument<T>( *m_data ) );
-
-        arg_value<T>( *m_data->m_value ) = v;
-
-        rt_env_detail::sys_write_var( m_data->m_var_name, format_stream().ref() << value() );
-    }
-}; // class variable
-
-//____________________________________________________________________________//
-
-template<typename CharT, typename Tr,typename T>
-inline std::basic_ostream<CharT,Tr>&
-operator<<( std::basic_ostream<CharT,Tr>& os, variable<T> const& v )
-{
-    os << v.name() << '=';
-
-    if( v.has_value() )
-        os << v.value();
-
-    return os;
-}
-
-//____________________________________________________________________________//
-
-template<typename T, typename V>
-inline bool
-operator==( variable<T> ev, V const& v )
-{
-    return ev.has_value() && ev.value() == v;
-}
-
-//____________________________________________________________________________//
-
-template<typename T, typename V>
-inline bool
-operator==( V const& v, variable<T> ev )
-{
-    return ev.has_value() && ev.value() == v;
-}
-
-//____________________________________________________________________________//
-
-template<typename T, typename V>
-inline bool
-operator!=( variable<T> ev, V const& v )
-{
-    return !ev.has_value() || ev.value() != v;
-}
-
-//____________________________________________________________________________//
-
-template<typename T, typename V>
-inline bool
-operator!=( V const& v, variable<T> ev )
-{
-    return !ev.has_value() || ev.value() != v;
-}
-
-//____________________________________________________________________________//
-
-} // namespace environment
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-// ************************************************************************** //
-// ************************************************************************** //
-// Implementation
-
-#include <ndnboost/test/utils/runtime/env/environment.hpp>
-
-// ************************************************************************** //
-// **************        runtime::environment::variable        ************** //
-// ************************************************************************** //
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-namespace environment {
-
-template<typename T>
-variable<T>::variable( cstring var_name )
-: variable_base( environment::var<T>( var_name ) )
-{}
-
-//____________________________________________________________________________//
-
-template<typename T>
-template<typename Modifiers>
-variable<T>::variable( cstring var_name, Modifiers const& m )
-: variable_base( environment::var<T>( var_name, m ) )
-{}
-
-//____________________________________________________________________________//
-
-} // namespace environment
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 3affb55..0000000
--- a/include/ndnboost/test/utils/runtime/fwd.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : global framework level forward declaration
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_FWD_HPP_062604GER
-#define NDNBOOST_RT_FWD_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-
-// Boost
-#include <ndnboost/shared_ptr.hpp>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-class parameter;
-
-class argument;
-typedef shared_ptr<argument> argument_ptr;
-typedef shared_ptr<argument const> const_argument_ptr;
-
-template<typename T> class value_interpreter;
-template<typename T> class typed_argument;
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 4dec761..0000000
--- a/include/ndnboost/test/utils/runtime/interpret_argument_value.hpp
+++ /dev/null
@@ -1,163 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : default algorithms for string to specific type convertions
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/runtime/trace.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-#include <ndnboost/test/utils/basic_cstring/compare.hpp>
-
-// Boost
-#include <ndnboost/optional.hpp>
-#include <ndnboost/lexical_cast.hpp>
-
-// STL
-// !! could we eliminate these includes?
-#include <list>
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-// ************************************************************************** //
-// **************       runtime::interpret_argument_value      ************** //
-// ************************************************************************** //
-// returns true if source is used false otherwise
-
-// generic case
-template<typename T>
-struct interpret_argument_value_impl {
-    static bool _( cstring source, ndnboost::optional<T>& res )
-    {
-        NDNBOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<" << typeid(T).name() << ">" );
-
-        res = lexical_cast<T>( source );
-
-        NDNBOOST_RT_PARAM_TRACE( "String " << source << " is interpreted as " << *res );
-        return true;
-    }
-};
-
-
-//____________________________________________________________________________//
-
-// dstring case
-template<>
-struct interpret_argument_value_impl<dstring> {
-    static bool _( cstring source, ndnboost::optional<dstring>& res )
-    {
-        NDNBOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<dstring>" );
-
-        res = dstring();
-        assign_op( *res, source, 0 );
-
-        return true;
-    }
-};
-
-//____________________________________________________________________________//
-
-// cstring case
-template<>
-struct interpret_argument_value_impl<cstring> {
-    static bool _( cstring source, ndnboost::optional<cstring>& res )
-    {
-        NDNBOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<cstring>" );
-
-        res = source;
-
-        return true;
-    }
-};
-
-//____________________________________________________________________________//
-
-// specialization for type bool
-template<>
-struct interpret_argument_value_impl<bool> {
-    static bool _( cstring source, ndnboost::optional<bool>& res )
-    {
-        NDNBOOST_RT_PARAM_TRACE( "In interpret_argument_value_impl<bool>" );
-
-        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();
-
-        if( case_ins_eq( source, YES ) || case_ins_eq( source, Y ) || case_ins_eq( source, one ) ) {
-            res = true;
-            return true;
-        }
-        else if( case_ins_eq( source, NO ) || case_ins_eq( source, N ) || case_ins_eq( source, zero ) ) {
-            res = false;
-            return true;
-        }
-        else {
-            res = true;
-            return false;
-        }
-    }
-};
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline bool
-interpret_argument_value( cstring source, ndnboost::optional<T>& res, long )
-{
-    return interpret_argument_value_impl<T>::_( source, res );
-}
-
-//____________________________________________________________________________//
-
-// specialization for list of values
-template<typename T>
-inline bool
-interpret_argument_value( cstring source, ndnboost::optional<std::list<T> >& res, int )
-{
-    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(), NDNBOOST_RT_PARAM_LITERAL( ',' ) );
-
-        ndnboost::optional<T> value;
-        interpret_argument_value( cstring( source.begin(), single_value_end ), value, 0 );
-
-        res->push_back( *value );
-
-        source.trim_left( single_value_end + 1 );
-    }
-
-    return true;
-}
-
-//____________________________________________________________________________//
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 73fb81c..0000000
--- a/include/ndnboost/test/utils/runtime/parameter.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : abstract interface for the formal parameter
-// ***************************************************************************
-
-#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 NDNBOOST_RT_PARAM_NAMESPACE {
-
-// ************************************************************************** //
-// **************              runtime::parameter              ************** //
-// ************************************************************************** //
-
-class parameter {
-public:
-    virtual ~parameter() {}
-};
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_RT_PARAMETER_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/trace.hpp b/include/ndnboost/test/utils/runtime/trace.hpp
deleted file mode 100644
index fd47429..0000000
--- a/include/ndnboost/test/utils/runtime/trace.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : optional internal tracing
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_TRACE_HPP_062604GER
-#define NDNBOOST_RT_TRACE_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-
-#ifdef NDNBOOST_RT_PARAM_DEBUG
-
-#include <iostream>
-
-#  define NDNBOOST_RT_PARAM_TRACE( str ) std::cerr << str << std::endl
-#else
-#  define NDNBOOST_RT_PARAM_TRACE( str )
-#endif
-
-#endif // NDNBOOST_RT_TRACE_HPP_062604GER
diff --git a/include/ndnboost/test/utils/runtime/validation.hpp b/include/ndnboost/test/utils/runtime/validation.hpp
deleted file mode 100644
index 9c8ce79..0000000
--- a/include/ndnboost/test/utils/runtime/validation.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : defines exceptions and validation tools
-// ***************************************************************************
-
-#ifndef NDNBOOST_RT_VALIDATION_HPP_062604GER
-#define NDNBOOST_RT_VALIDATION_HPP_062604GER
-
-// Boost.Runtime.Parameter
-#include <ndnboost/test/utils/runtime/config.hpp>
-
-// Boost.Test
-#include <ndnboost/test/utils/class_properties.hpp>
-
-// Boost
-#include <ndnboost/shared_ptr.hpp>
-
-// STL
-#ifdef NDNBOOST_RT_PARAM_EXCEPTION_INHERIT_STD
-#include <stdexcept>
-#endif
-
-namespace ndnboost {
-
-namespace NDNBOOST_RT_PARAM_NAMESPACE {
-
-// ************************************************************************** //
-// **************             runtime::logic_error             ************** //
-// ************************************************************************** //
-
-class logic_error 
-#ifdef NDNBOOST_RT_PARAM_EXCEPTION_INHERIT_STD
-: public std::exception
-#endif
-{
-    typedef shared_ptr<dstring> dstring_ptr;
-public:
-    // Constructor // !! could we eliminate shared_ptr
-    explicit    logic_error( cstring msg ) : m_msg( new dstring( msg.begin(), msg.size() ) ) {}
-    ~logic_error() throw()                          {}
-
-    dstring const&   msg() const                    { return *m_msg; }
-    virtual char_type const* what() const throw()   { return m_msg->c_str(); }
-
-private:
-    dstring_ptr m_msg;
-};
-
-// ************************************************************************** //
-// **************          runtime::report_logic_error         ************** //
-// ************************************************************************** //
-
-inline void
-report_logic_error( format_stream& msg )
-{
-    throw NDNBOOST_RT_PARAM_NAMESPACE::logic_error( msg.str() );
-}
-
-//____________________________________________________________________________//
-
-#define NDNBOOST_RT_PARAM_REPORT_LOGIC_ERROR( msg ) \
-    ndnboost::NDNBOOST_RT_PARAM_NAMESPACE::report_logic_error( format_stream().ref() << msg )
-
-#define NDNBOOST_RT_PARAM_VALIDATE_LOGIC( b, msg ) \
-    if( b ) {} else NDNBOOST_RT_PARAM_REPORT_LOGIC_ERROR( msg )
-
-//____________________________________________________________________________//
-
-} // namespace NDNBOOST_RT_PARAM_NAMESPACE
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_RT_VALIDATION_HPP_062604GER
diff --git a/include/ndnboost/test/utils/trivial_singleton.hpp b/include/ndnboost/test/utils/trivial_singleton.hpp
deleted file mode 100644
index 9fcff0b..0000000
--- a/include/ndnboost/test/utils/trivial_singleton.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2005-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : simple helpers for creating cusom output manipulators
-// ***************************************************************************
-
-#ifndef NDNBOOST_TEST_TRIVIAL_SIGNLETON_HPP_020505GER
-#define NDNBOOST_TEST_TRIVIAL_SIGNLETON_HPP_020505GER
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#include <ndnboost/noncopyable.hpp>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************                   singleton                  ************** //
-// ************************************************************************** //
-
-template<typename Derived>
-class singleton : private ndnboost::noncopyable {
-public:
-    static Derived& instance() { static Derived the_inst; return the_inst; }    
-protected:
-    singleton()  {}
-    ~singleton() {}
-};
-
-} // namespace unit_test
-
-#define NDNBOOST_TEST_SINGLETON_CONS( type )       \
-friend class ndnboost::unit_test::singleton<type>; \
-type() {}                                       \
-/**/
-
-#if NDNBOOST_WORKAROUND(__DECCXX_VER, NDNBOOST_TESTED_AT(60590042))
-
-#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 NDNBOOST_TEST_SINGLETON_INST( inst ) \
-static NDNBOOST_JOIN( inst, _t)& inst = NDNBOOST_JOIN (inst, _t)::instance();
-
-#else
-
-#define NDNBOOST_TEST_SINGLETON_INST( inst ) \
-namespace { NDNBOOST_JOIN( inst, _t)& inst = NDNBOOST_JOIN( inst, _t)::instance(); }
-
-#endif
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#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
deleted file mode 100644
index 2fe1111..0000000
--- a/include/ndnboost/test/utils/wrap_stringstream.hpp
+++ /dev/null
@@ -1,164 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2002-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 49312 $
-//
-//  Description : wraps strstream and stringstream (depends with one is present)
-//                to provide the unified interface
-// ***************************************************************************
-
-#ifndef NDNBOOST_WRAP_STRINGSTREAM_HPP_071894GER
-#define NDNBOOST_WRAP_STRINGSTREAM_HPP_071894GER
-
-// Boost.Test
-#include <ndnboost/test/detail/config.hpp>
-
-// STL
-#ifdef NDNBOOST_NO_STRINGSTREAM
-#include <strstream>        // for std::ostrstream
-#else
-#include <sstream>          // for std::ostringstream
-#endif // NDNBOOST_NO_STRINGSTREAM
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-// ************************************************************************** //
-// **************            basic_wrap_stringstream           ************** //
-// ************************************************************************** //
-
-template<typename CharT>
-class basic_wrap_stringstream {
-public:
-#if defined(NDNBOOST_CLASSIC_IOSTREAMS)
-    typedef std::ostringstream               wrapped_stream;
-#elif defined(NDNBOOST_NO_STRINGSTREAM)
-    typedef std::basic_ostrstream<CharT>     wrapped_stream;
-#else
-    typedef std::basic_ostringstream<CharT>  wrapped_stream;
-#endif // NDNBOOST_NO_STRINGSTREAM
-    // Access methods
-    basic_wrap_stringstream&        ref();
-    wrapped_stream&                 stream();
-    std::basic_string<CharT> const& str();
-
-private:
-    // Data members
-    wrapped_stream                  m_stream;
-    std::basic_string<CharT>        m_str;
-};
-
-//____________________________________________________________________________//
-
-template <typename CharT, typename T>
-inline basic_wrap_stringstream<CharT>&
-operator<<( basic_wrap_stringstream<CharT>& targ, T const& t )
-{
-    targ.stream() << t;
-    return targ;
-}
-
-//____________________________________________________________________________//
-
-template <typename CharT>
-inline typename basic_wrap_stringstream<CharT>::wrapped_stream&
-basic_wrap_stringstream<CharT>::stream()
-{
-    return m_stream;
-}
-
-//____________________________________________________________________________//
-
-template <typename CharT>
-inline basic_wrap_stringstream<CharT>&
-basic_wrap_stringstream<CharT>::ref()
-{ 
-    return *this;
-}
-
-//____________________________________________________________________________//
-
-template <typename CharT>
-inline std::basic_string<CharT> const&
-basic_wrap_stringstream<CharT>::str()
-{
-
-#ifdef NDNBOOST_NO_STRINGSTREAM
-    m_str.assign( m_stream.str(), m_stream.pcount() );
-    m_stream.freeze( false );
-#else
-    m_str = m_stream.str();
-#endif
-
-    return m_str;
-}
-
-//____________________________________________________________________________//
-
-template <typename CharT>
-inline basic_wrap_stringstream<CharT>&
-operator<<( basic_wrap_stringstream<CharT>& targ, basic_wrap_stringstream<CharT>& src )
-{
-    targ << src.str();
-    return targ;
-}
-
-//____________________________________________________________________________//
-
-#if NDNBOOST_TEST_USE_STD_LOCALE 
-
-template <typename CharT>
-inline basic_wrap_stringstream<CharT>&
-operator<<( basic_wrap_stringstream<CharT>& targ, std::ios_base& (NDNBOOST_TEST_CALL_DECL *man)(std::ios_base&) )
-{
-    targ.stream() << man;
-    return targ;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT,typename Elem,typename Tr>
-inline basic_wrap_stringstream<CharT>&
-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;
-}
-
-//____________________________________________________________________________//
-
-template<typename CharT,typename Elem,typename Tr>
-inline basic_wrap_stringstream<CharT>&
-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;
-}
-
-//____________________________________________________________________________//
-
-#endif
-
-// ************************************************************************** //
-// **************               wrap_stringstream              ************** //
-// ************************************************************************** //
-
-typedef basic_wrap_stringstream<char>       wrap_stringstream;
-typedef basic_wrap_stringstream<wchar_t>    wrap_wstringstream;
-
-}  // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif  // NDNBOOST_WRAP_STRINGSTREAM_HPP_071894GER
diff --git a/include/ndnboost/test/utils/xml_printer.hpp b/include/ndnboost/test/utils/xml_printer.hpp
deleted file mode 100644
index 50f2972..0000000
--- a/include/ndnboost/test/utils/xml_printer.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-//  (C) Copyright Gennadiy Rozental 2004-2008.
-//  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)
-
-//  See http://www.boost.org/libs/test for the library home page.
-//
-//  File        : $RCSfile$
-//
-//  Version     : $Revision: 57992 $
-//
-//  Description : common code used by any agent serving as XML printer
-// ***************************************************************************
-
-#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>
-#include <ndnboost/test/utils/fixed_mapping.hpp>
-#include <ndnboost/test/utils/custom_manip.hpp>
-#include <ndnboost/test/utils/foreach.hpp>
-#include <ndnboost/test/utils/basic_cstring/io.hpp>
-
-// Boost
-#include <ndnboost/config.hpp>
-
-// STL
-#include <iostream>
-
-#include <ndnboost/test/detail/suppress_warnings.hpp>
-
-//____________________________________________________________________________//
-
-namespace ndnboost {
-
-namespace unit_test {
-
-// ************************************************************************** //
-// **************               xml print helpers              ************** //
-// ************************************************************************** //
-
-inline void
-print_escaped( std::ostream& where_to, const_string value )
-{
-    static fixed_mapping<char,char const*> char_type(
-        '<' , "lt",
-        '>' , "gt",
-        '&' , "amp",
-        '\'', "apos" ,
-        '"' , "quot",
-
-        0
-    );
-
-    NDNBOOST_TEST_FOREACH( char, c, value ) {
-        char const* ref = char_type[c];
-
-        if( ref )
-            where_to << '&' << ref << ';';
-        else
-            where_to << c;
-    }
-}
-
-//____________________________________________________________________________//
-
-inline void
-print_escaped( std::ostream& where_to, std::string const& value )
-{
-    print_escaped( where_to, const_string( value ) );
-}
-
-//____________________________________________________________________________//
-
-template<typename T>
-inline void
-print_escaped( std::ostream& where_to, T const& value )
-{
-    where_to << value;
-}
-
-//____________________________________________________________________________//
-
-typedef custom_manip<struct attr_value_t> attr_value;
-
-template<typename T>
-inline std::ostream&
-operator<<( custom_printer<attr_value> const& p, T const& value )
-{
-    *p << "=\"";
-    print_escaped( *p, value );
-    *p << '"';
-
-    return *p;
-}
-
-//____________________________________________________________________________//
-
-typedef custom_manip<struct cdata_t> cdata;
-
-inline std::ostream&
-operator<<( custom_printer<cdata> const& p, const_string value )
-{
-    return *p << NDNBOOST_TEST_L( "<![CDATA[" ) << value << NDNBOOST_TEST_L( "]]>" );
-}
-
-//____________________________________________________________________________//
-
-} // namespace unit_test
-
-} // namespace ndnboost
-
-//____________________________________________________________________________//
-
-#include <ndnboost/test/detail/enable_warnings.hpp>
-
-#endif // NDNBOOST_TEST_XML_PRINTER_HPP_071894GER
diff --git a/include/ndnboost/throw_exception.hpp b/include/ndnboost/throw_exception.hpp
deleted file mode 100644
index 475a9f2..0000000
--- a/include/ndnboost/throw_exception.hpp
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef NDNBOOST_UUID_AA15E74A856F11E08B8D93F24824019B
-#define NDNBOOST_UUID_AA15E74A856F11E08B8D93F24824019B
-#if defined(__GNUC__) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma GCC system_header
-#endif
-#if defined(_MSC_VER) && !defined(NDNBOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(push,1)
-#endif
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  ndnboost/throw_exception.hpp
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//  Copyright (c) 2008-2009 Emil Dotchevski and Reverge Studios, Inc.
-//
-//  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)
-//
-//  http://www.boost.org/libs/utility/throw_exception.html
-//
-
-#include <ndnboost/exception/detail/attribute_noreturn.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/config.hpp>
-#include <exception>
-
-#if !defined( NDNBOOST_EXCEPTION_DISABLE ) && defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT(0x593) )
-# define NDNBOOST_EXCEPTION_DISABLE
-#endif
-
-#if !defined( NDNBOOST_EXCEPTION_DISABLE ) && defined( NDNBOOST_MSVC ) && NDNBOOST_WORKAROUND( NDNBOOST_MSVC, < 1310 )
-# define NDNBOOST_EXCEPTION_DISABLE
-#endif
-
-#if !defined( NDNBOOST_EXCEPTION_DISABLE )
-# include <ndnboost/exception/exception.hpp>
-# include <ndnboost/current_function.hpp>
-# define NDNBOOST_THROW_EXCEPTION(x) ::ndnboost::exception_detail::throw_exception_(x,NDNBOOST_CURRENT_FUNCTION,__FILE__,__LINE__)
-#else
-# define NDNBOOST_THROW_EXCEPTION(x) ::ndnboost::throw_exception(x)
-#endif
-
-namespace ndnboost
-{
-#ifdef NDNBOOST_NO_EXCEPTIONS
-
-void throw_exception( std::exception const & e ); // user defined
-
-#else
-
-inline void throw_exception_assert_compatibility( std::exception const & ) { }
-
-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 NDNBOOST_NO_EXCEPTIONS.
-    throw_exception_assert_compatibility(e);
-
-#ifndef NDNBOOST_EXCEPTION_DISABLE
-    throw enable_current_exception(enable_error_info(e));
-#else
-    throw e;
-#endif
-}
-
-#endif
-
-#if !defined( NDNBOOST_EXCEPTION_DISABLE )
-    namespace
-    exception_detail
-    {
-        template <class E>
-        NDNBOOST_ATTRIBUTE_NORETURN
-        void
-        throw_exception_( E const & x, char const * current_function, char const * file, int line )
-        {
-            ndnboost::throw_exception(
-                set_info(
-                    set_info(
-                        set_info(
-                            enable_error_info(x),
-                            throw_function(current_function)),
-                        throw_file(file)),
-                    throw_line(line)));
-        }
-    }
-#endif
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index e19f360..0000000
--- a/include/ndnboost/timer.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  boost timer.hpp header file  ---------------------------------------------//
-
-//  Copyright Beman Dawes 1994-99.  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)
-
-//  See http://www.boost.org/libs/timer for documentation.
-
-//  Revision History
-//  01 Apr 01  Modified to use new <ndnboost/limits.hpp> header. (JMaddock)
-//  12 Jan 01  Change to inline implementation to allow use without library
-//             builds. See docs for more rationale. (Beman Dawes) 
-//  25 Sep 99  elapsed_max() and elapsed_min() added (John Maddock)
-//  16 Jul 99  Second beta
-//   6 Jul 99  Initial boost version
-
-#ifndef NDNBOOST_TIMER_HPP
-#define NDNBOOST_TIMER_HPP
-
-#include <ndnboost/config.hpp>
-#include <ctime>
-#include <ndnboost/limits.hpp>
-
-# ifdef NDNBOOST_NO_STDC_NAMESPACE
-    namespace std { using ::clock_t; using ::clock; }
-# endif
-
-
-namespace ndnboost {
-
-//  timer  -------------------------------------------------------------------//
-
-//  A timer object measures elapsed time.
-
-//  It is recommended that implementations measure wall clock rather than CPU
-//  time since the intended use is performance measurement on systems where
-//  total elapsed time is more important than just process or CPU time.
-
-//  Warnings: The maximum measurable elapsed time may well be only 596.5+ hours
-//  due to implementation limitations.  The accuracy of timings depends on the
-//  accuracy of timing information provided by the underlying platform, and
-//  this varies a great deal from platform to platform.
-
-class timer
-{
- public:
-         timer() { _start_time = std::clock(); } // postcondition: elapsed()==0
-//         timer( const timer& src );      // post: elapsed()==src.elapsed()
-//        ~timer(){}
-//  timer& operator=( const timer& src );  // post: elapsed()==src.elapsed()
-  void   restart() { _start_time = std::clock(); } // post: elapsed()==0
-  double elapsed() const                  // return elapsed time in seconds
-    { return  double(std::clock() - _start_time) / CLOCKS_PER_SEC; }
-
-  double elapsed_max() const   // return estimated maximum value for elapsed()
-  // Portability warning: elapsed_max() may return too high a value on systems
-  // where std::clock_t overflows or resets at surprising values.
-  {
-    return (double((std::numeric_limits<std::clock_t>::max)())
-       - double(_start_time)) / double(CLOCKS_PER_SEC); 
-  }
-
-  double elapsed_min() const            // return minimum value for elapsed()
-   { return double(1)/double(CLOCKS_PER_SEC); }
-
- private:
-  std::clock_t _start_time;
-}; // timer
-
-} // namespace ndnboost
-
-#endif  // NDNBOOST_TIMER_HPP
diff --git a/include/ndnboost/tuple/detail/tuple_basic.hpp b/include/ndnboost/tuple/detail/tuple_basic.hpp
deleted file mode 100644
index cbb6774..0000000
--- a/include/ndnboost/tuple/detail/tuple_basic.hpp
+++ /dev/null
@@ -1,980 +0,0 @@
-//  tuple_basic.hpp -----------------------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-
-// For more information, see http://www.boost.org
-
-// Outside help:
-// This and that, Gary Powell.
-// Fixed return types for get_head/get_tail
-// ( and other bugs ) per suggestion of Jens Maurer
-// simplified element type accessors + bug fix  (Jeremy Siek)
-// Several changes/additions according to suggestions by Douglas Gregor,
-// William Kempf, Vesa Karvonen, John Max Skaller, Ed Brey, Beman Dawes,
-// David Abrahams.
-
-// Revision history:
-// 2002 05 01 Hugo Duncan: Fix for Borland after Jaakko's previous changes
-// 2002 04 18 Jaakko: tuple element types can be void or plain function
-//                    types, as long as no object is created.
-//                    Tuple objects can no hold even noncopyable types
-//                    such as arrays.
-// 2001 10 22 John Maddock
-//      Fixes for Borland C++
-// 2001 08 30 David Abrahams
-//      Added default constructor for cons<>.
-// -----------------------------------------------------------------
-
-#ifndef NDNBOOST_TUPLE_BASIC_HPP
-#define NDNBOOST_TUPLE_BASIC_HPP
-
-
-#include <utility> // needed for the assignment from pair to tuple
-
-#include "ndnboost/type_traits/cv_traits.hpp"
-#include "ndnboost/type_traits/function_traits.hpp"
-#include "ndnboost/utility/swap.hpp"
-
-#include "ndnboost/detail/workaround.hpp" // needed for NDNBOOST_WORKAROUND
-
-namespace ndnboost {
-namespace tuples {
-
-// -- null_type --------------------------------------------------------
-struct null_type {};
-
-// a helper function to provide a const null_type type temporary
-namespace detail {
-  inline const null_type cnull() { return null_type(); }
-
-
-// -- if construct ------------------------------------------------
-// Proposed by Krzysztof Czarnecki and Ulrich Eisenecker
-
-template <bool If, class Then, class Else> struct IF { typedef Then RET; };
-
-template <class Then, class Else> struct IF<false, Then, Else> {
-  typedef Else RET;
-};
-
-} // end detail
-
-// - cons forward declaration -----------------------------------------------
-template <class HT, class TT> struct cons;
-
-
-// - tuple forward declaration -----------------------------------------------
-template <
-  class T0 = null_type, class T1 = null_type, class T2 = null_type,
-  class T3 = null_type, class T4 = null_type, class T5 = null_type,
-  class T6 = null_type, class T7 = null_type, class T8 = null_type,
-  class T9 = null_type>
-class tuple;
-
-// tuple_length forward declaration
-template<class T> struct length;
-
-
-
-namespace detail {
-
-// -- generate error template, referencing to non-existing members of this
-// template is used to produce compilation errors intentionally
-template<class T>
-class generate_error;
-
-template<int N>
-struct drop_front {
-    template<class Tuple>
-    struct apply {
-        typedef NDNBOOST_DEDUCED_TYPENAME drop_front<N-1>::NDNBOOST_NESTED_TEMPLATE
-            apply<Tuple> next;
-        typedef NDNBOOST_DEDUCED_TYPENAME next::type::tail_type type;
-        static const type& call(const Tuple& tup) {
-            return next::call(tup).tail;
-        }
-    };
-};
-
-template<>
-struct drop_front<0> {
-    template<class Tuple>
-    struct apply {
-        typedef Tuple type;
-        static const type& call(const Tuple& tup) {
-            return tup;
-        }
-    };
-};
-
-} // end of namespace detail
-
-
-// -cons type accessors ----------------------------------------
-// typename tuples::element<N,T>::type gets the type of the
-// Nth element ot T, first element is at index 0
-// -------------------------------------------------------
-
-#ifndef NDNBOOST_NO_CV_SPECIALIZATIONS
-
-template<int N, class T>
-struct element
-{
-  typedef NDNBOOST_DEDUCED_TYPENAME detail::drop_front<N>::NDNBOOST_NESTED_TEMPLATE
-      apply<T>::type::head_type type;
-};
-
-template<int N, class T>
-struct element<N, const T>
-{
-private:
-  typedef NDNBOOST_DEDUCED_TYPENAME detail::drop_front<N>::NDNBOOST_NESTED_TEMPLATE
-      apply<T>::type::head_type unqualified_type;
-public:
-#if NDNBOOST_WORKAROUND(__BORLANDC__,<0x600)
-  typedef const unqualified_type type;
-#else
-  typedef NDNBOOST_DEDUCED_TYPENAME ndnboost::add_const<unqualified_type>::type type;
-#endif
-};
-#else // def NDNBOOST_NO_CV_SPECIALIZATIONS
-
-namespace detail {
-
-template<int N, class T, bool IsConst>
-struct element_impl
-{
-  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 NDNBOOST_DEDUCED_TYPENAME detail::drop_front<N>::NDNBOOST_NESTED_TEMPLATE
-      apply<T>::type::head_type unqualified_type;
-  typedef const unqualified_type type;
-};
-
-} // end of namespace detail
-
-
-template<int N, class T>
-struct element:
-  public detail::element_impl<N, T, ::ndnboost::is_const<T>::value>
-{
-};
-
-#endif
-
-
-// -get function templates -----------------------------------------------
-// Usage: get<N>(aTuple)
-
-// -- some traits classes for get functions
-
-// access traits lifted from detail namespace to be part of the interface,
-// (Joel de Guzman's suggestion). Rationale: get functions are part of the
-// interface, so should the way to express their return types be.
-
-template <class T> struct access_traits {
-  typedef const T& const_type;
-  typedef T& non_const_type;
-
-  typedef const typename ndnboost::remove_cv<T>::type& parameter_type;
-
-// used as the tuple constructors parameter types
-// Rationale: non-reference tuple element types can be cv-qualified.
-// It should be possible to initialize such types with temporaries,
-// and when binding temporaries to references, the reference must
-// be non-volatile and const. 8.5.3. (5)
-};
-
-template <class T> struct access_traits<T&> {
-
-  typedef T& const_type;
-  typedef T& non_const_type;
-
-  typedef T& parameter_type;
-};
-
-// get function for non-const cons-lists, returns a reference to the element
-
-template<int N, class HT, class TT>
-inline typename access_traits<
-                  typename element<N, cons<HT, TT> >::type
-                >::non_const_type
-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 NDNBOOST_DEDUCED_TYPENAME impl::type cons_element;
-  return const_cast<cons_element&>(impl::call(c)).head;
-}
-
-// get function for const cons-lists, returns a const reference to
-// the element. If the element is a reference, returns the reference
-// as such (that is, can return a non-const reference)
-template<int N, class HT, class TT>
-inline typename access_traits<
-                  typename element<N, cons<HT, TT> >::type
-                >::const_type
-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 NDNBOOST_DEDUCED_TYPENAME impl::type cons_element;
-  return impl::call(c).head;
-}
-
-// -- the cons template  --------------------------------------------------
-namespace detail {
-
-//  These helper templates wrap void types and plain function types.
-//  The reationale is to allow one to write tuple types with those types
-//  as elements, even though it is not possible to instantiate such object.
-//  E.g: typedef tuple<void> some_type; // ok
-//  but: some_type x; // fails
-
-template <class T> class non_storeable_type {
-  non_storeable_type();
-};
-
-template <class T> struct wrap_non_storeable_type {
-  typedef typename IF<
-    ::ndnboost::is_function<T>::value, non_storeable_type<T>, T
-  >::RET type;
-};
-template <> struct wrap_non_storeable_type<void> {
-  typedef non_storeable_type<void> type;
-};
-
-} // detail
-
-template <class HT, class TT>
-struct cons {
-
-  typedef HT head_type;
-  typedef TT tail_type;
-
-  typedef typename
-    detail::wrap_non_storeable_type<head_type>::type stored_head_type;
-
-  stored_head_type head;
-  tail_type tail;
-
-  typename access_traits<stored_head_type>::non_const_type
-  get_head() { return head; }
-
-  typename access_traits<tail_type>::non_const_type
-  get_tail() { return tail; }
-
-  typename access_traits<stored_head_type>::const_type
-  get_head() const { return head; }
-
-  typename access_traits<tail_type>::const_type
-  get_tail() const { return tail; }
-
-  cons() : head(), tail() {}
-  //  cons() : head(detail::default_arg<HT>::f()), tail() {}
-
-  // the argument for head is not strictly needed, but it prevents
-  // array type elements. This is good, since array type elements
-  // cannot be supported properly in any case (no assignment,
-  // copy works only if the tails are exactly the same type, ...)
-
-  cons(typename access_traits<stored_head_type>::parameter_type h,
-       const tail_type& t)
-    : head (h), tail(t) {}
-
-  template <class T1, class T2, class T3, class T4, class T5,
-            class T6, class T7, class T8, class T9, class T10>
-  cons( T1& t1, T2& t2, T3& t3, T4& t4, T5& t5,
-        T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 )
-    : head (t1),
-      tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull())
-      {}
-
-  template <class T2, class T3, class T4, class T5,
-            class T6, class T7, class T8, class T9, class T10>
-  cons( const null_type& /*t1*/, T2& t2, T3& t3, T4& t4, T5& t5,
-        T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 )
-    : head (),
-      tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull())
-      {}
-
-
-  template <class HT2, class TT2>
-  cons( const cons<HT2, TT2>& u ) : head(u.head), tail(u.tail) {}
-
-  template <class HT2, class TT2>
-  cons& operator=( const cons<HT2, TT2>& u ) {
-    head=u.head; tail=u.tail; return *this;
-  }
-
-  // must define assignment operator explicitly, implicit version is
-  // illformed if HT is a reference (12.8. (12))
-  cons& operator=(const cons& u) {
-    head = u.head; tail = u.tail;  return *this;
-  }
-
-  template <class T1, class T2>
-  cons& operator=( const std::pair<T1, T2>& u ) {
-    NDNBOOST_STATIC_ASSERT(length<cons>::value == 2); // check length = 2
-    head = u.first; tail.head = u.second; return *this;
-  }
-
-  // get member functions (non-const and const)
-  template <int N>
-  typename access_traits<
-             typename element<N, cons<HT, TT> >::type
-           >::non_const_type
-  get() {
-    return ndnboost::tuples::get<N>(*this); // delegate to non-member get
-  }
-
-  template <int N>
-  typename access_traits<
-             typename element<N, cons<HT, TT> >::type
-           >::const_type
-  get() const {
-    return ndnboost::tuples::get<N>(*this); // delegate to non-member get
-  }
-};
-
-template <class HT>
-struct cons<HT, null_type> {
-
-  typedef HT head_type;
-  typedef null_type tail_type;
-  typedef cons<HT, null_type> self_type;
-
-  typedef typename
-    detail::wrap_non_storeable_type<head_type>::type stored_head_type;
-  stored_head_type head;
-
-  typename access_traits<stored_head_type>::non_const_type
-  get_head() { return head; }
-
-  null_type get_tail() { return null_type(); }
-
-  typename access_traits<stored_head_type>::const_type
-  get_head() const { return head; }
-
-  const null_type get_tail() const { return null_type(); }
-
-  //  cons() : head(detail::default_arg<HT>::f()) {}
-  cons() : head() {}
-
-  cons(typename access_traits<stored_head_type>::parameter_type h,
-       const null_type& = null_type())
-    : head (h) {}
-
-  template<class T1>
-  cons(T1& t1, const null_type&, const null_type&, const null_type&,
-       const null_type&, const null_type&, const null_type&,
-       const null_type&, const null_type&, const null_type&)
-  : head (t1) {}
-
-  cons(const null_type&,
-       const null_type&, const null_type&, const null_type&,
-       const null_type&, const null_type&, const null_type&,
-       const null_type&, const null_type&, const null_type&)
-  : head () {}
-
-  template <class HT2>
-  cons( const cons<HT2, null_type>& u ) : head(u.head) {}
-
-  template <class HT2>
-  cons& operator=(const cons<HT2, null_type>& u )
-  { head = u.head; return *this; }
-
-  // must define assignment operator explicitely, implicit version
-  // is illformed if HT is a reference
-  cons& operator=(const cons& u) { head = u.head; return *this; }
-
-  template <int N>
-  typename access_traits<
-             typename element<N, self_type>::type
-            >::non_const_type
-  get(NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
-    return ndnboost::tuples::get<N>(*this);
-  }
-
-  template <int N>
-  typename access_traits<
-             typename element<N, self_type>::type
-           >::const_type
-  get(NDNBOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) const {
-    return ndnboost::tuples::get<N>(*this);
-  }
-
-};
-
-// templates for finding out the length of the tuple -------------------
-
-template<class T>
-struct length  {
-  NDNBOOST_STATIC_CONSTANT(int, value = 1 + length<typename T::tail_type>::value);
-};
-
-template<>
-struct length<tuple<> > {
-  NDNBOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-template<>
-struct length<tuple<> const> {
-  NDNBOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-template<>
-struct length<null_type> {
-  NDNBOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-template<>
-struct length<null_type const> {
-  NDNBOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-namespace detail {
-
-// Tuple to cons mapper --------------------------------------------------
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-struct map_tuple_to_cons
-{
-  typedef cons<T0,
-               typename map_tuple_to_cons<T1, T2, T3, T4, T5,
-                                          T6, T7, T8, T9, null_type>::type
-              > type;
-};
-
-// The empty tuple is a null_type
-template <>
-struct map_tuple_to_cons<null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type>
-{
-  typedef null_type type;
-};
-
-} // end detail
-
-// -------------------------------------------------------------------
-// -- tuple ------------------------------------------------------
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-
-class tuple :
-  public detail::map_tuple_to_cons<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
-{
-public:
-  typedef typename
-    detail::map_tuple_to_cons<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type inherited;
-  typedef typename inherited::head_type head_type;
-  typedef typename inherited::tail_type tail_type;
-
-
-// access_traits<T>::parameter_type takes non-reference types as const T&
-  tuple() {}
-
-  tuple(typename access_traits<T0>::parameter_type t0)
-    : inherited(t0, detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1)
-    : inherited(t0, t1, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2)
-    : inherited(t0, t1, t2, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3)
-    : inherited(t0, t1, t2, t3, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4)
-    : inherited(t0, t1, t2, t3, t4, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5)
-    : inherited(t0, t1, t2, t3, t4, t5, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5,
-        typename access_traits<T6>::parameter_type t6)
-    : inherited(t0, t1, t2, t3, t4, t5, t6, detail::cnull(),
-                detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5,
-        typename access_traits<T6>::parameter_type t6,
-        typename access_traits<T7>::parameter_type t7)
-    : inherited(t0, t1, t2, t3, t4, t5, t6, t7, detail::cnull(),
-                detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5,
-        typename access_traits<T6>::parameter_type t6,
-        typename access_traits<T7>::parameter_type t7,
-        typename access_traits<T8>::parameter_type t8)
-    : inherited(t0, t1, t2, t3, t4, t5, t6, t7, t8, detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5,
-        typename access_traits<T6>::parameter_type t6,
-        typename access_traits<T7>::parameter_type t7,
-        typename access_traits<T8>::parameter_type t8,
-        typename access_traits<T9>::parameter_type t9)
-    : inherited(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {}
-
-
-  template<class U1, class U2>
-  tuple(const cons<U1, U2>& p) : inherited(p) {}
-
-  template <class U1, class U2>
-  tuple& operator=(const cons<U1, U2>& k) {
-    inherited::operator=(k);
-    return *this;
-  }
-
-  template <class U1, class U2>
-  tuple& operator=(const std::pair<U1, U2>& k) {
-    NDNBOOST_STATIC_ASSERT(length<tuple>::value == 2);// check_length = 2
-    this->head = k.first;
-    this->tail.head = k.second;
-    return *this;
-  }
-
-};
-
-// The empty tuple
-template <>
-class tuple<null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type>  :
-  public null_type
-{
-public:
-  typedef null_type inherited;
-};
-
-
-// Swallows any assignment   (by Doug Gregor)
-namespace detail {
-
-struct swallow_assign;
-typedef void (detail::swallow_assign::*ignore_t)();
-struct swallow_assign {
-  swallow_assign(ignore_t(*)(ignore_t)) {}
-  template<typename T>
-  swallow_assign const& operator=(const T&) const {
-    return *this;
-  }
-};
-
-
-} // namespace detail
-
-// "ignore" allows tuple positions to be ignored when using "tie".
-inline detail::ignore_t ignore(detail::ignore_t) { return 0; }
-
-// ---------------------------------------------------------------------------
-// The call_traits for make_tuple
-// Honours the reference_wrapper class.
-
-// Must be instantiated with plain or const plain types (not with references)
-
-// from template<class T> foo(const T& t) : make_tuple_traits<const T>::type
-// from template<class T> foo(T& t) : make_tuple_traits<T>::type
-
-// Conversions:
-// T -> T,
-// references -> compile_time_error
-// reference_wrapper<T> -> T&
-// const reference_wrapper<T> -> T&
-// array -> const ref array
-
-
-template<class T>
-struct make_tuple_traits {
-  typedef T type;
-
-  // commented away, see below  (JJ)
-  //  typedef typename IF<
-  //  ndnboost::is_function<T>::value,
-  //  T&,
-  //  T>::RET type;
-
-};
-
-// The is_function test was there originally for plain function types,
-// which can't be stored as such (we must either store them as references or
-// pointers). Such a type could be formed if make_tuple was called with a
-// reference to a function.
-// But this would mean that a const qualified function type was formed in
-// the make_tuple function and hence make_tuple can't take a function
-// reference as a parameter, and thus T can't be a function type.
-// So is_function test was removed.
-// (14.8.3. says that type deduction fails if a cv-qualified function type
-// is created. (It only applies for the case of explicitly specifying template
-// args, though?)) (JJ)
-
-template<class T>
-struct make_tuple_traits<T&> {
-  typedef typename
-     detail::generate_error<T&>::
-       do_not_use_with_reference_type error;
-};
-
-// Arrays can't be stored as plain types; convert them to references.
-// All arrays are converted to const. This is because make_tuple takes its
-// parameters as const T& and thus the knowledge of the potential
-// non-constness of actual argument is lost.
-template<class T, int n>  struct make_tuple_traits <T[n]> {
-  typedef const T (&type)[n];
-};
-
-template<class T, int n>
-struct make_tuple_traits<const T[n]> {
-  typedef const T (&type)[n];
-};
-
-template<class T, int n>  struct make_tuple_traits<volatile T[n]> {
-  typedef const volatile T (&type)[n];
-};
-
-template<class T, int n>
-struct make_tuple_traits<const volatile T[n]> {
-  typedef const volatile T (&type)[n];
-};
-
-template<class T>
-struct make_tuple_traits<reference_wrapper<T> >{
-  typedef T& type;
-};
-
-template<class T>
-struct make_tuple_traits<const reference_wrapper<T> >{
-  typedef T& type;
-};
-
-template<>
-struct make_tuple_traits<detail::ignore_t(detail::ignore_t)> {
-  typedef detail::swallow_assign type;
-};
-
-
-
-namespace detail {
-
-// a helper traits to make the make_tuple functions shorter (Vesa Karvonen's
-// suggestion)
-template <
-  class T0 = null_type, class T1 = null_type, class T2 = null_type,
-  class T3 = null_type, class T4 = null_type, class T5 = null_type,
-  class T6 = null_type, class T7 = null_type, class T8 = null_type,
-  class T9 = null_type
->
-struct make_tuple_mapper {
-  typedef
-    tuple<typename make_tuple_traits<T0>::type,
-          typename make_tuple_traits<T1>::type,
-          typename make_tuple_traits<T2>::type,
-          typename make_tuple_traits<T3>::type,
-          typename make_tuple_traits<T4>::type,
-          typename make_tuple_traits<T5>::type,
-          typename make_tuple_traits<T6>::type,
-          typename make_tuple_traits<T7>::type,
-          typename make_tuple_traits<T8>::type,
-          typename make_tuple_traits<T9>::type> type;
-};
-
-} // end detail
-
-// -make_tuple function templates -----------------------------------
-inline tuple<> make_tuple() {
-  return tuple<>();
-}
-
-template<class T0>
-inline typename detail::make_tuple_mapper<T0>::type
-make_tuple(const T0& t0) {
-  typedef typename detail::make_tuple_mapper<T0>::type t;
-  return t(t0);
-}
-
-template<class T0, class T1>
-inline typename detail::make_tuple_mapper<T0, T1>::type
-make_tuple(const T0& t0, const T1& t1) {
-  typedef typename detail::make_tuple_mapper<T0, T1>::type t;
-  return t(t0, t1);
-}
-
-template<class T0, class T1, class T2>
-inline typename detail::make_tuple_mapper<T0, T1, T2>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2) {
-  typedef typename detail::make_tuple_mapper<T0, T1, T2>::type t;
-  return t(t0, t1, t2);
-}
-
-template<class T0, class T1, class T2, class T3>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3) {
-  typedef typename detail::make_tuple_mapper<T0, T1, T2, T3>::type t;
-  return t(t0, t1, t2, t3);
-}
-
-template<class T0, class T1, class T2, class T3, class T4>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4) {
-  typedef typename detail::make_tuple_mapper<T0, T1, T2, T3, T4>::type t;
-  return t(t0, t1, t2, t3, t4);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5) {
-  typedef typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5>::type t;
-  return t(t0, t1, t2, t3, t4, t5);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5, T6>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5, const T6& t6) {
-  typedef typename detail::make_tuple_mapper
-           <T0, T1, T2, T3, T4, T5, T6>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5, T6, T7>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5, const T6& t6, const T7& t7) {
-  typedef typename detail::make_tuple_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7, class T8>
-inline typename detail::make_tuple_mapper
-  <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5, const T6& t6, const T7& t7,
-                  const T8& t8) {
-  typedef typename detail::make_tuple_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7, class T8, class T9>
-inline typename detail::make_tuple_mapper
-  <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5, const T6& t6, const T7& t7,
-                  const T8& t8, const T9& t9) {
-  typedef typename detail::make_tuple_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);
-}
-
-namespace detail {
-
-template<class T>
-struct tie_traits {
-  typedef T& type;
-};
-
-template<>
-struct tie_traits<ignore_t(ignore_t)> {
-  typedef swallow_assign type;
-};
-
-template<>
-struct tie_traits<void> {
-  typedef null_type type;
-};
-
-template <
-  class T0 = void, class T1 = void, class T2 = void,
-  class T3 = void, class T4 = void, class T5 = void,
-  class T6 = void, class T7 = void, class T8 = void,
-  class T9 = void
->
-struct tie_mapper {
-  typedef
-    tuple<typename tie_traits<T0>::type,
-          typename tie_traits<T1>::type,
-          typename tie_traits<T2>::type,
-          typename tie_traits<T3>::type,
-          typename tie_traits<T4>::type,
-          typename tie_traits<T5>::type,
-          typename tie_traits<T6>::type,
-          typename tie_traits<T7>::type,
-          typename tie_traits<T8>::type,
-          typename tie_traits<T9>::type> type;
-};
-
-}
-
-// Tie function templates -------------------------------------------------
-template<class T0>
-inline typename detail::tie_mapper<T0>::type
-tie(T0& t0) {
-  typedef typename detail::tie_mapper<T0>::type t;
-  return t(t0);
-}
-
-template<class T0, class T1>
-inline typename detail::tie_mapper<T0, T1>::type
-tie(T0& t0, T1& t1) {
-  typedef typename detail::tie_mapper<T0, T1>::type t;
-  return t(t0, t1);
-}
-
-template<class T0, class T1, class T2>
-inline typename detail::tie_mapper<T0, T1, T2>::type
-tie(T0& t0, T1& t1, T2& t2) {
-  typedef typename detail::tie_mapper<T0, T1, T2>::type t;
-  return t(t0, t1, t2);
-}
-
-template<class T0, class T1, class T2, class T3>
-inline typename detail::tie_mapper<T0, T1, T2, T3>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3) {
-  typedef typename detail::tie_mapper<T0, T1, T2, T3>::type t;
-  return t(t0, t1, t2, t3);
-}
-
-template<class T0, class T1, class T2, class T3, class T4>
-inline typename detail::tie_mapper<T0, T1, T2, T3, T4>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4) {
-  typedef typename detail::tie_mapper<T0, T1, T2, T3, T4>::type t;
-  return t(t0, t1, t2, t3, t4);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5>
-inline typename detail::tie_mapper<T0, T1, T2, T3, T4, T5>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5) {
-  typedef typename detail::tie_mapper<T0, T1, T2, T3, T4, T5>::type t;
-  return t(t0, t1, t2, t3, t4, t5);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6>
-inline typename detail::tie_mapper<T0, T1, T2, T3, T4, T5, T6>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5, T6& t6) {
-  typedef typename detail::tie_mapper
-           <T0, T1, T2, T3, T4, T5, T6>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7>
-inline typename detail::tie_mapper<T0, T1, T2, T3, T4, T5, T6, T7>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5, T6& t6, T7& t7) {
-  typedef typename detail::tie_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7, class T8>
-inline typename detail::tie_mapper
-  <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5, T6& t6, T7& t7,
-                  T8& t8) {
-  typedef typename detail::tie_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7, class T8, class T9>
-inline typename detail::tie_mapper
-  <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5, T6& t6, T7& t7,
-                  T8& t8, T9& t9) {
-  typedef typename detail::tie_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);
-}
-
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs,
-          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs);
-inline void swap(null_type&, null_type&) {}
-template<class HH>
-inline void swap(cons<HH, null_type>& lhs, cons<HH, null_type>& rhs) {
-  ::ndnboost::swap(lhs.head, rhs.head);
-}
-template<class HH, class TT>
-inline void swap(cons<HH, TT>& lhs, cons<HH, TT>& rhs) {
-  ::ndnboost::swap(lhs.head, rhs.head);
-  ::ndnboost::tuples::swap(lhs.tail, rhs.tail);
-}
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-inline void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs,
-          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs) {
-  typedef tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> tuple_type;
-  typedef typename tuple_type::inherited base;
-  ::ndnboost::tuples::swap(static_cast<base&>(lhs), static_cast<base&>(rhs));
-}
-
-} // end of namespace tuples
-} // end of namespace ndnboost
-
-
-#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
deleted file mode 100644
index 59222b7..0000000
--- a/include/ndnboost/tuple/detail/tuple_basic_no_partial_spec.hpp
+++ /dev/null
@@ -1,865 +0,0 @@
-// - tuple_basic_no_partial_spec.hpp -----------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-// Copyright (C) 2001 Douglas Gregor (gregod@rpi.edu)
-// Copyright (C) 2001 Gary Powell (gary.powell@sierra.com)
-//
-// 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)
-
-// For more information, see http://www.boost.org or http://lambda.cs.utu.fi
-
-// Revision History
-//  14 02 01    Remove extra ';'. Also, fixed 10-parameter to make_tuple. (DG)
-//  10 02 01    Fixed "null_type" constructors.
-//              Implemented comparison operators globally.
-//              Hide element_type_ref and element_type_const_ref.
-//              (DG).
-//  09 02 01    Extended to tuples of length 10. Changed comparison for
-//              operator<()
-//              to the same used by std::pair<>, added cnull_type() (GP)
-//  03 02 01    Initial Version from original tuple.hpp code by JJ. (DG)
-
-// -----------------------------------------------------------------
-
-#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 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
-#endif
-
-namespace ndnboost {
-namespace tuples {
-
-    // null_type denotes the end of a list built with "cons"
-    struct null_type
-    {
-      null_type() {}
-      null_type(const null_type&, const null_type&) {}
-    };
-
-    // a helper function to provide a const null_type type temporary
-    inline const null_type cnull_type() { return null_type(); }
-
-// forward declaration of tuple
-    template<
-      typename T1 = null_type,
-      typename T2 = null_type,
-      typename T3 = null_type,
-      typename T4 = null_type,
-      typename T5 = null_type,
-      typename T6 = null_type,
-      typename T7 = null_type,
-      typename T8 = null_type,
-      typename T9 = null_type,
-      typename T10 = null_type
-    >
-    class tuple;
-
-// forward declaration of cons
-    template<typename Head, typename Tail = null_type>
-    struct cons;
-
-    namespace detail {
-
-      // Takes a pointer and routes all assignments to whatever it points to
-      template<typename T>
-      struct assign_to_pointee
-      {
-      public:
-        explicit assign_to_pointee(T* p) : ptr(p) {}
-
-        template<typename Other>
-        assign_to_pointee& operator=(const Other& other)
-        {
-          *ptr = other;
-          return *this;
-        }
-
-      private:
-        T* ptr;
-      };
-
-      // Swallows any assignment
-      struct swallow_assign
-      {
-        template<typename T>
-        swallow_assign const& operator=(const T&) const
-        {
-          return *this;
-        }
-      };
-
-    template <typename T> struct add_const_reference : add_reference<typename add_const<T>::type> {};
-
-    template <class MyTail>
-    struct init_tail
-    {
-        // Each of vc6 and vc7 seem to require a different formulation
-        // of this return type
-        template <class H, class T>
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-        static typename add_reference<typename add_const<T>::type>::type
-#else
-        static typename add_const_reference<T>::type
-#endif
-        execute( cons<H,T> const& u, long )
-        {
-            return u.get_tail();
-        }
-    };
-
-    template <>
-    struct init_tail<null_type>
-    {
-        template <class H>
-        static null_type execute( cons<H,null_type> const& u, long )
-        {
-            return null_type();
-        }
-
-        template <class U>
-        static null_type execute(U const&, ...)
-        {
-            return null_type();
-        }
-     private:
-        template <class H, class T>
-        void execute( cons<H,T> const&, int);
-    };
-
-    template <class Other>
-    Other const&
-    init_head( Other const& u, ... )
-    {
-        return u;
-    }
-
-    template <class H, class T>
-    typename add_reference<typename add_const<H>::type>::type
-    init_head( cons<H,T> const& u, int )
-    {
-        return u.get_head();
-    }
-
-    inline char**** init_head(null_type const&, int);
-
-  } // end of namespace detail
-
-    // cons builds a heterogenous list of types
-   template<typename Head, typename Tail>
-   struct cons
-   {
-     typedef cons self_type;
-     typedef Head head_type;
-     typedef Tail tail_type;
-
-    private:
-       typedef typename ndnboost::add_reference<head_type>::type head_ref;
-       typedef typename ndnboost::add_reference<tail_type>::type tail_ref;
-       typedef typename detail::add_const_reference<head_type>::type head_cref;
-       typedef typename detail::add_const_reference<tail_type>::type tail_cref;
-    public:
-     head_type head;
-     tail_type tail;
-
-     head_ref get_head() { return head; }
-     tail_ref get_tail() { return tail; }
-
-     head_cref get_head() const { return head; }
-     tail_cref get_tail() const { return tail; }
-
-     cons() : head(), tail() {}
-
-#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)
-      {
-      }
-
-      cons(head_cref h /* = head_type() */, // causes MSVC 6.5 to barf.
-                    const null_type& t) : head(h), tail(t)
-      {
-      }
-
-#else
-      template<typename T>
-      explicit cons(head_cref h, const T& t) :
-        head(h), tail(t.head, t.tail)
-      {
-      }
-
-      explicit cons(head_cref h = head_type(),
-                    tail_cref t = tail_type()) :
-        head(h), tail(t)
-      {
-      }
-#endif
-
-      template <class U>
-      cons( const U& u )
-        : head(detail::init_head(u, 0))
-        , tail(detail::init_tail<Tail>::execute(u, 0L))
-       {
-       }
-
-      template<typename Other>
-      cons& operator=(const Other& other)
-      {
-        head = other.head;
-        tail = other.tail;
-        return *this;
-      }
-    };
-
-    namespace detail {
-
-      // Determines if the parameter is null_type
-      template<typename T> struct is_null_type { enum { RET = 0 }; };
-      template<> struct is_null_type<null_type> { enum { RET = 1 }; };
-
-      /* Build a cons structure from the given Head and Tail. If both are null_type,
-      return null_type. */
-      template<typename Head, typename Tail>
-      struct build_cons
-      {
-      private:
-        enum { tail_is_null_type = is_null_type<Tail>::RET };
-      public:
-        typedef cons<Head, Tail> RET;
-      };
-
-      template<>
-      struct build_cons<null_type, null_type>
-      {
-        typedef null_type RET;
-      };
-
-      // Map the N elements of a tuple into a cons list
-      template<
-        typename T1,
-        typename T2 = null_type,
-        typename T3 = null_type,
-        typename T4 = null_type,
-        typename T5 = null_type,
-        typename T6 = null_type,
-        typename T7 = null_type,
-        typename T8 = null_type,
-        typename T9 = null_type,
-        typename T10 = null_type
-      >
-      struct map_tuple_to_cons
-      {
-        typedef typename detail::build_cons<T10, null_type  >::RET cons10;
-        typedef typename detail::build_cons<T9, cons10>::RET cons9;
-        typedef typename detail::build_cons<T8, cons9>::RET cons8;
-        typedef typename detail::build_cons<T7, cons8>::RET cons7;
-        typedef typename detail::build_cons<T6, cons7>::RET cons6;
-        typedef typename detail::build_cons<T5, cons6>::RET cons5;
-        typedef typename detail::build_cons<T4, cons5>::RET cons4;
-        typedef typename detail::build_cons<T3, cons4>::RET cons3;
-        typedef typename detail::build_cons<T2, cons3>::RET cons2;
-        typedef typename detail::build_cons<T1, cons2>::RET cons1;
-      };
-
-      // Workaround the lack of partial specialization in some compilers
-      template<int N>
-      struct _element_type
-      {
-        template<typename Tuple>
-        struct inner
-        {
-        private:
-          typedef typename Tuple::tail_type tail_type;
-          typedef _element_type<N-1> next_elt_type;
-
-        public:
-          typedef typename _element_type<N-1>::template inner<tail_type>::RET RET;
-        };
-      };
-
-      template<>
-      struct _element_type<0>
-      {
-        template<typename Tuple>
-        struct inner
-        {
-          typedef typename Tuple::head_type RET;
-        };
-      };
-
-    } // namespace detail
-
-
-    // Return the Nth type of the given Tuple
-    template<int N, typename Tuple>
-    struct element
-    {
-    private:
-      typedef detail::_element_type<N> nth_type;
-
-    public:
-      typedef typename nth_type::template inner<Tuple>::RET RET;
-      typedef RET type;
-    };
-
-    namespace detail {
-
-#if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC == 1300)
-      // special workaround for vc7:
-
-      template <bool x>
-      struct reference_adder
-      {
-         template <class T>
-         struct rebind
-         {
-            typedef T& type;
-         };
-      };
-
-      template <>
-      struct reference_adder<true>
-      {
-         template <class T>
-         struct rebind
-         {
-            typedef T type;
-         };
-      };
-
-
-      // Return a reference to the Nth type of the given Tuple
-      template<int N, typename Tuple>
-      struct element_ref
-      {
-      private:
-         typedef typename element<N, Tuple>::RET elt_type;
-         enum { is_ref = is_reference<elt_type>::value };
-
-      public:
-         typedef reference_adder<is_ref>::rebind<elt_type>::type RET;
-         typedef RET type;
-      };
-
-      // Return a const reference to the Nth type of the given Tuple
-      template<int N, typename Tuple>
-      struct element_const_ref
-      {
-      private:
-         typedef typename element<N, Tuple>::RET elt_type;
-         enum { is_ref = is_reference<elt_type>::value };
-
-      public:
-         typedef reference_adder<is_ref>::rebind<const elt_type>::type RET;
-         typedef RET type;
-      };
-
-#else // vc7
-
-      // Return a reference to the Nth type of the given Tuple
-      template<int N, typename Tuple>
-      struct element_ref
-      {
-      private:
-        typedef typename element<N, Tuple>::RET elt_type;
-
-      public:
-        typedef typename add_reference<elt_type>::type RET;
-        typedef RET type;
-      };
-
-      // Return a const reference to the Nth type of the given Tuple
-      template<int N, typename Tuple>
-      struct element_const_ref
-      {
-      private:
-        typedef typename element<N, Tuple>::RET elt_type;
-
-      public:
-        typedef typename add_reference<const elt_type>::type RET;
-        typedef RET type;
-      };
-#endif // vc7
-
-    } // namespace detail
-
-    // Get length of this tuple
-    template<typename Tuple>
-    struct length
-    {
-      NDNBOOST_STATIC_CONSTANT(int, value = 1 + length<typename Tuple::tail_type>::value);
-    };
-
-    template<> struct length<tuple<> > {
-      NDNBOOST_STATIC_CONSTANT(int, value = 0);
-    };
-
-    template<>
-    struct length<null_type>
-    {
-      NDNBOOST_STATIC_CONSTANT(int, value = 0);
-    };
-
-    namespace detail {
-
-    // Reference the Nth element in a tuple and retrieve it with "get"
-    template<int N>
-    struct get_class
-    {
-      template<typename Head, typename Tail>
-      static inline
-      typename detail::element_ref<N, cons<Head, Tail> >::RET
-      get(cons<Head, Tail>& t)
-      {
-        return get_class<N-1>::get(t.tail);
-      }
-
-      template<typename Head, typename Tail>
-      static inline
-      typename detail::element_const_ref<N, cons<Head, Tail> >::RET
-      get(const cons<Head, Tail>& t)
-      {
-        return get_class<N-1>::get(t.tail);
-      }
-    };
-
-    template<>
-    struct get_class<0>
-    {
-      template<typename Head, typename Tail>
-      static inline
-      typename add_reference<Head>::type
-      get(cons<Head, Tail>& t)
-      {
-        return t.head;
-      }
-
-      template<typename Head, typename Tail>
-      static inline
-      typename add_reference<const Head>::type
-      get(const cons<Head, Tail>& t)
-      {
-        return t.head;
-      }
-    };
-
-    } // namespace detail
-
-    // tuple class
-    template<
-      typename T1,
-      typename T2,
-      typename T3,
-      typename T4,
-      typename T5,
-      typename T6,
-      typename T7,
-      typename T8,
-      typename T9,
-      typename T10
-    >
-    class tuple :
-      public detail::map_tuple_to_cons<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::cons1
-    {
-    private:
-      typedef detail::map_tuple_to_cons<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> mapped_tuple;
-      typedef typename mapped_tuple::cons10 cons10;
-      typedef typename mapped_tuple::cons9 cons9;
-      typedef typename mapped_tuple::cons8 cons8;
-      typedef typename mapped_tuple::cons7 cons7;
-      typedef typename mapped_tuple::cons6 cons6;
-      typedef typename mapped_tuple::cons5 cons5;
-      typedef typename mapped_tuple::cons4 cons4;
-      typedef typename mapped_tuple::cons3 cons3;
-      typedef typename mapped_tuple::cons2 cons2;
-      typedef typename mapped_tuple::cons1 cons1;
-
-      typedef typename detail::add_const_reference<T1>::type t1_cref;
-      typedef typename detail::add_const_reference<T2>::type t2_cref;
-      typedef typename detail::add_const_reference<T3>::type t3_cref;
-      typedef typename detail::add_const_reference<T4>::type t4_cref;
-      typedef typename detail::add_const_reference<T5>::type t5_cref;
-      typedef typename detail::add_const_reference<T6>::type t6_cref;
-      typedef typename detail::add_const_reference<T7>::type t7_cref;
-      typedef typename detail::add_const_reference<T8>::type t8_cref;
-      typedef typename detail::add_const_reference<T9>::type t9_cref;
-      typedef typename detail::add_const_reference<T10>::type t10_cref;
-    public:
-      typedef cons1 inherited;
-      typedef tuple self_type;
-
-      tuple() : cons1(T1(), cons2(T2(), cons3(T3(), cons4(T4(), cons5(T5(), cons6(T6(),cons7(T7(),cons8(T8(),cons9(T9(),cons10(T10()))))))))))
-        {}
-
-      tuple(
-          t1_cref t1,
-          t2_cref t2,
-          t3_cref t3 = T3(),
-          t4_cref t4 = T4(),
-          t5_cref t5 = T5(),
-          t6_cref t6 = T6(),
-          t7_cref t7 = T7(),
-          t8_cref t8 = T8(),
-          t9_cref t9 = T9(),
-          t10_cref t10 = T10()
-      ) :
-        cons1(t1, cons2(t2, cons3(t3, cons4(t4, cons5(t5, cons6(t6,cons7(t7,cons8(t8,cons9(t9,cons10(t10))))))))))
-      {
-      }
-
-      explicit tuple(t1_cref t1)
-        : cons1(t1, cons2(T2(), cons3(T3(), cons4(T4(), cons5(T5(), cons6(T6(),cons7(T7(),cons8(T8(),cons9(T9(),cons10(T10()))))))))))
-      {}
-
-      template<typename Head, typename Tail>
-      tuple(const cons<Head, Tail>& other) :
-        cons1(other.head, other.tail)
-      {
-      }
-
-      template<typename First, typename Second>
-      self_type& operator=(const std::pair<First, Second>& other)
-      {
-        this->head = other.first;
-        this->tail.head = other.second;
-        return *this;
-      }
-
-      template<typename Head, typename Tail>
-      self_type& operator=(const cons<Head, Tail>& other)
-      {
-        this->head = other.head;
-        this->tail = other.tail;
-
-        return *this;
-      }
-    };
-
-    namespace detail {
-
-      template<int N> struct workaround_holder {};
-
-    } // namespace detail
-
-    template<int N, typename Head, typename Tail>
-    typename detail::element_ref<N, cons<Head, Tail> >::RET
-    get(cons<Head, Tail>& t, detail::workaround_holder<N>* = 0)
-    {
-      return detail::get_class<N>::get(t);
-    }
-
-    template<int N, typename Head, typename Tail>
-    typename detail::element_const_ref<N, cons<Head, Tail> >::RET
-    get(const cons<Head, Tail>& t, detail::workaround_holder<N>* = 0)
-    {
-      return detail::get_class<N>::get(t);
-    }
-
-    // Make a tuple
-    template<typename T1>
-    inline
-    tuple<T1>
-    make_tuple(const T1& t1)
-    {
-      return tuple<T1>(t1);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2>
-    inline
-    tuple<T1, T2>
-    make_tuple(const T1& t1, const T2& t2)
-    {
-      return tuple<T1, T2>(t1, t2);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3>
-    inline
-    tuple<T1, T2, T3>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3)
-    {
-      return tuple<T1, T2, T3>(t1, t2, t3);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4>
-    inline
-    tuple<T1, T2, T3, T4>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4)
-    {
-      return tuple<T1, T2, T3, T4>(t1, t2, t3, t4);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5>
-    inline
-    tuple<T1, T2, T3, T4, T5>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5)
-    {
-      return tuple<T1, T2, T3, T4, T5>(t1, t2, t3, t4, t5);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6>(t1, t2, t3, t4, t5, t6);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6, T7>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6, T7>(t1, t2, t3, t4, t5, t6, t7);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6, T7, T8>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7, const T8& t8)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6, T7, T8>(t1, t2, t3, t4, t5, t6, t7, t8);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7, const T8& t8, const T9& t9)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>(t1, t2, t3, t4, t5, t6, t7, t8, t9);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7, const T8& t8, const T9& t9, const T10& t10)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
-    }
-
-    // Tie variables into a tuple
-    template<typename T1>
-    inline
-    tuple<detail::assign_to_pointee<T1> >
-    tie(T1& t1)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2> >
-    tie(T1& t1, T2& t2)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3> >
-    tie(T1& t1, T2& t2, T3& t3)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6>,
-      detail::assign_to_pointee<T7> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6, T7 &t7)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6),
-                        detail::assign_to_pointee<T7>(&t7));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6>,
-      detail::assign_to_pointee<T7>,
-      detail::assign_to_pointee<T8> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6, T7 &t7, T8 &t8)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6),
-                        detail::assign_to_pointee<T7>(&t7),
-                        detail::assign_to_pointee<T8>(&t8));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6>,
-      detail::assign_to_pointee<T7>,
-      detail::assign_to_pointee<T8>,
-      detail::assign_to_pointee<T9> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6, T7 &t7, T8 &t8, T9 &t9)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6),
-                        detail::assign_to_pointee<T7>(&t7),
-                        detail::assign_to_pointee<T8>(&t8),
-                        detail::assign_to_pointee<T9>(&t9));
-    }
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6>,
-      detail::assign_to_pointee<T7>,
-      detail::assign_to_pointee<T8>,
-      detail::assign_to_pointee<T9>,
-      detail::assign_to_pointee<T10> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6, T7 &t7, T8 &t8, T9 &t9, T10 &t10)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6),
-                        detail::assign_to_pointee<T7>(&t7),
-                        detail::assign_to_pointee<T8>(&t8),
-                        detail::assign_to_pointee<T9>(&t9),
-                        detail::assign_to_pointee<T10>(&t10));
-    }
-    // "ignore" allows tuple positions to be ignored when using "tie".
-
-detail::swallow_assign const ignore = detail::swallow_assign();
-
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs,
-          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs);
-inline void swap(null_type&, null_type&) {}
-template<class HH>
-inline void swap(cons<HH, null_type>& lhs, cons<HH, null_type>& rhs) {
-  ::ndnboost::swap(lhs.head, rhs.head);
-}
-template<class HH, class TT>
-inline void swap(cons<HH, TT>& lhs, cons<HH, TT>& rhs) {
-  ::ndnboost::swap(lhs.head, rhs.head);
-  ::ndnboost::tuples::swap(lhs.tail, rhs.tail);
-}
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-inline void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs,
-          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs) {
-  typedef tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> tuple_type;
-  typedef typename tuple_type::inherited base;
-  ::ndnboost::tuples::swap(static_cast<base&>(lhs), static_cast<base&>(rhs));
-}
-
-} // namespace tuples
-} // namespace ndnboost
-#endif // NDNBOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
diff --git a/include/ndnboost/tuple/tuple.hpp b/include/ndnboost/tuple/tuple.hpp
deleted file mode 100644
index 40b5804..0000000
--- a/include/ndnboost/tuple/tuple.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//  tuple.hpp - Boost Tuple Library --------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-// 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)
-
-// For more information, see http://www.boost.org
-
-// ----------------------------------------------------------------- 
-
-#ifndef NDNBOOST_TUPLE_HPP
-#define NDNBOOST_TUPLE_HPP
-
-#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730
-// Work around a compiler bug.
-// ndnboost::python::tuple has to be seen by the compiler before the
-// ndnboost::tuple class template.
-namespace ndnboost { namespace python { class tuple; }}
-#endif
-
-#include "ndnboost/config.hpp"
-#include "ndnboost/static_assert.hpp"
-
-#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// The MSVC version
-#include "ndnboost/tuple/detail/tuple_basic_no_partial_spec.hpp"
-
-#else
-// other compilers
-#include "ndnboost/ref.hpp"
-#include "ndnboost/tuple/detail/tuple_basic.hpp"
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace ndnboost {    
-
-using tuples::tuple;
-using tuples::make_tuple;
-using tuples::tie;
-#if !defined(NDNBOOST_NO_USING_TEMPLATE)
-using tuples::get;
-#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-//
-// The "using tuples::get" statement causes the
-// Borland compiler to ICE, use forwarding
-// functions instead:
-//
-template<int N, class HT, class TT>
-inline typename tuples::access_traits<
-                  typename tuples::element<N, tuples::cons<HT, TT> >::type
-                >::non_const_type
-get(tuples::cons<HT, TT>& c) {
-  return tuples::get<N,HT,TT>(c);
-} 
-// get function for const cons-lists, returns a const reference to
-// the element. If the element is a reference, returns the reference
-// as such (that is, can return a non-const reference)
-template<int N, class HT, class TT>
-inline typename tuples::access_traits<
-                  typename tuples::element<N, tuples::cons<HT, TT> >::type
-                >::const_type
-get(const tuples::cons<HT, TT>& c) {
-  return tuples::get<N,HT,TT>(c);
-}
-#else  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-//
-// MSVC, using declarations don't mix with templates well,
-// so use forwarding functions instead:
-//
-template<int N, typename Head, typename Tail>
-typename tuples::detail::element_ref<N, tuples::cons<Head, Tail> >::RET
-get(tuples::cons<Head, Tail>& t, tuples::detail::workaround_holder<N>* = 0)
-{
-   return tuples::detail::get_class<N>::get(t);
-}
-
-template<int N, typename Head, typename Tail>
-typename tuples::detail::element_const_ref<N, tuples::cons<Head, Tail> >::RET
-get(const tuples::cons<Head, Tail>& t, tuples::detail::workaround_holder<N>* = 0)
-{
-   return tuples::detail::get_class<N>::get(t);
-}
-#endif // NDNBOOST_NO_USING_TEMPLATE
-   
-} // end namespace ndnboost
-
-
-#endif // NDNBOOST_TUPLE_HPP
diff --git a/include/ndnboost/type.hpp b/include/ndnboost/type.hpp
deleted file mode 100644
index 89b35f9..0000000
--- a/include/ndnboost/type.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// (C) Copyright David Abrahams 2001.
-// 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 NDNBOOST_TYPE_NDNBOOST_DWA20010120_HPP
-# define NDNBOOST_TYPE_NDNBOOST_DWA20010120_HPP
-
-namespace ndnboost {
-
-  // Just a simple "type envelope". Useful in various contexts, mostly to work
-  // around some MSVC deficiencies.
-  template <class T>
-  struct type {};
-
-}
-
-#endif // NDNBOOST_TYPE_NDNBOOST_DWA20010120_HPP
diff --git a/include/ndnboost/type_traits.hpp b/include/ndnboost/type_traits.hpp
deleted file mode 100644
index 10cccea..0000000
--- a/include/ndnboost/type_traits.hpp
+++ /dev/null
@@ -1,100 +0,0 @@
-//  (C) Copyright John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//  See ndnboost/type_traits/*.hpp for full copyright notices.
-
-#ifndef NDNBOOST_TYPE_TRAITS_HPP
-#define NDNBOOST_TYPE_TRAITS_HPP
-
-#include "ndnboost/type_traits/add_const.hpp"
-#include "ndnboost/type_traits/add_cv.hpp"
-#include "ndnboost/type_traits/add_lvalue_reference.hpp"
-#include "ndnboost/type_traits/add_pointer.hpp"
-#include "ndnboost/type_traits/add_reference.hpp"
-#include "ndnboost/type_traits/add_rvalue_reference.hpp"
-#include "ndnboost/type_traits/add_volatile.hpp"
-#include "ndnboost/type_traits/aligned_storage.hpp"
-#include "ndnboost/type_traits/alignment_of.hpp"
-#include "ndnboost/type_traits/common_type.hpp"
-#include "ndnboost/type_traits/conditional.hpp"
-#include "ndnboost/type_traits/decay.hpp"
-#include "ndnboost/type_traits/extent.hpp"
-#include "ndnboost/type_traits/floating_point_promotion.hpp"
-#include "ndnboost/type_traits/function_traits.hpp"
-#if !defined(__BORLANDC__) && !defined(__CUDACC__)
-#include "ndnboost/type_traits/has_new_operator.hpp"
-#endif
-#include "ndnboost/type_traits/has_nothrow_assign.hpp"
-#include "ndnboost/type_traits/has_nothrow_constructor.hpp"
-#include "ndnboost/type_traits/has_nothrow_copy.hpp"
-#include "ndnboost/type_traits/has_nothrow_destructor.hpp"
-#include <ndnboost/type_traits/has_operator.hpp>
-#include "ndnboost/type_traits/has_trivial_assign.hpp"
-#include "ndnboost/type_traits/has_trivial_constructor.hpp"
-#include "ndnboost/type_traits/has_trivial_copy.hpp"
-#include "ndnboost/type_traits/has_trivial_destructor.hpp"
-#include "ndnboost/type_traits/has_trivial_move_assign.hpp"
-#include "ndnboost/type_traits/has_trivial_move_constructor.hpp"
-#include "ndnboost/type_traits/has_virtual_destructor.hpp"
-#include "ndnboost/type_traits/is_abstract.hpp"
-#include "ndnboost/type_traits/is_arithmetic.hpp"
-#include "ndnboost/type_traits/is_array.hpp"
-#include "ndnboost/type_traits/is_base_and_derived.hpp"
-#include "ndnboost/type_traits/is_base_of.hpp"
-#include "ndnboost/type_traits/is_class.hpp"
-#include <ndnboost/type_traits/is_complex.hpp>
-#include "ndnboost/type_traits/is_compound.hpp"
-#include "ndnboost/type_traits/is_const.hpp"
-#include "ndnboost/type_traits/is_convertible.hpp"
-#include "ndnboost/type_traits/is_empty.hpp"
-#include "ndnboost/type_traits/is_enum.hpp"
-#include "ndnboost/type_traits/is_float.hpp"
-#include "ndnboost/type_traits/is_floating_point.hpp"
-#include "ndnboost/type_traits/is_function.hpp"
-#include "ndnboost/type_traits/is_fundamental.hpp"
-#include "ndnboost/type_traits/is_integral.hpp"
-#include "ndnboost/type_traits/is_lvalue_reference.hpp"
-#include "ndnboost/type_traits/is_member_function_pointer.hpp"
-#include "ndnboost/type_traits/is_member_object_pointer.hpp"
-#include "ndnboost/type_traits/is_member_pointer.hpp"
-#include "ndnboost/type_traits/is_nothrow_move_assignable.hpp"
-#include "ndnboost/type_traits/is_nothrow_move_constructible.hpp"
-#include "ndnboost/type_traits/is_object.hpp"
-#include "ndnboost/type_traits/is_pod.hpp"
-#include "ndnboost/type_traits/is_polymorphic.hpp"
-#include "ndnboost/type_traits/is_pointer.hpp"
-#include "ndnboost/type_traits/is_reference.hpp"
-#include "ndnboost/type_traits/is_rvalue_reference.hpp"
-#include "ndnboost/type_traits/is_signed.hpp"
-#include "ndnboost/type_traits/is_same.hpp"
-#include "ndnboost/type_traits/is_scalar.hpp"
-#include "ndnboost/type_traits/is_stateless.hpp"
-#include "ndnboost/type_traits/is_union.hpp"
-#include "ndnboost/type_traits/is_unsigned.hpp"
-#include "ndnboost/type_traits/is_void.hpp"
-#include "ndnboost/type_traits/is_virtual_base_of.hpp"
-#include "ndnboost/type_traits/is_volatile.hpp"
-#include <ndnboost/type_traits/make_unsigned.hpp>
-#include <ndnboost/type_traits/make_signed.hpp>
-#include "ndnboost/type_traits/rank.hpp"
-#include "ndnboost/type_traits/remove_bounds.hpp"
-#include "ndnboost/type_traits/remove_extent.hpp"
-#include "ndnboost/type_traits/remove_all_extents.hpp"
-#include "ndnboost/type_traits/remove_const.hpp"
-#include "ndnboost/type_traits/remove_cv.hpp"
-#include "ndnboost/type_traits/remove_pointer.hpp"
-#include "ndnboost/type_traits/remove_reference.hpp"
-#include "ndnboost/type_traits/remove_volatile.hpp"
-#include "ndnboost/type_traits/type_with_alignment.hpp"
-#if !(defined(__sgi) && defined(__EDG_VERSION__) && (__EDG_VERSION__ == 238))
-#include "ndnboost/type_traits/integral_promotion.hpp"
-#include "ndnboost/type_traits/promote.hpp"
-#endif
-
-#include "ndnboost/type_traits/ice.hpp"
-
-#endif // NDNBOOST_TYPE_TRAITS_HPP
diff --git a/include/ndnboost/type_traits/add_const.hpp b/include/ndnboost/type_traits/add_const.hpp
deleted file mode 100644
index 47c5ed0..0000000
--- a/include/ndnboost/type_traits/add_const.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_ADD_CONST_HPP_INCLUDED
-#define NDNBOOST_TT_ADD_CONST_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-// * convert a type T to const type - add_const<T>
-// this is not required since the result is always
-// the same as "T const", but it does suppress warnings
-// from some compilers:
-
-#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.
-#   pragma warning(push)
-#   pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif 
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_const,T,T const)
-
-#if defined(NDNBOOST_MSVC)
-#   pragma warning(pop)
-#endif 
-
-#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 // NDNBOOST_TT_ADD_CONST_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/add_cv.hpp b/include/ndnboost/type_traits/add_cv.hpp
deleted file mode 100644
index 8cd56d8..0000000
--- a/include/ndnboost/type_traits/add_cv.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef NDNBOOST_TT_ADD_CV_HPP_INCLUDED
-#define NDNBOOST_TT_ADD_CV_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-// * convert a type T to a const volatile type - add_cv<T>
-// this is not required since the result is always
-// the same as "T const volatile", but it does suppress warnings
-// from some compilers:
-
-#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.
-#   pragma warning(push)
-#   pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif 
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_cv,T,T const volatile)
-
-#if defined(NDNBOOST_MSVC)
-#   pragma warning(pop)
-#endif 
-
-#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 // 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
deleted file mode 100644
index 592efc5..0000000
--- a/include/ndnboost/type_traits/add_lvalue_reference.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//  Copyright 2010 John Maddock
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-#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>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost{
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_lvalue_reference,T,typename ndnboost::add_reference<T>::type)
-
-#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  // 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
deleted file mode 100644
index 726f60b..0000000
--- a/include/ndnboost/type_traits/add_pointer.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_ADD_POINTER_HPP_INCLUDED
-#define NDNBOOST_TT_ADD_POINTER_HPP_INCLUDED
-
-#include <ndnboost/type_traits/remove_reference.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x5A0)
-//
-// For some reason this implementation stops Borlands compiler
-// from dropping cv-qualifiers, it still fails with references
-// to arrays for some reason though (shrug...) (JM 20021104)
-//
-template <typename T>
-struct add_pointer_impl
-{
-    typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&>
-{
-    typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&const>
-{
-    typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&volatile>
-{
-    typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&const volatile>
-{
-    typedef T* type;
-};
-
-#else
-
-template <typename T>
-struct add_pointer_impl
-{
-    typedef typename remove_reference<T>::type no_ref_type;
-    typedef no_ref_type* type;
-};
-
-#endif
-
-} // namespace detail
-
-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 // NDNBOOST_TT_ADD_POINTER_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/add_reference.hpp b/include/ndnboost/type_traits/add_reference.hpp
deleted file mode 100644
index 993b8bc..0000000
--- a/include/ndnboost/type_traits/add_reference.hpp
+++ /dev/null
@@ -1,107 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-#if defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && defined(NDNBOOST_MSVC6_MEMBER_TEMPLATES)
-
-template <bool x>
-struct reference_adder
-{
-    template <typename T> struct result_
-    {
-        typedef T& type;
-    };
-};
-
-template <>
-struct reference_adder<true>
-{
-    template <typename T> struct result_
-    {
-        typedef T type;
-    };
-};
-
-template <typename T>
-struct add_reference_impl
-{
-    typedef typename reference_adder<
-          ::ndnboost::is_reference<T>::value
-        >::template result_<T> result;
-
-    typedef typename result::type type;
-};
-
-#else
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-
-template <typename T>
-struct add_reference_rvalue_layer
-{
-    typedef T& type;
-};
-
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-template <typename T>
-struct add_reference_rvalue_layer<T&&>
-{
-    typedef T&& type;
-};
-#endif
-
-template <typename T>
-struct add_reference_impl
-{
-    typedef typename add_reference_rvalue_layer<T>::type type;
-};
-
-#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:
-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
-
-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 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 // 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
deleted file mode 100644
index b163075..0000000
--- a/include/ndnboost/type_traits/add_rvalue_reference.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//  add_rvalue_reference.hpp  ---------------------------------------------------------//
-
-//  Copyright 2010 Vicente J. Botet Escriba
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-#ifndef NDNBOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
-#define NDNBOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
-
-#include <ndnboost/config.hpp>
-
-//----------------------------------------------------------------------------//
-
-#include <ndnboost/type_traits/is_void.hpp>
-#include <ndnboost/type_traits/is_reference.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-//----------------------------------------------------------------------------//
-//                                                                            //
-//                           C++03 implementation of                          //
-//             20.9.7.2 Reference modifications [meta.trans.ref]              //
-//                          Written by Vicente J. Botet Escriba               //
-//                                                                            //
-// If T names an object or function type then the member typedef type
-// shall name T&&; otherwise, type shall name T. [ Note: This rule reflects
-// the semantics of reference collapsing. For example, when a type T names
-// a type T1&, the type add_rvalue_reference<T>::type is not an rvalue
-// reference. -end note ]
-//----------------------------------------------------------------------------//
-
-namespace ndnboost {
-
-namespace type_traits_detail {
-
-    template <typename T, bool b>
-    struct add_rvalue_reference_helper
-    { typedef T   type; };
-
-#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    template <typename T>
-    struct add_rvalue_reference_helper<T, true>
-    {
-        typedef T&&   type;
-    };
-#endif
-
-    template <typename T>
-    struct add_rvalue_reference_imp
-    {
-       typedef typename ndnboost::type_traits_detail::add_rvalue_reference_helper
-                  <T, (is_void<T>::value == false && is_reference<T>::value == false) >::type 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  // 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
deleted file mode 100644
index a8f1162..0000000
--- a/include/ndnboost/type_traits/add_volatile.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_ADD_VOLATILE_HPP_INCLUDED
-#define NDNBOOST_TT_ADD_VOLATILE_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-// * convert a type T to volatile type - add_volatile<T>
-// this is not required since the result is always
-// the same as "T volatile", but it does suppress warnings
-// from some compilers:
-
-#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.
-#   pragma warning(push)
-#   pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif 
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(add_volatile,T,T volatile)
-
-#if defined(NDNBOOST_MSVC)
-#   pragma warning(pop)
-#endif 
-
-#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 // NDNBOOST_TT_ADD_VOLATILE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/aligned_storage.hpp b/include/ndnboost/type_traits/aligned_storage.hpp
deleted file mode 100644
index ade66a1..0000000
--- a/include/ndnboost/type_traits/aligned_storage.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-
-//  Copyright (C) John Maddock 2005.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-#  define NDNBOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-#  include <ndnboost/aligned_storage.hpp>
-#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
deleted file mode 100644
index c7d35ac..0000000
--- a/include/ndnboost/type_traits/alignment_of.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-
-//  (C) Copyright John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-#define NDNBOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <cstddef>
-
-#include <ndnboost/type_traits/intrinsics.hpp>
-// should be the last #include
-#include <ndnboost/type_traits/detail/size_t_trait_def.hpp>
-
-#ifdef NDNBOOST_MSVC
-#   pragma warning(push)
-#   pragma warning(disable: 4121 4512) // alignment is sensitive to packing
-#endif
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#pragma option push -Vx- -Ve-
-#endif
-
-namespace ndnboost {
-
-template <typename T> struct alignment_of;
-
-// get the alignment of some arbitrary type:
-namespace detail {
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4324) // structure was padded due to __declspec(align())
-#endif
-template <typename T>
-struct alignment_of_hack
-{
-    char c;
-    T t;
-    alignment_of_hack();
-};
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <unsigned A, unsigned S>
-struct alignment_logic
-{
-    NDNBOOST_STATIC_CONSTANT(std::size_t, value = A < S ? A : S);
-};
-
-
-template< typename T >
-struct alignment_of_impl
-{
-#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:
-    //
-    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(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)
-        >::value));
-#else
-   //
-   // We put this here, rather than in the definition of
-   // alignment_of below, because MSVC's __alignof doesn't
-   // always work in that context for some unexplained reason.
-   // (See type_with_alignment tests for test cases).
-   //
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = NDNBOOST_ALIGNMENT_OF(T));
-#endif
-};
-
-} // namespace detail
-
-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 NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct alignment_of<T&>
-    : public alignment_of<T*>
-{
-};
-#endif
-#ifdef __BORLANDC__
-// long double gives an incorrect value of 10 (!)
-// unless we do this...
-struct long_double_wrapper{ long double ld; };
-template<> struct alignment_of<long double>
-   : public alignment_of<long_double_wrapper>{};
-#endif
-
-// void has to be treated specially:
-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
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#pragma option pop
-#endif
-#ifdef NDNBOOST_MSVC
-#   pragma warning(pop)
-#endif
-
-#include <ndnboost/type_traits/detail/size_t_trait_undef.hpp>
-
-#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
deleted file mode 100644
index dc8e197..0000000
--- a/include/ndnboost/type_traits/arithmetic_traits.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  defines traits classes for arithmetic types:
-//  is_void, is_integral, is_float, is_arithmetic, is_fundamental.
-
-#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>
-#include <ndnboost/type_traits/is_fundamental.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/type_traits/is_void.hpp>
-
-#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
deleted file mode 100644
index 00a5ee0..0000000
--- a/include/ndnboost/type_traits/broken_compiler_spec.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-
-//  Copyright 2001-2003 Aleksey Gurtovoy.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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 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_NDNBOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;
-}}
-#endif
-
-// agurt, 27/jun/03: disable the workaround if user defined 
-// NDNBOOST_TT_NO_BROKEN_COMPILER_SPEC
-#if    !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    || defined(NDNBOOST_TT_NO_BROKEN_COMPILER_SPEC)
-
-#   define NDNBOOST_TT_BROKEN_COMPILER_SPEC(T) /**/
-
-#else
-
-// same as NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 macro, except that it
-// never gets #undef-ined
-#   define NDNBOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(trait,spec,result) \
-template<> struct trait##_impl<spec> \
-{ \
-    typedef result type; \
-}; \
-/**/
-
-#   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 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 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 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 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 NDNBOOST_TT_BROKEN_COMPILER_SPEC(T)                                         \
-    namespace ndnboost { namespace detail {                                            \
-    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 // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-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
-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 NDNBOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(T) \
-    NDNBOOST_TT_BROKEN_COMPILER_SPEC(T) \
-/**/
-
-#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
deleted file mode 100644
index c72c34e..0000000
--- a/include/ndnboost/type_traits/common_type.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-//  common_type.hpp  ---------------------------------------------------------//
-
-//  Copyright 2008 Howard Hinnant
-//  Copyright 2008 Beman Dawes
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-#ifndef NDNBOOST_TYPE_TRAITS_COMMON_TYPE_HPP
-#define NDNBOOST_TYPE_TRAITS_COMMON_TYPE_HPP
-
-#include <ndnboost/config.hpp>
-
-#if defined(__SUNPRO_CC) && !defined(NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-#  define NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF
-#endif
-#if defined(__IBMCPP__) && !defined(NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-#  define NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF
-#endif
-
-//----------------------------------------------------------------------------//
-#if defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(NDNBOOST_COMMON_TYPE_ARITY)
-#define NDNBOOST_COMMON_TYPE_ARITY 3
-#endif
-
-//----------------------------------------------------------------------------//
-#if defined(NDNBOOST_NO_CXX11_DECLTYPE) && !defined(NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-#include <ndnboost/typeof/typeof.hpp>   // boost wonders never cease!
-#endif
-
-//----------------------------------------------------------------------------//
-#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 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 NDNBOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) NDNBOOST_STATIC_ASSERT(CND)
-#endif
-
-#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(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
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/utility/declval.hpp>
-#include <ndnboost/type_traits/add_rvalue_reference.hpp>
-
-//----------------------------------------------------------------------------//
-//                                                                            //
-//                           C++03 implementation of                          //
-//             20.9.7.6 Other transformations [meta.trans.other]              //
-//                          Written by Howard Hinnant                         //
-//      Adapted for Boost by Beman Dawes, Vicente Botet and  Jeffrey Hellrung //
-//                                                                            //
-//----------------------------------------------------------------------------//
-
-namespace ndnboost {
-
-// prototype
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-    template<typename... T>
-    struct common_type;
-#else // or no specialization
-    template <class T, class U = void, class V = void>
-    struct common_type
-    {
-    public:
-        typedef typename common_type<typename common_type<T, U>::type, V>::type type;
-    };
-#endif
-
-
-// 1 arg
-    template<typename T>
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-    struct common_type<T>
-#else
-    struct common_type<T, void, void>
-
-#endif
-    {
-        NDNBOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(T) > 0, NDNBOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (T));
-    public:
-        typedef T type;
-    };
-
-// 2 args
-namespace type_traits_detail {
-
-    template <class T, class U>
-    struct common_type_2
-    {
-    private:
-        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(NDNBOOST_NO_CXX11_DECLTYPE)
-    public:
-        typedef decltype(declval<bool>() ? declval<T>() : declval<U>()) type;
-#elif defined(NDNBOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-    public:
-    typedef typename detail_type_traits_common_type::common_type_impl<
-          typename remove_cv<T>::type,
-          typename remove_cv<U>::type
-      >::type type;
-#else
-    public:
-        typedef NDNBOOST_TYPEOF_TPL(declval_b() ? declval_T() : declval_U()) type;
-#endif
-
-#if defined(__GNUC__) && __GNUC__ == 3 && (__GNUC_MINOR__ == 2 || __GNUC_MINOR__ == 3)
-    public:
-        void public_dummy_function_just_to_silence_warning();
-#endif
-    };
-
-    template <class T>
-    struct common_type_2<T, T>
-    {
-        typedef T type;
-    };
-    }
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-    template <class T, class U>
-    struct common_type<T, U>
-#else
-    template <class T, class U>
-    struct common_type<T, U, void>
-#endif
-    : public type_traits_detail::common_type_2<T,U>
-    { };
-
-
-// 3 or more args
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-    template<typename T, typename U, typename... V>
-    struct common_type<T, U, V...> {
-    public:
-        typedef typename common_type<typename common_type<T, U>::type, V...>::type type;
-    };
-#endif
-}  // namespace ndnboost
-
-#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
deleted file mode 100644
index 0c5b5e8..0000000
--- a/include/ndnboost/type_traits/composite_traits.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  defines traits classes for composite types:
-//  is_array, is_pointer, is_reference, is_member_pointer, is_enum, is_union.
-//
-
-#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>
-#include <ndnboost/type_traits/is_member_pointer.hpp>
-#include <ndnboost/type_traits/is_member_function_pointer.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_reference.hpp>
-#include <ndnboost/type_traits/is_union.hpp>
-
-#endif // NDNBOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
-
-
-
-
-
diff --git a/include/ndnboost/type_traits/conditional.hpp b/include/ndnboost/type_traits/conditional.hpp
deleted file mode 100644
index 91a9ce0..0000000
--- a/include/ndnboost/type_traits/conditional.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-//  (C) Copyright John Maddock 2010.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef NDNBOOST_TT_CONDITIONAL_HPP_INCLUDED
-#define NDNBOOST_TT_CONDITIONAL_HPP_INCLUDED
-
-#include <ndnboost/mpl/if.hpp>
-
-namespace ndnboost {
-
-template <bool b, class T, class U>
-struct conditional : public mpl::if_c<b, T, U>
-{
-};
-
-} // namespace ndnboost
-
-
-#endif // NDNBOOST_TT_CONDITIONAL_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/config.hpp b/include/ndnboost/type_traits/config.hpp
deleted file mode 100644
index 8effeec..0000000
--- a/include/ndnboost/type_traits/config.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_CONFIG_HPP_INCLUDED
-#define NDNBOOST_TT_CONFIG_HPP_INCLUDED
-
-#ifndef NDNBOOST_CONFIG_HPP
-#include <ndnboost/config.hpp>
-#endif
-
-#include <ndnboost/detail/workaround.hpp>
-
-//
-// whenever we have a conversion function with ellipses
-// 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(NDNBOOST_MSVC) || (defined(__BORLANDC__) && !defined(NDNBOOST_DISABLE_WIN32))
-#   define NDNBOOST_TT_DECL __cdecl
-#else
-#   define NDNBOOST_TT_DECL /**/
-#endif
-
-# 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)                                               \
-    || 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 NDNBOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION 1
-
-#endif
-
-#ifndef NDNBOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION
-# define NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION 1
-#endif
-
-//
-// Define NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING 
-// when we can't test for function types with elipsis:
-//
-#if NDNBOOST_WORKAROUND(__GNUC__, < 3)
-#  define NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-#endif
-
-//
-// 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 NDNBOOST_TT_TEST_MS_FUNC_SIGS
-#endif
-
-//
-// define NDNBOOST_TT_NO_CV_FUNC_TEST
-// if tests for cv-qualified member functions don't 
-// work in is_member_function_pointer
-//
-#if NDNBOOST_WORKAROUND(__MWERKS__, < 0x3000) || NDNBOOST_WORKAROUND(__IBMCPP__, <= 600)
-#  define NDNBOOST_TT_NO_CV_FUNC_TEST
-#endif
-
-#endif // NDNBOOST_TT_CONFIG_HPP_INCLUDED
-
-
diff --git a/include/ndnboost/type_traits/conversion_traits.hpp b/include/ndnboost/type_traits/conversion_traits.hpp
deleted file mode 100644
index d3bb165..0000000
--- a/include/ndnboost/type_traits/conversion_traits.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-// Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu)
-// Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
-#define NDNBOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
-
-#include <ndnboost/type_traits/is_convertible.hpp>
-
-#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
deleted file mode 100644
index 1fba149..0000000
--- a/include/ndnboost/type_traits/cv_traits.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  defines traits classes for cv-qualified types:
-//  is_const, is_volatile, remove_const, remove_volatile, remove_cv.
-
-#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>
-#include <ndnboost/type_traits/add_cv.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_volatile.hpp>
-#include <ndnboost/type_traits/remove_const.hpp>
-#include <ndnboost/type_traits/remove_volatile.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-
-#endif // NDNBOOST_TT_CV_TRAITS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/decay.hpp b/include/ndnboost/type_traits/decay.hpp
deleted file mode 100644
index 7e736dc..0000000
--- a/include/ndnboost/type_traits/decay.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//  (C) Copyright John Maddock & Thorsten Ottosen 2005.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-#include <ndnboost/type_traits/is_function.hpp>
-#include <ndnboost/type_traits/remove_bounds.hpp>
-#include <ndnboost/type_traits/add_pointer.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/identity.hpp>
-
-namespace ndnboost 
-{
-
-    template< class T >
-    struct decay
-    {
-    private:
-        typedef NDNBOOST_DEDUCED_TYPENAME remove_reference<T>::type Ty;
-    public:
-        typedef NDNBOOST_DEDUCED_TYPENAME mpl::eval_if< 
-            is_array<Ty>,
-            mpl::identity<NDNBOOST_DEDUCED_TYPENAME remove_bounds<Ty>::type*>,
-            NDNBOOST_DEDUCED_TYPENAME mpl::eval_if< 
-                is_function<Ty>,
-                add_pointer<Ty>,
-                mpl::identity<Ty>
-            >
-        >::type type;
-    };
-    
-} // namespace ndnboost
-
-
-#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
deleted file mode 100644
index 568847e..0000000
--- a/include/ndnboost/type_traits/detail/bool_trait_def.hpp
+++ /dev/null
@@ -1,196 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date: 2011-10-09 15:28:33 -0700 (Sun, 09 Oct 2011) $
-// $Revision: 74865 $
-
-#include <ndnboost/type_traits/detail/template_arity_spec.hpp>
-#include <ndnboost/type_traits/integral_constant.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/config.hpp>
-
-//
-// Unfortunately some libraries have started using this header without
-// cleaning up afterwards: so we'd better undef the macros just in case 
-// they've been defined already....
-//
-#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 NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    typedef ::ndnboost::integral_constant<bool,C> type; \
-    enum { value = type::value }; \
-    /**/
-#   define NDNBOOST_TT_AUX_BOOL_C_BASE(C)
-
-#elif defined(NDNBOOST_MSVC) && NDNBOOST_MSVC < 1300
-
-#   define NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    typedef ::ndnboost::integral_constant<bool,C> base_; \
-    using base_::value; \
-    /**/
-
-#endif
-
-#ifndef NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#   define NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) /**/
-#endif
-
-#ifndef NDNBOOST_TT_AUX_BOOL_C_BASE
-#   define NDNBOOST_TT_AUX_BOOL_C_BASE(C) : public ::ndnboost::integral_constant<bool,C>
-#endif 
-
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(trait,T,C) \
-template< typename T > struct trait \
-    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(trait,T1,T2,C) \
-template< typename T1, typename T2 > struct trait \
-    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(2,trait,(T1,T2)) \
-}; \
-\
-NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,trait) \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_DEF3(trait,T1,T2,T3,C) \
-template< typename T1, typename T2, typename T3 > struct trait \
-    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(3,trait,(T1,T2,T3)) \
-}; \
-\
-NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(3,trait) \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,C) \
-template<> struct trait< sp > \
-    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(sp)) \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC2(trait,sp1,sp2,C) \
-template<> struct trait< sp1,sp2 > \
-    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(trait,sp,C) \
-template<> struct trait##_impl< sp > \
-{ \
-public:\
-    NDNBOOST_STATIC_CONSTANT(bool, value = (C)); \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,sp1,sp2,C) \
-template<> struct trait##_impl< sp1,sp2 > \
-{ \
-public:\
-    NDNBOOST_STATIC_CONSTANT(bool, value = (C)); \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(param,trait,sp,C) \
-template< param > struct trait< sp > \
-    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,sp,C) \
-template< param1, param2 > struct trait< sp > \
-    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
-template< param > struct trait< sp1,sp2 > \
-    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(param1,param2,trait,sp1,sp2,C) \
-template< param1, param2 > struct trait< sp1,sp2 > \
-    NDNBOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
-template< param > struct trait##_impl< sp1,sp2 > \
-{ \
-public:\
-    NDNBOOST_STATIC_CONSTANT(bool, value = (C)); \
-}; \
-/**/
-
-#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 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
deleted file mode 100644
index 24bd220..0000000
--- a/include/ndnboost/type_traits/detail/bool_trait_undef.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date: 2011-10-09 15:28:33 -0700 (Sun, 09 Oct 2011) $
-// $Revision: 74865 $
-
-#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
deleted file mode 100644
index 70dedf9..0000000
--- a/include/ndnboost/type_traits/detail/common_type_imp.hpp
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * ndnboost/type_traits/detail/common_type_imp.hpp
- *
- * Copyright 2010, Jeffrey Hellrung.
- * 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)
- *
- * struct ndnboost::common_type<T,U>
- *
- * common_type<T,U>::type is the type of the expression
- *     b() ? x() : y()
- * where b() returns a bool, x() has return type T, and y() has return type U.
- * See
- *     http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2661.htm#common_type
- *
- * Note that this evaluates to void if one or both of T and U is void.
- ******************************************************************************/
-
-#ifndef NDNBOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMP_HPP
-#define NDNBOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMP_HPP
-
-#include <cstddef>
-
-#include <ndnboost/mpl/assert.hpp>
-#include <ndnboost/mpl/at.hpp>
-#include <ndnboost/mpl/begin_end.hpp>
-#include <ndnboost/mpl/contains.hpp>
-#include <ndnboost/mpl/copy.hpp>
-#include <ndnboost/mpl/deref.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/inserter.hpp>
-#include <ndnboost/mpl/next.hpp>
-#include <ndnboost/mpl/or.hpp>
-#include <ndnboost/mpl/placeholders.hpp>
-#include <ndnboost/mpl/push_back.hpp>
-#include <ndnboost/mpl/size.hpp>
-#include <ndnboost/mpl/vector/vector0.hpp>
-#include <ndnboost/mpl/vector/vector10.hpp>
-#include <ndnboost/type_traits/integral_constant.hpp>
-#include <ndnboost/type_traits/is_enum.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/type_traits/make_signed.hpp>
-#include <ndnboost/type_traits/make_unsigned.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-#include <ndnboost/utility/declval.hpp>
-
-namespace ndnboost
-{
-
-namespace detail_type_traits_common_type
-{
-
-/*******************************************************************************
- * struct propagate_cv< From, To >
- *
- * This metafunction propagates cv-qualifiers on type From to type To.
- ******************************************************************************/
-
-template< class From, class To >
-struct propagate_cv
-{ typedef To type; };
-template< class From, class To >
-struct propagate_cv< const From, To >
-{ typedef To const type; };
-template< class From, class To >
-struct propagate_cv< volatile From, To >
-{ typedef To volatile type; };
-template< class From, class To >
-struct propagate_cv< const volatile From, To >
-{ typedef To const volatile type; };
-
-/*******************************************************************************
- * struct is_integral_or_enum<T>
- *
- * This metafunction determines if T is an integral type which can be made
- * signed or unsigned.
- ******************************************************************************/
-
-template< class T >
-struct is_integral_or_enum
-    : public mpl::or_< is_integral<T>, is_enum<T> >
-{ };
-template<>
-struct is_integral_or_enum< bool >
-    : public false_type
-{ };
-
-/*******************************************************************************
- * struct make_unsigned_soft<T>
- * struct make_signed_soft<T>
- *
- * These metafunction are identical to make_unsigned and make_signed,
- * respectively, except for special-casing bool.
- ******************************************************************************/
-
-template< class T >
-struct make_unsigned_soft
-    : public make_unsigned<T>
-{ };
-template<>
-struct make_unsigned_soft< bool >
-{ typedef bool type; };
-
-template< class T >
-struct make_signed_soft
-    : public make_signed<T>
-{ };
-template<>
-struct make_signed_soft< bool >
-{ typedef bool type; };
-
-/*******************************************************************************
- * struct sizeof_t<N>
- * typedef ... yes_type
- * typedef ... no_type
- *
- * These types are integral players in the use of the "sizeof trick", i.e., we
- * can distinguish overload selection by inspecting the size of the return type
- * of the overload.
- ******************************************************************************/
-
-template< std::size_t N > struct sizeof_t { char _dummy[N]; };
-typedef sizeof_t<1> yes_type;
-typedef sizeof_t<2> no_type;
-NDNBOOST_MPL_ASSERT_RELATION( sizeof( yes_type ), ==, 1 );
-NDNBOOST_MPL_ASSERT_RELATION( sizeof( no_type ), ==, 2 );
-
-/*******************************************************************************
- * rvalue_test(T&) -> no_type
- * rvalue_test(...) -> yes_type
- *
- * These overloads are used to determine the rvalue-ness of an expression.
- ******************************************************************************/
-
-template< class T > no_type rvalue_test(T&);
-yes_type rvalue_test(...);
-
-/*******************************************************************************
- * struct conversion_test_overloads< Sequence >
- *
- * This struct has multiple overloads of the static member function apply, each
- * one taking a single parameter of a type within the Boost.MPL sequence
- * Sequence.  Each such apply overload has a return type with sizeof equal to
- * one plus the index of the parameter type within Sequence.  Thus, we can
- * deduce the type T of an expression as long as we can generate a finite set of
- * candidate types containing T via these apply overloads and the "sizeof
- * trick".
- ******************************************************************************/
-
-template< class First, class Last, std::size_t Index >
-struct conversion_test_overloads_iterate
-    : public conversion_test_overloads_iterate<
-          typename mpl::next< First >::type, Last, Index + 1
-      >
-{
-    using conversion_test_overloads_iterate<
-        typename mpl::next< First >::type, Last, Index + 1
-    >::apply;
-    static sizeof_t< Index + 1 >
-    apply(typename mpl::deref< First >::type);
-};
-
-template< class Last, std::size_t Index >
-struct conversion_test_overloads_iterate< Last, Last, Index >
-{ static sizeof_t< Index + 1 > apply(...); };
-
-template< class Sequence >
-struct conversion_test_overloads
-    : public conversion_test_overloads_iterate<
-          typename mpl::begin< Sequence >::type,
-          typename mpl::end< Sequence >::type,
-          0
-      >
-{ };
-
-/*******************************************************************************
- * struct select< Sequence, Index >
- *
- * select is synonymous with mpl::at_c unless Index equals the size of the
- * Boost.MPL Sequence, in which case this evaluates to void.
- ******************************************************************************/
-
-template<
-    class Sequence, int Index,
-    int N = mpl::size< Sequence >::value
->
-struct select
-    : public mpl::at_c< Sequence, Index >
-{ };
-template< class Sequence, int N >
-struct select< Sequence, N, N >
-{ typedef void type; };
-
-/*******************************************************************************
- * class deduce_common_type< T, U, NominalCandidates >
- * struct nominal_candidates<T,U>
- * struct common_type_dispatch_on_rvalueness<T,U>
- * struct common_type_impl<T,U>
- *
- * These classes and structs implement the logic behind common_type, which goes
- * roughly as follows.  Let C be the type of the conditional expression
- *     declval< bool >() ? declval<T>() : declval<U>()
- * if C is an rvalue, then:
- *     let T' and U' be T and U stripped of reference- and cv-qualifiers
- *     if T' and U' are pointer types, say, T' = V* and U' = W*, then:
- *         define the set of NominalCandidates to be
- *             { V*, W*, V'*, W'* }
- *           where V' is V with whatever cv-qualifiers are on W, and W' is W
- *           with whatever cv-qualifiers are on V
- *     else if T' and U' are both integral or enum types, then:
- *         define the set of NominalCandidates to be
- *             {
- *                 unsigned_soft(T'),
- *                 unsigned_soft(U'),
- *                 signed_soft(T'),
- *                 signed_soft(U'),
- *                 T',
- *                 U',
- *                 unsigned int,
- *                 int
- *             }
- *           where unsigned_soft(X) is make_unsigned_soft<X>::type and
- *           signed_soft(X) is make_signed_soft<X>::type (these are all
- *           generally necessary to cover the various integral promotion cases)
- *     else
- *         define the set of NominalCandidates to be
- *             { T', U' }
- * else
- *     let V and W be T and U stripped of reference-qualifiers
- *     define the set of NominalCandidates to be
- *         { V&, W&, V'&, W'& }
- *     where V' is V with whatever cv-qualifiers are on W, and W' is W with
- *       whatever cv-qualifiers are on V
- * define the set of Candidates to be equal to the set of NominalCandidates with
- * duplicates removed, and use this set of Candidates to determine C using the
- * conversion_test_overloads struct
- ******************************************************************************/
-
-template< class T, class U, class NominalCandidates >
-class deduce_common_type
-{
-    typedef typename mpl::copy<
-        NominalCandidates,
-        mpl::inserter<
-            mpl::vector0<>,
-            mpl::if_<
-                mpl::contains< mpl::_1, mpl::_2 >,
-                mpl::_1,
-                mpl::push_back< mpl::_1, mpl::_2 >
-            >
-        >
-    >::type candidate_types;
-    static const int best_candidate_index =
-        sizeof( conversion_test_overloads< candidate_types >::apply(
-            declval< bool >() ? declval<T>() : declval<U>()
-        ) ) - 1;
-public:
-    typedef typename select< candidate_types, best_candidate_index >::type type;
-};
-
-template<
-    class T, class U,
-    class V = typename remove_cv< typename remove_reference<T>::type >::type,
-    class W = typename remove_cv< typename remove_reference<U>::type >::type,
-    bool = is_integral_or_enum<V>::value && is_integral_or_enum<W>::value
->
-struct nominal_candidates
-{ typedef mpl::vector2<V,W> type; };
-
-template< class T, class U, class V, class W >
-struct nominal_candidates< T, U, V, W, true >
-{
-    typedef ndnboost::mpl::vector8<
-        typename make_unsigned_soft<V>::type,
-        typename make_unsigned_soft<W>::type,
-        typename make_signed_soft<V>::type,
-        typename make_signed_soft<W>::type,
-        V, W, unsigned int, int
-    > type;
-};
-
-template< class T, class U, class V, class W >
-struct nominal_candidates< T, U, V*, W*, false >
-{
-    typedef mpl::vector4<
-        V*, W*,
-        typename propagate_cv<W,V>::type *,
-        typename propagate_cv<V,W>::type *
-    > type;
-};
-
-template<class T, class U, bool b>
-struct common_type_dispatch_on_rvalueness
-    : public deduce_common_type< T, U, typename nominal_candidates<T,U>::type >
-{ };
-
-template< class T, class U >
-struct common_type_dispatch_on_rvalueness< T, U, false >
-{
-private:
-    typedef typename remove_reference<T>::type unrefed_T_type;
-    typedef typename remove_reference<U>::type unrefed_U_type;
-public:
-    typedef typename deduce_common_type<
-        T, U,
-        mpl::vector4<
-            unrefed_T_type &,
-            unrefed_U_type &,
-            typename propagate_cv< unrefed_U_type, unrefed_T_type >::type &,
-            typename propagate_cv< unrefed_T_type, unrefed_U_type >::type &
-        >
-    >::type type;
-};
-
-template< class T, class U >
-struct common_type_impl
-    : public common_type_dispatch_on_rvalueness<T,U, sizeof( ::ndnboost::detail_type_traits_common_type::rvalue_test(
-        declval< bool >() ? declval<T>() : declval<U>() ) ) == sizeof( yes_type ) >
-{ };
-
-template< class T > struct common_type_impl< T, void > { typedef void type; };
-template< class T > struct common_type_impl< void, T > { typedef void type; };
-template<> struct common_type_impl< void, void > { typedef void type; };
-
-} // namespace detail_type_traits_common_type
-
-
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 7574e5b..0000000
--- a/include/ndnboost/type_traits/detail/cv_traits_impl.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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 NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// implementation helper:
-
-
-#if !(NDNBOOST_WORKAROUND(__GNUC__,== 3) && NDNBOOST_WORKAROUND(__GNUC_MINOR__, <= 2))
-namespace ndnboost {
-namespace detail {
-#else
-#include <ndnboost/type_traits/detail/yes_no_type.hpp>
-namespace ndnboost {
-namespace type_traits {
-namespace gcc8503 {
-#endif
-
-template <typename T> struct cv_traits_imp {};
-
-template <typename T>
-struct cv_traits_imp<T*>
-{
-    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*>
-{
-    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*>
-{
-    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*>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, is_const = true);
-    NDNBOOST_STATIC_CONSTANT(bool, is_volatile = true);
-    typedef T unqualified_type;
-};
-
-#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(...);
-no_type  mini_funcptr_tester(const volatile void*);
-
-} // namespace gcc8503
-} // namespace type_traits
-
-namespace detail {
-
-// Use the implementation above for non function pointers
-template <typename T, unsigned Select 
-  = (unsigned)sizeof(::ndnboost::type_traits::gcc8503::mini_funcptr_tester((T)0)) >
-struct cv_traits_imp : public ::ndnboost::type_traits::gcc8503::cv_traits_imp<T> { };
-
-// Functions are never cv-qualified
-template <typename T> struct cv_traits_imp<T*,1>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, is_const = false);
-    NDNBOOST_STATIC_CONSTANT(bool, is_volatile = false);
-    typedef T unqualified_type;
-};
-
-#endif
-
-} // namespace detail
-} // namespace ndnboost 
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#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
deleted file mode 100644
index d4bc23b..0000000
--- a/include/ndnboost/type_traits/detail/false_result.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright David Abrahams 2002. 
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef NDNBOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
-#define NDNBOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-namespace ndnboost {
-namespace type_traits {
-
-// Utility class which always "returns" false
-struct false_result
-{
-    template <typename T> struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value = false);
-    };
-};
-
-}} // namespace ndnboost::type_traits
-
-#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
deleted file mode 100644
index c10ef10..0000000
--- a/include/ndnboost/type_traits/detail/has_binary_operator.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/type_traits/ice.hpp>
-#include <ndnboost/type_traits/integral_constant.hpp>
-#include <ndnboost/type_traits/is_base_of.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_fundamental.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/type_traits/is_void.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/remove_pointer.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-// cannot include this header without getting warnings of the kind:
-// gcc:
-//    warning: value computed is not used
-//    warning: comparison between signed and unsigned integer expressions
-// msvc:
-//    warning C4018: '<' : signed/unsigned mismatch
-//    warning C4244: '+=' : conversion from 'double' to 'char', possible loss of data
-//    warning C4547: '*' : operator before comma has no effect; expected operator with side-effect
-//    warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
-//    warning C4804: '<' : unsafe use of type 'bool' in operation
-//    warning C4805: '==' : unsafe mix of type 'bool' and type 'char' in operation
-// 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(NDNBOOST_MSVC)
-#   pragma warning ( push )
-#   pragma warning ( disable : 4018 4244 4547 4800 4804 4805 4913 )
-#endif
-
-namespace ndnboost {
-namespace detail {
-
-// This namespace ensures that argument-dependent name lookup does not mess things up.
-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
-template <typename T> T &make();
-
-
-// 2. we provide our operator definition for types that do not have one already
-
-// 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 { };
-
-// this class allows implicit conversions and makes the following operator
-// definition less-preferred than any other such operators that might be found
-// via argument-dependent name lookup
-struct any { template <class T> any(T const&); };
-
-// 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 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 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);
-   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())))));
-};
-
-
-// 4. checks if the return type is Ret or Ret==dont_care
-// conditions: Lhs!=void and Rhs!=void
-
-struct dont_care { };
-
-template < typename Lhs, typename Rhs, typename Ret, bool Returns_void >
-struct operator_returns_Ret;
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, dont_care, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, dont_care, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, void, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, void, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Rhs, typename Ret >
-struct operator_returns_Ret < Lhs, Rhs, Ret, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// otherwise checks if it is convertible to Ret using the sizeof trick
-// based on overload resolution
-// condition: Ret!=void and Ret!=dont_care and the operator does not return void
-template < typename Lhs, typename Rhs, typename Ret >
-struct operator_returns_Ret < Lhs, Rhs, Ret, false > {
-   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
-
-   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 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 { };
-no_operator operator,(no_operator, has_operator);
-
-template < typename Lhs, typename Rhs >
-struct operator_exists {
-   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
-
-   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 NDNBOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the
-// standard.
-// Forbidden_if is a bool that is:
-// - 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 >
-struct trait_impl1;
-
-template < typename Lhs, typename Rhs, typename Ret >
-struct trait_impl1 < Lhs, Rhs, Ret, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Rhs, typename Ret >
-struct trait_impl1 < Lhs, Rhs, Ret, false > {
-   NDNBOOST_STATIC_CONSTANT(bool,
-      value = (
-         ::ndnboost::type_traits::ice_and<
-            operator_exists < Lhs, Rhs >::value,
-            operator_returns_Ret < Lhs, Rhs, Ret, operator_returns_void < Lhs, Rhs >::value >::value
-         >::value
-      )
-   );
-};
-
-// some specializations needs to be declared for the special void case
-template < typename Rhs, typename Ret >
-struct trait_impl1 < void, Rhs, Ret, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Ret >
-struct trait_impl1 < Lhs, void, Ret, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Ret >
-struct trait_impl1 < void, void, Ret, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// defines some typedef for convenience
-template < typename Lhs, typename Rhs, typename Ret >
-struct trait_impl {
-   typedef typename ::ndnboost::remove_reference<Lhs>::type Lhs_noref;
-   typedef typename ::ndnboost::remove_reference<Rhs>::type Rhs_noref;
-   typedef typename ::ndnboost::remove_cv<Lhs_noref>::type Lhs_nocv;
-   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;
-   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
-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(NDNBOOST_MSVC)
-#   pragma warning ( pop )
-#endif
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
diff --git a/include/ndnboost/type_traits/detail/has_postfix_operator.hpp b/include/ndnboost/type_traits/detail/has_postfix_operator.hpp
deleted file mode 100644
index 5d23573..0000000
--- a/include/ndnboost/type_traits/detail/has_postfix_operator.hpp
+++ /dev/null
@@ -1,202 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/type_traits/ice.hpp>
-#include <ndnboost/type_traits/integral_constant.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_fundamental.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/type_traits/is_void.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/remove_pointer.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-// avoid warnings
-#if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
-#   pragma GCC system_header
-#elif defined(NDNBOOST_MSVC)
-#   pragma warning ( push )
-#   pragma warning ( disable : 4244 4913 )
-#endif
-
-namespace ndnboost {
-namespace detail {
-
-// This namespace ensures that argument-dependent name lookup does not mess things up.
-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
-template <typename T> T &make();
-
-
-// 2. we provide our operator definition for types that do not have one already
-
-// 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 { };
-
-// this class allows implicit conversions and makes the following operator
-// definition less-preferred than any other such operators that might be found
-// via argument-dependent name lookup
-struct any { template <class T> any(T const&); };
-
-// 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 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 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);
-   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() NDNBOOST_TT_TRAIT_OP,returns_void_t())))));
-};
-
-
-// 4. checks if the return type is Ret or Ret==dont_care
-// conditions: Lhs!=void
-
-struct dont_care { };
-
-template < typename Lhs, typename Ret, bool Returns_void >
-struct operator_returns_Ret;
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, dont_care, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, dont_care, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, void, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, void, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Ret >
-struct operator_returns_Ret < Lhs, Ret, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// otherwise checks if it is convertible to Ret using the sizeof trick
-// based on overload resolution
-// condition: Ret!=void and Ret!=dont_care and the operator does not return void
-template < typename Lhs, typename Ret >
-struct operator_returns_Ret < Lhs, Ret, false > {
-   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
-
-   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 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 { };
-no_operator operator,(no_operator, has_operator);
-
-template < typename Lhs >
-struct operator_exists {
-   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
-
-   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 NDNBOOST_TT_TRAIT_OP(Lhs) is forbidden by the
-// standard.
-// Forbidden_if is a bool that is:
-// - 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 >
-struct trait_impl1;
-
-template < typename Lhs, typename Ret >
-struct trait_impl1 < Lhs, Ret, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Ret >
-struct trait_impl1 < Lhs, Ret, false > {
-   NDNBOOST_STATIC_CONSTANT(bool,
-      value = (
-         ::ndnboost::type_traits::ice_and<
-            operator_exists < Lhs >::value,
-            operator_returns_Ret < Lhs, Ret, operator_returns_void < Lhs >::value >::value
-         >::value
-      )
-   );
-};
-
-// specialization needs to be declared for the special void case
-template < typename Ret >
-struct trait_impl1 < void, Ret, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// defines some typedef for convenience
-template < typename Lhs, typename Ret >
-struct trait_impl {
-   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;
-   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
-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(NDNBOOST_MSVC)
-#   pragma warning ( pop )
-#endif
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
diff --git a/include/ndnboost/type_traits/detail/has_prefix_operator.hpp b/include/ndnboost/type_traits/detail/has_prefix_operator.hpp
deleted file mode 100644
index 3a25c58..0000000
--- a/include/ndnboost/type_traits/detail/has_prefix_operator.hpp
+++ /dev/null
@@ -1,210 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/type_traits/ice.hpp>
-#include <ndnboost/type_traits/integral_constant.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_fundamental.hpp>
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/type_traits/is_void.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/remove_pointer.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-// cannot include this header without getting warnings of the kind:
-// gcc:
-//    warning: value computed is not used
-//    warning: comparison between signed and unsigned integer expressions
-// msvc:
-//    warning C4146: unary minus operator applied to unsigned type, result still unsigned
-//    warning C4804: '-' : unsafe use of type 'bool' in operation
-// 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(NDNBOOST_MSVC)
-#   pragma warning ( push )
-#   pragma warning ( disable : 4146 4804 4913 4244 )
-#endif
-
-namespace ndnboost {
-namespace detail {
-
-// This namespace ensures that argument-dependent name lookup does not mess things up.
-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
-template <typename T> T &make();
-
-
-// 2. we provide our operator definition for types that do not have one already
-
-// 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 { };
-
-// this class allows implicit conversions and makes the following operator
-// definition less-preferred than any other such operators that might be found
-// via argument-dependent name lookup
-struct any { template <class T> any(T const&); };
-
-// 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 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 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);
-   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(::ndnboost::type_traits::yes_type)==sizeof(returns_void((NDNBOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
-};
-
-
-// 4. checks if the return type is Ret or Ret==dont_care
-// conditions: Rhs!=void
-
-struct dont_care { };
-
-template < typename Rhs, typename Ret, bool Returns_void >
-struct operator_returns_Ret;
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, dont_care, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, dont_care, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, void, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, void, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Rhs, typename Ret >
-struct operator_returns_Ret < Rhs, Ret, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// otherwise checks if it is convertible to Ret using the sizeof trick
-// based on overload resolution
-// condition: Ret!=void and Ret!=dont_care and the operator does not return void
-template < typename Rhs, typename Ret >
-struct operator_returns_Ret < Rhs, Ret, false > {
-   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
-
-   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 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 { };
-no_operator operator,(no_operator, has_operator);
-
-template < typename Rhs >
-struct operator_exists {
-   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
-
-   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 NDNBOOST_TT_TRAIT_OP(Rhs) is forbidden by the
-// standard.
-// Forbidden_if is a bool that is:
-// - 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 >
-struct trait_impl1;
-
-template < typename Rhs, typename Ret >
-struct trait_impl1 < Rhs, Ret, true > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Rhs, typename Ret >
-struct trait_impl1 < Rhs, Ret, false > {
-   NDNBOOST_STATIC_CONSTANT(bool,
-      value = (
-         ::ndnboost::type_traits::ice_and<
-            operator_exists < Rhs >::value,
-            operator_returns_Ret < Rhs, Ret, operator_returns_void < Rhs >::value >::value
-         >::value
-      )
-   );
-};
-
-// specialization needs to be declared for the special void case
-template < typename Ret >
-struct trait_impl1 < void, Ret, false > {
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// defines some typedef for convenience
-template < typename Rhs, typename Ret >
-struct trait_impl {
-   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;
-   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
-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(NDNBOOST_MSVC)
-#   pragma warning ( pop )
-#endif
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
diff --git a/include/ndnboost/type_traits/detail/ice_and.hpp b/include/ndnboost/type_traits/detail/ice_and.hpp
deleted file mode 100644
index c61917e..0000000
--- a/include/ndnboost/type_traits/detail/ice_and.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
-#define NDNBOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-namespace ndnboost {
-namespace type_traits {
-
-template <bool b1, bool b2, bool b3 = true, bool b4 = true, bool b5 = true, bool b6 = true, bool b7 = true>
-struct ice_and;
-
-template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
-struct ice_and
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <>
-struct ice_and<true, true, true, true, true, true, true>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-} // namespace type_traits
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index d96240a..0000000
--- a/include/ndnboost/type_traits/detail/ice_eq.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
-#define NDNBOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-namespace ndnboost {
-namespace type_traits {
-
-template <int b1, int b2>
-struct ice_eq
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = (b1 == b2));
-};
-
-template <int b1, int b2>
-struct ice_ne
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = (b1 != b2));
-};
-
-#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
-
-} // namespace type_traits
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index ee4879d..0000000
--- a/include/ndnboost/type_traits/detail/ice_not.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
-#define NDNBOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-namespace ndnboost {
-namespace type_traits {
-
-template <bool b>
-struct ice_not
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <>
-struct ice_not<true>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-} // namespace type_traits
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 12255b5..0000000
--- a/include/ndnboost/type_traits/detail/ice_or.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
-#define NDNBOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-namespace ndnboost {
-namespace type_traits {
-
-template <bool b1, bool b2, bool b3 = false, bool b4 = false, bool b5 = false, bool b6 = false, bool b7 = false>
-struct ice_or;
-
-template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
-struct ice_or
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <>
-struct ice_or<false, false, false, false, false, false, false>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-} // namespace type_traits
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 6263255..0000000
--- a/include/ndnboost/type_traits/detail/is_function_ptr_helper.hpp
+++ /dev/null
@@ -1,220 +0,0 @@
-
-//  Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-//  Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com)
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#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(NDNBOOST_TT_PREPROCESSING_MODE)
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/enum_params.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#endif
-
-namespace ndnboost {
-namespace type_traits {
-
-template <class R>
-struct is_function_ptr_helper
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
-// preprocessor-generated part, don't edit by hand!
-
-template <class R >
-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 (*)( ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0>
-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 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1>
-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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { 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)> { 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 ...)> { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#else
-
-#undef NDNBOOST_STATIC_CONSTANT
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "ndnboost/type_traits/detail/is_function_ptr_helper.hpp"))
-#include NDNBOOST_PP_ITERATE()
-
-#endif // NDNBOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace ndnboost
-
-#endif // NDNBOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define NDNBOOST_PP_COUNTER NDNBOOST_PP_FRAME_ITERATION(1)
-
-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 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
deleted file mode 100644
index 079f907..0000000
--- a/include/ndnboost/type_traits/detail/is_function_ptr_tester.hpp
+++ /dev/null
@@ -1,654 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//  Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#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(NDNBOOST_TT_PREPROCESSING_MODE)
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/enum_params.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#endif
-
-namespace ndnboost {
-namespace type_traits {
-
-// 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 NDNBOOST_TT_DECL is_function_ptr_tester(...);
-
-#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with 
-// cpp -I../../../ -DNDNBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-
-template <class R >
-yes_type is_function_ptr_tester(R (*)());
-#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R >
-yes_type is_function_ptr_tester(R (*)( ...));
-#endif
-#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
-template <class R >
-yes_type is_function_ptr_tester(R (__stdcall*)());
-template <class R >
-yes_type is_function_ptr_tester(R (__stdcall*)( ...));
-#ifndef _MANAGED
-template <class R >
-yes_type is_function_ptr_tester(R (__fastcall*)());
-template <class R >
-yes_type is_function_ptr_tester(R (__fastcall*)( ...));
-#endif
-template <class R >
-yes_type is_function_ptr_tester(R (__cdecl*)());
-template <class R >
-yes_type is_function_ptr_tester(R (__cdecl*)( ...));
-#endif
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (*)( T0));
-#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (*)( T0 ...));
-#endif
-#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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 ...));
-#ifndef _MANAGED
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0));
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 ...));
-#endif
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0));
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 ...));
-#endif
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1));
-#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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1));
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 ...));
-#endif
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1));
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2));
-#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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2));
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2));
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3));
-#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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3));
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3));
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#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 (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#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 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 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 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#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 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 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 >
-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 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#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 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 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 >
-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 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#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 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 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 >
-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 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#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 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 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 >
-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 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#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 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 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 >
-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 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#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 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 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 >
-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 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#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 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 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 >
-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 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#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 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 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 >
-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 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( 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
-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 (__cdecl*)( 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( 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
-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 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 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 >
-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 ...));
-#ifndef _MANAGED
-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 (__fastcall*)( T0 , 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 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , 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
-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 (__cdecl*)( T0 , 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 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , 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
-#else
-
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "ndnboost/type_traits/detail/is_function_ptr_tester.hpp"))
-#include NDNBOOST_PP_ITERATE()
-
-#endif // NDNBOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace ndnboost
-
-#endif // NDNBOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define NDNBOOST_PP_COUNTER NDNBOOST_PP_FRAME_ITERATION(1)
-#undef __stdcall
-#undef __fastcall
-#undef __cdecl
-
-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 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 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 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 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
deleted file mode 100644
index d5008e0..0000000
--- a/include/ndnboost/type_traits/detail/is_mem_fun_pointer_impl.hpp
+++ /dev/null
@@ -1,817 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//  Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#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(NDNBOOST_TT_PREPROCESSING_MODE)
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/enum_params.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#endif
-
-namespace ndnboost {
-namespace type_traits {
-
-template <typename T>
-struct is_mem_fun_pointer_impl
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with 
-// cpp -I../../../ -DNDNBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-
-template <class R, class T >
-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::*)( ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(NDNBOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-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 > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() const volatile > { 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::*)( ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-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 > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0>
-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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-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 > { 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 ...) const > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { 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) > { 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 ...) > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#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 > { 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 > { 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 > { 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 ...) 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 > { 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 > { NDNBOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-
-#else
-
-#undef NDNBOOST_STATIC_CONSTANT
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "ndnboost/type_traits/detail/is_mem_fun_pointer_impl.hpp"))
-#include NDNBOOST_PP_ITERATE()
-
-#endif // NDNBOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace ndnboost
-
-#endif // NDNBOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define NDNBOOST_PP_COUNTER NDNBOOST_PP_FRAME_ITERATION(1)
-
-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(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 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 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 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 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 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 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
deleted file mode 100644
index 50744de..0000000
--- a/include/ndnboost/type_traits/detail/is_mem_fun_pointer_tester.hpp
+++ /dev/null
@@ -1,2759 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//  Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#if !defined(NDNBOOST_PP_IS_ITERATING)
-
-///// header body
-
-#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(NDNBOOST_TT_PREPROCESSING_MODE)
-#   include <ndnboost/preprocessor/iterate.hpp>
-#   include <ndnboost/preprocessor/enum_params.hpp>
-#   include <ndnboost/preprocessor/comma_if.hpp>
-#endif
-
-namespace ndnboost {
-namespace type_traits {
-
-no_type NDNBOOST_TT_DECL is_mem_fun_pointer_tester(...);
-
-#if !defined(NDNBOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with 
-// 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*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const volatile);
-
-#ifndef NDNBOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const volatile);
-#endif
-#ifdef NDNBOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) const volatile);
-#endif
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) const volatile);
-#endif
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const volatile);
-
-#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 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const volatile);
-#endif
-#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));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) volatile);
-
-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 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 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) volatile);
-
-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 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));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) const volatile);
-#endif
-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));
-
-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);
-
-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) volatile);
-
-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 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 ...));
-
-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);
-
-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 ...) volatile);
-
-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 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));
-
-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) const);
-
-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) volatile);
-
-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) const volatile);
-
-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 ...));
-
-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 ...) const);
-
-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 ...) volatile);
-
-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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-#endif
-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));
-
-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);
-
-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) volatile);
-
-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 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 ...));
-
-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);
-
-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 ...) volatile);
-
-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 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));
-
-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) const);
-
-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) volatile);
-
-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) const volatile);
-
-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 ...));
-
-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 ...) const);
-
-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 ...) volatile);
-
-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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-#endif
-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));
-
-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);
-
-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) volatile);
-
-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 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 ...));
-
-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);
-
-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 ...) volatile);
-
-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 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));
-
-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) const);
-
-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) volatile);
-
-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) const volatile);
-
-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 ...));
-
-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 ...) const);
-
-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 ...) volatile);
-
-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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-#endif
-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));
-
-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);
-
-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) volatile);
-
-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 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 ...));
-
-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);
-
-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 ...) volatile);
-
-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 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));
-
-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) const);
-
-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) volatile);
-
-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) const volatile);
-
-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 ...));
-
-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 ...) const);
-
-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 ...) volatile);
-
-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 ...) const volatile);
-
-#ifndef _MANAGED
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-#endif
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-#endif
-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));
-
-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);
-
-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) volatile);
-
-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 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 ...));
-
-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);
-
-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 ...) volatile);
-
-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 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));
-
-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) const);
-
-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) volatile);
-
-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) const volatile);
-
-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 ...));
-
-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 ...) const);
-
-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 ...) volatile);
-
-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 ...) const volatile);
-
-#ifndef _MANAGED
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-#endif
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-#endif
-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));
-
-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);
-
-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) volatile);
-
-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 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 ...));
-
-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);
-
-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 ...) volatile);
-
-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 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));
-
-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) const);
-
-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) volatile);
-
-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) const volatile);
-
-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 ...));
-
-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 ...) const);
-
-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 ...) volatile);
-
-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 ...) const volatile);
-
-#ifndef _MANAGED
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-#endif
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-#endif
-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));
-
-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);
-
-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) volatile);
-
-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 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 ...));
-
-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);
-
-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 ...) volatile);
-
-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 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));
-
-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) const);
-
-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) volatile);
-
-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) const volatile);
-
-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 ...));
-
-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 ...) const);
-
-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 ...) volatile);
-
-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 ...) const volatile);
-
-#ifndef _MANAGED
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-#endif
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <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);
-
-template <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) volatile);
-
-template <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 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 ...));
-
-template <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);
-
-template <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 ...) volatile);
-
-template <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 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));
-
-template <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) const);
-
-template <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) volatile);
-
-template <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) const volatile);
-
-template <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 ...));
-
-template <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 ...) const);
-
-template <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 ...) volatile);
-
-template <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 ...) const volatile);
-
-#ifndef _MANAGED
-template <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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-template <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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-template <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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, 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);
-
-template <class R, 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) volatile);
-
-template <class R, 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 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 ...));
-
-template <class R, 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);
-
-template <class R, 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 ...) volatile);
-
-template <class R, 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 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));
-
-template <class R, 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) const);
-
-template <class R, 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) volatile);
-
-template <class R, 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) const volatile);
-
-template <class R, 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 ...));
-
-template <class R, 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 ...) const);
-
-template <class R, 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 ...) volatile);
-
-template <class R, 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-template <class R, 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-template <class R, 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , 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);
-
-template <class R, class T , 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) volatile);
-
-template <class R, class T , 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 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 ...));
-
-template <class R, class T , 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);
-
-template <class R, class T , 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 ...) volatile);
-
-template <class R, class T , 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 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));
-
-template <class R, class T , 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) const);
-
-template <class R, class T , 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) volatile);
-
-template <class R, class T , 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) const volatile);
-
-template <class R, class T , 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 ...));
-
-template <class R, class T , 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 ...) const);
-
-template <class R, class T , 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 ...) volatile);
-
-template <class R, class T , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-template <class R, class T , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-template <class R, class T , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , 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);
-
-template <class R, class T , class T0 , 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) volatile);
-
-template <class R, class T , class T0 , 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 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 ...));
-
-template <class R, class T , class T0 , 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);
-
-template <class R, class T , class T0 , 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 ...) volatile);
-
-template <class R, class T , class T0 , 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 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));
-
-template <class R, class T , class T0 , 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) const);
-
-template <class R, class T , class T0 , 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) volatile);
-
-template <class R, class T , class T0 , 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) const volatile);
-
-template <class R, class T , class T0 , 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 ...));
-
-template <class R, class T , class T0 , 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 ...) const);
-
-template <class R, class T , class T0 , 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 ...) volatile);
-
-template <class R, class T , class T0 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-template <class R, class T , class T0 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-template <class R, class T , class T0 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-#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 >
-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));
-
-template <class R, class T , class T0 , class T1 , 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);
-
-template <class R, class T , class T0 , class T1 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , 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);
-
-template <class R, class T , class T0 , class T1 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , 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 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));
-
-template <class R, class T , class T0 , class T1 , 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) const);
-
-template <class R, class T , class T0 , class T1 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-template <class R, class T , class T0 , class T1 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-template <class R, class T , class T0 , class T1 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-#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 >
-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));
-
-template <class R, class T , class T0 , class T1 , class T2 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-#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 >
-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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-#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 >
-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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-#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 >
-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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-#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 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-#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 >
-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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( 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 T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( 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 T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( 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 T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( 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 T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__fastcall 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
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , 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 (__cdecl 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
-
-#else
-
-#define NDNBOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "ndnboost/type_traits/detail/is_mem_fun_pointer_tester.hpp"))
-#include NDNBOOST_PP_ITERATE()
-
-#endif // NDNBOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace ndnboost
-
-#endif // NDNBOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define NDNBOOST_PP_COUNTER NDNBOOST_PP_FRAME_ITERATION(1)
-#undef __stdcall
-#undef __fastcall
-#undef __cdecl
-
-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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
deleted file mode 100644
index 40908e7..0000000
--- a/include/ndnboost/type_traits/detail/size_t_trait_def.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date: 2011-04-25 05:26:48 -0700 (Mon, 25 Apr 2011) $
-// $Revision: 71481 $
-
-#include <ndnboost/type_traits/detail/template_arity_spec.hpp>
-#include <ndnboost/type_traits/integral_constant.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-#include <ndnboost/mpl/size_t.hpp>
-
-#include <cstddef>
-
-#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 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 NDNBOOST_TT_AUX_SIZE_T_TRAIT_DEF1(trait,T,C) \
-template< typename T > struct trait \
-    : NDNBOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-#define NDNBOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(trait,spec,C) \
-template<> struct trait<spec> \
-    : NDNBOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
-public:\
-    NDNBOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,C) \
-template< param > struct trait<spec> \
-    : 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
deleted file mode 100644
index 5ab14d9..0000000
--- a/include/ndnboost/type_traits/detail/size_t_trait_undef.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date: 2004-09-02 08:41:37 -0700 (Thu, 02 Sep 2004) $
-// $Revision: 24874 $
-
-#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
deleted file mode 100644
index 4feb8d3..0000000
--- a/include/ndnboost/type_traits/detail/template_arity_spec.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-#include <ndnboost/mpl/int.hpp>
-#include <ndnboost/mpl/aux_/template_arity_fwd.hpp>
-#include <ndnboost/mpl/aux_/preprocessor/params.hpp>
-#include <ndnboost/mpl/aux_/config/lambda.hpp>
-#include <ndnboost/mpl/aux_/config/overload_resolution.hpp>
-
-#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< NDNBOOST_MPL_PP_PARAMS(i, typename T) > \
-struct template_arity< \
-          name< NDNBOOST_MPL_PP_PARAMS(i, T) > \
-        > \
-    : int_<i> \
-{ \
-}; \
-}} \
-/**/
-#else
-#   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
deleted file mode 100644
index 83d0444..0000000
--- a/include/ndnboost/type_traits/detail/type_trait_def.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date: 2011-04-25 05:26:48 -0700 (Mon, 25 Apr 2011) $
-// $Revision: 71481 $
-
-#include <ndnboost/type_traits/detail/template_arity_spec.hpp>
-#include <ndnboost/mpl/aux_/lambda_support.hpp>
-
-#define NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \
-template< typename T > struct trait \
-{ \
-public:\
-    typedef result type; \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-NDNBOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-#define NDNBOOST_TT_AUX_TYPE_TRAIT_SPEC1(trait,spec,result) \
-template<> struct trait<spec> \
-{ \
-public:\
-    typedef result type; \
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(trait,spec,result) \
-template<> struct trait##_impl<spec> \
-{ \
-public:\
-    typedef result type; \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,result) \
-template< param > struct trait<spec> \
-{ \
-public:\
-    typedef result type; \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,spec,result) \
-template< param1, param2 > struct trait<spec> \
-{ \
-public:\
-    typedef result; \
-}; \
-/**/
-
-#define NDNBOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(param,trait,spec,result) \
-template< param > struct trait##_impl<spec> \
-{ \
-public:\
-    typedef result type; \
-}; \
-/**/
diff --git a/include/ndnboost/type_traits/detail/type_trait_undef.hpp b/include/ndnboost/type_traits/detail/type_trait_undef.hpp
deleted file mode 100644
index 9646333..0000000
--- a/include/ndnboost/type_traits/detail/type_trait_undef.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date: 2004-09-02 08:41:37 -0700 (Thu, 02 Sep 2004) $
-// $Revision: 24874 $
-
-#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
deleted file mode 100644
index 216b657..0000000
--- a/include/ndnboost/type_traits/detail/wrap.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//  (C) Copyright David Abrahams 2002. 
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_DETAIL_WRAP_HPP_INCLUDED
-#define NDNBOOST_TT_DETAIL_WRAP_HPP_INCLUDED
-
-namespace ndnboost {
-namespace type_traits {
-
-template <class T> struct wrap {};
-
-}} // namespace ndnboost::type_traits
-
-#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
deleted file mode 100644
index e49877d..0000000
--- a/include/ndnboost/type_traits/detail/yes_no_type.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  macros and helpers for working with integral-constant-expressions.
-
-#ifndef NDNBOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
-#define NDNBOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
-
-namespace ndnboost {
-namespace type_traits {
-
-typedef char yes_type;
-struct no_type
-{
-   char padding[8];
-};
-
-} // namespace type_traits
-} // namespace ndnboost
-
-#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
deleted file mode 100644
index 94de548..0000000
--- a/include/ndnboost/type_traits/extent.hpp
+++ /dev/null
@@ -1,145 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-
-namespace ndnboost {
-
-namespace detail{
-
-#if defined( __CODEGEARC__ )
-    // wrap the impl as main trait provides additional MPL lambda support
-    template < typename T, std::size_t N >
-    struct extent_imp {
-        static const std::size_t value = __array_extent(T, N);
-    };
-
-#else
-
-template <class T, std::size_t N>
-struct extent_imp
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-#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>
-{
-   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>
-{
-   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>
-{
-   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>
-{
-   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>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T const[R], 0>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T volatile[R], 0>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T const volatile[R], 0>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-#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>
-{
-   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>
-{
-   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>
-{
-   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>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::extent_imp<T, N-1>::value));
-};
-template <class T>
-struct extent_imp<T[], 0>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T const[], 0>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T volatile[], 0>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T const volatile[], 0>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-#endif
-#endif
-
-#endif  // non-CodeGear implementation
-}   // ::ndnboost::detail
-
-template <class T, std::size_t N = 0>
-struct extent
-   : public ::ndnboost::integral_constant<std::size_t, ::ndnboost::detail::extent_imp<T,N>::value>
-{
-#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
-    NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,extent,(T))
-};
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/size_t_trait_undef.hpp>
-
-#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
deleted file mode 100644
index b774da1..0000000
--- a/include/ndnboost/type_traits/floating_point_promotion.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// 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 FILE_ndnboost_type_traits_floating_point_promotion_hpp_INCLUDED
-#define FILE_ndnboost_type_traits_floating_point_promotion_hpp_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-#ifdef NDNBOOST_NO_CV_SPECIALIZATIONS
-#include <ndnboost/mpl/at.hpp>
-#include <ndnboost/mpl/int.hpp>
-#include <ndnboost/mpl/multiplies.hpp>
-#include <ndnboost/mpl/plus.hpp>
-#include <ndnboost/mpl/vector.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-#endif
-
-// Should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace type_traits { namespace detail {
-
-#ifndef NDNBOOST_NO_CV_SPECIALIZATIONS
-
-template<class T>
-struct floating_point_promotion
-{
-    typedef T type;
-};
-
-template<>
-struct floating_point_promotion<float>
-{
-    typedef double type;
-};
-
-template<>
-struct floating_point_promotion<float const>
-{
-    typedef double const type;
-};
-
-template<>
-struct floating_point_promotion<float volatile>
-{
-    typedef double volatile type;
-};
-
-template<>
-struct floating_point_promotion<float const volatile>
-{
-    typedef double const volatile type;
-};
-
-#else
-
-template<class T>
-struct floating_point_promotion
-  : mpl::at<
-        mpl::vector< T, double, double const, double volatile,
-                     double const volatile >
-      , mpl::plus<
-            is_same<T, float>
-          , mpl::multiplies< is_same<T, float const>         , mpl::int_<2> >
-          , mpl::multiplies< is_same<T, float volatile>      , mpl::int_<3> >
-          , mpl::multiplies< is_same<T, float const volatile>, mpl::int_<4> >
-          >
-      >
-{
-};
-
-#endif
-
-} }
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(
-      floating_point_promotion
-    , T
-    , NDNBOOST_DEDUCED_TYPENAME
-        ndnboost::type_traits::detail::floating_point_promotion<T>::type
-    )
-}
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // #ifndef FILE_ndnboost_type_traits_floating_point_promotion_hpp_INCLUDED
-
diff --git a/include/ndnboost/type_traits/function_traits.hpp b/include/ndnboost/type_traits/function_traits.hpp
deleted file mode 100644
index 41260db..0000000
--- a/include/ndnboost/type_traits/function_traits.hpp
+++ /dev/null
@@ -1,236 +0,0 @@
-
-//  Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/add_pointer.hpp>
-
-namespace ndnboost {
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-namespace detail {
-
-template<typename Function> struct function_traits_helper;
-
-template<typename R>
-struct function_traits_helper<R (*)(void)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 0);
-  typedef R result_type;
-};
-
-template<typename R, typename T1>
-struct function_traits_helper<R (*)(T1)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 1);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T1 argument_type;
-};
-
-template<typename R, typename T1, typename T2>
-struct function_traits_helper<R (*)(T1, T2)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 2);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T1 first_argument_type;
-  typedef T2 second_argument_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3>
-struct function_traits_helper<R (*)(T1, T2, T3)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 3);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4>
-struct function_traits_helper<R (*)(T1, T2, T3, T4)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 4);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 5);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 6);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 7);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-  typedef T7 arg7_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 8);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-  typedef T7 arg7_type;
-  typedef T8 arg8_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8, typename T9>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 9);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-  typedef T7 arg7_type;
-  typedef T8 arg8_type;
-  typedef T9 arg9_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8, typename T9,
-         typename T10>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = 10);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-  typedef T7 arg7_type;
-  typedef T8 arg8_type;
-  typedef T9 arg9_type;
-  typedef T10 arg10_type;
-};
-
-} // end namespace detail
-
-template<typename Function>
-struct function_traits : 
-  public ndnboost::detail::function_traits_helper<typename ndnboost::add_pointer<Function>::type>
-{
-};
-
-#else
-
-namespace detail {
-
-template<unsigned N> 
-struct type_of_size
-{
-  char elements[N];
-};
-
-template<typename R>
-type_of_size<1> function_arity_helper(R (*f)());
-
-template<typename R, typename T1>
-type_of_size<2> function_arity_helper(R (*f)(T1));
-
-template<typename R, typename T1, typename T2>
-type_of_size<3> function_arity_helper(R (*f)(T1, T2));
-
-template<typename R, typename T1, typename T2, typename T3>
-type_of_size<4> function_arity_helper(R (*f)(T1, T2, T3));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4>
-type_of_size<5> function_arity_helper(R (*f)(T1, T2, T3, T4));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5>
-type_of_size<6> function_arity_helper(R (*f)(T1, T2, T3, T4, T5));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6>
-type_of_size<7> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7>
-type_of_size<8> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8>
-type_of_size<9> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8, typename T9>
-type_of_size<10> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8, 
-                                              T9));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8, typename T9,
-         typename T10>
-type_of_size<11> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8, 
-                                              T9, T10));
-} // end namespace detail
-
-// Won't work with references
-template<typename Function>
-struct function_traits
-{
-  NDNBOOST_STATIC_CONSTANT(unsigned, arity = (sizeof(ndnboost::detail::function_arity_helper((Function*)0))-1));
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-}
-
-#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
deleted file mode 100644
index ba2d0e5..0000000
--- a/include/ndnboost/type_traits/has_bit_and.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_BIT_AND_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_BIT_AND_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index ecf65e0..0000000
--- a/include/ndnboost/type_traits/has_bit_and_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 1a97651..0000000
--- a/include/ndnboost/type_traits/has_bit_or.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_BIT_OR_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_BIT_OR_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index bf73437..0000000
--- a/include/ndnboost/type_traits/has_bit_or_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 083a4fc..0000000
--- a/include/ndnboost/type_traits/has_bit_xor.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index d7fa3af..0000000
--- a/include/ndnboost/type_traits/has_bit_xor_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 427f6ff..0000000
--- a/include/ndnboost/type_traits/has_complement.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
-
-#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,\
-      /* fundamental non integral */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
-
-#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
deleted file mode 100644
index 66f255a..0000000
--- a/include/ndnboost/type_traits/has_dereference.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_void< Rhs_noptr >::value\
-      >::value,\
-      ::ndnboost::is_fundamental< Rhs_nocv >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
-
-#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
deleted file mode 100644
index b1e79eb..0000000
--- a/include/ndnboost/type_traits/has_divides.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_DIVIDES_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_DIVIDES_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 7c3150f..0000000
--- a/include/ndnboost/type_traits/has_divides_assign.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index ad129e8..0000000
--- a/include/ndnboost/type_traits/has_equal_to.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_not<\
-            ::ndnboost::type_traits::ice_or<\
-               ::ndnboost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::ndnboost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_void< Lhs_noptr >::value,\
-               ::ndnboost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 65d7df6..0000000
--- a/include/ndnboost/type_traits/has_greater.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_GREATER_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_GREATER_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_not<\
-            ::ndnboost::type_traits::ice_or<\
-               ::ndnboost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::ndnboost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_void< Lhs_noptr >::value,\
-               ::ndnboost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 03e6c90..0000000
--- a/include/ndnboost/type_traits/has_greater_equal.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_not<\
-            ::ndnboost::type_traits::ice_or<\
-               ::ndnboost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::ndnboost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_void< Lhs_noptr >::value,\
-               ::ndnboost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index bf6d341..0000000
--- a/include/ndnboost/type_traits/has_left_shift.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 6df35e9..0000000
--- a/include/ndnboost/type_traits/has_left_shift_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 962c260..0000000
--- a/include/ndnboost/type_traits/has_less.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_LESS_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_LESS_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_not<\
-            ::ndnboost::type_traits::ice_or<\
-               ::ndnboost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::ndnboost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_void< Lhs_noptr >::value,\
-               ::ndnboost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index ee2a25e..0000000
--- a/include/ndnboost/type_traits/has_less_equal.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_not<\
-            ::ndnboost::type_traits::ice_or<\
-               ::ndnboost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::ndnboost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_void< Lhs_noptr >::value,\
-               ::ndnboost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 80bca8e..0000000
--- a/include/ndnboost/type_traits/has_logical_and.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::type_traits::ice_and<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_convertible< Rhs_nocv, bool >::value >::value\
-         >::value\
-      >::value,\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_and<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_convertible< Lhs_nocv, bool >::value >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index d16cd44..0000000
--- a/include/ndnboost/type_traits/has_logical_not.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
-
-#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 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
deleted file mode 100644
index 0fd1d05..0000000
--- a/include/ndnboost/type_traits/has_logical_or.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::type_traits::ice_and<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_convertible< Rhs_nocv, bool >::value >::value\
-         >::value\
-      >::value,\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_and<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_convertible< Lhs_nocv, bool >::value >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 54d6e05..0000000
--- a/include/ndnboost/type_traits/has_minus.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_MINUS_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_MINUS_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-      >::value,\
-      /* Lhs==void* and (Rhs==fundamental or Rhs==pointer) */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_void< Lhs_noptr >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      /* Rhs==void* and (Lhs==fundamental or Lhs==pointer) */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_void< Rhs_noptr >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value,\
-      /* Lhs=fundamental and Rhs=pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* two different pointers */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_same< Lhs_nocv, Rhs_nocv >::value >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 391b83d..0000000
--- a/include/ndnboost/type_traits/has_minus_assign.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-      >::value,\
-      /* Lhs==void* and Rhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_void< Lhs_noptr >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==void* and Lhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_void< Rhs_noptr >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs=fundamental and Rhs=pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::is_pointer< Lhs_noref >::value\
-         >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::is_pointer< Rhs_noref >::value\
-         >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index e0f8e9f..0000000
--- a/include/ndnboost/type_traits/has_modulus.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_MODULUS_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_MODULUS_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 2412ee2..0000000
--- a/include/ndnboost/type_traits/has_modulus_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index f53eeaa..0000000
--- a/include/ndnboost/type_traits/has_multiplies.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index ce70851..0000000
--- a/include/ndnboost/type_traits/has_multiplies_assign.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index bee3a82..0000000
--- a/include/ndnboost/type_traits/has_negate.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_NEGATE_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_NEGATE_HPP_INCLUDED
-
-#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 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
deleted file mode 100644
index 099c1f2..0000000
--- a/include/ndnboost/type_traits/has_new_operator.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-
-//  (C) Copyright Runar Undheim, Robert Ramey & John Maddock 2008.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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
-#include <ndnboost/type_traits/config.hpp>
-#include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-namespace detail {
-    template <class U, U x> 
-    struct test;
-
-    template <typename T>
-    struct has_new_operator_impl {
-        template<class U>
-        static type_traits::yes_type check_sig1(
-            U*, 
-            test<
-            void *(*)(std::size_t),
-                &U::operator new
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig1(...);
-
-        template<class U>
-        static type_traits::yes_type check_sig2(
-            U*, 
-            test<
-            void *(*)(std::size_t, const std::nothrow_t&),
-                &U::operator new
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig2(...);
-
-        template<class U>
-        static type_traits::yes_type check_sig3(
-            U*, 
-            test<
-            void *(*)(std::size_t, void*),
-                &U::operator new
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig3(...);
-
-
-        template<class U>
-        static type_traits::yes_type check_sig4(
-            U*, 
-            test<
-            void *(*)(std::size_t),
-                &U::operator new[]
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig4(...);
-
-        template<class U>
-        static type_traits::yes_type check_sig5(
-            U*, 
-            test<
-            void *(*)(std::size_t, const std::nothrow_t&),
-                &U::operator new[]
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig5(...);
-
-        template<class U>
-        static type_traits::yes_type check_sig6(
-            U*, 
-            test<
-            void *(*)(std::size_t, void*),
-                &U::operator new[]
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig6(...);
-
-        // GCC2 won't even parse this template if we embed the computation
-        // of s1 in the computation of value.
-        #ifdef __GNUC__
-            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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
-                #pragma warning(push)
-                #pragma warning(disable:6334)
-            #endif
-
-            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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
-                #pragma warning(pop)
-            #endif
-        #endif
-        NDNBOOST_STATIC_CONSTANT(bool, value = 
-           (::ndnboost::type_traits::ice_or<
-            (s1 == sizeof(type_traits::yes_type)),
-            (s2 == sizeof(type_traits::yes_type)),
-            (s3 == sizeof(type_traits::yes_type)),
-            (s4 == sizeof(type_traits::yes_type)),
-            (s5 == sizeof(type_traits::yes_type)),
-            (s6 == sizeof(type_traits::yes_type))
-           >::value)
-        );
-    };
-} // namespace detail
-
-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 // 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
deleted file mode 100644
index 8a5f2c6..0000000
--- a/include/ndnboost/type_traits/has_not_equal_to.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::type_traits::ice_not<\
-            ::ndnboost::type_traits::ice_or<\
-               ::ndnboost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::ndnboost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::ndnboost::is_void< Lhs_noptr >::value,\
-               ::ndnboost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 6e4ee21..0000000
--- a/include/ndnboost/type_traits/has_nothrow_assign.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
-
-#include <ndnboost/type_traits/has_trivial_assign.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_assign_imp{
-#ifndef NDNBOOST_HAS_NOTHROW_ASSIGN
-   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::has_trivial_assign<T>::value);
-#else
-   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_NOTHROW_ASSIGN(T));
-#endif
-};
-
-}
-
-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 // 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
deleted file mode 100644
index 18baf1d..0000000
--- a/include/ndnboost/type_traits/has_nothrow_constructor.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
-
-#include <ndnboost/type_traits/has_trivial_constructor.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_constructor_imp{
-#ifdef NDNBOOST_HAS_NOTHROW_CONSTRUCTOR
-   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T));
-#else
-   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::has_trivial_constructor<T>::value);
-#endif
-};
-
-}
-
-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)
-
-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
-
-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 // 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
deleted file mode 100644
index 1359ca3..0000000
--- a/include/ndnboost/type_traits/has_nothrow_copy.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
-
-#include <ndnboost/type_traits/has_trivial_copy.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_copy_imp{
-#ifdef NDNBOOST_HAS_NOTHROW_COPY
-   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_NOTHROW_COPY(T));
-#else
-   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::has_trivial_copy<T>::value);
-#endif
-};
-
-}
-
-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)
-
-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
-
-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 // 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
deleted file mode 100644
index 3c11cab..0000000
--- a/include/ndnboost/type_traits/has_nothrow_destructor.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
-
-#include <ndnboost/type_traits/has_trivial_destructor.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-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 // 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
deleted file mode 100644
index a63d87a..0000000
--- a/include/ndnboost/type_traits/has_operator.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/has_bit_or.hpp>
-#include <ndnboost/type_traits/has_bit_or_assign.hpp>
-#include <ndnboost/type_traits/has_bit_xor.hpp>
-#include <ndnboost/type_traits/has_bit_xor_assign.hpp>
-#include <ndnboost/type_traits/has_complement.hpp>
-#include <ndnboost/type_traits/has_dereference.hpp>
-#include <ndnboost/type_traits/has_divides.hpp>
-#include <ndnboost/type_traits/has_divides_assign.hpp>
-#include <ndnboost/type_traits/has_equal_to.hpp>
-#include <ndnboost/type_traits/has_greater.hpp>
-#include <ndnboost/type_traits/has_greater_equal.hpp>
-#include <ndnboost/type_traits/has_left_shift.hpp>
-#include <ndnboost/type_traits/has_left_shift_assign.hpp>
-#include <ndnboost/type_traits/has_less.hpp>
-#include <ndnboost/type_traits/has_less_equal.hpp>
-#include <ndnboost/type_traits/has_logical_and.hpp>
-#include <ndnboost/type_traits/has_logical_not.hpp>
-#include <ndnboost/type_traits/has_logical_or.hpp>
-#include <ndnboost/type_traits/has_minus.hpp>
-#include <ndnboost/type_traits/has_minus_assign.hpp>
-#include <ndnboost/type_traits/has_modulus.hpp>
-#include <ndnboost/type_traits/has_modulus_assign.hpp>
-#include <ndnboost/type_traits/has_multiplies.hpp>
-#include <ndnboost/type_traits/has_multiplies_assign.hpp>
-#include <ndnboost/type_traits/has_negate.hpp>
-#include <ndnboost/type_traits/has_not_equal_to.hpp>
-#include <ndnboost/type_traits/has_plus.hpp>
-#include <ndnboost/type_traits/has_plus_assign.hpp>
-#include <ndnboost/type_traits/has_post_decrement.hpp>
-#include <ndnboost/type_traits/has_post_increment.hpp>
-#include <ndnboost/type_traits/has_pre_decrement.hpp>
-#include <ndnboost/type_traits/has_pre_increment.hpp>
-#include <ndnboost/type_traits/has_right_shift.hpp>
-#include <ndnboost/type_traits/has_right_shift_assign.hpp>
-#include <ndnboost/type_traits/has_unary_minus.hpp>
-#include <ndnboost/type_traits/has_unary_plus.hpp>
-
-#endif
diff --git a/include/ndnboost/type_traits/has_plus.hpp b/include/ndnboost/type_traits/has_plus.hpp
deleted file mode 100644
index 92e8150..0000000
--- a/include/ndnboost/type_traits/has_plus.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_PLUS_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_PLUS_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==void* and Rhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_void< Lhs_noptr >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==void* and Lhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_void< Rhs_noptr >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental and Lhs!=integral */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 1daa28e..0000000
--- a/include/ndnboost/type_traits/has_plus_assign.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==void* and Rhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_void< Lhs_noptr >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==void* and Lhs==fundamental */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_void< Rhs_noptr >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental and Lhs!=bool */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_same< Lhs_nocv, bool >::value >::value\
-      >::value,\
-      /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::is_pointer< Lhs_noref >::value\
-         >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::is_pointer< Rhs_noref >::value\
-         >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 7fd7771..0000000
--- a/include/ndnboost/type_traits/has_post_decrement.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
-
-#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,\
-      /* void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_void< Lhs_noptr >::value\
-      >::value,\
-      /* (fundamental or pointer) and const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::is_pointer< Lhs_noref >::value\
-         >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_postfix_operator.hpp>
-
-#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
deleted file mode 100644
index 3d929ac..0000000
--- a/include/ndnboost/type_traits/has_post_increment.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
-
-#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,\
-      /* void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_void< Lhs_noptr >::value\
-      >::value,\
-      /* (fundamental or pointer) and const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-            ::ndnboost::is_pointer< Lhs_noref >::value\
-         >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_postfix_operator.hpp>
-
-#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
deleted file mode 100644
index 116238e..0000000
--- a/include/ndnboost/type_traits/has_pre_decrement.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
-
-#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,\
-      /* void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_void< Rhs_noptr >::value\
-      >::value,\
-      /* (fundamental or pointer) and const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::is_pointer< Rhs_noref >::value\
-         >::value,\
-         ::ndnboost::is_const< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
-
-#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
deleted file mode 100644
index c40c13a..0000000
--- a/include/ndnboost/type_traits/has_pre_increment.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
-
-#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,\
-      /* void* */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Rhs_noref >::value,\
-         ::ndnboost::is_void< Rhs_noptr >::value\
-      >::value,\
-      /* (fundamental or pointer) and const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-            ::ndnboost::is_pointer< Rhs_noref >::value\
-         >::value,\
-         ::ndnboost::is_const< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_prefix_operator.hpp>
-
-#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
deleted file mode 100644
index 7a05b7d..0000000
--- a/include/ndnboost/type_traits/has_right_shift.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index 75e8c24..0000000
--- a/include/ndnboost/type_traits/has_right_shift_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
-
-#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<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::type_traits::ice_or<\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Lhs_noref >::value >::value,\
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_pointer< Lhs_noref >::value,\
-         ::ndnboost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::ndnboost::type_traits::ice_and<\
-         ::ndnboost::is_fundamental< Lhs_nocv >::value,\
-         ::ndnboost::is_fundamental< Rhs_nocv >::value,\
-         ::ndnboost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <ndnboost/type_traits/detail/has_binary_operator.hpp>
-
-#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
deleted file mode 100644
index fd8a2f8..0000000
--- a/include/ndnboost/type_traits/has_trivial_assign.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_pod.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_volatile.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_assign_impl
-{
-#ifdef NDNBOOST_HAS_TRIVIAL_ASSIGN
-   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_TRIVIAL_ASSIGN(T));
-#else
-   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,
-      ::ndnboost::type_traits::ice_not< ::ndnboost::is_volatile<T>::value >::value
-      >::value));
-#endif
-};
-
-} // namespace detail
-
-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 // 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
deleted file mode 100644
index c025bd1..0000000
--- a/include/ndnboost/type_traits/has_trivial_constructor.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_pod.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_ctor_impl
-{
-#ifdef NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR
-   NDNBOOST_STATIC_CONSTANT(bool, value =
-      (::ndnboost::type_traits::ice_or<
-         ::ndnboost::is_pod<T>::value,
-         NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T)
-      >::value));
-#else
-   NDNBOOST_STATIC_CONSTANT(bool, value =
-      (::ndnboost::type_traits::ice_or<
-         ::ndnboost::is_pod<T>::value,
-         false
-      >::value));
-#endif
-};
-
-} // namespace detail
-
-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 // 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
deleted file mode 100644
index cb9e887..0000000
--- a/include/ndnboost/type_traits/has_trivial_copy.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_volatile.hpp>
-#include <ndnboost/type_traits/is_pod.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_copy_impl
-{
-#ifdef NDNBOOST_HAS_TRIVIAL_COPY
-   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_TRIVIAL_COPY(T));
-#else
-   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
-      >::value));
-#endif
-};
-
-} // namespace detail
-
-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)
-
-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
-
-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 // 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
deleted file mode 100644
index 5b83af9..0000000
--- a/include/ndnboost/type_traits/has_trivial_destructor.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_pod.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_dtor_impl
-{
-#ifdef NDNBOOST_HAS_TRIVIAL_DESTRUCTOR
-   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T));
-#else
-   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::is_pod<T>::value);
-#endif
-};
-
-} // namespace detail
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_destructor,T,::ndnboost::detail::has_trivial_dtor_impl<T>::value)
-
-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 // 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
deleted file mode 100644
index 7067eff..0000000
--- a/include/ndnboost/type_traits/has_trivial_move_assign.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  (C) Copyright Eric Friedman 2002-2003.
-//  (C) Copyright Antony Polukhin 2013.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_volatile.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_move_assign_impl
-{
-#ifdef NDNBOOST_HAS_TRIVIAL_MOVE_ASSIGN
-   NDNBOOST_STATIC_CONSTANT(bool, value = (NDNBOOST_HAS_TRIVIAL_MOVE_ASSIGN(T)));
-#else
-   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,
-              ::ndnboost::type_traits::ice_not< ::ndnboost::is_volatile<T>::value >::value
-           >::value));
-#endif
-};
-
-} // namespace detail
-
-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 // 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
deleted file mode 100644
index 4e9c95c..0000000
--- a/include/ndnboost/type_traits/has_trivial_move_constructor.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  (C) Copyright Eric Friedman 2002-2003.
-//  (C) Copyright Antony Polukhin 2013.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_pod.hpp>
-#include <ndnboost/type_traits/is_volatile.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_move_ctor_impl
-{
-#ifdef NDNBOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR
-   NDNBOOST_STATIC_CONSTANT(bool, value = (NDNBOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T)));
-#else
-   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
-           >::value));
-#endif
-};
-
-} // namespace detail
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_constructor,T,::ndnboost::detail::has_trivial_move_ctor_impl<T>::value)
-
-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 // 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
deleted file mode 100644
index 0f795da..0000000
--- a/include/ndnboost/type_traits/has_unary_minus.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
-
-#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 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
deleted file mode 100644
index 096af6d..0000000
--- a/include/ndnboost/type_traits/has_unary_plus.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
-#define NDNBOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
-
-#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 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
deleted file mode 100644
index b644edf..0000000
--- a/include/ndnboost/type_traits/has_virtual_destructor.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#ifdef NDNBOOST_HAS_VIRTUAL_DESTRUCTOR
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T))
-#else
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,false)
-#endif
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index dd2ee99..0000000
--- a/include/ndnboost/type_traits/ice.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  macros and helpers for working with integral-constant-expressions.
-
-#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>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-#include <ndnboost/type_traits/detail/ice_eq.hpp>
-
-#endif // NDNBOOST_TT_ICE_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/integral_constant.hpp b/include/ndnboost/type_traits/integral_constant.hpp
deleted file mode 100644
index 78b9050..0000000
--- a/include/ndnboost/type_traits/integral_constant.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-//  (C) Copyright John Maddock 2005. 
-//  Use, modification and distribution are subject to 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 NDNBOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
-#define NDNBOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/integral_c.hpp>
-
-namespace ndnboost{
-
-#if defined(NDNBOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || defined(__BORLANDC__)
-template <class T, int val>
-#else
-template <class T, T val>
-#endif
-struct integral_constant : public mpl::integral_c<T, val>
-{
-   typedef integral_constant<T,val> type;
-};
-
-template<> struct integral_constant<bool,true> : public mpl::true_ 
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-# pragma warning(push)
-# pragma warning(disable:4097)
-   typedef mpl::true_ base_;
-   using base_::value;
-# pragma warning(pop)
-#endif
-   typedef integral_constant<bool,true> type;
-};
-template<> struct integral_constant<bool,false> : public mpl::false_ 
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1300)
-# pragma warning(push)
-# pragma warning(disable:4097)
-   typedef mpl::false_ base_;
-   using base_::value;
-# pragma warning(pop)
-#endif
-   typedef integral_constant<bool,false> type;
-};
-
-typedef integral_constant<bool,true> true_type;
-typedef integral_constant<bool,false> false_type;
-
-}
-
-#endif
diff --git a/include/ndnboost/type_traits/integral_promotion.hpp b/include/ndnboost/type_traits/integral_promotion.hpp
deleted file mode 100644
index 0871147..0000000
--- a/include/ndnboost/type_traits/integral_promotion.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// 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 FILE_ndnboost_type_traits_integral_promotion_hpp_INCLUDED
-#define FILE_ndnboost_type_traits_integral_promotion_hpp_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/type_traits/integral_constant.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_enum.hpp>
-#include <ndnboost/type_traits/is_volatile.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-
-// Should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace type_traits { namespace detail {
-
-// 4.5/2
-template <class T> struct need_promotion : public ndnboost::is_enum<T> {};
-
-// 4.5/1
-template<> struct need_promotion<char              > : public true_type {};
-template<> struct need_promotion<signed char       > : public true_type {};
-template<> struct need_promotion<unsigned char     > : public true_type {};
-template<> struct need_promotion<signed short int  > : public true_type {};
-template<> struct need_promotion<unsigned short int> : public true_type {};
-
-
-// Specializations for non-standard types.
-// Type is promoted if it's smaller then int.
-
-#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(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.
-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__
-NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64)
-NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(         __int64)
-#endif
-#endif
-
-#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 NDNBOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE
-
-
-#ifndef NDNBOOST_NO_INTRINSIC_WCHAR_T
-// 4.5/2
-template<> struct need_promotion<wchar_t> : public true_type {};
-#endif
-
-// 4.5/3 (integral bit-field) is not supported.
-
-// 4.5/4
-template<> struct need_promotion<bool> : public true_type {};
-
-
-// Get promoted type by index and cv qualifiers.
-
-template<int Index, int IsConst, int IsVolatile> struct promote_from_index;
-
-#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; };
-
-
-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
-// long long and __int64 are not defined by the standard.
-// Additional specialisations and overloads shouldn't
-// introduce ambiguity, though.
-
-#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 NDNBOOST_TT_AUX_PROMOTE_FROM_INDEX
-
-
-// Define NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER:
-#if !defined(NDNBOOST_MSVC)
-
-template<int N>
-struct sized_type_for_promotion
-{
-    typedef char (&type)[N];
-};
-
-#define NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
-    sized_type_for_promotion<I>::type promoted_index_tester(T);
-
-#else
-
-#define NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
-    char (&promoted_index_tester(T))[I];
-
-#endif
-
-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(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 NDNBOOST_TT_AUX_PROMOTED_INDEX_TESTER
-
-
-// Get an index of promoted type for type T.
-// Precondition: need_promotion<T>
-template<class T>
-struct promoted_index
-{
-    static T testee; // undefined
-    NDNBOOST_STATIC_CONSTANT(int, value = sizeof(promoted_index_tester(+testee)) );
-    // Unary plus promotes testee                    LOOK HERE ---> ^
-};
-
-template<class T>
-struct integral_promotion_impl
-{
-    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)
-      >::type type;
-};
-
-template<class T>
-struct integral_promotion
-  : public ndnboost::mpl::eval_if<
-        need_promotion<NDNBOOST_DEDUCED_TYPENAME remove_cv<T>::type>
-      , integral_promotion_impl<T>
-      , ndnboost::mpl::identity<T>
-      >
-{
-};
-
-} }
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(
-      integral_promotion
-    , T
-    , NDNBOOST_DEDUCED_TYPENAME
-        ndnboost::type_traits::detail::integral_promotion<T>::type
-    )
-}
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // #ifndef FILE_ndnboost_type_traits_integral_promotion_hpp_INCLUDED
-
diff --git a/include/ndnboost/type_traits/intrinsics.hpp b/include/ndnboost/type_traits/intrinsics.hpp
deleted file mode 100644
index 978b2e1..0000000
--- a/include/ndnboost/type_traits/intrinsics.hpp
+++ /dev/null
@@ -1,305 +0,0 @@
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_INTRINSICS_HPP_INCLUDED
-#define NDNBOOST_TT_INTRINSICS_HPP_INCLUDED
-
-#ifndef NDNBOOST_TT_CONFIG_HPP_INCLUDED
-#include <ndnboost/type_traits/config.hpp>
-#endif
-
-//
-// Helper macros for builtin compiler support.
-// If your compiler has builtin support for any of the following
-// traits concepts, then redefine the appropriate macros to pick
-// up on the compiler support:
-//
-// (these should largely ignore cv-qualifiers)
-// 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.
-//
-// 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 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>
-#   ifdef __NetBSD__
-      // There are two different versions of type_traits.h on NetBSD on Spark
-      // use an implicit include via algorithm instead, to make sure we get
-      // the same version as the std lib:
-#     include <algorithm>
-#   else
-#    include <type_traits.h>
-#   endif
-#   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 NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
-#   endif
-#endif
-
-#if defined(__MSL_CPP__) && (__MSL_CPP__ >= 0x8000)
-    // Metrowerks compiler is acquiring intrinsic type traits support
-    // post version 8.  We hook into the published interface to pick up
-    // user defined specializations as well as compiler intrinsics as 
-    // and when they become available:
-#   include <msl_utility>
-#   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(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 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 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 NDNBOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-//  This one fails if the default alignment has been changed with /Zp:
-//  #   define NDNBOOST_ALIGNMENT_OF(T) __alignof(T)
-
-#   if defined(_MSC_VER) && (_MSC_VER >= 1700)
-#       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 NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(__DMC__) && (__DMC__ >= 0x848)
-// For Digital Mars C++, www.digitalmars.com
-#   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(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 NDNBOOST_IS_UNION(T) __is_union(T)
-#   endif
-#   if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_pod)
-#     define NDNBOOST_IS_POD(T) __is_pod(T)
-#   endif
-#   if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_empty)
-#     define NDNBOOST_IS_EMPTY(T) __is_empty(T)
-#   endif
-#   if __has_feature(has_trivial_constructor)
-#     define NDNBOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-#   endif
-#   if __has_feature(has_trivial_copy)
-#     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 NDNBOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
-#   endif
-#   if __has_feature(has_trivial_destructor)
-#     define NDNBOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
-#   endif
-#   if __has_feature(has_nothrow_constructor)
-#     define NDNBOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
-#   endif
-#   if __has_feature(has_nothrow_copy)
-#     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 NDNBOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
-#   endif
-#   if __has_feature(has_virtual_destructor)
-#     define NDNBOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
-#   endif
-#   if __has_feature(is_abstract)
-#     define NDNBOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   endif
-#   if __has_feature(is_base_of)
-#     define NDNBOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-#   endif
-#   if __has_feature(is_class)
-#     define NDNBOOST_IS_CLASS(T) __is_class(T)
-#   endif
-#   if __has_feature(is_convertible_to)
-#     include <ndnboost/type_traits/is_abstract.hpp>
-#     define NDNBOOST_IS_CONVERTIBLE(T,U) (__is_convertible_to(T,U) && !::ndnboost::is_abstract<U>::value)
-#   endif
-#   if __has_feature(is_enum)
-#     define NDNBOOST_IS_ENUM(T) __is_enum(T)
-#   endif
-#   if __has_feature(is_polymorphic)
-#     define NDNBOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-#   endif
-#   if __has_feature(has_trivial_move_constructor)
-#     define NDNBOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) __has_trivial_move_constructor(T)
-#   endif
-#   if __has_feature(has_trivial_move_assign)
-#     define NDNBOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) __has_trivial_move_assign(T)
-#   endif
-#   define NDNBOOST_ALIGNMENT_OF(T) __alignof(T)
-
-#   define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#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 NDNBOOST_INTEL
-#  define NDNBOOST_INTEL_TT_OPTS || is_pod<T>::value
-#else
-#  define NDNBOOST_INTEL_TT_OPTS
-#endif
-
-#   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 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 NDNBOOST_ALIGNMENT_OF(T) __alignof__(T)
-#   endif
-
-#   define NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600)
-#   include <ndnboost/type_traits/is_same.hpp>
-#   include <ndnboost/type_traits/is_reference.hpp>
-#   include <ndnboost/type_traits/is_volatile.hpp>
-
-#   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 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 NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-# if defined(__CODEGEARC__)
-#   include <ndnboost/type_traits/is_same.hpp>
-#   include <ndnboost/type_traits/is_reference.hpp>
-#   include <ndnboost/type_traits/is_volatile.hpp>
-#   include <ndnboost/type_traits/is_void.hpp>
-
-#   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 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 NDNBOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#endif // NDNBOOST_TT_INTRINSICS_HPP_INCLUDED
-
-
-
-
-
-
-
diff --git a/include/ndnboost/type_traits/is_abstract.hpp b/include/ndnboost/type_traits/is_abstract.hpp
deleted file mode 100644
index a63029c..0000000
--- a/include/ndnboost/type_traits/is_abstract.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-#ifndef NDNBOOST_TT_IS_ABSTRACT_CLASS_HPP
-#define NDNBOOST_TT_IS_ABSTRACT_CLASS_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// is_abstract_class.hpp:
-//
-//  (C) Copyright 2002 Rani Sharoni (rani_sharoni@hotmail.com) and Robert Ramey
-//  Use, modification and distribution is subject to 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)
-//  
-//  See http://www.boost.org for updates, documentation, and revision history.
-//
-
-// Compile type discovery whether given type is abstract class or not.
-//
-//   Requires DR 337 to be supported by compiler
-//   (http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_active.html#337).
-//
-//
-// Believed (Jan 2004) to work on:
-//  - GCC 3.4
-//  - VC++ 7.1
-//  - compilers with new EDG frontend (Intel C++ 7, Comeau 4.3.2)
-//
-// Doesn't work on:
-//  - VC++6, VC++7.0 and less
-//  - GCC 3.3.X and less
-//  - Borland C++ 6 and less
-//      
-//
-// History:
-//  - Originally written by Rani Sharoni, see
-//    http://groups.google.com/groups?selm=df893da6.0207110613.75b2fe90%40posting.google.com
-//    At this time supported by EDG (Intel C++ 7, Comeau 4.3.2) and VC7.1.
-//  - Adapted and added into Boost.Serialization library by Robert Ramey 
-//    (starting with submission #10).
-//  - Jan 2004: GCC 3.4 fixed to support DR337 (Giovanni Bajo).
-//  - Jan 2004: modified to be part of Boost.TypeTraits (Pavel Vozenilek).
-//  - 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 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 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 NDNBOOST_NO_IS_ABSTRACT
-#include <ndnboost/type_traits/is_polymorphic.hpp>
-#endif
-#endif
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-
-namespace ndnboost {
-namespace detail{
-
-#ifdef NDNBOOST_IS_ABSTRACT
-template <class T>
-struct is_abstract_imp
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_IS_ABSTRACT(T));
-};
-#elif !defined(NDNBOOST_NO_IS_ABSTRACT)
-template<class T>
-struct is_abstract_imp2
-{
-   // Deduction fails if T is void, function type, 
-   // reference type (14.8.2/2)or an abstract class type 
-   // according to review status issue #337
-   //
-   template<class U>
-   static type_traits::no_type check_sig(U (*)[1]);
-   template<class U>
-   static type_traits::yes_type check_sig(...);
-   //
-   // 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:
-   //
-   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__
-   NDNBOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(is_abstract_imp2<T>::template check_sig<T>(0)));
-#else
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
-   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
-    
-   NDNBOOST_STATIC_CONSTANT(bool, value = 
-      (s1 == sizeof(type_traits::yes_type)));
-};
-
-template <bool v>
-struct is_abstract_select
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_abstract_imp2<T> type;
-   };
-};
-template <>
-struct is_abstract_select<false>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <class T>
-struct is_abstract_imp
-{
-   typedef is_abstract_select< ::ndnboost::is_class<T>::value> selector;
-   typedef typename selector::template rebind<T> binder;
-   typedef typename binder::type type;
-
-   NDNBOOST_STATIC_CONSTANT(bool, value = type::value);
-};
-
-#endif
-}
-
-#ifndef NDNBOOST_NO_IS_ABSTRACT
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::ndnboost::detail::is_abstract_imp<T>::value)
-#else
-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 //NDNBOOST_TT_IS_ABSTRACT_CLASS_HPP
diff --git a/include/ndnboost/type_traits/is_arithmetic.hpp b/include/ndnboost/type_traits/is_arithmetic.hpp
deleted file mode 100644
index 71f7014..0000000
--- a/include/ndnboost/type_traits/is_arithmetic.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
-#define NDNBOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
-
-#if !defined( __CODEGEARC__ )
-#include <ndnboost/type_traits/is_integral.hpp>
-#include <ndnboost/type_traits/is_float.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/config.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if !defined(__CODEGEARC__)
-namespace detail {
-
-template< typename T >
-struct is_arithmetic_impl
-{ 
-    NDNBOOST_STATIC_CONSTANT(bool, value = 
-        (::ndnboost::type_traits::ice_or< 
-            ::ndnboost::is_integral<T>::value,
-            ::ndnboost::is_float<T>::value
-        >::value)); 
-};
-
-} // namespace detail
-#endif
-
-//* is a type T an arithmetic type described in the standard (3.9.1p8)
-#if defined(__CODEGEARC__)
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,__is_arithmetic(T))
-#else
-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 // NDNBOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_array.hpp b/include/ndnboost/type_traits/is_array.hpp
deleted file mode 100644
index 78ff652..0000000
--- a/include/ndnboost/type_traits/is_array.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-// Some fixes for is_array are based on a newsgroup posting by Jonathan Lundquist.
-
-
-#ifndef NDNBOOST_TT_IS_ARRAY_HPP_INCLUDED
-#define NDNBOOST_TT_IS_ARRAY_HPP_INCLUDED
-
-#include <ndnboost/type_traits/config.hpp>
-
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#   include <ndnboost/type_traits/detail/wrap.hpp>
-#endif
-
-#include <cstddef>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if defined( __CODEGEARC__ )
-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 // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-using ::ndnboost::type_traits::yes_type;
-using ::ndnboost::type_traits::no_type;
-using ::ndnboost::type_traits::wrap;
-
-template< typename T > T(* is_array_tester1(wrap<T>) )(wrap<T>);
-char NDNBOOST_TT_DECL is_array_tester1(...);
-
-template< typename T> no_type is_array_tester2(T(*)(wrap<T>));
-yes_type NDNBOOST_TT_DECL is_array_tester2(...);
-
-template< typename T >
-struct is_array_impl
-{ 
-    NDNBOOST_STATIC_CONSTANT(bool, value = 
-        sizeof(::ndnboost::detail::is_array_tester2(
-            ::ndnboost::detail::is_array_tester1(
-                ::ndnboost::type_traits::wrap<T>()
-                )
-        )) == 1
-    );
-};
-
-#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
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,::ndnboost::detail::is_array_impl<T>::value)
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 8dc35af..0000000
--- a/include/ndnboost/type_traits/is_base_and_derived.hpp
+++ /dev/null
@@ -1,254 +0,0 @@
-
-//  (C) Copyright Rani Sharoni 2003.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
- 
-#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 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>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/config.hpp>
-#include <ndnboost/static_assert.hpp>
-#endif
-#include <ndnboost/type_traits/remove_cv.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-#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
-                             // exactly fixes the problem.
-
-/*************************************************************************
-
-This version detects ambiguous base classes and private base classes
-correctly, and was devised by Rani Sharoni.
-
-Explanation by Terje Slettebo and Rani Sharoni.
-
-Let's take the multiple base class below as an example, and the following
-will also show why there's not a problem with private or ambiguous base
-class:
-
-struct B {};
-struct B1 : B {};
-struct B2 : B {};
-struct D : private B1, private B2 {};
-
-is_base_and_derived<B, D>::value;
-
-First, some terminology:
-
-SC  - Standard conversion
-UDC - User-defined conversion
-
-A user-defined conversion sequence consists of an SC, followed by an UDC,
-followed by another SC. Either SC may be the identity conversion.
-
-When passing the default-constructed Host object to the overloaded check_sig()
-functions (initialization 8.5/14/4/3), we have several viable implicit
-conversion sequences:
-
-For "static no_type check_sig(B const volatile *, int)" we have the conversion
-sequences:
-
-C -> C const (SC - Qualification Adjustment) -> B const volatile* (UDC)
-C -> D const volatile* (UDC) -> B1 const volatile* / B2 const volatile* ->
-     B const volatile* (SC - Conversion)
-
-For "static yes_type check_sig(D const volatile *, T)" we have the conversion
-sequence:
-
-C -> D const volatile* (UDC)
-
-According to 13.3.3.1/4, in context of user-defined conversion only the
-standard conversion sequence is considered when selecting the best viable
-function, so it only considers up to the user-defined conversion. For the
-first function this means choosing between C -> C const and C -> C, and it
-chooses the latter, because it's a proper subset (13.3.3.2/3/2) of the
-former. Therefore, we have:
-
-C -> D const volatile* (UDC) -> B1 const volatile* / B2 const volatile* ->
-     B const volatile* (SC - Conversion)
-C -> D const volatile* (UDC)
-
-Here, the principle of the "shortest subsequence" applies again, and it
-chooses C -> D const volatile*. This shows that it doesn't even need to
-consider the multiple paths to B, or accessibility, as that possibility is
-eliminated before it could possibly cause ambiguity or access violation.
-
-If D is not derived from B, it has to choose between C -> C const -> B const
-volatile* for the first function, and C -> D const volatile* for the second
-function, which are just as good (both requires a UDC, 13.3.3.2), had it not
-been for the fact that "static no_type check_sig(B const volatile *, int)" is
-not templated, which makes C -> C const -> B const volatile* the best choice
-(13.3.3/1/4), resulting in "no".
-
-Also, if Host::operator B const volatile* hadn't been const, the two
-conversion sequences for "static no_type check_sig(B const volatile *, int)", in
-the case where D is derived from B, would have been ambiguous.
-
-See also
-http://groups.google.com/groups?selm=df893da6.0301280859.522081f7%40posting.
-google.com and links therein.
-
-*************************************************************************/
-
-template <typename B, typename D>
-struct bd_helper
-{
-   //
-   // This VC7.1 specific workaround stops the compiler from generating
-   // an internal compiler error when compiling with /vmg (thanks to
-   // Aleksey Gurtovoy for figuring out the workaround).
-   //
-#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);
-#else
-    static type_traits::yes_type check_sig(D const volatile *, long);
-    static type_traits::no_type  check_sig(B const volatile * const&, int);
-#endif
-};
-
-template<typename B, typename D>
-struct is_base_and_derived_impl2
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
-    //
-    // May silently do the wrong thing with incomplete types
-    // unless we trap them here:
-    //
-    NDNBOOST_STATIC_ASSERT(sizeof(B) != 0);
-    NDNBOOST_STATIC_ASSERT(sizeof(D) != 0);
-
-    struct Host
-    {
-#if !NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1310)
-        operator B const volatile *() const;
-#else
-        operator B const volatile * const&() const;
-#endif
-        operator D const volatile *();
-    };
-
-    NDNBOOST_STATIC_CONSTANT(bool, value =
-        sizeof(bd_helper<B,D>::check_sig(Host(), 0)) == sizeof(type_traits::yes_type));
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
-};
-
-#else
-
-//
-// broken version:
-//
-template<typename B, typename D>
-struct is_base_and_derived_impl2
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value =
-        (::ndnboost::is_convertible<D*,B*>::value));
-};
-
-#define NDNBOOST_BROKEN_IS_BASE_AND_DERIVED
-
-#endif
-
-template <typename B, typename D>
-struct is_base_and_derived_impl3
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <bool ic1, bool ic2, bool iss>
-struct is_base_and_derived_select
-{
-   template <class T, class U>
-   struct rebind
-   {
-      typedef is_base_and_derived_impl3<T,U> type;
-   };
-};
-
-template <>
-struct is_base_and_derived_select<true,true,false>
-{
-   template <class T, class U>
-   struct rebind
-   {
-      typedef is_base_and_derived_impl2<T,U> type;
-   };
-};
-
-template <typename B, typename D>
-struct is_base_and_derived_impl
-{
-    typedef typename remove_cv<B>::type ncvB;
-    typedef typename remove_cv<D>::type ncvD;
-
-    typedef is_base_and_derived_select<
-       ::ndnboost::is_class<B>::value,
-       ::ndnboost::is_class<D>::value,
-       ::ndnboost::is_same<ncvB,ncvD>::value> selector;
-    typedef typename selector::template rebind<ncvB,ncvD> binder;
-    typedef typename binder::type bound_type;
-
-    NDNBOOST_STATIC_CONSTANT(bool, value = bound_type::value);
-};
-#else
-template <typename B, typename D>
-struct is_base_and_derived_impl
-{
-    typedef typename remove_cv<B>::type ncvB;
-    typedef typename remove_cv<D>::type ncvD;
-
-    NDNBOOST_STATIC_CONSTANT(bool, value = (NDNBOOST_IS_BASE_OF(B,D) && ! ::ndnboost::is_same<ncvB,ncvD>::value));
-};
-#endif
-} // namespace detail
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(
-      is_base_and_derived
-    , Base
-    , Derived
-    , (::ndnboost::detail::is_base_and_derived_impl<Base,Derived>::value)
-    )
-
-#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 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 // 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
deleted file mode 100644
index b7b3aa6..0000000
--- a/include/ndnboost/type_traits/is_base_of.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-//  (C) Copyright Rani Sharoni 2003-2005.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
- 
-#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>
-#include <ndnboost/type_traits/is_class.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-   namespace detail{
-      template <class B, class D>
-      struct is_base_of_imp
-      {
-          typedef typename remove_cv<B>::type ncvB;
-          typedef typename remove_cv<D>::type ncvD;
-          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));
-      };
-   }
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(
-      is_base_of
-    , Base
-    , Derived
-    , (::ndnboost::detail::is_base_of_imp<Base, Derived>::value))
-
-#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 // 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
deleted file mode 100644
index 1885d5c..0000000
--- a/include/ndnboost/type_traits/is_class.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000-2003.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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 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 NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-#   include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#else
-#   include <ndnboost/type_traits/is_scalar.hpp>
-#   include <ndnboost/type_traits/is_array.hpp>
-#   include <ndnboost/type_traits/is_reference.hpp>
-#   include <ndnboost/type_traits/is_void.hpp>
-#   include <ndnboost/type_traits/is_function.hpp>
-#endif
-
-#endif // NDNBOOST_IS_CLASS
-
-#ifdef __EDG_VERSION__
-#   include <ndnboost/type_traits/remove_cv.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-#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
-// it that most will use the one in
-// ndnboost/type_traits/object_traits.hpp. This implementation
-// actually works with VC7.0, but other interactions seem to fail
-// when we use it.
-
-// is_class<> metafunction due to Paul Mensonides
-// (leavings@attbi.com). For more details:
-// http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1
-#if defined(__GNUC__)  && !defined(__EDG_VERSION__)
-
-template <class U> ::ndnboost::type_traits::yes_type is_class_tester(void(U::*)(void));
-template <class U> ::ndnboost::type_traits::no_type is_class_tester(...);
-
-template <typename T>
-struct is_class_impl
-{
-
-    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
-        >::value)
-        );
-};
-
-#else
-
-template <typename T>
-struct is_class_impl
-{
-    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(...);
-
-    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
-        >::value)
-        );
-};
-
-#endif
-
-#else
-
-template <typename T>
-struct is_class_impl
-{
-#   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,
-        ::ndnboost::type_traits::ice_not< ::ndnboost::is_array<T>::value >::value,
-        ::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
-    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,
-        ::ndnboost::type_traits::ice_not< ::ndnboost::is_array<T>::value >::value,
-        ::ndnboost::type_traits::ice_not< ::ndnboost::is_reference<T>::value>::value,
-        ::ndnboost::type_traits::ice_not< ::ndnboost::is_void<T>::value >::value
-        >::value));
-#   endif
-};
-
-# endif // NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-# else // NDNBOOST_IS_CLASS
-template <typename T>
-struct is_class_impl
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_IS_CLASS(T));
-};
-# endif // NDNBOOST_IS_CLASS
-
-} // namespace detail
-
-# ifdef __EDG_VERSION__
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(
-   is_class,T, ndnboost::detail::is_class_impl<typename ndnboost::remove_cv<T>::type>::value)
-# else 
-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 // NDNBOOST_TT_IS_CLASS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_complex.hpp b/include/ndnboost/type_traits/is_complex.hpp
deleted file mode 100644
index f1d9713..0000000
--- a/include/ndnboost/type_traits/is_complex.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//  (C) Copyright John Maddock 2007. 
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_IS_COMPLEX_HPP
-#define NDNBOOST_TT_IS_COMPLEX_HPP
-
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <complex>
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-
-namespace ndnboost {
-namespace detail{
-
-struct is_convertible_from_tester
-{
-   template <class T>
-   is_convertible_from_tester(const std::complex<T>&);
-};
-
-}
-
-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 //NDNBOOST_TT_IS_COMPLEX_HPP
diff --git a/include/ndnboost/type_traits/is_compound.hpp b/include/ndnboost/type_traits/is_compound.hpp
deleted file mode 100644
index ef34a9e..0000000
--- a/include/ndnboost/type_traits/is_compound.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if !defined( __CODEGEARC__ )
-namespace detail {
-
-template <typename T>
-struct is_compound_impl
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value =
-      (::ndnboost::type_traits::ice_not<
-         ::ndnboost::is_fundamental<T>::value
-       >::value));
-};
-
-} // namespace detail
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_compound,T,__is_compound(T))
-#else
-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 // NDNBOOST_TT_IS_COMPOUND_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_const.hpp b/include/ndnboost/type_traits/is_const.hpp
deleted file mode 100644
index 919b750..0000000
--- a/include/ndnboost/type_traits/is_const.hpp
+++ /dev/null
@@ -1,165 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef NDNBOOST_TT_IS_CONST_HPP_INCLUDED
-#define NDNBOOST_TT_IS_CONST_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1400)
-#       include <ndnboost/type_traits/remove_bounds.hpp>
-#   endif
-#else
-#   include <ndnboost/type_traits/is_reference.hpp>
-#   include <ndnboost/type_traits/is_array.hpp>
-#   include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#   include <ndnboost/type_traits/detail/false_result.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if defined( __CODEGEARC__ )
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,__is_const(T))
-
-#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-namespace detail{
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-template <class T>
-struct is_const_rvalue_filter
-{
-#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
-   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<T*>::is_const);
-#endif
-};
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-template <class T>
-struct is_const_rvalue_filter<T&&>
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-#endif
-}
-
-//* is a type T  declared const - is_const<T>
-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(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...
-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:
-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
-
-namespace detail {
-
-using ::ndnboost::type_traits::yes_type;
-using ::ndnboost::type_traits::no_type;
-
-yes_type is_const_tester(const volatile void*);
-no_type is_const_tester(volatile void *);
-
-template <bool is_ref, bool array>
-struct is_const_helper
-    : public ::ndnboost::type_traits::false_result
-{
-};
-
-template <>
-struct is_const_helper<false,false>
-{
-    template <typename T> struct result_
-    {
-        static T* t;
-        NDNBOOST_STATIC_CONSTANT(bool, value = (
-            sizeof(ndnboost::detail::yes_type) == sizeof(ndnboost::detail::is_const_tester(t))
-            ));
-    };
-};
-
-template <>
-struct is_const_helper<false,true>
-{
-    template <typename T> struct result_
-    {
-        static T t;
-        NDNBOOST_STATIC_CONSTANT(bool, value = (
-            sizeof(ndnboost::detail::yes_type) == sizeof(ndnboost::detail::is_const_tester(&t))
-            ));
-    };
-};
-
-template <typename T>
-struct is_const_impl
-    : public is_const_helper<
-          is_reference<T>::value
-        , is_array<T>::value
-        >::template result_<T>
-{
-};
-
-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>
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::ndnboost::detail::is_const_impl<T>::value)
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index ef26322..0000000
--- a/include/ndnboost/type_traits/is_convertible.hpp
+++ /dev/null
@@ -1,492 +0,0 @@
-
-// Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-// Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu)
-// Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
-#define NDNBOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
-
-#include <ndnboost/type_traits/intrinsics.hpp>
-#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 NDNBOOST_NO_IS_ABSTRACT
-#include <ndnboost/type_traits/is_abstract.hpp>
-#endif
-#include <ndnboost/type_traits/add_lvalue_reference.hpp>
-#include <ndnboost/type_traits/add_rvalue_reference.hpp>
-#include <ndnboost/type_traits/is_function.hpp>
-
-#if defined(__MWERKS__)
-#include <ndnboost/type_traits/remove_reference.hpp>
-#endif
-
-#endif // NDNBOOST_IS_CONVERTIBLE
-
-// should be always the last #include directive
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#ifndef NDNBOOST_IS_CONVERTIBLE
-
-// is one type convertible to another?
-//
-// there are multiple versions of the is_convertible
-// template, almost every compiler seems to require its
-// own version.
-//
-// Thanks to Andrei Alexandrescu for the original version of the
-// conversion detection technique!
-//
-
-namespace detail {
-
-// MS specific version:
-
-#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
-// of the is_convertible typename.
-using ::ndnboost::type_traits::yes_type;
-using ::ndnboost::type_traits::no_type;
-
-template< typename From >
-struct does_conversion_exist
-{
-    template< typename To > struct result_
-    {
-        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) };
-    };
-};
-
-template<>
-struct does_conversion_exist<void>
-{
-    template< typename To > struct result_
-    {
-        enum { value = ::ndnboost::is_void<To>::value };
-    };
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-    : public does_conversion_exist<From>::template result_<To>
-{
-};
-
-#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x560)
-//
-// special version for Borland compilers
-// this version breaks when used for some
-// UDT conversions:
-//
-template <typename From, typename To>
-struct is_convertible_impl
-{
-#pragma option push -w-8074
-    // This workaround for Borland breaks the EDG C++ frontend,
-    // so we only use it for Borland.
-    template <typename T> struct checker
-    {
-        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;
-    static bool const value = sizeof( checker<To>::_m_check(_m_from) )
-        == sizeof(::ndnboost::type_traits::yes_type);
-#pragma option pop
-};
-
-#elif defined(__GNUC__) || defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// special version for gcc compiler + recent Borland versions
-// note that this does not pass UDT's through (...)
-
-struct any_conversion
-{
-    template <typename T> any_conversion(const volatile T&);
-    template <typename T> any_conversion(const T&);
-    template <typename T> any_conversion(volatile T&);
-    template <typename T> any_conversion(T&);
-};
-
-template <typename T> struct checker
-{
-    static ndnboost::type_traits::no_type _m_check(any_conversion ...);
-    static ndnboost::type_traits::yes_type _m_check(T, int);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
-    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(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);
-#else
-    static bool const value =
-        sizeof( ndnboost::detail::checker<To>::_m_check(_m_from, 0) )
-        == sizeof(::ndnboost::type_traits::yes_type);
-#endif
-};
-
-#elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \
-      || defined(__IBMCPP__) || defined(__HP_aCC)
-//
-// This is *almost* an ideal world implementation as it doesn't rely
-// on undefined behaviour by passing UDT's through (...).
-// Unfortunately it doesn't quite pass all the tests for most compilers (sigh...)
-// Enable this for your compiler if is_convertible_test.cpp will compile it...
-//
-// Note we do not enable this for VC7.1, because even though it passes all the
-// type_traits tests it is known to cause problems when instantiation occurs
-// deep within the instantiation tree :-(
-//
-struct any_conversion
-{
-    template <typename T> any_conversion(const volatile T&);
-    template <typename T> any_conversion(const T&);
-    template <typename T> any_conversion(volatile T&);
-    // we need this constructor to catch references to functions
-    // (which can not be cv-qualified):
-    template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
-    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 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
-    NDNBOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(_m_from, 0) ) == sizeof(::ndnboost::type_traits::yes_type)
-        );
-#endif
-};
-
-#elif defined(__DMC__)
-
-struct any_conversion
-{
-    template <typename T> any_conversion(const volatile T&);
-    template <typename T> any_conversion(const T&);
-    template <typename T> any_conversion(volatile T&);
-    // we need this constructor to catch references to functions
-    // (which can not be cv-qualified):
-    template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
-    // Using '...' doesn't always work on Digital Mars. This version seems to.
-    template <class T>
-    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 NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-    enum { value =
-        sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0, 0) ) == sizeof(::ndnboost::type_traits::yes_type)
-        };
-#else
-    enum { value =
-        sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::ndnboost::type_traits::yes_type)
-        };
-#endif
-};
-
-#elif defined(__MWERKS__)
-// 
-// CW works with the technique implemented above for EDG, except when From
-// is a function type (or a reference to such a type), in which case
-// any_conversion won't be accepted as a valid conversion. We detect this
-// exceptional situation and channel it through an alternative algorithm.
-//
-
-template <typename From, typename To,bool FromIsFunctionRef>
-struct is_convertible_basic_impl_aux;
-
-struct any_conversion
-{
-    template <typename T> any_conversion(const volatile T&);
-    template <typename T> any_conversion(const T&);
-    template <typename T> any_conversion(volatile T&);
-    template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl_aux<From,To,false /*FromIsFunctionRef*/>
-{
-    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 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
-    NDNBOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(_m_from, 0) ) == sizeof(::ndnboost::type_traits::yes_type)
-        );
-#endif
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl_aux<From,To,true /*FromIsFunctionRef*/>
-{
-    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 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
-    NDNBOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(_m_from) ) == sizeof(::ndnboost::type_traits::yes_type)
-        );
-#endif
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl:
-  is_convertible_basic_impl_aux<
-    From,To,
-    ::ndnboost::is_function<typename ::ndnboost::remove_reference<From>::type>::value
-  >
-{};
-
-#else
-//
-// This version seems to work pretty well for a wide spectrum of compilers,
-// however it does rely on undefined behaviour by passing UDT's through (...).
-//
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
-    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 NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4244)
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(disable:6334)
-#endif
-#endif
-#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
-    NDNBOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(_m_from) ) == sizeof(::ndnboost::type_traits::yes_type)
-        );
-#endif
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-};
-
-#endif // is_convertible_impl
-
-#if defined(__DMC__)
-// As before, a static constant sometimes causes errors on Digital Mars.
-template <typename From, typename To>
-struct is_convertible_impl
-{
-    enum { value =
-        (::ndnboost::type_traits::ice_and<
-            ::ndnboost::type_traits::ice_or<
-               ::ndnboost::detail::is_convertible_basic_impl<From,To>::value,
-               ::ndnboost::is_void<To>::value
-            >::value,
-            ::ndnboost::type_traits::ice_not<
-               ::ndnboost::is_array<To>::value
-            >::value,
-            ::ndnboost::type_traits::ice_not<
-               ::ndnboost::is_function<To>::value
-            >::value
-        >::value) };
-};
-#elif !defined(__BORLANDC__) || __BORLANDC__ > 0x551
-template <typename From, typename To>
-struct is_convertible_impl
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value =
-        (::ndnboost::type_traits::ice_and<
-            ::ndnboost::type_traits::ice_or<
-               ::ndnboost::detail::is_convertible_basic_impl<From,To>::value,
-               ::ndnboost::is_void<To>::value
-            >::value,
-            ::ndnboost::type_traits::ice_not<
-               ::ndnboost::is_array<To>::value
-            >::value,
-            ::ndnboost::type_traits::ice_not<
-               ::ndnboost::is_function<To>::value
-            >::value
-        >::value)
-        );
-};
-#endif
-
-template <bool trivial1, bool trivial2, bool abstract_target>
-struct is_convertible_impl_select
-{
-   template <class From, class To>
-   struct rebind
-   {
-      typedef is_convertible_impl<From, To> type;
-   };
-};
-
-template <>
-struct is_convertible_impl_select<true, true, false>
-{
-   template <class From, class To>
-   struct rebind
-   {
-      typedef true_type type;
-   };
-};
-
-template <>
-struct is_convertible_impl_select<false, false, true>
-{
-   template <class From, class To>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <>
-struct is_convertible_impl_select<true, false, true>
-{
-   template <class From, class To>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <typename From, typename To>
-struct is_convertible_impl_dispatch_base
-{
-#if !NDNBOOST_WORKAROUND(__HP_aCC, < 60700)
-   typedef is_convertible_impl_select< 
-      ::ndnboost::is_arithmetic<From>::value, 
-      ::ndnboost::is_arithmetic<To>::value,
-#ifndef NDNBOOST_NO_IS_ABSTRACT
-      ::ndnboost::is_abstract<To>::value
-#else
-      false
-#endif
-   > selector;
-#else
-   typedef is_convertible_impl_select<false, false, false> selector;
-#endif
-   typedef typename selector::template rebind<From, To> isc_binder;
-   typedef typename isc_binder::type type;
-};
-
-template <typename From, typename To>
-struct is_convertible_impl_dispatch 
-   : public is_convertible_impl_dispatch_base<From, To>::type
-{};
-
-//
-// Now add the full and partial specialisations
-// for void types, these are common to all the
-// implementation above:
-//
-#ifndef NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
-#   define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,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) \
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const,spec2,value) \
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 volatile,spec2,value) \
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const volatile,spec2,value) \
-    /**/
-
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(is_convertible,void,void,true)
-
-#   undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2
-#   undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1
-
-#else
-    NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(is_convertible,void,void,true)
-#endif // NDNBOOST_NO_CV_VOID_SPECIALIZATIONS
-
-#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 // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace detail
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::ndnboost::detail::is_convertible_impl_dispatch<From,To>::value))
-
-#else
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,NDNBOOST_IS_CONVERTIBLE(From,To))
-
-#endif
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 46ec4aa..0000000
--- a/include/ndnboost/type_traits/is_empty.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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 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>
-#else
-#   include <ndnboost/type_traits/is_reference.hpp>
-#   include <ndnboost/type_traits/is_pointer.hpp>
-#   include <ndnboost/type_traits/is_member_pointer.hpp>
-#   include <ndnboost/type_traits/is_array.hpp>
-#   include <ndnboost/type_traits/is_void.hpp>
-#   include <ndnboost/type_traits/detail/ice_and.hpp>
-#   include <ndnboost/type_traits/detail/ice_not.hpp>
-#endif
-
-// should be always the last #include directive
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-#ifndef NDNBOOST_INTERNAL_IS_EMPTY
-#define NDNBOOST_INTERNAL_IS_EMPTY(T) false
-#else
-#define NDNBOOST_INTERNAL_IS_EMPTY(T) NDNBOOST_IS_EMPTY(T)
-#endif
-
-namespace ndnboost {
-
-namespace detail {
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4624) // destructor could not be generated
-#endif
-
-template <typename T>
-struct empty_helper_t1 : public T
-{
-    empty_helper_t1();  // hh compiler bug workaround
-    int i[256];
-private:
-   // suppress compiler warnings:
-   empty_helper_t1(const empty_helper_t1&);
-   empty_helper_t1& operator=(const empty_helper_t1&);
-};
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-struct empty_helper_t2 { int i[256]; };
-
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-template <typename T, bool is_a_class = false>
-struct empty_helper
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <typename T>
-struct empty_helper<T, true>
-{
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2))
-        );
-};
-
-template <typename T>
-struct is_empty_impl
-{
-    typedef typename remove_cv<T>::type cvt;
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value = (
-            ::ndnboost::type_traits::ice_or<
-              ::ndnboost::detail::empty_helper<cvt,::ndnboost::is_class<T>::value>::value
-              , NDNBOOST_INTERNAL_IS_EMPTY(cvt)
-            >::value
-            ));
-};
-
-#else // __BORLANDC__
-
-template <typename T, bool is_a_class, bool convertible_to_int>
-struct empty_helper
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <typename T>
-struct empty_helper<T, true, false>
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = (
-        sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)
-        ));
-};
-
-template <typename T>
-struct is_empty_impl
-{
-   typedef typename remove_cv<T>::type cvt;
-   typedef typename add_reference<T>::type r_type;
-
-   NDNBOOST_STATIC_CONSTANT(
-       bool, value = (
-           ::ndnboost::type_traits::ice_or<
-              ::ndnboost::detail::empty_helper<
-                  cvt
-                , ::ndnboost::is_class<T>::value
-                , ::ndnboost::is_convertible< r_type,int>::value
-              >::value
-              , NDNBOOST_INTERNAL_IS_EMPTY(cvt)
-           >::value));
-};
-
-#endif // __BORLANDC__
-
-#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#ifdef NDNBOOST_MSVC6_MEMBER_TEMPLATES
-
-template <typename T>
-struct empty_helper_t1 : public T
-{
-   empty_helper_t1();
-   int i[256];
-};
-
-struct empty_helper_t2 { int i[256]; };
-
-template <typename T>
-struct empty_helper_base
-{
-   enum { value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)) };
-};
-
-template <typename T>
-struct empty_helper_nonbase
-{
-   enum { value = false };
-};
-
-template <bool base>
-struct empty_helper_chooser
-{
-   template <typename T> struct result_
-   {
-      typedef empty_helper_nonbase<T> type;
-   };
-};
-
-template <>
-struct empty_helper_chooser<true>
-{
-   template <typename T> struct result_
-   {
-      typedef empty_helper_base<T> type;
-   };
-};
-
-template <typename T>
-struct is_empty_impl
-{
-   typedef ::ndnboost::detail::empty_helper_chooser<
-      ::ndnboost::type_traits::ice_and<
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_reference<T>::value >::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_convertible<T,double>::value >::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_pointer<T>::value >::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_member_pointer<T>::value >::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_array<T>::value >::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_void<T>::value >::value,
-         ::ndnboost::type_traits::ice_not<
-            ::ndnboost::is_convertible<T,void const volatile*>::value
-            >::value
-      >::value > chooser;
-
-   typedef typename chooser::template result_<T> result;
-   typedef typename result::type eh_type;
-
-   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
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_INTERNAL_IS_EMPTY(T));
-};
-
-#endif  // NDNBOOST_MSVC6_MEMBER_TEMPLATES
-
-#endif  // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// these help when the compiler has no partial specialization support:
-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
-
-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 NDNBOOST_INTERNAL_IS_EMPTY
-
-#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
deleted file mode 100644
index 0106c09..0000000
--- a/include/ndnboost/type_traits/is_enum.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef NDNBOOST_TT_IS_ENUM_HPP_INCLUDED
-#define NDNBOOST_TT_IS_ENUM_HPP_INCLUDED
-
-#include <ndnboost/type_traits/intrinsics.hpp>
-#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>
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-#ifdef __GNUC__
-#include <ndnboost/type_traits/is_function.hpp>
-#endif
-#include <ndnboost/type_traits/config.hpp>
-#if defined(NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) 
-#  include <ndnboost/type_traits/is_class.hpp>
-#  include <ndnboost/type_traits/is_union.hpp>
-#endif
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#ifndef NDNBOOST_IS_ENUM
-#if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551))
-
-namespace detail {
-
-#if defined(NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) 
-
-template <typename T>
-struct is_class_or_union
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value =
-      (::ndnboost::type_traits::ice_or<
-           ::ndnboost::is_class<T>::value
-         , ::ndnboost::is_union<T>::value
-      >::value));
-};
-
-#else
-
-template <typename T>
-struct is_class_or_union
-{
-# 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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC, == 1300)                 \
-    || NDNBOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE
-    static ::ndnboost::type_traits::no_type is_class_or_union_tester(...);
-    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(...);
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value = sizeof(is_class_or_union_tester<T>(0)) == sizeof(::ndnboost::type_traits::yes_type));
-#  endif
-# endif
-};
-#endif
-
-struct int_convertible
-{
-    int_convertible(int);
-};
-
-// Don't evaluate convertibility to int_convertible unless the type
-// is non-arithmetic. This suppresses warnings with GCC.
-template <bool is_typename_arithmetic_or_reference = true>
-struct is_enum_helper
-{
-    template <typename T> struct type
-    {
-        NDNBOOST_STATIC_CONSTANT(bool, value = false);
-    };
-};
-
-template <>
-struct is_enum_helper<false>
-{
-    template <typename T> struct type
-       : public ::ndnboost::is_convertible<typename ndnboost::add_reference<T>::type,::ndnboost::detail::int_convertible>
-    {
-    };
-};
-
-template <typename T> struct is_enum_impl
-{
-   //typedef ::ndnboost::add_reference<T> ar_t;
-   //typedef typename ar_t::type r_type;
-
-#if defined(__GNUC__)
-
-#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)...
-   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_class_or_union<T>::value
-         , is_array<T>::value
-      >::value));
-#else
-   // ...however, not checking is_class_or_union on non-conforming
-   // compilers prevents a dependency recursion.
-   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 // NDNBOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
-#else // !defined(__GNUC__):
-    
-   NDNBOOST_STATIC_CONSTANT(bool, selector =
-      (::ndnboost::type_traits::ice_or<
-           ::ndnboost::is_arithmetic<T>::value
-         , ::ndnboost::is_reference<T>::value
-         , is_class_or_union<T>::value
-         , is_array<T>::value
-      >::value));
-    
-#endif
-
-#if NDNBOOST_WORKAROUND(__BORLANDC__, < 0x600)
-    typedef ::ndnboost::detail::is_enum_helper<
-          ::ndnboost::detail::is_enum_impl<T>::selector
-        > se_t;
-#else
-    typedef ::ndnboost::detail::is_enum_helper<selector> se_t;
-#endif
-
-    typedef typename se_t::template type<T> helper;
-    NDNBOOST_STATIC_CONSTANT(bool, value = helper::value);
-};
-
-// these help on compilers with no partial specialization support:
-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
-
-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:
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,false)
-
-#endif
-
-#else // NDNBOOST_IS_ENUM
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,NDNBOOST_IS_ENUM(T))
-
-#endif
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index c11b585..0000000
--- a/include/ndnboost/type_traits/is_float.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-
-namespace ndnboost {
-
-//* is a type T a floating-point type described in the standard (3.9.1p8)
-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 // 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
deleted file mode 100644
index 3338266..0000000
--- a/include/ndnboost/type_traits/is_floating_point.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-2005.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-
-namespace ndnboost {
-
-//* is a type T a floating-point type described in the standard (3.9.1p8)
-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 // 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
deleted file mode 100644
index ccb42b7..0000000
--- a/include/ndnboost/type_traits/is_function.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-
-//  Copyright 2000 John Maddock (john@johnmaddock.co.uk)
-//  Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com)
-//
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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(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>
-#   include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-// is a type a function?
-// Please note that this implementation is unnecessarily complex:
-// we could just use !is_convertible<T*, const volatile void*>::value,
-// except that some compilers erroneously allow conversions from
-// function pointers to void*.
-
-namespace ndnboost {
-
-#if !defined( __CODEGEARC__ )
-
-namespace detail {
-
-#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
-{
-};
-
-template <>
-struct is_function_chooser<false>
-{
-    template< typename T > struct result_
-        : public ::ndnboost::type_traits::is_function_ptr_helper<T*>
-    {
-    };
-};
-
-template <typename T>
-struct is_function_impl
-    : public is_function_chooser< ::ndnboost::is_reference<T>::value >
-        ::NDNBOOST_NESTED_TEMPLATE result_<T>
-{
-};
-
-#else
-
-template <typename T>
-struct is_function_impl
-{
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
-    static T* t;
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value = sizeof(::ndnboost::type_traits::is_function_ptr_tester(t))
-        == sizeof(::ndnboost::type_traits::yes_type)
-        );
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
-};
-
-#if !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template <typename T>
-struct is_function_impl<T&> : public false_type
-{};
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-template <typename T>
-struct is_function_impl<T&&> : public false_type
-{};
-#endif
-#endif
-
-#endif
-
-} // namespace detail
-
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,__is_function(T))
-#else
-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 // NDNBOOST_TT_IS_FUNCTION_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_fundamental.hpp b/include/ndnboost/type_traits/is_fundamental.hpp
deleted file mode 100644
index c8b94d9..0000000
--- a/include/ndnboost/type_traits/is_fundamental.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T> 
-struct is_fundamental_impl
-    : public ::ndnboost::type_traits::ice_or< 
-          ::ndnboost::is_arithmetic<T>::value
-        , ::ndnboost::is_void<T>::value
-        >
-{ 
-};
-
-} // namespace detail
-
-//* is a type T a fundamental type described in the standard (3.9.1)
-#if defined( __CODEGEARC__ )
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,__is_fundamental(T))
-#else
-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 // NDNBOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_integral.hpp b/include/ndnboost/type_traits/is_integral.hpp
deleted file mode 100644
index 1e44256..0000000
--- a/include/ndnboost/type_traits/is_integral.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_IS_INTEGRAL_HPP_INCLUDED
-#define NDNBOOST_TT_IS_INTEGRAL_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-//* is a type T an [cv-qualified-] integral type described in the standard (3.9.1p3)
-// as an extension we include long long, as this is likely to be added to the
-// standard at a later date
-#if defined( __CODEGEARC__ )
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,__is_integral(T))
-#else
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,false)
-
-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)
-
-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)
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,bool,true)
-NDNBOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char,true)
-
-#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 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(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))
-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__
-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(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 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
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 678e2c6..0000000
--- a/include/ndnboost/type_traits/is_lvalue_reference.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_lvalue_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef NDNBOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED
-#define NDNBOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED
-
-#include <ndnboost/type_traits/config.hpp>
-
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#   include <ndnboost/type_traits/detail/wrap.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if defined( __CODEGEARC__ )
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,__is_reference(T))
-#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-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(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...
-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.
-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
-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 NDNBOOST_MSVC
-#   pragma warning(push)
-#   pragma warning(disable: 4181 4097)
-#endif
-
-namespace detail {
-
-using ::ndnboost::type_traits::yes_type;
-using ::ndnboost::type_traits::no_type;
-using ::ndnboost::type_traits::wrap;
-
-template <class T> T&(* is_lvalue_reference_helper1(wrap<T>) )(wrap<T>);
-char is_lvalue_reference_helper1(...);
-
-template <class T> no_type is_lvalue_reference_helper2(T&(*)(wrap<T>));
-yes_type is_lvalue_reference_helper2(...);
-
-template <typename T>
-struct is_lvalue_reference_impl
-{
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value = sizeof(
-            ::ndnboost::detail::is_lvalue_reference_helper2(
-                ::ndnboost::detail::is_lvalue_reference_helper1(::ndnboost::type_traits::wrap<T>()))) == 1
-        );
-};
-
-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
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,::ndnboost::detail::is_lvalue_reference_impl<T>::value)
-
-#ifdef NDNBOOST_MSVC
-#   pragma warning(pop)
-#endif
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 38ef2ec..0000000
--- a/include/ndnboost/type_traits/is_member_function_pointer.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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(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
-   // version does not do so.
-   //
-#   include <ndnboost/type_traits/detail/is_mem_fun_pointer_impl.hpp>
-#   include <ndnboost/type_traits/remove_cv.hpp>
-#else
-#   include <ndnboost/type_traits/is_reference.hpp>
-#   include <ndnboost/type_traits/is_array.hpp>
-#   include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#   include <ndnboost/type_traits/detail/false_result.hpp>
-#   include <ndnboost/type_traits/detail/ice_or.hpp>
-#   include <ndnboost/type_traits/detail/is_mem_fun_pointer_tester.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if defined( __CODEGEARC__ )
-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)
-
-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
-    )
-
-#else
-
-namespace detail {
-
-#ifndef __BORLANDC__
-
-template <bool>
-struct is_mem_fun_pointer_select
-    : public ::ndnboost::type_traits::false_result
-{
-};
-
-template <>
-struct is_mem_fun_pointer_select<false>
-{
-    template <typename T> struct result_
-    {
-#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;
-
-        NDNBOOST_STATIC_CONSTANT(
-            bool, value = (
-                1 == sizeof(::ndnboost::type_traits::is_mem_fun_pointer_tester(self_type::make_t))
-            ));
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
-    };
-};
-
-template <typename T>
-struct is_member_function_pointer_impl
-    : public is_mem_fun_pointer_select<
-          ::ndnboost::type_traits::ice_or<
-              ::ndnboost::is_reference<T>::value
-            , ::ndnboost::is_array<T>::value
-            >::value
-        >::template result_<T>
-{
-};
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct is_member_function_pointer_impl<T&> : public false_type{};
-#endif
-
-#else // Borland C++
-
-template <typename T>
-struct is_member_function_pointer_impl
-{
-   static T* m_t;
-   NDNBOOST_STATIC_CONSTANT(
-              bool, value =
-               (1 == sizeof(type_traits::is_mem_fun_pointer_tester(m_t))) );
-};
-
-template <typename T>
-struct is_member_function_pointer_impl<T&>
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#endif
-
-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
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,::ndnboost::detail::is_member_function_pointer_impl<T>::value)
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 29567dd..0000000
--- a/include/ndnboost/type_traits/is_member_object_pointer.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-#include <ndnboost/type_traits/is_member_function_pointer.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail{
-
-template <typename T>
-struct is_member_object_pointer_impl
-{
-   NDNBOOST_STATIC_CONSTANT(
-      bool, value = (::ndnboost::type_traits::ice_and<
-         ::ndnboost::is_member_pointer<T>::value,
-         ::ndnboost::type_traits::ice_not<
-            ::ndnboost::is_member_function_pointer<T>::value
-         >::value
-      >::value ));
-};
-
-} // namespace detail
-
-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 // 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
deleted file mode 100644
index 7bfca6b..0000000
--- a/include/ndnboost/type_traits/is_member_pointer.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#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(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>
-#   include <ndnboost/type_traits/is_array.hpp>
-#   include <ndnboost/type_traits/detail/is_mem_fun_pointer_tester.hpp>
-#   include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#   include <ndnboost/type_traits/detail/false_result.hpp>
-#   include <ndnboost/type_traits/detail/ice_or.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if defined( __CODEGEARC__ )
-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(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 !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
-
-namespace detail {
-
-template <typename R, typename T>
-::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
-    : public ::ndnboost::type_traits::false_result
-{
-};
-
-template <>
-struct is_member_pointer_select<false>
-{
-    template <typename T> struct result_
-    {
-        static T* make_t();
-        NDNBOOST_STATIC_CONSTANT(
-            bool, value =
-            (::ndnboost::type_traits::ice_or<
-                (1 == sizeof(::ndnboost::type_traits::is_mem_fun_pointer_tester(make_t()))),
-                (1 == sizeof(is_member_pointer_tester(make_t())))
-            >::value) );
-    };
-};
-
-template <typename T>
-struct is_member_pointer_impl
-    : public is_member_pointer_select<
-          ::ndnboost::type_traits::ice_or<
-              ::ndnboost::is_reference<T>::value
-            , ::ndnboost::is_array<T>::value
-            >::value
-        >::template result_<T>
-{
-};
-
-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
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::ndnboost::detail::is_member_pointer_impl<T>::value)
-
-#endif // __BORLANDC__
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 25864ac..0000000
--- a/include/ndnboost/type_traits/is_nothrow_move_assignable.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  (C) Copyright Eric Friedman 2002-2003.
-//  (C) Copyright Antony Polukhin 2013.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/has_nothrow_assign.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-#include <ndnboost/type_traits/is_reference.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/utility/declval.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail{
-
-#ifndef NDNBOOST_NO_CXX11_NOEXCEPT
-
-template <class T, class Enable = void>
-struct false_or_cpp11_noexcept_move_assignable: public ::ndnboost::false_type {};
-
-template <class T>
-struct false_or_cpp11_noexcept_move_assignable <
-        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{
-    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,
-            ::ndnboost::detail::false_or_cpp11_noexcept_move_assignable<T>::value
-        >::value));
-};
-
-#else
-
-template <class T>
-struct is_nothrow_move_assignable_imp{
-    NDNBOOST_STATIC_CONSTANT(bool, value = (
-        ::ndnboost::type_traits::ice_and<
-            ::ndnboost::type_traits::ice_or<
-                ::ndnboost::has_trivial_move_assign<T>::value,
-                ::ndnboost::has_nothrow_assign<T>::value
-            >::value,
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_array<T>::value >::value
-        >::value));
-};
-
-#endif
-
-}
-
-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 // 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
deleted file mode 100644
index 8891135..0000000
--- a/include/ndnboost/type_traits/is_nothrow_move_constructible.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  (C) Copyright Eric Friedman 2002-2003.
-//  (C) Copyright Antony Polukhin 2013.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/has_nothrow_copy.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-#include <ndnboost/type_traits/is_reference.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/utility/declval.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail{
-
-#ifndef NDNBOOST_NO_CXX11_NOEXCEPT
-
-template <class T, class Enable = void>
-struct false_or_cpp11_noexcept_move_constructible: public ::ndnboost::false_type {};
-
-template <class T>
-struct false_or_cpp11_noexcept_move_constructible <
-        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{
-   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,
-            ::ndnboost::detail::false_or_cpp11_noexcept_move_constructible<T>::value
-        >::value));
-};
-
-#else
-
-template <class T>
-struct is_nothrow_move_constructible_imp{
-    NDNBOOST_STATIC_CONSTANT(bool, value =(
-        ::ndnboost::type_traits::ice_and<
-            ::ndnboost::type_traits::ice_or<
-                ::ndnboost::has_trivial_move_constructor<T>::value,
-                ::ndnboost::has_nothrow_copy<T>::value
-            >::value,
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_array<T>::value >::value
-        >::value));
-};
-
-#endif
-
-}
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_constructible,T,::ndnboost::detail::is_nothrow_move_constructible_imp<T>::value)
-
-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 // 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
deleted file mode 100644
index 206eb9a..0000000
--- a/include/ndnboost/type_traits/is_object.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_function.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct is_object_impl
-{
-#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
-   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
-      >::value));
-#endif
-};
-
-} // namespace detail
-
-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 // NDNBOOST_TT_IS_OBJECT_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_pod.hpp b/include/ndnboost/type_traits/is_pod.hpp
deleted file mode 100644
index 390761a..0000000
--- a/include/ndnboost/type_traits/is_pod.hpp
+++ /dev/null
@@ -1,145 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_scalar.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/type_traits/intrinsics.hpp>
-
-#include <cstddef>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-#ifndef NDNBOOST_IS_POD
-#define NDNBOOST_INTERNAL_IS_POD(T) false
-#else
-#define NDNBOOST_INTERNAL_IS_POD(T) NDNBOOST_IS_POD(T)
-#endif
-
-namespace ndnboost {
-
-// forward declaration, needed by 'is_pod_array_helper' template below
-template< typename T > struct is_POD;
-
-namespace detail {
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template <typename T> struct is_pod_impl
-{ 
-    NDNBOOST_STATIC_CONSTANT(
-        bool, value =
-        (::ndnboost::type_traits::ice_or<
-            ::ndnboost::is_scalar<T>::value,
-            ::ndnboost::is_void<T>::value,
-            NDNBOOST_INTERNAL_IS_POD(T)
-         >::value));
-};
-
-#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>
-{
-};
-#endif
-
-#else
-
-template <bool is_array = false>
-struct is_pod_helper
-{
-    template <typename T> struct result_
-    {
-        NDNBOOST_STATIC_CONSTANT(
-            bool, value =
-            (::ndnboost::type_traits::ice_or<
-                ::ndnboost::is_scalar<T>::value,
-                ::ndnboost::is_void<T>::value,
-                NDNBOOST_INTERNAL_IS_POD(T)
-            >::value));
-    };
-};
-
-template <bool b>
-struct bool_to_yes_no_type
-{
-    typedef ::ndnboost::type_traits::no_type type;
-};
-
-template <>
-struct bool_to_yes_no_type<true>
-{
-    typedef ::ndnboost::type_traits::yes_type type;
-};
-
-template <typename ArrayType>
-struct is_pod_array_helper
-{
-    enum { is_pod = ::ndnboost::is_POD<ArrayType>::value }; // MSVC workaround
-    typedef typename bool_to_yes_no_type<is_pod>::type type;
-    type instance() const;
-};
-
-template <typename T>
-is_pod_array_helper<T> is_POD_array(T*);
-
-template <>
-struct is_pod_helper<true>
-{
-    template <typename T> struct result_
-    {
-        static T& help();
-        NDNBOOST_STATIC_CONSTANT(bool, value =
-            sizeof(is_POD_array(help()).instance()) == sizeof(::ndnboost::type_traits::yes_type)
-            );
-    };
-};
-
-
-template <typename T> struct is_pod_impl
-{ 
-   NDNBOOST_STATIC_CONSTANT(
-       bool, value = (
-           ::ndnboost::detail::is_pod_helper<
-              ::ndnboost::is_array<T>::value
-           >::template result_<T>::value
-           )
-       );
-};
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// the following help compilers without partial specialization support:
-NDNBOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void,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
-
-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!!
-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 NDNBOOST_INTERNAL_IS_POD
-
-#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
deleted file mode 100644
index 812d36d..0000000
--- a/include/ndnboost/type_traits/is_pointer.hpp
+++ /dev/null
@@ -1,162 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-#include <ndnboost/type_traits/remove_cv.hpp>
-#endif
-
-#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>
-#   include <ndnboost/type_traits/detail/false_result.hpp>
-#   include <ndnboost/type_traits/detail/ice_or.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if defined( __CODEGEARC__ )
-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
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#   define TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(helper,sp,result) \
-template< typename T > struct helper<sp> \
-{ \
-    NDNBOOST_STATIC_CONSTANT(bool, value = result); \
-}; \
-/**/
-
-TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T*,true)
-
-#   undef TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC
-
-template< typename T >
-struct is_pointer_impl
-{
-#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<
-                ::ndnboost::is_member_pointer<T>::value
-                >::value
-            >::value)
-        );
-#else
-    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<
-                ::ndnboost::is_member_pointer<T>::value
-                >::value
-            >::value)
-        );
-#endif
-};
-
-} // namespace detail
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::ndnboost::detail::is_pointer_impl<T>::value)
-
-#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600)
-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
-
-namespace detail {
-
-struct pointer_helper
-{
-    pointer_helper(const volatile void*);
-};
-
-yes_type NDNBOOST_TT_DECL is_pointer_tester(pointer_helper);
-no_type NDNBOOST_TT_DECL is_pointer_tester(...);
-
-template <bool>
-struct is_pointer_select
-    : public ::ndnboost::type_traits::false_result
-{
-};
-
-template <>
-struct is_pointer_select<false>
-{
-    template <typename T> struct result_
-    {
-        static T& make_t();
-        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())))
-                >::value));
-    };
-};
-
-template <typename T>
-struct is_pointer_impl
-    : public is_pointer_select<
-          ::ndnboost::type_traits::ice_or<
-              ::ndnboost::is_reference<T>::value
-            , ::ndnboost::is_array<T>::value
-            >::value
-        >::template result_<T>
-{
-};
-
-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
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::ndnboost::detail::is_pointer_impl<T>::value)
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 76b6615..0000000
--- a/include/ndnboost/type_traits/is_polymorphic.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//  (C) Copyright John Maddock 2000. 
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_IS_POLYMORPHIC_HPP
-#define NDNBOOST_TT_IS_POLYMORPHIC_HPP
-
-#include <ndnboost/type_traits/intrinsics.hpp>
-#ifndef NDNBOOST_IS_POLYMORPHIC
-#include <ndnboost/type_traits/is_class.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#endif
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost{
-
-#ifndef NDNBOOST_IS_POLYMORPHIC
-
-namespace detail{
-
-template <class T>
-struct is_polymorphic_imp1
-{
-# if NDNBOOST_WORKAROUND(__MWERKS__, <= 0x2407) // CWPro7 should return false always.
-    typedef char d1, (&d2)[2];
-# else 
-   typedef typename remove_cv<T>::type ncvT;
-   struct d1 : public ncvT
-   {
-      d1();
-#  if !defined(__GNUC__) // this raises warnings with some classes, and buys nothing with GCC
-      ~d1()throw();
-#  endif 
-      char padding[256];
-   private:
-      // keep some picky compilers happy:
-      d1(const d1&);
-      d1& operator=(const d1&);
-   };
-   struct d2 : public ncvT
-   {
-      d2();
-      virtual ~d2()throw();
-#  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{};
-      virtual void unique_name_to_boost5487629(unique*);
-#  endif
-      char padding[256];
-   private:
-      // keep some picky compilers happy:
-      d2(const d2&);
-      d2& operator=(const d2&);
-   };
-# endif 
-   NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(d2) == sizeof(d1)));
-};
-
-template <class T>
-struct is_polymorphic_imp2
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <bool is_class>
-struct is_polymorphic_selector
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_polymorphic_imp2<T> type;
-   };
-};
-
-template <>
-struct is_polymorphic_selector<true>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_polymorphic_imp1<T> type;
-   };
-};
-
-template <class T>
-struct is_polymorphic_imp
-{
-   typedef is_polymorphic_selector< ::ndnboost::is_class<T>::value> selector;
-   typedef typename selector::template rebind<T> binder;
-   typedef typename binder::type imp_type;
-   NDNBOOST_STATIC_CONSTANT(bool, value = imp_type::value);
-};
-
-} // namespace detail
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,::ndnboost::detail::is_polymorphic_imp<T>::value)
-
-#else // NDNBOOST_IS_POLYMORPHIC
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,NDNBOOST_IS_POLYMORPHIC(T))
-
-#endif
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif
diff --git a/include/ndnboost/type_traits/is_reference.hpp b/include/ndnboost/type_traits/is_reference.hpp
deleted file mode 100644
index 39d6c4f..0000000
--- a/include/ndnboost/type_traits/is_reference.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000, 2010. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_rvalue_reference.hpp>
-#include <ndnboost/type_traits/ice.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct is_reference_impl
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value =
-      (::ndnboost::type_traits::ice_or<
-         ::ndnboost::is_lvalue_reference<T>::value, ::ndnboost::is_rvalue_reference<T>::value
-       >::value));
-};
-
-} // namespace detail
-
-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 // 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
deleted file mode 100644
index 7cfe142..0000000
--- a/include/ndnboost/type_traits/is_rvalue_reference.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-//  (C) John Maddock 2010. 
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED
-#define NDNBOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED
-
-#include <ndnboost/type_traits/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-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 // NDNBOOST_TT_IS_REFERENCE_HPP_INCLUDED
-
diff --git a/include/ndnboost/type_traits/is_same.hpp b/include/ndnboost/type_traits/is_same.hpp
deleted file mode 100644
index d00bd2f..0000000
--- a/include/ndnboost/type_traits/is_same.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef NDNBOOST_TT_IS_SAME_HPP_INCLUDED
-#define NDNBOOST_TT_IS_SAME_HPP_INCLUDED
-
-#include <ndnboost/type_traits/config.hpp>
-#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>
-#endif
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-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:
-NDNBOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true)
-#endif
-
-#else // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-#ifdef NDNBOOST_MSVC
-// the following VC6 specific implementation is *NOT* legal
-// C++, but has the advantage that it works for incomplete
-// types.
-
-template< typename T1 >
-struct is_same_part_1
-{
-    template<typename T2>  struct part_2     { enum { value = false }; };
-    template<>             struct part_2<T1> { enum { value = true }; };
-};
-
-template< typename T1, typename T2 >
-struct is_same_impl
-{
-    enum { value = ndnboost::detail::is_same_part_1<T1>::template part_2<T2>::value };
-};
-
-#else // generic "no-partial-specialization" version
-
-template <typename T>
-::ndnboost::type_traits::yes_type
-NDNBOOST_TT_DECL is_same_tester(T*, T*);
-
-::ndnboost::type_traits::no_type
-NDNBOOST_TT_DECL is_same_tester(...);
-
-template <typename T, typename U>
-struct is_same_impl
-{
-   static T t;
-   static U u;
-
-   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),
-         (sizeof(T) == sizeof(U))
-        >::value));
-};
-
-#endif // NDNBOOST_MSVC
-
-} // namespace detail
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,(::ndnboost::detail::is_same_impl<T,U>::value))
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index e4e208e..0000000
--- a/include/ndnboost/type_traits/is_scalar.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_member_pointer.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct is_scalar_impl
-{ 
-   NDNBOOST_STATIC_CONSTANT(bool, value =
-      (::ndnboost::type_traits::ice_or<
-         ::ndnboost::is_arithmetic<T>::value,
-         ::ndnboost::is_enum<T>::value,
-         ::ndnboost::is_pointer<T>::value,
-         ::ndnboost::is_member_pointer<T>::value
-      >::value));
-};
-
-// these specializations are only really needed for compilers 
-// without partial specialization support:
-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
-
-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 // NDNBOOST_TT_IS_SCALAR_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_signed.hpp b/include/ndnboost/type_traits/is_signed.hpp
deleted file mode 100644
index 440c6e0..0000000
--- a/include/ndnboost/type_traits/is_signed.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-#include <ndnboost/type_traits/is_enum.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if !defined( __CODEGEARC__ )
-
-namespace detail{
-
-#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 NDNBOOST_STATIC_CONSTANT here, using enum's
-   // rather than "real" static constants simply doesn't work or give
-   // the correct answer.
-   //
-   typedef typename remove_cv<T>::type no_cv_t;
-   static const no_cv_t minus_one = (static_cast<no_cv_t>(-1));
-   static const no_cv_t zero = (static_cast<no_cv_t>(0));
-};
-
-template <class T>
-struct is_signed_helper
-{
-   typedef typename remove_cv<T>::type no_cv_t;
-   NDNBOOST_STATIC_CONSTANT(bool, value = (!(::ndnboost::detail::is_signed_values<T>::minus_one  > ndnboost::detail::is_signed_values<T>::zero)));
-};
-
-template <bool integral_type>
-struct is_signed_select_helper
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_signed_helper<T> type;
-   };
-};
-
-template <>
-struct is_signed_select_helper<false>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <class T>
-struct is_signed_imp
-{
-   typedef is_signed_select_helper< 
-      ::ndnboost::type_traits::ice_or<
-         ::ndnboost::is_integral<T>::value,
-         ::ndnboost::is_enum<T>::value>::value 
-   > selector;
-   typedef typename selector::template rebind<T> binder;
-   typedef typename binder::type type;
-#if defined(NDNBOOST_MSVC) && (NDNBOOST_MSVC < 1300)
-   NDNBOOST_STATIC_CONSTANT(bool, value = is_signed_imp<T>::type::value);
-#else
-   NDNBOOST_STATIC_CONSTANT(bool, value = type::value);
-#endif
-};
-
-#else
-
-template <class T> struct is_signed_imp : public false_type{};
-template <> struct is_signed_imp<signed char> : public true_type{};
-template <> struct is_signed_imp<const signed char> : public true_type{};
-template <> struct is_signed_imp<volatile signed char> : public true_type{};
-template <> struct is_signed_imp<const volatile signed char> : public true_type{};
-template <> struct is_signed_imp<short> : public true_type{};
-template <> struct is_signed_imp<const short> : public true_type{};
-template <> struct is_signed_imp<volatile short> : public true_type{};
-template <> struct is_signed_imp<const volatile short> : public true_type{};
-template <> struct is_signed_imp<int> : public true_type{};
-template <> struct is_signed_imp<const int> : public true_type{};
-template <> struct is_signed_imp<volatile int> : public true_type{};
-template <> struct is_signed_imp<const volatile int> : public true_type{};
-template <> struct is_signed_imp<long> : public true_type{};
-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 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{};
-template <> struct is_signed_imp<const volatile long long> : public true_type{};
-#endif
-#if defined(CHAR_MIN) && (CHAR_MIN != 0)
-template <> struct is_signed_imp<char> : public true_type{};
-template <> struct is_signed_imp<const char> : public true_type{};
-template <> struct is_signed_imp<volatile char> : public true_type{};
-template <> struct is_signed_imp<const volatile char> : public true_type{};
-#endif
-#if defined(WCHAR_MIN) && (WCHAR_MIN != 0)
-template <> struct is_signed_imp<wchar_t> : public true_type{};
-template <> struct is_signed_imp<const wchar_t> : public true_type{};
-template <> struct is_signed_imp<volatile wchar_t> : public true_type{};
-template <> struct is_signed_imp<const volatile wchar_t> : public true_type{};
-#endif
-
-#endif
-
-}
-
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,__is_signed(T))
-#else
-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 // 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
deleted file mode 100644
index 27968dc..0000000
--- a/include/ndnboost/type_traits/is_stateless.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/has_trivial_destructor.hpp>
-#include <ndnboost/type_traits/is_class.hpp>
-#include <ndnboost/type_traits/is_empty.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <typename T>
-struct is_stateless_impl
-{
-  NDNBOOST_STATIC_CONSTANT(bool, value = 
-    (::ndnboost::type_traits::ice_and<
-       ::ndnboost::has_trivial_constructor<T>::value,
-       ::ndnboost::has_trivial_copy<T>::value,
-       ::ndnboost::has_trivial_destructor<T>::value,
-       ::ndnboost::is_class<T>::value,
-       ::ndnboost::is_empty<T>::value
-     >::value));
-};
-
-} // namespace detail
-
-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 // NDNBOOST_TT_IS_STATELESS_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_union.hpp b/include/ndnboost/type_traits/is_union.hpp
deleted file mode 100644
index 14b4bd7..0000000
--- a/include/ndnboost/type_traits/is_union.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-#include <ndnboost/type_traits/intrinsics.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-#ifndef __GNUC__
-template <typename T> struct is_union_impl
-{
-   typedef typename remove_cv<T>::type cvt;
-#ifdef NDNBOOST_IS_UNION
-   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_IS_UNION(cvt));
-#else
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-#endif
-};
-#else
-//
-// using remove_cv here generates a whole load of needless
-// warnings with gcc, since it doesn't do any good with gcc
-// in any case (at least at present), just remove it:
-//
-template <typename T> struct is_union_impl
-{
-#ifdef NDNBOOST_IS_UNION
-   NDNBOOST_STATIC_CONSTANT(bool, value = NDNBOOST_IS_UNION(T));
-#else
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-#endif
-};
-#endif
-} // namespace detail
-
-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 // NDNBOOST_TT_IS_UNION_HPP_INCLUDED
diff --git a/include/ndnboost/type_traits/is_unsigned.hpp b/include/ndnboost/type_traits/is_unsigned.hpp
deleted file mode 100644
index 76baf11..0000000
--- a/include/ndnboost/type_traits/is_unsigned.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-#if !defined( __CODEGEARC__ )
-
-namespace detail{
-
-#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 NDNBOOST_STATIC_CONSTANT here, using enum's
-   // rather than "real" static constants simply doesn't work or give
-   // the correct answer.
-   //
-   typedef typename remove_cv<T>::type no_cv_t;
-   static const no_cv_t minus_one = (static_cast<no_cv_t>(-1));
-   static const no_cv_t zero = (static_cast<no_cv_t>(0));
-};
-
-template <class T>
-struct is_ununsigned_helper
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value = (::ndnboost::detail::is_unsigned_values<T>::minus_one > ::ndnboost::detail::is_unsigned_values<T>::zero));
-};
-
-template <bool integral_type>
-struct is_ununsigned_select_helper
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_ununsigned_helper<T> type;
-   };
-};
-
-template <>
-struct is_ununsigned_select_helper<false>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <class T>
-struct is_unsigned_imp
-{
-   typedef is_ununsigned_select_helper< 
-      ::ndnboost::type_traits::ice_or<
-         ::ndnboost::is_integral<T>::value,
-         ::ndnboost::is_enum<T>::value>::value 
-   > selector;
-   typedef typename selector::template rebind<T> binder;
-   typedef typename binder::type type;
-   NDNBOOST_STATIC_CONSTANT(bool, value = type::value);
-};
-
-#else
-
-template <class T> struct is_unsigned_imp : public false_type{};
-template <> struct is_unsigned_imp<unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<unsigned long> : public true_type{};
-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 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{};
-template <> struct is_unsigned_imp<const volatile unsigned long long> : public true_type{};
-#endif
-#if defined(CHAR_MIN) && (CHAR_MIN == 0)
-template <> struct is_unsigned_imp<char> : public true_type{};
-template <> struct is_unsigned_imp<const char> : public true_type{};
-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(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{};
-template <> struct is_unsigned_imp<const volatile wchar_t> : public true_type{};
-#endif
-
-#endif
-
-}
-
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_unsigned,T,__is_unsigned(T))
-#else
-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 // 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
deleted file mode 100644
index 21c3f25..0000000
--- a/include/ndnboost/type_traits/is_virtual_base_of.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//  (C) Copyright Daniel Frey and Robert Ramey 2009.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
- 
-#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>
-#include <ndnboost/mpl/and.hpp>
-#include <ndnboost/mpl/not.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-namespace detail {
-
-
-#ifdef NDNBOOST_MSVC
-#pragma warning( push )
-#pragma warning( disable : 4584 4250)
-#elif defined(__GNUC__) && (__GNUC__ >= 4)
-#pragma GCC system_header
-#endif
-
-template<typename Base, typename Derived, typename tag>
-struct is_virtual_base_of_impl
-{
-    NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<typename Base, typename Derived>
-struct is_virtual_base_of_impl<Base, Derived, mpl::true_>
-{
-#ifdef __BORLANDC__
-    struct boost_type_traits_internal_struct_X : public virtual Derived, public virtual Base 
-    {
-       boost_type_traits_internal_struct_X();
-       boost_type_traits_internal_struct_X(const boost_type_traits_internal_struct_X&);
-       boost_type_traits_internal_struct_X& operator=(const boost_type_traits_internal_struct_X&);
-       ~boost_type_traits_internal_struct_X()throw();
-    };
-    struct boost_type_traits_internal_struct_Y : public virtual Derived 
-    {
-       boost_type_traits_internal_struct_Y();
-       boost_type_traits_internal_struct_Y(const boost_type_traits_internal_struct_Y&);
-       boost_type_traits_internal_struct_Y& operator=(const boost_type_traits_internal_struct_Y&);
-       ~boost_type_traits_internal_struct_Y()throw();
-    };
-#else
-    struct boost_type_traits_internal_struct_X : public Derived, virtual Base 
-    {
-       boost_type_traits_internal_struct_X();
-       boost_type_traits_internal_struct_X(const boost_type_traits_internal_struct_X&);
-       boost_type_traits_internal_struct_X& operator=(const boost_type_traits_internal_struct_X&);
-       ~boost_type_traits_internal_struct_X()throw();
-    };
-    struct boost_type_traits_internal_struct_Y : public Derived 
-    {
-       boost_type_traits_internal_struct_Y();
-       boost_type_traits_internal_struct_Y(const boost_type_traits_internal_struct_Y&);
-       boost_type_traits_internal_struct_Y& operator=(const boost_type_traits_internal_struct_Y&);
-       ~boost_type_traits_internal_struct_Y()throw();
-    };
-#endif
-    NDNBOOST_STATIC_CONSTANT(bool, value = (sizeof(boost_type_traits_internal_struct_X)==sizeof(boost_type_traits_internal_struct_Y)));
-};
-
-template<typename Base, typename Derived>
-struct is_virtual_base_of_impl2
-{
-   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;
-   NDNBOOST_STATIC_CONSTANT(bool, value = imp::value);
-};
-
-#ifdef NDNBOOST_MSVC
-#pragma warning( pop )
-#endif
-
-} // namespace detail
-
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF2(
-      is_virtual_base_of
-       , Base
-       , Derived
-       , (::ndnboost::detail::is_virtual_base_of_impl2<Base,Derived>::value) 
-)
-
-#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
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif
diff --git a/include/ndnboost/type_traits/is_void.hpp b/include/ndnboost/type_traits/is_void.hpp
deleted file mode 100644
index 95c6c3b..0000000
--- a/include/ndnboost/type_traits/is_void.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_IS_VOID_HPP_INCLUDED
-#define NDNBOOST_TT_IS_VOID_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-//* is a type T void - is_void<T>
-#if defined( __CODEGEARC__ )
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,__is_void(T))
-#else
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,false)
-NDNBOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void,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
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 98a4e46..0000000
--- a/include/ndnboost/type_traits/is_volatile.hpp
+++ /dev/null
@@ -1,152 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef NDNBOOST_TT_IS_VOLATILE_HPP_INCLUDED
-#define NDNBOOST_TT_IS_VOLATILE_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <ndnboost/type_traits/detail/cv_traits_impl.hpp>
-#   if NDNBOOST_WORKAROUND(NDNBOOST_MSVC, < 1400)
-#       include <ndnboost/type_traits/remove_bounds.hpp>
-#   endif
-#else
-#   include <ndnboost/type_traits/is_reference.hpp>
-#   include <ndnboost/type_traits/is_array.hpp>
-#   include <ndnboost/type_traits/detail/yes_no_type.hpp>
-#   include <ndnboost/type_traits/detail/false_result.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail{
-template <class T>
-struct is_volatile_rval_filter
-{
-#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
-   NDNBOOST_STATIC_CONSTANT(bool, value = ::ndnboost::detail::cv_traits_imp<T*>::is_volatile);
-#endif
-};
-#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:
-//
-template <class T>
-struct is_volatile_rval_filter<T&&>
-{
-   NDNBOOST_STATIC_CONSTANT(bool, value = false);
-};
-#endif
-}
-
-#if defined( __CODEGEARC__ )
-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>
-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(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...
-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
-
-namespace detail {
-
-using ::ndnboost::type_traits::yes_type;
-using ::ndnboost::type_traits::no_type;
-
-yes_type is_volatile_tester(void const volatile*);
-no_type is_volatile_tester(void const*);
-
-template <bool is_ref, bool array>
-struct is_volatile_helper
-    : public ::ndnboost::type_traits::false_result
-{
-};
-
-template <>
-struct is_volatile_helper<false,false>
-{
-    template <typename T> struct result_
-    {
-        static T* t;
-        NDNBOOST_STATIC_CONSTANT(bool, value = (
-            sizeof(ndnboost::detail::yes_type) == sizeof(ndnboost::detail::is_volatile_tester(t))
-            ));
-    };
-};
-
-template <>
-struct is_volatile_helper<false,true>
-{
-    template <typename T> struct result_
-    {
-        static T t;
-        NDNBOOST_STATIC_CONSTANT(bool, value = (
-            sizeof(ndnboost::detail::yes_type) == sizeof(ndnboost::detail::is_volatile_tester(&t))
-            ));
-    };
-};
-
-template <typename T>
-struct is_volatile_impl
-    : public is_volatile_helper<
-          is_reference<T>::value
-        , is_array<T>::value
-        >::template result_<T>
-{
-};
-
-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>
-NDNBOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::ndnboost::detail::is_volatile_impl<T>::value)
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 8ed07f0..0000000
--- a/include/ndnboost/type_traits/make_signed.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_signed.hpp>
-#include <ndnboost/type_traits/is_unsigned.hpp>
-#include <ndnboost/type_traits/is_enum.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_volatile.hpp>
-#include <ndnboost/type_traits/add_const.hpp>
-#include <ndnboost/type_traits/add_volatile.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-#include <ndnboost/static_assert.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <class T>
-struct make_signed_imp
-{
-   NDNBOOST_STATIC_ASSERT(
-      (::ndnboost::type_traits::ice_or< ::ndnboost::is_integral<T>::value, ::ndnboost::is_enum<T>::value>::value));
-#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
-
-   typedef typename remove_cv<T>::type t_no_cv;
-   typedef typename mpl::if_c<
-      (::ndnboost::type_traits::ice_and< 
-         ::ndnboost::is_signed<T>::value,
-         ::ndnboost::is_integral<T>::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, char>::value>::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, wchar_t>::value>::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, bool>::value>::value >::value),
-      T,
-      typename mpl::if_c<
-         (::ndnboost::type_traits::ice_and< 
-            ::ndnboost::is_integral<T>::value,
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, char>::value>::value,
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, wchar_t>::value>::value,
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, bool>::value>::value>
-         ::value),
-         typename mpl::if_<
-            is_same<t_no_cv, unsigned char>,
-            signed char,
-            typename mpl::if_<
-               is_same<t_no_cv, unsigned short>,
-               signed short,
-               typename mpl::if_<
-                  is_same<t_no_cv, unsigned int>,
-                  int,
-                  typename mpl::if_<
-                     is_same<t_no_cv, unsigned long>,
-                     long,
-#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, 
-                        ndnboost::int128_type
-                     >::type
-#else
-                     ndnboost::long_long_type
-#endif
-#elif defined(NDNBOOST_HAS_MS_INT64)
-                     __int64
-#else
-                     long
-#endif
-                  >::type
-               >::type
-            >::type
-         >::type,
-         // Not a regular integer type:
-         typename mpl::if_c<
-            sizeof(t_no_cv) == sizeof(unsigned char),
-            signed char,
-            typename mpl::if_c<
-               sizeof(t_no_cv) == sizeof(unsigned short),
-               signed short,
-               typename mpl::if_c<
-                  sizeof(t_no_cv) == sizeof(unsigned int),
-                  int,
-                  typename mpl::if_c<
-                     sizeof(t_no_cv) == sizeof(unsigned long),
-                     long,
-#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, 
-                        ndnboost::int128_type
-                     >::type
-#else
-                     ndnboost::long_long_type
-#endif
-#elif defined(NDNBOOST_HAS_MS_INT64)
-                     __int64
-#else
-                     long
-#endif
-                  >::type
-               >::type
-            >::type
-         >::type
-      >::type
-   >::type base_integer_type;
-   
-   // Add back any const qualifier:
-   typedef typename mpl::if_<
-      is_const<T>,
-      typename add_const<base_integer_type>::type,
-      base_integer_type
-   >::type const_base_integer_type;
-   
-   // Add back any volatile qualifier:
-   typedef typename mpl::if_<
-      is_volatile<T>,
-      typename add_volatile<const_base_integer_type>::type,
-      const_base_integer_type
-   >::type type;
-};
-
-
-} // namespace detail
-
-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 // NDNBOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-
diff --git a/include/ndnboost/type_traits/make_unsigned.hpp b/include/ndnboost/type_traits/make_unsigned.hpp
deleted file mode 100644
index 34b1dca..0000000
--- a/include/ndnboost/type_traits/make_unsigned.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/type_traits/is_signed.hpp>
-#include <ndnboost/type_traits/is_unsigned.hpp>
-#include <ndnboost/type_traits/is_enum.hpp>
-#include <ndnboost/type_traits/is_same.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_volatile.hpp>
-#include <ndnboost/type_traits/add_const.hpp>
-#include <ndnboost/type_traits/add_volatile.hpp>
-#include <ndnboost/type_traits/detail/ice_or.hpp>
-#include <ndnboost/type_traits/detail/ice_and.hpp>
-#include <ndnboost/type_traits/detail/ice_not.hpp>
-#include <ndnboost/static_assert.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template <class T>
-struct make_unsigned_imp
-{
-   NDNBOOST_STATIC_ASSERT(
-      (::ndnboost::type_traits::ice_or< ::ndnboost::is_integral<T>::value, ::ndnboost::is_enum<T>::value>::value));
-#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
-
-   typedef typename remove_cv<T>::type t_no_cv;
-   typedef typename mpl::if_c<
-      (::ndnboost::type_traits::ice_and< 
-         ::ndnboost::is_unsigned<T>::value,
-         ::ndnboost::is_integral<T>::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, char>::value>::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, wchar_t>::value>::value,
-         ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, bool>::value>::value >::value),
-      T,
-      typename mpl::if_c<
-         (::ndnboost::type_traits::ice_and< 
-            ::ndnboost::is_integral<T>::value,
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, char>::value>::value,
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, wchar_t>::value>::value,
-            ::ndnboost::type_traits::ice_not< ::ndnboost::is_same<t_no_cv, bool>::value>::value>
-         ::value),
-         typename mpl::if_<
-            is_same<t_no_cv, signed char>,
-            unsigned char,
-            typename mpl::if_<
-               is_same<t_no_cv, short>,
-               unsigned short,
-               typename mpl::if_<
-                  is_same<t_no_cv, int>,
-                  unsigned int,
-                  typename mpl::if_<
-                     is_same<t_no_cv, long>,
-                     unsigned long,
-#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, 
-                        ndnboost::uint128_type
-                     >::type
-#else
-                     ndnboost::ulong_long_type
-#endif
-#elif defined(NDNBOOST_HAS_MS_INT64)
-                     unsigned __int64
-#else
-                     unsigned long
-#endif
-                  >::type
-               >::type
-            >::type
-         >::type,
-         // Not a regular integer type:
-         typename mpl::if_c<
-            sizeof(t_no_cv) == sizeof(unsigned char),
-            unsigned char,
-            typename mpl::if_c<
-               sizeof(t_no_cv) == sizeof(unsigned short),
-               unsigned short,
-               typename mpl::if_c<
-                  sizeof(t_no_cv) == sizeof(unsigned int),
-                  unsigned int,
-                  typename mpl::if_c<
-                     sizeof(t_no_cv) == sizeof(unsigned long),
-                     unsigned long,
-#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, 
-                        ndnboost::uint128_type
-                     >::type
-#else
-                     ndnboost::ulong_long_type
-#endif
-#elif defined(NDNBOOST_HAS_MS_INT64)
-                     unsigned __int64
-#else
-                     unsigned long
-#endif
-                  >::type
-               >::type
-            >::type
-         >::type
-      >::type
-   >::type base_integer_type;
-   
-   // Add back any const qualifier:
-   typedef typename mpl::if_<
-      is_const<T>,
-      typename add_const<base_integer_type>::type,
-      base_integer_type
-   >::type const_base_integer_type;
-   
-   // Add back any volatile qualifier:
-   typedef typename mpl::if_<
-      is_volatile<T>,
-      typename add_volatile<const_base_integer_type>::type,
-      const_base_integer_type
-   >::type type;
-};
-
-
-} // namespace detail
-
-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 // 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
deleted file mode 100644
index b3a9c76..0000000
--- a/include/ndnboost/type_traits/msvc/remove_all_extents.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-
-namespace ndnboost {
-    template<typename T>
-    struct remove_all_extents;
-
-    namespace detail {
-        template<bool IsArray>
-        struct remove_all_extents_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_all_extents_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U[]);
-                static msvc_register_type<T,ID> test(...);
-                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;
-            };
-        };
-    } //namespace detail
-
-    template<typename T>
-    struct remove_all_extents {
-        typedef typename ndnboost::detail::remove_all_extents_impl_typeof<
-            ndnboost::is_array<T>::value                
-        >::template inner<T,remove_all_extents<T> >::type type;
-        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_all_extents,T)
-    };
-} //namespace ndnboost
-
-#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
deleted file mode 100644
index 377e767..0000000
--- a/include/ndnboost/type_traits/msvc/remove_bounds.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-
-namespace ndnboost {
-    namespace detail {
-        template<bool IsArray>
-        struct remove_bounds_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_bounds_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U[]);
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-        };
-    } //namespace detail
-
-    template<typename T>
-    struct remove_bounds {
-        typedef typename ndnboost::detail::remove_bounds_impl_typeof<
-            ndnboost::is_array<T>::value                
-        >::template inner<T,remove_bounds<T> >::type type;
-        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_bounds,T)
-    };
-} //namespace ndnboost
-
-#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
deleted file mode 100644
index 8f3b9a4..0000000
--- a/include/ndnboost/type_traits/msvc/remove_const.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-
-namespace ndnboost {
-    namespace detail {
-        template<bool IsPointer,bool IsArray,bool IsConst,bool IsVolatile>
-        struct remove_const_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-        template<> //Const
-        struct remove_const_impl_typeof<false,false,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U const&(*)());
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //CV
-        struct remove_const_impl_typeof<false,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U volatile,ID> test(U const volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //Const Pointer
-        struct remove_const_impl_typeof<true,false,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U const[]));
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };
-        template<> //CV Pointer
-        struct remove_const_impl_typeof<true,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U volatile,ID> test(void(*)(U const volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };        
-        template<> //Const Array
-        struct remove_const_impl_typeof<false,true,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                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(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-        template<> //CV Array
-        struct remove_const_impl_typeof<false,true,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                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(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-    } //namespace detail
-
-    template<typename T>
-    struct remove_const {
-        typedef ndnboost::detail::remove_const_impl_typeof<
-            ndnboost::is_pointer<T>::value,
-            ndnboost::is_array<T>::value,
-            ndnboost::is_const<T>::value,
-            ndnboost::is_volatile<T>::value
-        > remove_const_type;
-        typedef typename 
-            remove_const_type::template inner<
-                typename remove_const_type::template transform_type<T>::type,
-                remove_const<T>
-            >::type
-        type;
-        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_const,T)
-    };
-}//namespace ndnboost
-
-#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
deleted file mode 100644
index f3a0438..0000000
--- a/include/ndnboost/type_traits/msvc/remove_cv.hpp
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-
-namespace ndnboost {
-    namespace detail {
-        template<bool IsPointer,bool IsArray,bool IsConst,bool IsVolatile>
-        struct remove_cv_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-        template<> //Volatile
-        struct remove_cv_impl_typeof<false,false,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //Const
-        struct remove_cv_impl_typeof<false,false,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U const&(*)());
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //CV
-        struct remove_cv_impl_typeof<false,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U const volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //Volatile Pointer
-        struct remove_cv_impl_typeof<true,false,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };
-        template<> //Const Pointer
-        struct remove_cv_impl_typeof<true,false,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U const[]));
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };
-        template<> //CV Pointer
-        struct remove_cv_impl_typeof<true,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U const volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };        
-        template<> //Volatile Array
-        struct remove_cv_impl_typeof<false,true,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                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(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-        template<> //Const Array
-        struct remove_cv_impl_typeof<false,true,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                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(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-        template<> //CV Array
-        struct remove_cv_impl_typeof<false,true,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                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(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-    } //namespace detail
-
-    template<typename T>
-    struct remove_cv {
-        typedef ndnboost::detail::remove_cv_impl_typeof<
-            ndnboost::is_pointer<T>::value,
-            ndnboost::is_array<T>::value,
-            ndnboost::is_const<T>::value,
-            ndnboost::is_volatile<T>::value
-        > remove_cv_type;
-        typedef typename 
-            remove_cv_type::template inner<
-                typename remove_cv_type::template transform_type<T>::type,
-                remove_cv<T>
-            >::type
-        type;
-        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_cv,T)
-    };
-}//namespace ndnboost
-
-#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
deleted file mode 100644
index a88f75d..0000000
--- a/include/ndnboost/type_traits/msvc/remove_extent.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-
-namespace ndnboost {
-    namespace detail {
-        template<bool IsArray>
-        struct remove_extent_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_extent_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U[]);
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-        };
-    } //namespace detail
-
-    template<typename T>
-    struct remove_extent {
-        typedef typename ndnboost::detail::remove_extent_impl_typeof<
-            ndnboost::is_array<T>::value                
-        >::template inner<T,remove_extent<T> >::type type;
-        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_extent,T)
-    };
-} //namespace ndnboost
-
-#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
deleted file mode 100644
index 4311bcc..0000000
--- a/include/ndnboost/type_traits/msvc/remove_pointer.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-
-namespace ndnboost {
-    namespace detail {
-        template<int IsPointer>
-        struct remove_pointer_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_pointer_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U*);
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-        };
-    } //namespace detail
-
-    template<typename T>
-    struct remove_pointer {
-        typedef typename ndnboost::detail::remove_pointer_impl_typeof<
-            ndnboost::is_pointer<T>::value
-        >::template inner<T,remove_pointer<T> >::type type;
-        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_pointer,T)
-    };
-} //namespace ndnboost
-
-#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
deleted file mode 100644
index a833456..0000000
--- a/include/ndnboost/type_traits/msvc/remove_reference.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-
-namespace ndnboost {
-    namespace detail {
-        template<bool IsReference>
-        struct remove_reference_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_reference_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U&(*)());
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-        };
-    } //namespace detail
-    
-    template<typename T>
-    struct remove_reference {
-        typedef typename ndnboost::detail::remove_reference_impl_typeof<
-            ndnboost::is_reference<T>::value
-        >::template inner<T,remove_reference<T> >::type type;
-        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_reference,T)
-    };
-} //namespace ndnboost
-
-#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
deleted file mode 100644
index 00e1497..0000000
--- a/include/ndnboost/type_traits/msvc/remove_volatile.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-#include <ndnboost/type_traits/is_const.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_array.hpp>
-
-namespace ndnboost {
-    namespace detail {
-        template<bool IsPointer,bool IsArray,bool IsConst,bool IsVolatile>
-        struct remove_volatile_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-        template<> //Volatile
-        struct remove_volatile_impl_typeof<false,false,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };            
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //CV
-        struct remove_volatile_impl_typeof<false,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U const,ID> test(U const volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //Volatile Pointer
-        struct remove_volatile_impl_typeof<true,false,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };
-        template<> //CV Pointer
-        struct remove_volatile_impl_typeof<true,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U const,ID> test(void(*)(U const volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };        
-        template<> //Volatile Array
-        struct remove_volatile_impl_typeof<false,true,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                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(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;                
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-        template<> //CV Array
-        struct remove_volatile_impl_typeof<false,true,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                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(...);
-                NDNBOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-    } //namespace detail
-
-    template<typename T>
-    struct remove_volatile {
-        typedef ndnboost::detail::remove_volatile_impl_typeof<
-            ndnboost::is_pointer<T>::value,
-            ndnboost::is_array<T>::value,
-            ndnboost::is_const<T>::value,
-            ndnboost::is_volatile<T>::value
-        > remove_volatile_type;
-        typedef typename 
-            remove_volatile_type::template inner<
-                typename remove_volatile_type::template transform_type<T>::type,
-                remove_volatile<T>
-            >::type
-        type;
-        NDNBOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_volatile,T)
-    };
-}//namespace ndnboost
-
-#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
deleted file mode 100644
index c25dade..0000000
--- a/include/ndnboost/type_traits/msvc/typeof.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC,==1300)
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            template<bool>
-            struct id2type_impl;
-
-            typedef id2type_impl<true> id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : public msvc_extract_type<ID>
-        {
-            template<>
-            struct id2type_impl<true>  //VC7.0 specific bugfeature
-            {
-                typedef T type;
-            };
-        };
-# else 
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            struct id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : public msvc_extract_type<ID>
-        {
-            typedef msvc_extract_type<ID> base_type;
-            struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature
-            {
-                typedef T type;
-            };
-        };
-# endif
-}}
-
-#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
deleted file mode 100644
index ffc9aee..0000000
--- a/include/ndnboost/type_traits/object_traits.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  defines object traits classes:
-//  is_object, is_scalar, is_class, is_compound, is_pod, 
-//  has_trivial_constructor, has_trivial_copy, has_trivial_assign, 
-//  has_trivial_destructor, is_empty.
-//
-
-#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>
-#include <ndnboost/type_traits/has_trivial_copy.hpp>
-#include <ndnboost/type_traits/has_trivial_destructor.hpp>
-#include <ndnboost/type_traits/has_nothrow_constructor.hpp>
-#include <ndnboost/type_traits/has_nothrow_copy.hpp>
-#include <ndnboost/type_traits/has_nothrow_assign.hpp>
-#include <ndnboost/type_traits/is_base_and_derived.hpp>
-#include <ndnboost/type_traits/is_class.hpp>
-#include <ndnboost/type_traits/is_compound.hpp>
-#include <ndnboost/type_traits/is_empty.hpp>
-#include <ndnboost/type_traits/is_object.hpp>
-#include <ndnboost/type_traits/is_pod.hpp>
-#include <ndnboost/type_traits/is_scalar.hpp>
-#include <ndnboost/type_traits/is_stateless.hpp>
-
-#endif // NDNBOOST_TT_OBJECT_TRAITS_HPP_INLCUDED
diff --git a/include/ndnboost/type_traits/promote.hpp b/include/ndnboost/type_traits/promote.hpp
deleted file mode 100644
index 5eeba4d..0000000
--- a/include/ndnboost/type_traits/promote.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// 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 FILE_ndnboost_type_traits_promote_hpp_INCLUDED
-#define FILE_ndnboost_type_traits_promote_hpp_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/type_traits/integral_promotion.hpp>
-#include <ndnboost/type_traits/floating_point_promotion.hpp>
-
-// Should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-namespace detail {
-
-template<class T>
-struct promote_impl
-  : public integral_promotion<
-        NDNBOOST_DEDUCED_TYPENAME floating_point_promotion<T>::type
-      >
-{
-};
-
-}
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(
-      promote
-    , T
-    , NDNBOOST_DEDUCED_TYPENAME ndnboost::detail::promote_impl<T>::type
-    )
-}
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // #ifndef FILE_ndnboost_type_traits_promote_hpp_INCLUDED
-
diff --git a/include/ndnboost/type_traits/rank.hpp b/include/ndnboost/type_traits/rank.hpp
deleted file mode 100644
index 2a4f62f..0000000
--- a/include/ndnboost/type_traits/rank.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-
-namespace ndnboost {
-
-#if !defined( __CODEGEARC__ )
-
-namespace detail{
-
-template <class T, std::size_t N>
-struct rank_imp
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = N);
-};
-#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>
-{
-   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>
-{
-   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>
-{
-   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>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
-};
-
-#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>
-{
-   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>
-{
-   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>
-{
-   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>
-{
-   NDNBOOST_STATIC_CONSTANT(std::size_t, value = (::ndnboost::detail::rank_imp<T, N+1>::value));
-};
-#endif
-#endif
-}
-
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-NDNBOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,__array_rank(T))
-#else
-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 // 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
deleted file mode 100644
index 675aaaf..0000000
--- a/include/ndnboost/type_traits/remove_all_extents.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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 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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-
-namespace ndnboost {
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_all_extents,T,T)
-
-#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
-
-} // namespace ndnboost
-
-#endif
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#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
deleted file mode 100644
index fa09715..0000000
--- a/include/ndnboost/type_traits/remove_bounds.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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 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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-
-namespace ndnboost {
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_bounds,T,T)
-
-#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
-
-} // namespace ndnboost
-
-#endif
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 5a31613..0000000
--- a/include/ndnboost/type_traits/remove_const.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-#include <ndnboost/type_traits/detail/cv_traits_impl.hpp>
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#include <cstddef>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-#include <ndnboost/type_traits/msvc/remove_const.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template <typename T, bool is_vol>
-struct remove_const_helper
-{
-    typedef T type;
-};
-
-template <typename T>
-struct remove_const_helper<T, true>
-{
-    typedef T volatile type;
-};
-
-
-template <typename T>
-struct remove_const_impl
-{
-    typedef typename remove_const_helper<
-          typename cv_traits_imp<T*>::unqualified_type
-        , ::ndnboost::is_volatile<T>::value
-        >::type type;
-};
-
-#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:
-//
-template <typename T>
-struct remove_const_impl<T&&>
-{
-    typedef T&& type;
-};
-#endif
-
-} // namespace detail
-
-// * convert a type T to non-const type - remove_const<T>
-
-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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename ndnboost::detail::remove_const_impl<T>::type)
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#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
deleted file mode 100644
index d5cb86a..0000000
--- a/include/ndnboost/type_traits/remove_cv.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#include <cstddef>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-#include <ndnboost/type_traits/msvc/remove_cv.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail{
-
-template <class T>
-struct rvalue_ref_filter_rem_cv
-{
-   typedef typename ndnboost::detail::cv_traits_imp<T*>::unqualified_type type;
-};
-
-#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:
-//
-template <class T>
-struct rvalue_ref_filter_rem_cv<T&&>
-{
-   typedef T&& type;
-};
-#endif
-
-}
-
-
-//  convert a type T to a non-cv-qualified type - remove_cv<T>
-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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-
-namespace detail {
-template <typename T>
-struct remove_cv_impl
-{
-    typedef typename remove_volatile_impl< 
-          typename remove_const_impl<T>::type
-        >::type type;
-};
-}
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename ndnboost::detail::remove_cv_impl<T>::type)
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#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
deleted file mode 100644
index a13317d..0000000
--- a/include/ndnboost/type_traits/remove_extent.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-2005.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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 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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-
-namespace ndnboost {
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_extent,T,T)
-
-#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
-
-} // namespace ndnboost
-
-#endif
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#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
deleted file mode 100644
index aa8a2e8..0000000
--- a/include/ndnboost/type_traits/remove_pointer.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef NDNBOOST_TT_REMOVE_POINTER_HPP_INCLUDED
-#define NDNBOOST_TT_REMOVE_POINTER_HPP_INCLUDED
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <ndnboost/type_traits/broken_compiler_spec.hpp>
-#endif
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-#include <ndnboost/type_traits/msvc/remove_pointer.hpp>
-#elif defined(NDNBOOST_MSVC)
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-#ifdef NDNBOOST_MSVC
-
-namespace detail{
-
-   //
-   // We need all this crazy indirection because a type such as:
-   //
-   // T (*const)(U)
-   //
-   // Does not bind to a <T*> or <T*const> partial specialization with VC10 and earlier
-   //
-   template <class T> 
-   struct remove_pointer_imp
-   {
-      typedef T type;
-   };
-
-   template <class T> 
-   struct remove_pointer_imp<T*>
-   {
-      typedef T type;
-   };
-
-   template <class T, bool b> 
-   struct remove_pointer_imp3
-   {
-      typedef typename remove_pointer_imp<typename ndnboost::remove_cv<T>::type>::type type;
-   };
-
-   template <class T> 
-   struct remove_pointer_imp3<T, false>
-   {
-      typedef T type;
-   };
-
-   template <class T> 
-   struct remove_pointer_imp2
-   {
-      typedef typename remove_pointer_imp3<T, ::ndnboost::is_pointer<T>::value>::type type;
-   };
-}
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename ndnboost::detail::remove_pointer_imp2<T>::type)
-
-#elif !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename ndnboost::detail::remove_pointer_impl<T>::type)
-
-#endif
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 4421c59..0000000
--- a/include/ndnboost/type_traits/remove_reference.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-#include <ndnboost/type_traits/msvc/remove_reference.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail{
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-template <class T>
-struct remove_rvalue_ref
-{
-   typedef T type;
-};
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-template <class T>
-struct remove_rvalue_ref<T&&>
-{
-   typedef T type;
-};
-#endif
-
-} // namespace detail
-
-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(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...
-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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename ndnboost::detail::remove_reference_impl<T>::type)
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 731e9b1..0000000
--- a/include/ndnboost/type_traits/remove_volatile.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#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>
-#include <ndnboost/type_traits/detail/cv_traits_impl.hpp>
-#include <ndnboost/config.hpp>
-#include <ndnboost/detail/workaround.hpp>
-
-#include <cstddef>
-
-#if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-#include <ndnboost/type_traits/msvc/remove_volatile.hpp>
-#endif
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/type_trait_def.hpp>
-
-namespace ndnboost {
-
-#ifndef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template <typename T, bool is_const>
-struct remove_volatile_helper
-{
-    typedef T type;
-};
-
-template <typename T>
-struct remove_volatile_helper<T,true>
-{
-    typedef T const type;
-};
-
-template <typename T>
-struct remove_volatile_impl
-{
-    typedef typename remove_volatile_helper<
-          typename cv_traits_imp<T*>::unqualified_type
-        , ::ndnboost::is_const<T>::value
-        >::type type;
-};
-
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-#ifndef NDNBOOST_NO_CXX11_RVALUE_REFERENCES
-template <typename T>
-struct remove_volatile_impl<T&&>
-{
-    typedef T&& type;
-};
-#endif
-} // namespace detail
-
-// * convert a type T to a non-volatile type - remove_volatile<T>
-
-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 !NDNBOOST_WORKAROUND(NDNBOOST_MSVC,<=1300)
-
-NDNBOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename ndnboost::detail::remove_volatile_impl<T>::type)
-
-#endif // NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace ndnboost
-
-#include <ndnboost/type_traits/detail/type_trait_undef.hpp>
-
-#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
deleted file mode 100644
index d476c0d..0000000
--- a/include/ndnboost/type_traits/same_traits.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-//  (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  defines is_same:
-
-#ifndef NDNBOOST_TT_SAME_TRAITS_HPP_INCLUDED
-#define NDNBOOST_TT_SAME_TRAITS_HPP_INCLUDED
-
-#include <ndnboost/type_traits/is_same.hpp>
-
-#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
deleted file mode 100644
index f2baa0c..0000000
--- a/include/ndnboost/type_traits/transform_traits.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  defines traits classes for transforming one type to another:
-//  remove_reference, add_reference, remove_bounds, remove_pointer.
-//
-
-#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>
-#include <ndnboost/type_traits/remove_bounds.hpp>
-#include <ndnboost/type_traits/remove_pointer.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-
-#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
deleted file mode 100644
index 39160c6..0000000
--- a/include/ndnboost/type_traits/type_with_alignment.hpp
+++ /dev/null
@@ -1,399 +0,0 @@
-//  (C) Copyright John Maddock 2000.
-//  Use, modification and distribution are subject to 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).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#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>
-#include <ndnboost/preprocessor/tuple/to_list.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/list/transform.hpp>
-#include <ndnboost/preprocessor/list/append.hpp>
-#include <ndnboost/type_traits/alignment_of.hpp>
-#include <ndnboost/type_traits/is_pod.hpp>
-#include <ndnboost/static_assert.hpp>
-#include <ndnboost/config.hpp>
-
-// should be the last #include
-#include <ndnboost/type_traits/detail/bool_trait_def.hpp>
-
-#include <cstddef>
-
-#ifdef NDNBOOST_MSVC
-#   pragma warning(push)
-#   pragma warning(disable: 4121) // alignment is sensitive to packing
-#endif
-
-namespace ndnboost {
-
-#ifndef __BORLANDC__
-
-namespace detail {
-
-class alignment_dummy;
-typedef void (*function_ptr)();
-typedef int (alignment_dummy::*member_ptr);
-typedef int (alignment_dummy::*member_function_ptr)();
-
-#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 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 NDNBOOST_TT_HAS_ONE_T(D,Data,T) ndnboost::detail::has_one_T< T >
-
-#define NDNBOOST_TT_ALIGNMENT_STRUCT_TYPES                         \
-        NDNBOOST_PP_LIST_TRANSFORM(NDNBOOST_TT_HAS_ONE_T,             \
-                                X,                              \
-                                NDNBOOST_TT_ALIGNMENT_BASE_TYPES)
-
-#define NDNBOOST_TT_ALIGNMENT_TYPES                                \
-        NDNBOOST_PP_LIST_APPEND(NDNBOOST_TT_ALIGNMENT_BASE_TYPES,     \
-                             NDNBOOST_TT_ALIGNMENT_STRUCT_TYPES)
-
-//
-// lower_alignment_helper --
-//
-// This template gets instantiated a lot, so use partial
-// specialization when available to reduce the compiler burden.
-//
-#ifdef NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <bool found = true>
-struct lower_alignment_helper_impl
-{
-    template <std::size_t, class>
-    struct apply
-    {
-        typedef char type;
-        enum { value = true };
-    };
-};
-
-template <>
-struct lower_alignment_helper_impl<false>
-{
-    template <std::size_t target, class TestType>
-    struct apply
-      : public mpl::if_c<(alignment_of<TestType>::value == target), TestType, char>
-    {
-        enum { value = (alignment_of<TestType>::value == target) };
-    };
-};
-
-template <bool found, std::size_t target, class TestType>
-struct lower_alignment_helper
-  : public lower_alignment_helper_impl<found>::template apply<target,TestType>
-{
-};
-#else
-template <bool found, std::size_t target, class TestType>
-struct lower_alignment_helper
-{
-    typedef char type;
-    enum { value = true };
-};
-
-template <std::size_t target, class TestType>
-struct lower_alignment_helper<false,target,TestType>
-{
-    enum { value = (alignment_of<TestType>::value == target) };
-    typedef typename mpl::if_c<value, TestType, char>::type type;
-};
-#endif
-
-#define NDNBOOST_TT_CHOOSE_MIN_ALIGNMENT(R,P,I,T)                                  \
-        typename lower_alignment_helper<                                        \
-          NDNBOOST_PP_CAT(found,I),target,T                                        \
-        >::type NDNBOOST_PP_CAT(t,I);                                              \
-        enum {                                                                  \
-            NDNBOOST_PP_CAT(found,NDNBOOST_PP_INC(I))                                 \
-              = lower_alignment_helper<NDNBOOST_PP_CAT(found,I),target,T >::value  \
-        };
-
-#define NDNBOOST_TT_CHOOSE_T(R,P,I,T) T NDNBOOST_PP_CAT(t,I);
-
-template <typename T>
-struct has_one_T
-{
-  T data;
-};
-
-template <std::size_t target>
-union lower_alignment
-{
-    enum { found0 = false };
-
-    NDNBOOST_PP_LIST_FOR_EACH_I(
-          NDNBOOST_TT_CHOOSE_MIN_ALIGNMENT
-        , ignored
-        , NDNBOOST_TT_ALIGNMENT_TYPES
-        )
-};
-
-union max_align
-{
-    NDNBOOST_PP_LIST_FOR_EACH_I(
-          NDNBOOST_TT_CHOOSE_T
-        , ignored
-        , NDNBOOST_TT_ALIGNMENT_TYPES
-        )
-};
-
-#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
-{
-    NDNBOOST_STATIC_CONSTANT(bool,
-        value = (TAlign >= Align) & (TAlign % Align == 0)
-        );
-};
-
-#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 NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template<std::size_t Align>
-struct is_pod< ::ndnboost::detail::lower_alignment<Align> >
-{
-        NDNBOOST_STATIC_CONSTANT(std::size_t, value = true);
-};
-#endif
-
-// This alignment method originally due to Brian Parker, implemented by David
-// Abrahams, and then ported here by Doug Gregor.
-namespace detail{
-
-template <std::size_t Align>
-class type_with_alignment_imp
-{
-    typedef ::ndnboost::detail::lower_alignment<Align> t1;
-    typedef typename mpl::if_c<
-          ::ndnboost::detail::is_aligned< ::ndnboost::alignment_of<t1>::value,Align >::value
-        , t1
-        , ::ndnboost::detail::max_align
-        >::type align_t;
-
-    NDNBOOST_STATIC_CONSTANT(std::size_t, found = alignment_of<align_t>::value);
-
-    NDNBOOST_STATIC_ASSERT(found >= Align);
-    NDNBOOST_STATIC_ASSERT(found % Align == 0);
-
- public:
-    typedef align_t type;
-};
-
-}
-
-template <std::size_t Align>
-class type_with_alignment 
-  : public ::ndnboost::detail::type_with_alignment_imp<Align>
-{
-};
-
-#if defined(__GNUC__)
-namespace align {
-struct __attribute__((__aligned__(2))) a2 {};
-struct __attribute__((__aligned__(4))) a4 {};
-struct __attribute__((__aligned__(8))) a8 {};
-struct __attribute__((__aligned__(16))) a16 {};
-struct __attribute__((__aligned__(32))) a32 {};
-struct __attribute__((__aligned__(64))) a64 {};
-struct __attribute__((__aligned__(128))) a128 {};
-}
-
-template<> class type_with_alignment<1>  { public: typedef char type; };
-template<> class type_with_alignment<2>  { public: typedef align::a2 type; };
-template<> class type_with_alignment<4>  { public: typedef align::a4 type; };
-template<> class type_with_alignment<8>  { public: typedef align::a8 type; };
-template<> class type_with_alignment<16> { public: typedef align::a16 type; };
-template<> class type_with_alignment<32> { public: typedef align::a32 type; };
-template<> class type_with_alignment<64> { public: typedef align::a64 type; };
-template<> class type_with_alignment<128> { public: typedef align::a128 type; };
-
-namespace detail {
-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(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
-// to provide types with alignment requirements which match the SSE
-// registers.  Therefore we extend type_with_alignment<> to support
-// such types, however, we have to be careful to use a builtin type
-// whenever possible otherwise we break previously working code:
-// see http://article.gmane.org/gmane.comp.lib.boost.devel/173011
-// for an example and test case.  Thus types like a8 below will
-// be used *only* if the existing implementation can't provide a type
-// with suitable alignment.  This does mean however, that type_with_alignment<>
-// may return a type which cannot be passed through a function call
-// by value (and neither can any type containing such a type like
-// Boost.Optional).  However, this only happens when we have no choice 
-// in the matter because no other "ordinary" type is available.
-//
-namespace align {
-struct __declspec(align(8)) a8 { 
-   char m[8]; 
-   typedef a8 type;
-};
-struct __declspec(align(16)) a16 { 
-   char m[16]; 
-   typedef a16 type;
-};
-struct __declspec(align(32)) a32 { 
-   char m[32]; 
-   typedef a32 type;
-};
-struct __declspec(align(64)) a64 
-{ 
-   char m[64]; 
-   typedef a64 type;
-};
-struct __declspec(align(128)) a128 { 
-   char m[128]; 
-   typedef a128 type;
-};
-}
-
-template<> class type_with_alignment<8>  
-{ 
-   typedef mpl::if_c<
-      ::ndnboost::alignment_of<ndnboost::detail::max_align>::value < 8,
-      align::a8,
-      ndnboost::detail::type_with_alignment_imp<8> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-template<> class type_with_alignment<16> 
-{ 
-   typedef mpl::if_c<
-      ::ndnboost::alignment_of<ndnboost::detail::max_align>::value < 16,
-      align::a16,
-      ndnboost::detail::type_with_alignment_imp<16> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-template<> class type_with_alignment<32> 
-{ 
-   typedef mpl::if_c<
-      ::ndnboost::alignment_of<ndnboost::detail::max_align>::value < 32,
-      align::a32,
-      ndnboost::detail::type_with_alignment_imp<32> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-template<> class type_with_alignment<64> {
-   typedef mpl::if_c<
-      ::ndnboost::alignment_of<ndnboost::detail::max_align>::value < 64,
-      align::a64,
-      ndnboost::detail::type_with_alignment_imp<64> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-template<> class type_with_alignment<128> {
-   typedef mpl::if_c<
-      ::ndnboost::alignment_of<ndnboost::detail::max_align>::value < 128,
-      align::a128,
-      ndnboost::detail::type_with_alignment_imp<128> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-
-namespace detail {
-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
-
-#else
-
-//
-// Borland specific version, we have this for two reasons:
-// 1) The version above doesn't always compile (with the new test cases for example)
-// 2) Because of Borlands #pragma option we can create types with alignments that are
-//    greater that the largest aligned builtin type.
-
-namespace align{
-#pragma option push -a16
-struct a2{ short s; };
-struct a4{ int s; };
-struct a8{ double s; };
-struct a16{ long double s; };
-#pragma option pop
-}
-
-namespace detail {
-
-typedef ::ndnboost::align::a16 max_align;
-
-//#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
-}
-
-template <std::size_t N> struct type_with_alignment
-{
-   // We should never get to here, but if we do use the maximally
-   // aligned type:
-   // NDNBOOST_STATIC_ASSERT(0);
-   typedef align::a16 type;
-};
-template <> struct type_with_alignment<1>{ typedef char type; };
-template <> struct type_with_alignment<2>{ typedef align::a2 type; };
-template <> struct type_with_alignment<4>{ typedef align::a4 type; };
-template <> struct type_with_alignment<8>{ typedef align::a8 type; };
-template <> struct type_with_alignment<16>{ typedef align::a16 type; };
-
-#endif
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#   pragma warning(pop)
-#endif
-
-#include <ndnboost/type_traits/detail/bool_trait_undef.hpp>
-
-#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
deleted file mode 100644
index 3b40f76..0000000
--- a/include/ndnboost/typeof/dmc/typeof_impl.hpp
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (C) 2007 Peder Holt
-
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-# include <ndnboost/mpl/int.hpp>
-
-namespace ndnboost
-{
-    namespace type_of
-    {
-
-        template<int N> struct encode_counter : encode_counter<N - 1> {};
-        template<> struct encode_counter<0> {};
-
-        char (*encode_index(...))[1];
-
-# 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
-
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            struct id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : msvc_extract_type<ID>
-        {
-            typedef msvc_extract_type<ID> base_type;
-            struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature, also works for Digital Mars
-            {
-                typedef T type;
-            };
-        };
-
-
-        template<int ID>
-        struct msvc_typeid_wrapper {
-            typedef typename msvc_extract_type<mpl::int_<ID> >::id2type id2type;
-            typedef typename id2type::type type;
-        };
-
-        //Tie it all together
-        template<typename T>
-        struct encode_type
-        {
-            //Get the next available compile time constants index
-            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
-            NDNBOOST_STATIC_CONSTANT(unsigned,next=value+1);
-            //Increment the compile time constant (only needed when extensions are not active
-            NDNBOOST_TYPEOF_NEXT_INDEX(next);
-        };
-
-        template<class T>
-        struct sizer
-        {
-            typedef char(*type)[encode_type<T>::value];
-        };
-
-        template<typename T>
-            typename sizer<T>::type encode_start(T const&);
-
-        template<typename Organizer, typename T>
-        msvc_register_type<T,Organizer> typeof_register_type(const T&,Organizer* =0);
-
-# define NDNBOOST_TYPEOF(expr) \
-    ndnboost::type_of::msvc_typeid_wrapper<sizeof(*ndnboost::type_of::encode_start(expr))>::type
-
-# define NDNBOOST_TYPEOF_TPL(expr) typename NDNBOOST_TYPEOF(expr)
-
-# define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-    struct name {\
-        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 NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-    struct name {\
-        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;\
-    };
-
-    }
-}
-
-#endif//NDNBOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/encode_decode.hpp b/include/ndnboost/typeof/encode_decode.hpp
deleted file mode 100644
index d5a1160..0000000
--- a/include/ndnboost/typeof/encode_decode.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-
-// 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)
-
-// boostinspect:nounnamed
-
-#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 NDNBOOST_TYPEOF_SUPPRESS_UNNAMED_NAMESPACE
-
-#   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 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 NDNBOOST_TYPEOF_TEXT "unnamed namespace is off"
-#   include <ndnboost/typeof/message.hpp>
-
-#endif
-
-NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
-
-template<class V, class Type_Not_Registered_With_Typeof_System>
-struct encode_type_impl;
-
-template<class T, class Iter>
-struct decode_type_impl
-{
-    typedef int type;  // MSVC ETI workaround
-};
-
-template<class T>
-struct decode_nested_template_helper_impl;
-
-NDNBOOST_TYPEOF_END_ENCODE_NS
-
-namespace ndnboost { namespace type_of {
-
-    template<class V, class T>
-    struct encode_type : NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_type_impl<V, T>
-    {};
-
-    template<class Iter>
-    struct decode_type : NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER::decode_type_impl<
-        typename Iter::type,
-        typename Iter::next
-    >
-    {};
-}}
-
-#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
deleted file mode 100644
index 622b476..0000000
--- a/include/ndnboost/typeof/encode_decode_params.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// 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 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 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 NDNBOOST_PP_CAT(iter, NDNBOOST_PP_INC(n));
-
-#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 NDNBOOST_TYPEOF_ENCODE_PARAMS_BEGIN(z, n, text)\
-    typename ndnboost::type_of::encode_type<
-
-#define NDNBOOST_TYPEOF_ENCODE_PARAMS_END(z, n, text)\
-    , NDNBOOST_PP_CAT(P, n)>::type
-
-#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      \
-    NDNBOOST_PP_REPEAT(n, NDNBOOST_TYPEOF_ENCODE_PARAMS_END, ~)
-
-#endif//NDNBOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/int_encoding.hpp b/include/ndnboost/typeof/int_encoding.hpp
deleted file mode 100644
index 037277c..0000000
--- a/include/ndnboost/typeof/int_encoding.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-#include <ndnboost/config.hpp>
-
-namespace ndnboost { namespace type_of {
-
-    template<class T> struct get_unsigned
-    {
-        typedef T type;
-    };
-    template<> struct get_unsigned<signed char>
-    {
-        typedef unsigned char type;
-    };
-    template<> struct get_unsigned<char>
-    {
-        typedef unsigned char type;
-    };
-    template<> struct get_unsigned<short>
-    {
-        typedef unsigned short type;
-    };
-    template<> struct get_unsigned<int>
-    {
-        typedef unsigned int type;
-    };
-    template<> struct get_unsigned<long>
-    {
-        typedef unsigned long type;
-    };
-
-    //////////////////////////
-
-    template<std::size_t n, bool Overflow>
-    struct pack
-    {
-        NDNBOOST_STATIC_CONSTANT(std::size_t , value=((n + 1) * 2 + (Overflow ? 1 : 0)));
-    };
-
-    template<std::size_t m>
-    struct unpack
-    {
-        NDNBOOST_STATIC_CONSTANT(std::size_t, value = (m / 2) - 1);
-        NDNBOOST_STATIC_CONSTANT(std::size_t, overflow = (m % 2 == 1));
-    };
-
-    ////////////////////////////////
-
-    template<class V, std::size_t n, bool overflow = (n >= 0x3fffffff)>
-    struct encode_size_t : push_back<
-        V,
-        ndnboost::mpl::size_t<pack<n, false>::value>
-    >
-    {};
-
-    template<class V, std::size_t n>
-    struct encode_size_t<V, n, true> : push_back<typename push_back<
-        V,
-        ndnboost::mpl::size_t<pack<n % 0x3ffffffe, true>::value> >::type,
-        ndnboost::mpl::size_t<n / 0x3ffffffe>
-    >
-    {};
-
-    template<class V, class T, T n>
-    struct encode_integral : encode_size_t< V, (typename get_unsigned<T>::type)n,(((typename get_unsigned<T>::type)n)>=0x3fffffff) >
-    {};
-
-    template<class V, bool b>
-    struct encode_integral<V, bool, b> : encode_size_t< V, b?1:0, false>
-    {};
-    ///////////////////////////
-
-    template<std::size_t n, class Iter, bool overflow>
-    struct decode_size_t;
-
-    template<std::size_t n, class Iter>
-    struct decode_size_t<n, Iter, false>
-    {
-        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>
-    {
-        NDNBOOST_STATIC_CONSTANT(std::size_t,m = Iter::type::value);
-
-        NDNBOOST_STATIC_CONSTANT(std::size_t,value = (std::size_t)m * 0x3ffffffe + n);
-        typedef typename Iter::next iter;
-    };
-
-    template<class T, class Iter>
-    struct decode_integral
-    {
-        typedef decode_integral<T,Iter> self_t;
-        NDNBOOST_STATIC_CONSTANT(std::size_t,m = Iter::type::value);
-
-        NDNBOOST_STATIC_CONSTANT(std::size_t,n = unpack<m>::value);
-
-        NDNBOOST_STATIC_CONSTANT(std::size_t,overflow = unpack<m>::overflow);
-
-        typedef typename Iter::next nextpos;
-
-        static const T value = (T)(std::size_t)decode_size_t<n, nextpos, overflow>::value;
-
-        typedef typename decode_size_t<self_t::n, nextpos, self_t::overflow>::iter iter;
-    };
-
-}}//namespace
-
-#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
deleted file mode 100644
index 1e418f3..0000000
--- a/include/ndnboost/typeof/integral_template_param.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// 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 NDNBOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
-#define NDNBOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
-
-#define NDNBOOST_TYPEOF_unsigned (unsigned)
-#define NDNBOOST_TYPEOF_signed (signed)
-
-#define char_NDNBOOST_TYPEOF (char)
-#define short_NDNBOOST_TYPEOF (short)
-#define int_NDNBOOST_TYPEOF (int)
-#define long_NDNBOOST_TYPEOF (long)
-
-#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 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 NDNBOOST_TYPEOF_INTEGRAL(X) integral(X) NDNBOOST_TYPEOF_EAT
-#define NDNBOOST_TYPEOF_EAT_NDNBOOST_TYPEOF
-#define NDNBOOST_TYPEOF_integral(X) (integral(X))
-
-#define NDNBOOST_TYPEOF_INTEGRAL_PARAM(Type)\
-    (INTEGRAL_PARAM)\
-    (Type)
-
-#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)\
-    NDNBOOST_PP_SEQ_ELEM(1, Param)
-
-#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_EXPANDTYPE(Param)\
-    NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)
-
-// INTEGRAL_PARAM "virtual functions" implementation
-
-#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_ENCODE(This, n)\
-    typedef typename ndnboost::type_of::encode_integral<\
-        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 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 NDNBOOST_TYPEOF_INTEGRAL_PARAM_PLACEHOLDER(Param)\
-    (NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param))0
-
-#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_DECLARATION_TYPE(Param)\
-    NDNBOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)
-
-#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_PLACEHOLDER_TYPES(Param, n)\
-    NDNBOOST_PP_CAT(T,n)
-
-#define NDNBOOST_TYPEOF_INTEGRAL_PARAM_ISTEMPLATE 0
-
-#endif//NDNBOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/message.hpp b/include/ndnboost/typeof/message.hpp
deleted file mode 100644
index a47868f..0000000
--- a/include/ndnboost/typeof/message.hpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// 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 NDNBOOST_TYPEOF_MESSAGES
-#    pragma message(NDNBOOST_TYPEOF_TEXT)
-#endif
-#undef NDNBOOST_TYPEOF_TEXT
diff --git a/include/ndnboost/typeof/modifiers.hpp b/include/ndnboost/typeof/modifiers.hpp
deleted file mode 100644
index b985b6b..0000000
--- a/include/ndnboost/typeof/modifiers.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// 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 NDNBOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
-#define NDNBOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
-
-#include <ndnboost/typeof/encode_decode.hpp>
-#include <ndnboost/preprocessor/facilities/identity.hpp>
-
-#include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-// modifiers
-
-#define NDNBOOST_TYPEOF_modifier_support(ID, Fun)\
-    template<class V, class T> struct encode_type_impl<V, Fun(T)>\
-    {\
-        typedef\
-            typename ndnboost::type_of::encode_type<\
-            typename ndnboost::type_of::push_back<\
-            V\
-            , ndnboost::mpl::size_t<ID> >::type\
-            , T>::type\
-            type;\
-    };\
-    template<class Iter> struct decode_type_impl<ndnboost::mpl::size_t<ID>, Iter>\
-    {\
-        typedef ndnboost::type_of::decode_type<Iter> d1;\
-        typedef Fun(typename d1::type) type;\
-        typedef typename d1::iter iter;\
-    }
-
-
-#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 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
-
-NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
-
-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)
-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
-
-NDNBOOST_TYPEOF_END_ENCODE_NS
-
-#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 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 NDNBOOST_TYPEOF_array_support(ID, Qualifier)\
-    template<class V, class T, int N>\
-    struct encode_type_impl<V, Qualifier() T[N]>\
-    {\
-        typedef\
-            typename ndnboost::type_of::encode_type<\
-            typename ndnboost::type_of::push_back<\
-            typename ndnboost::type_of::push_back<\
-            V\
-            , ndnboost::mpl::size_t<ID> >::type\
-            , ndnboost::mpl::size_t<N> >::type\
-            , T>::type\
-        type;\
-    };\
-    template<class Iter>\
-    struct decode_type_impl<ndnboost::mpl::size_t<ID>, Iter>\
-    {\
-        enum{n = Iter::type::value};\
-        typedef ndnboost::type_of::decode_type<typename Iter::next> d;\
-        typedef typename d::type Qualifier() type[n];\
-        typedef typename d::iter iter;\
-    }
-
-NDNBOOST_TYPEOF_BEGIN_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 NDNBOOST_TYPEOF_array_support
-
-#endif//NDNBOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/msvc/typeof_impl.hpp b/include/ndnboost/typeof/msvc/typeof_impl.hpp
deleted file mode 100644
index 5dea7e1..0000000
--- a/include/ndnboost/typeof/msvc/typeof_impl.hpp
+++ /dev/null
@@ -1,283 +0,0 @@
-
-// Copyright (C) 2005 Igor Chesnokov, mailto:ichesnokov@gmail.com (VC 6.5,VC 7.1 + counter code)
-// Copyright (C) 2005-2007 Peder Holt (VC 7.0 + framework)
-// Copyright (C) 2006 Steven Watanabe (VC 8.0)
-
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-# include <ndnboost/mpl/int.hpp>
-# include <ndnboost/type_traits/is_function.hpp>
-# include <ndnboost/utility/enable_if.hpp>
-
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,>=1310)
-#  include <typeinfo>
-# endif
-
-namespace ndnboost
-{
-    namespace type_of
-    {
-
-        //Compile time constant code
-# if NDNBOOST_WORKAROUND(NDNBOOST_MSVC,>=1300) && defined(_MSC_EXTENSIONS)
-        template<int N> struct the_counter;
-
-        template<typename T,int N = 5/*for similarity*/>
-        struct encode_counter
-        {
-            __if_exists(the_counter<N + 256>)
-            {
-                NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 257>::count));
-            }
-            __if_not_exists(the_counter<N + 256>)
-            {
-                __if_exists(the_counter<N + 64>)
-                {
-                    NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 65>::count));
-                }
-                __if_not_exists(the_counter<N + 64>)
-                {
-                    __if_exists(the_counter<N + 16>)
-                    {
-                        NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 17>::count));
-                    }
-                    __if_not_exists(the_counter<N + 16>)
-                    {
-                        __if_exists(the_counter<N + 4>)
-                        {
-                            NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 5>::count));
-                        }
-                        __if_not_exists(the_counter<N + 4>)
-                        {
-                            __if_exists(the_counter<N>)
-                            {
-                                NDNBOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 1>::count));
-                            }
-                            __if_not_exists(the_counter<N>)
-                            {
-                                NDNBOOST_STATIC_CONSTANT(unsigned,count=N);
-                                typedef the_counter<N> type;
-                            }
-                        }
-                    }
-                }
-            }
-        };
-
-# 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> {};
-
-        //Need to default to a larger value than 4, as due to MSVC's ETI errors. (sizeof(int)==4)
-        char (*encode_index(...))[5];
-
-# 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 NDNBOOST_WORKAROUND(NDNBOOST_MSVC,==1300)
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            template<bool>
-            struct id2type_impl;
-
-            typedef id2type_impl<true> id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : msvc_extract_type<ID>
-        {
-            template<>
-            struct id2type_impl<true>  //VC7.0 specific bugfeature
-            {
-                typedef T type;
-            };
-        };
-#elif NDNBOOST_WORKAROUND(NDNBOOST_MSVC,>=1400)
-        struct msvc_extract_type_default_param {};
-
-        template<typename ID, typename T = msvc_extract_type_default_param>
-        struct msvc_extract_type;
-
-        template<typename ID>
-        struct msvc_extract_type<ID, msvc_extract_type_default_param> {
-            template<bool>
-            struct id2type_impl;
-
-            typedef id2type_impl<true> id2type;
-        };
-
-        template<typename ID, typename T>
-        struct msvc_extract_type : msvc_extract_type<ID,msvc_extract_type_default_param>
-        {
-            template<>
-            struct id2type_impl<true>  //VC8.0 specific bugfeature
-            {
-                typedef T type;
-            };
-            template<bool>
-            struct id2type_impl;
-
-            typedef id2type_impl<true> id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : msvc_extract_type<ID, T>
-        {
-        };
-# else
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            struct id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : msvc_extract_type<ID>
-        {
-            typedef msvc_extract_type<ID> base_type;
-            struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature
-            {
-                typedef T type;
-            };
-        };
-# endif
-// EAN: preprocess this block out on advice of Peder Holt
-// to eliminate errors in type_traits/common_type.hpp
-# 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;
-            typedef typename id2type::type wrapped_type;
-            typedef typename wrapped_type::type type;
-        };
-        //This class is used for registering the type T. encode_type<T> is mapped against typeid(encode_type<T>).
-        //msvc_typeid_wrapper<typeid(encode_type<T>)> will now have a type typedef that equals encode_type<T>.
-        template<typename T>
-        struct encode_type
-        {
-            typedef encode_type<T> input_type;
-            //Invoke registration of encode_type<T>. typeid(encode_type<T>) is now mapped to encode_type<T>. Do not use registered_type for anything.
-            //The reason for registering encode_type<T> rather than T, is that VC handles typeid(function reference) poorly. By adding another
-            //level of indirection, we solve this problem.
-            typedef typename msvc_register_type<input_type,msvc_typeid_wrapper<typeid(input_type)> >::id2type registered_type;
-            typedef T type;
-        };
-
-        template<typename T> typename disable_if<
-            typename is_function<T>::type,
-            typename encode_type<T>::input_type>::type encode_start(T const&);
-
-        template<typename T> typename enable_if<
-            typename is_function<T>::type,
-            typename encode_type<T>::input_type>::type encode_start(T&);
-
-        template<typename Organizer, typename T>
-        msvc_register_type<T,Organizer> typeof_register_type(const T&);
-
-
-# define NDNBOOST_TYPEOF(expr) \
-    ndnboost::type_of::msvc_typeid_wrapper<typeid(ndnboost::type_of::encode_start(expr))>::type
-
-# define NDNBOOST_TYPEOF_TPL(expr) typename NDNBOOST_TYPEOF(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 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;\
-    typedef id2type::type type;\
-};
-
-# else
-        template<int ID>
-        struct msvc_typeid_wrapper {
-            typedef typename msvc_extract_type<mpl::int_<ID> >::id2type id2type;
-            typedef typename id2type::type type;
-        };
-        //Workaround for ETI-bug for VC6 and VC7
-        template<>
-        struct msvc_typeid_wrapper<1> {
-            typedef msvc_typeid_wrapper<1> type;
-        };
-        //Workaround for ETI-bug for VC7.1
-        template<>
-        struct msvc_typeid_wrapper<4> {
-            typedef msvc_typeid_wrapper<4> type;
-        };
-
-        //Tie it all together
-        template<typename T>
-        struct encode_type
-        {
-            //Get the next available compile time constants index
-            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
-            NDNBOOST_STATIC_CONSTANT(unsigned,next=value+1);
-            //Increment the compile time constant (only needed when extensions are not active
-            NDNBOOST_TYPEOF_NEXT_INDEX(next);
-        };
-
-        template<class T>
-        struct sizer
-        {
-            typedef char(*type)[encode_type<T>::value];
-        };
-# 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&);
-
-        template<typename T> typename enable_if<
-            typename is_function<T>::type,
-            typename sizer<T>::type>::type encode_start(T&);
-# else
-        template<typename T>
-            typename sizer<T>::type encode_start(T const&);
-# endif
-        template<typename Organizer, typename T>
-        msvc_register_type<T,Organizer> typeof_register_type(const T&,Organizer* =0);
-
-# define NDNBOOST_TYPEOF(expr) \
-    ndnboost::type_of::msvc_typeid_wrapper<sizeof(*ndnboost::type_of::encode_start(expr))>::type
-
-# define NDNBOOST_TYPEOF_TPL(expr) typename NDNBOOST_TYPEOF(expr)
-
-# define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-    struct name {\
-        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 NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-    struct name {\
-        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;\
-    };
-
-#endif
-    }
-}
-
-#endif//NDNBOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/native.hpp b/include/ndnboost/typeof/native.hpp
deleted file mode 100644
index d88b419..0000000
--- a/include/ndnboost/typeof/native.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (C) 2006 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef NDNBOOST_TYPEOF_NATIVE_HPP_INCLUDED
-#define NDNBOOST_TYPEOF_NATIVE_HPP_INCLUDED
-
-#ifndef MSVC_TYPEOF_HACK
-
-#ifdef NDNBOOST_NO_SFINAE
-
-namespace ndnboost { namespace type_of {
-
-    template<class T> 
-        T& ensure_obj(const T&);
-
-}}
-
-#else
-
-#include <ndnboost/type_traits/is_function.hpp> 
-#include <ndnboost/utility/enable_if.hpp>
-
-namespace ndnboost { namespace type_of {
-# ifdef NDNBOOST_NO_SFINAE
-    template<class T> 
-    T& ensure_obj(const T&);
-# else
-    template<typename T>
-        typename enable_if<is_function<T>, T&>::type
-        ensure_obj(T&);
-
-    template<typename T>
-        typename disable_if<is_function<T>, T&>::type
-        ensure_obj(const T&);
-# endif
-}}
-
-#endif//NDNBOOST_NO_SFINAE
-
-#define NDNBOOST_TYPEOF(expr) NDNBOOST_TYPEOF_KEYWORD(ndnboost::type_of::ensure_obj(expr))
-#define NDNBOOST_TYPEOF_TPL NDNBOOST_TYPEOF
-
-#define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-    struct name {\
-        typedef NDNBOOST_TYPEOF_TPL(expr) type;\
-    };
-
-#define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-    struct name {\
-        typedef NDNBOOST_TYPEOF(expr) type;\
-    };
-
-#endif//MSVC_TYPEOF_HACK
-
-#define NDNBOOST_TYPEOF_REGISTER_TYPE(x)
-#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE(x, params)
-
-#endif//NDNBOOST_TYPEOF_NATIVE_HPP_INCLUDED
-
diff --git a/include/ndnboost/typeof/pointers_data_members.hpp b/include/ndnboost/typeof/pointers_data_members.hpp
deleted file mode 100644
index e1872d9..0000000
--- a/include/ndnboost/typeof/pointers_data_members.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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 NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
-
-enum {PTR_DATA_MEM_ID = NDNBOOST_TYPEOF_UNIQUE_ID()};
-
-template<class V, class P0, class P1>
-struct encode_type_impl<V, P0 P1::*>
-{
-    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;
-    NDNBOOST_TYPEOF_DECODE_PARAMS(2)
-
-    template<class T> struct workaround{
-        typedef p0 T::* type;
-    };
-    typedef typename decode_type_impl<ndnboost::mpl::size_t<PTR_DATA_MEM_ID>, Iter>::template workaround<p1>::type type;
-    typedef iter2 iter;
-};
-
-NDNBOOST_TYPEOF_END_ENCODE_NS
-
-#endif//NDNBOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/register_functions.hpp b/include/ndnboost/typeof/register_functions.hpp
deleted file mode 100644
index bb229f9..0000000
--- a/include/ndnboost/typeof/register_functions.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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>
-#include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/inc.hpp>
-#include <ndnboost/preprocessor/dec.hpp>
-#include <ndnboost/preprocessor/if.hpp>
-#include <ndnboost/preprocessor/arithmetic/add.hpp>
-#include <ndnboost/preprocessor/iteration/iterate.hpp>
-
-#include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-#ifndef NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY
-#define NDNBOOST_TYPEOF_LIMIT_FUNCTION_ARITY 10
-#endif
-
-enum 
-{
-    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)
-};
-
-NDNBOOST_TYPEOF_BEGIN_ENCODE_NS
-
-# 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()
-
-NDNBOOST_TYPEOF_END_ENCODE_NS
-
-#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
deleted file mode 100644
index 3f487a9..0000000
--- a/include/ndnboost/typeof/register_functions_iterate.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// 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)
-
-#include <ndnboost/typeof/encode_decode_params.hpp>
-
-#define n NDNBOOST_PP_ITERATION()
-
-// function pointers
-
-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 NDNBOOST_PP_CAT(P, n);
-    typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(NDNBOOST_PP_INC(n), FUN_PTR_ID + n) type;
-};
-
-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 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;
-    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;
-    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 NDNBOOST_TYPEOF_NO_FUNCTION_TYPES
-
-    // function references
-
-    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 NDNBOOST_PP_CAT(P, n);
-        typedef NDNBOOST_TYPEOF_ENCODE_PARAMS(NDNBOOST_PP_INC(n), FUN_REF_ID + n) type;
-    };
-
-    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 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;
-        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;
-        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 NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(NDNBOOST_PP_ENUM_PARAMS(n, P))>
-    {
-        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 NDNBOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(NDNBOOST_PP_ENUM_PARAMS(n, P) ...)>
-    {
-        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;
-        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;
-        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//NDNBOOST_TYPEOF_NO_FUNCTION_TYPES
-
-#ifndef NDNBOOST_TYPEOF_NO_MEMBER_FUNCTION_TYPES
-// member functions
-
-#define NDNBOOST_TYPEOF_qualifier
-#define NDNBOOST_TYPEOF_id MEM_FUN_ID
-#include <ndnboost/typeof/register_mem_functions.hpp>
-
-#define NDNBOOST_TYPEOF_qualifier const
-#define NDNBOOST_TYPEOF_id CONST_MEM_FUN_ID
-#include <ndnboost/typeof/register_mem_functions.hpp>
-
-#define NDNBOOST_TYPEOF_qualifier volatile
-#define NDNBOOST_TYPEOF_id VOLATILE_MEM_FUN_ID
-#include <ndnboost/typeof/register_mem_functions.hpp>
-
-#define NDNBOOST_TYPEOF_qualifier volatile const
-#define NDNBOOST_TYPEOF_id VOLATILE_CONST_MEM_FUN_ID
-#include <ndnboost/typeof/register_mem_functions.hpp>
-
-#undef n
-#endif
diff --git a/include/ndnboost/typeof/register_fundamental.hpp b/include/ndnboost/typeof/register_fundamental.hpp
deleted file mode 100644
index 2e72ef3..0000000
--- a/include/ndnboost/typeof/register_fundamental.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef NDNBOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
-#define NDNBOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
-
-#include <ndnboost/typeof/typeof.hpp>
-
-#include NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned char)
-NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned short)
-NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned int)
-NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned 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)
-
-NDNBOOST_TYPEOF_REGISTER_TYPE(bool)
-NDNBOOST_TYPEOF_REGISTER_TYPE(char)
-
-NDNBOOST_TYPEOF_REGISTER_TYPE(float)
-NDNBOOST_TYPEOF_REGISTER_TYPE(double)
-NDNBOOST_TYPEOF_REGISTER_TYPE(long double)
-
-#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 NDNBOOST_NO_INTRINSIC_WCHAR_T on the command line.
-NDNBOOST_TYPEOF_REGISTER_TYPE(wchar_t)
-#endif
-
-#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))
-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__
-NDNBOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
-NDNBOOST_TYPEOF_REGISTER_TYPE(__int64)
-#endif
-#endif
-
-# 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
-
-NDNBOOST_TYPEOF_REGISTER_TYPE(void)
-
-#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
deleted file mode 100644
index 35de8c3..0000000
--- a/include/ndnboost/typeof/register_mem_functions.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#include <ndnboost/typeof/encode_decode_params.hpp>
-
-// member functions
-
-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 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<NDNBOOST_TYPEOF_id + n>, Iter>
-{
-    typedef Iter iter0;
-    NDNBOOST_TYPEOF_DECODE_PARAMS(NDNBOOST_PP_ADD(n, 2))
-    template<class T> struct workaround{
-        typedef NDNBOOST_PP_CAT(p, n)(T::*type)(NDNBOOST_PP_ENUM_PARAMS(n, p)) NDNBOOST_TYPEOF_qualifier;
-    };
-    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 NDNBOOST_TYPEOF_id
-#undef NDNBOOST_TYPEOF_qualifier
diff --git a/include/ndnboost/typeof/template_encoding.hpp b/include/ndnboost/typeof/template_encoding.hpp
deleted file mode 100644
index b2a0fe1..0000000
--- a/include/ndnboost/typeof/template_encoding.hpp
+++ /dev/null
@@ -1,160 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-// 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 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>
-#include <ndnboost/preprocessor/control/iif.hpp>
-#include <ndnboost/preprocessor/detail/is_unary.hpp>
-#include <ndnboost/preprocessor/repetition/repeat.hpp>
-#include <ndnboost/preprocessor/tuple/eat.hpp>
-#include <ndnboost/preprocessor/seq/transform.hpp>
-#include <ndnboost/preprocessor/seq/for_each_i.hpp>
-#include <ndnboost/preprocessor/seq/cat.hpp>
-
-#include <ndnboost/typeof/encode_decode.hpp>
-#include <ndnboost/typeof/int_encoding.hpp>
-
-#include <ndnboost/typeof/type_template_param.hpp>
-#include <ndnboost/typeof/integral_template_param.hpp>
-#include <ndnboost/typeof/template_template_param.hpp>
-
-#ifdef __BORLANDC__
-#define NDNBOOST_TYPEOF_QUALIFY(P) self_t::P
-#else
-#define NDNBOOST_TYPEOF_QUALIFY(P) P
-#endif
-// The template parameter description, entered by the user,
-// is converted into a polymorphic "object"
-// that is used to generate the code responsible for
-// encoding/decoding the parameter, etc.
-
-// make sure to cat the sequence first, and only then add the prefix.
-#define NDNBOOST_TYPEOF_MAKE_OBJ(elem) NDNBOOST_PP_CAT(\
-    NDNBOOST_TYPEOF_MAKE_OBJ,\
-    NDNBOOST_PP_SEQ_CAT((_) NDNBOOST_TYPEOF_TO_SEQ(elem))\
-    )
-
-#define NDNBOOST_TYPEOF_TO_SEQ(tokens) NDNBOOST_TYPEOF_ ## tokens ## _NDNBOOST_TYPEOF
-
-// NDNBOOST_TYPEOF_REGISTER_TEMPLATE
-
-#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, Id)\
-    NDNBOOST_TYPEOF_REGISTER_TEMPLATE_IMPL(\
-        Name,\
-        NDNBOOST_TYPEOF_MAKE_OBJS(NDNBOOST_TYPEOF_TOSEQ(Params)),\
-        NDNBOOST_PP_SEQ_SIZE(NDNBOOST_TYPEOF_TOSEQ(Params)),\
-        Id)
-
-#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE(Name, Params)\
-    NDNBOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, NDNBOOST_TYPEOF_UNIQUE_ID())
-
-#define NDNBOOST_TYPEOF_OBJECT_MAKER(s, data, elem)\
-    NDNBOOST_TYPEOF_MAKE_OBJ(elem)
-
-#define NDNBOOST_TYPEOF_MAKE_OBJS(Params)\
-    NDNBOOST_PP_SEQ_TRANSFORM(NDNBOOST_TYPEOF_OBJECT_MAKER, ~, Params)
-
-// As suggested by Paul Mensonides:
-
-#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 NDNBOOST_TYPEOF_TOSEQ_2(z, n, _) (class)
-
-// NDNBOOST_TYPEOF_VIRTUAL
-
-#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 NDNBOOST_TYPEOF_VIRTUAL(Fun, Obj)\
-    NDNBOOST_TYPEOF_CAT_4(NDNBOOST_TYPEOF_, NDNBOOST_PP_SEQ_HEAD(Obj), _, Fun)
-
-// NDNBOOST_TYPEOF_SEQ_ENUM[_TRAILING][_1]
-// Two versions provided due to reentrancy issue
-
-#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 NDNBOOST_TYPEOF_SEQ_ENUM(seq,macro)\
-    NDNBOOST_PP_ENUM(NDNBOOST_PP_SEQ_SIZE(seq),NDNBOOST_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 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 NDNBOOST_TYPEOF_SEQ_ENUM_1(seq,macro)\
-    NDNBOOST_PP_ENUM(NDNBOOST_PP_SEQ_SIZE(seq),NDNBOOST_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 NDNBOOST_TYPEOF_PLACEHOLDER(z, n, elem)\
-    NDNBOOST_TYPEOF_VIRTUAL(PLACEHOLDER, elem)(elem)
-
-#define NDNBOOST_TYPEOF_PLACEHOLDER_TYPES(z, n, elem)\
-    NDNBOOST_TYPEOF_VIRTUAL(PLACEHOLDER_TYPES, elem)(elem, n)
-
-#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM(r, data, n, elem)\
-    NDNBOOST_TYPEOF_VIRTUAL(ENCODE, elem)(elem, n)
-
-#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM(r, data, n, elem)\
-    NDNBOOST_TYPEOF_VIRTUAL(DECODE, elem)(elem, n)
-
-#define NDNBOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR(z, n, elem) \
-    NDNBOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) NDNBOOST_PP_CAT(P, n)
-
-#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 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 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 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 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\
-        NDNBOOST_TYPEOF_SEQ_ENUM_TRAILING(Params, NDNBOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR)\
-    >\
-    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;\
-        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>\
-    {\
-        typedef decode_type_impl<ndnboost::mpl::size_t<ID>, Iter> self_t;\
-        typedef ndnboost::mpl::size_t<ID> self_id;\
-        typedef Iter iter0;\
-        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;\
-    };\
-    NDNBOOST_TYPEOF_END_ENCODE_NS
-
-#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
deleted file mode 100644
index d0802b7..0000000
--- a/include/ndnboost/typeof/template_template_param.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-// Copyright (C) 2005 Peder Holt
-// Copyright (C) 2005 Arkadiy Vertleyb
-// 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 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 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 NDNBOOST_TYPEOF_TEMPLATE_PARAM(Params)\
-    (TEMPLATE_PARAM)\
-    (Params)
-
-#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)\
-    NDNBOOST_TYPEOF_TOSEQ(NDNBOOST_PP_SEQ_ELEM(1, This))
-
-//Encode / decode this
-#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 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 NDNBOOST_TYPEOF_TEMPLATE_PARAM_EXPANDTYPE(This) \
-    template <NDNBOOST_PP_SEQ_ENUM(NDNBOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)) > class
-
-#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER(Param)\
-    Nested_Template_Template_Arguments_Not_Supported
-
-//'template<class,int> class' is reduced to 'class'
-#define NDNBOOST_TYPEOF_TEMPLATE_PARAM_DECLARATION_TYPE(Param) class
-
-// T3<int, (unsigned int)0, ...>
-#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 NDNBOOST_TYPEOF_TEMPLATE_PARAM_ISTEMPLATE 1
-
-////////////////////////////
-// move to encode_decode?
-
-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;
-
-NDNBOOST_TYPEOF_END_ENCODE_NS
-
-namespace ndnboost { namespace type_of {
-
-    template<class V, class T> struct encode_template
-        : NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_template_impl<V, T>
-    {};
-
-    template<class Iter> struct decode_template
-        : NDNBOOST_TYPEOF_ENCODE_NS_QUALIFIER::decode_template_impl<typename Iter::type, typename Iter::next>
-    {};
-}}
-
-////////////////////////////
-// move to template_encoding.hpp?
-
-//Template template registration
-#define NDNBOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE(Name,Params,ID)\
-    template<class V\
-        NDNBOOST_TYPEOF_SEQ_ENUM_TRAILING(Params,NDNBOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR)\
-    >\
-    struct encode_template_impl<V,Name<\
-        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>\
-    {\
-        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 NDNBOOST_TYPEOF_TYPEDEF_INT_PN(z,n,Params) typedef int NDNBOOST_PP_CAT(P,n);
-
-#ifdef __BORLANDC__
-#define NDNBOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME NDNBOOST_PP_CAT(\
-        NDNBOOST_PP_CAT(\
-            NDNBOOST_PP_CAT(\
-                decode_nested_template_helper,\
-                NDNBOOST_TYPEOF_REGISTRATION_GROUP\
-            ),0x10000\
-        ),__LINE__\
-    )
-#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<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<NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_SEQ_SIZE(Params),T)> type;\
-        };\
-    };
-//Template template param decoding
-#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 NDNBOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name,Params,ID)
-
-//Template template param decoding
-#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<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<NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_SEQ_SIZE(Params),T)> type;\
-    };\
-    typedef typename decode_params<NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_SEQ_SIZE(Params),P)>::type type;
-#endif
-#define NDNBOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR(z,n,elem) \
-    NDNBOOST_TYPEOF_VIRTUAL(DECLARATION_TYPE, elem)(elem) NDNBOOST_PP_CAT(T, n)
-
-// NDNBOOST_TYPEOF_HAS_TEMPLATES
-#define NDNBOOST_TYPEOF_HAS_TEMPLATES(Params)\
-    NDNBOOST_PP_SEQ_FOLD_LEFT(NDNBOOST_TYPEOF_HAS_TEMPLATES_OP, 0, Params)
-
-#define NDNBOOST_TYPEOF_HAS_TEMPLATES_OP(s, state, elem)\
-    NDNBOOST_PP_OR(state, NDNBOOST_TYPEOF_VIRTUAL(ISTEMPLATE, elem))
-
-//Define template template arguments
-#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 //NDNBOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/type_encoding.hpp b/include/ndnboost/typeof/type_encoding.hpp
deleted file mode 100644
index ad59bf2..0000000
--- a/include/ndnboost/typeof/type_encoding.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// 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 NDNBOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
-#define NDNBOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
-
-#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> >         \
-    {};                                                                 \
-    template<class Iter> struct decode_type_impl<ndnboost::mpl::size_t<Id>, Iter> \
-    {                                                                   \
-        typedef T type;                                                 \
-        typedef Iter iter;                                              \
-    };
-
-#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 NDNBOOST_TYPEOF_REGISTER_TYPE(Type)                                \
-    NDNBOOST_TYPEOF_REGISTER_TYPE_EXPLICIT_ID(Type, NDNBOOST_TYPEOF_UNIQUE_ID())
-
-#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
deleted file mode 100644
index 9abc45c..0000000
--- a/include/ndnboost/typeof/type_template_param.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// 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 NDNBOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
-#define NDNBOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
-
-#define NDNBOOST_TYPEOF_class_NDNBOOST_TYPEOF (class)
-#define NDNBOOST_TYPEOF_typename_NDNBOOST_TYPEOF (typename)
-
-#define NDNBOOST_TYPEOF_MAKE_OBJ_class NDNBOOST_TYPEOF_TYPE_PARAM
-#define NDNBOOST_TYPEOF_MAKE_OBJ_typename NDNBOOST_TYPEOF_TYPE_PARAM
-
-#define NDNBOOST_TYPEOF_TYPE_PARAM\
-    (TYPE_PARAM)
-
-#define NDNBOOST_TYPEOF_TYPE_PARAM_EXPANDTYPE(Param) class
-
-// TYPE_PARAM "virtual functions" implementation
-
-#define NDNBOOST_TYPEOF_TYPE_PARAM_ENCODE(This, n)\
-    typedef typename ndnboost::type_of::encode_type<\
-        NDNBOOST_PP_CAT(V, n),\
-        NDNBOOST_PP_CAT(P, n)\
-    >::type NDNBOOST_PP_CAT(V, NDNBOOST_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 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//NDNBOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/typeof.hpp b/include/ndnboost/typeof/typeof.hpp
deleted file mode 100644
index 4847baf..0000000
--- a/include/ndnboost/typeof/typeof.hpp
+++ /dev/null
@@ -1,218 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// 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 NDNBOOST_TYPEOF_TYPEOF_HPP_INCLUDED
-#define NDNBOOST_TYPEOF_TYPEOF_HPP_INCLUDED
-
-#if defined(NDNBOOST_TYPEOF_COMPLIANT)
-#   define NDNBOOST_TYPEOF_EMULATION
-#endif
-
-#if defined(NDNBOOST_TYPEOF_EMULATION) && defined(NDNBOOST_TYPEOF_NATIVE)
-#   error both typeof emulation and native mode requested
-#endif
-
-#if defined(__COMO__)
-#   ifdef __GNUG__
-#       ifndef NDNBOOST_TYPEOF_EMULATION
-#           ifndef NDNBOOST_TYPEOF_NATIVE
-#               define NDNBOOST_TYPEOF_NATIVE
-#           endif
-#           define NDNBOOST_TYPEOF_KEYWORD typeof
-#       endif
-#   else
-#       ifndef NDNBOOST_TYPEOF_NATIVE
-#           ifndef NDNBOOST_TYPEOF_EMULATION
-#               define NDNBOOST_TYPEOF_EMULATION
-#           endif
-#       else
-#           error native typeof is not supported
-#       endif
-#   endif
-
-#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
-#   ifdef __GNUC__
-#       ifndef NDNBOOST_TYPEOF_EMULATION
-#           ifndef NDNBOOST_TYPEOF_NATIVE
-#               define NDNBOOST_TYPEOF_NATIVE
-#           endif
-#           define NDNBOOST_TYPEOF_KEYWORD __typeof__
-#       endif
-#   else
-#       ifndef NDNBOOST_TYPEOF_NATIVE
-#           ifndef NDNBOOST_TYPEOF_EMULATION
-#               define NDNBOOST_TYPEOF_EMULATION
-#           endif
-#       else
-#           error native typeof is not supported
-#       endif
-#   endif
-
-#elif defined(__GNUC__)
-#   ifndef NDNBOOST_TYPEOF_EMULATION
-#       ifndef NDNBOOST_TYPEOF_NATIVE
-#           define NDNBOOST_TYPEOF_NATIVE
-#       endif
-#       define NDNBOOST_TYPEOF_KEYWORD __typeof__
-#   endif
-
-#elif defined(__MWERKS__)
-#   if(__MWERKS__ <= 0x3003)  // 8.x
-#       ifndef NDNBOOST_TYPEOF_EMULATION
-#           ifndef NDNBOOST_TYPEOF_NATIVE
-#               define NDNBOOST_TYPEOF_NATIVE
-#           endif
-#           define NDNBOOST_TYPEOF_KEYWORD __typeof__
-#       else
-#           define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
-#       endif
-#   else // 9.x
-#       ifndef NDNBOOST_TYPEOF_EMULATION
-#           ifndef NDNBOOST_TYPEOF_NATIVE
-#               define NDNBOOST_TYPEOF_NATIVE
-#           endif
-#           define NDNBOOST_TYPEOF_KEYWORD __typeof__
-#       endif
-#   endif
-#elif defined __CODEGEARC__
-#   ifndef NDNBOOST_TYPEOF_EMULATION
-#       ifndef NDNBOOST_TYPEOF_NATIVE
-#           define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
-#       endif
-#   else
-#       define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
-#   endif
-#elif defined __BORLANDC__
-#   ifndef NDNBOOST_TYPEOF_EMULATION
-#       ifndef NDNBOOST_TYPEOF_NATIVE
-#           define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
-#       endif
-#   else
-#       define NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
-#   endif
-#elif defined __DMC__
-#   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 NDNBOOST_TYPEOF_EMULATION
-#           ifndef NDNBOOST_TYPEOF_NATIVE
-#               define NDNBOOST_TYPEOF_NATIVE
-#           endif
-#           include <ndnboost/typeof/msvc/typeof_impl.hpp>
-#           define MSVC_TYPEOF_HACK
-#       else
-#           error typeof emulation is not supported
-#       endif
-#   elif (_MSC_VER >= 1310)  // 7.1 ->
-#       ifndef NDNBOOST_TYPEOF_EMULATION
-#           ifndef NDNBOOST_TYPEOF_NATIVE
-#               ifndef _MSC_EXTENSIONS
-#                   define NDNBOOST_TYPEOF_EMULATION
-#               else
-#                   define NDNBOOST_TYPEOF_NATIVE
-#               endif
-#           endif
-#       endif
-#       ifdef NDNBOOST_TYPEOF_NATIVE
-#           include <ndnboost/typeof/msvc/typeof_impl.hpp>
-#           define MSVC_TYPEOF_HACK
-#       endif
-#   endif
-#elif defined(__HP_aCC)
-#   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 NDNBOOST_TYPEOF_NATIVE
-#       ifndef NDNBOOST_TYPEOF_EMULATION
-#           define NDNBOOST_TYPEOF_EMULATION
-#       endif
-#   else
-#       error native typeof is not supported
-#   endif
-
-#elif defined(__BORLANDC__)
-#   if (__BORLANDC__ < 0x590)
-#       define NDNBOOST_TYPEOF_NO_FUNCTION_TYPES
-#       define NDNBOOST_TYPEOF_NO_MEMBER_FUNCTION_TYPES
-#   endif
-#   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 NDNBOOST_TYPEOF_NATIVE
-#         error native typeof is not supported
-#     endif
-#     ifndef NDNBOOST_TYPEOF_EMULATION
-#         define NDNBOOST_TYPEOF_EMULATION
-#     endif
-#   else
-#     ifndef NDNBOOST_TYPEOF_EMULATION
-#         ifndef NDNBOOST_TYPEOF_NATIVE
-#             define NDNBOOST_TYPEOF_NATIVE
-#         endif
-#         define NDNBOOST_TYPEOF_KEYWORD __typeof__
-#     endif
-#   endif
-#else //unknown compiler
-#   ifndef NDNBOOST_TYPEOF_NATIVE
-#       ifndef NDNBOOST_TYPEOF_EMULATION
-#           define NDNBOOST_TYPEOF_EMULATION
-#       endif
-#   else
-#       ifndef NDNBOOST_TYPEOF_KEYWORD
-#           define NDNBOOST_TYPEOF_KEYWORD typeof
-#       endif
-#   endif
-
-#endif
-
-#define NDNBOOST_TYPEOF_UNIQUE_ID()\
-     NDNBOOST_TYPEOF_REGISTRATION_GROUP * 0x10000 + __LINE__
-
-#define NDNBOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()\
-     <ndnboost/typeof/incr_registration_group.hpp>
-
-#ifdef NDNBOOST_TYPEOF_EMULATION_UNSUPPORTED
-#   include <ndnboost/typeof/unsupported.hpp>
-#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>
-#   include <ndnboost/typeof/template_encoding.hpp>
-#   include <ndnboost/typeof/modifiers.hpp>
-#   include <ndnboost/typeof/pointers_data_members.hpp>
-#   include <ndnboost/typeof/register_functions.hpp>
-#   include <ndnboost/typeof/register_fundamental.hpp>
-
-#elif defined(NDNBOOST_TYPEOF_NATIVE)
-#   define NDNBOOST_TYPEOF_TEXT "using native typeof"
-#   include <ndnboost/typeof/message.hpp>
-#   include <ndnboost/typeof/native.hpp>
-#else
-#   error typeof configuration error
-#endif
-
-// auto
-#define NDNBOOST_AUTO(Var, Expr) NDNBOOST_TYPEOF(Expr) Var = Expr
-#define NDNBOOST_AUTO_TPL(Var, Expr) NDNBOOST_TYPEOF_TPL(Expr) Var = Expr
-
-#endif//NDNBOOST_TYPEOF_TYPEOF_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/typeof_impl.hpp b/include/ndnboost/typeof/typeof_impl.hpp
deleted file mode 100644
index 95ec28c..0000000
--- a/include/ndnboost/typeof/typeof_impl.hpp
+++ /dev/null
@@ -1,186 +0,0 @@
-// Copyright (C) 2004, 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-// 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 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>
-#include <ndnboost/typeof/encode_decode.hpp>
-#include <ndnboost/typeof/vector.hpp>
-#include <ndnboost/type_traits/is_function.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-
-#define NDNBOOST_TYPEOF_VECTOR(n) NDNBOOST_PP_CAT(ndnboost::type_of::vector, n)
-
-#define NDNBOOST_TYPEOF_sizer_item(z, n, _)\
-    char item ## n[V::item ## n ::value];
-
-namespace ndnboost { namespace type_of {
-    template<class V>
-    struct sizer
-    {
-        // char item0[V::item0::value];
-        // char item1[V::item1::value];
-        // ...
-
-        NDNBOOST_PP_REPEAT(NDNBOOST_TYPEOF_LIMIT_SIZE, NDNBOOST_TYPEOF_sizer_item, ~)
-    };
-}}
-
-#undef NDNBOOST_TYPEOF_sizer_item
-
-//
-namespace ndnboost { namespace type_of {
-# ifdef NDNBOOST_NO_SFINAE
-    template<class V, class T>
-    sizer<typename encode_type<V, T>::type> encode(const T&);
-# else
-    template<class V, class T>
-    typename enable_if<
-        typename is_function<T>::type,
-        sizer<typename encode_type<V, T>::type> >::type encode(T&);
-
-    template<class V, class T>
-    typename disable_if<
-        typename is_function<T>::type,
-        sizer<typename encode_type<V, T>::type> >::type encode(const T&);
-# endif
-}}
-//
-namespace ndnboost { namespace type_of {
-
-    template<class V>
-    struct decode_begin
-    {
-        typedef typename decode_type<typename V::begin>::type type;
-    };
-}}
-
-#define NDNBOOST_TYPEOF_TYPEITEM(z, n, expr)\
-    ndnboost::mpl::size_t<sizeof(ndnboost::type_of::encode<NDNBOOST_TYPEOF_VECTOR(0)<> >(expr).item ## n)>
-
-#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 NDNBOOST_TYPEOF(Expr)\
-    ndnboost::type_of::decode_begin<NDNBOOST_TYPEOF_ENCODED_VECTOR(Expr) >::type
-
-#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
-namespace ndnboost { namespace type_of {
-    template<typename V,typename Offset>
-    struct offset_vector {
-    };
-
-    template<class V,class Offset,class T>
-    struct push_back<ndnboost::type_of::offset_vector<V,Offset>,T> {
-        typedef offset_vector<V,typename Offset::prior> type;
-    };
-
-    template<class V,class T>
-    struct push_back<ndnboost::type_of::offset_vector<V,mpl::size_t<0> >,T> {
-        typedef typename push_back<V,T>::type type;
-    };
-}}
-
-#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 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 NDNBOOST_TYPEOF_FRACTIONTYPE()\
-    NDNBOOST_PP_REPEAT(NDNBOOST_TYPEOF_LIMIT_SIZE,NDNBOOST_TYPEOF_NESTED_TYPEITEM_2,_)\
-    typedef _typeof_fraction_iter<Pos> fraction_type;
-#else
-#define NDNBOOST_TYPEOF_FRACTIONTYPE()\
-    typedef _typeof_encode_fraction<self_t::iteration> fraction_type;
-#endif
-
-#ifdef __BORLANDC__
-namespace ndnboost { namespace type_of {
-    template<typename Pos,typename Iter>
-    struct generic_typeof_fraction_iter {
-        typedef generic_typeof_fraction_iter<Pos,Iter> self_t;
-        static const int pos=(Pos::value);
-        static const int iteration=(pos/5);
-        static const int where=pos%5;
-        typedef typename Iter::template _apply_next<self_t::iteration>::type fraction_type;
-        typedef generic_typeof_fraction_iter<typename Pos::next,Iter> next;
-        typedef typename v_iter<fraction_type,mpl::int_<self_t::where> >::type type;
-    };
-}}
-#define NDNBOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
-        template<int _Typeof_Iteration>\
-        struct _typeof_encode_fraction {\
-            typedef _typeof_encode_fraction<_Typeof_Iteration> self_t;\
-            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;\
-            };\
-        };\
-        template<typename Pos>\
-        struct _typeof_fraction_iter {\
-            typedef ndnboost::type_of::generic_typeof_fraction_iter<Pos,_typeof_encode_fraction<0> > self_t;\
-            typedef typename self_t::next next;\
-            typedef typename self_t::type type;\
-        };
-#else
-#define NDNBOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
-        template<int _Typeof_Iteration>\
-        struct _typeof_encode_fraction {\
-            typedef _typeof_encode_fraction<_Typeof_Iteration> self_t;\
-            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;\
-            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 NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-template<typename T>\
-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 NDNBOOST_PP_CAT(_typeof_template_,name)<int> name;
-
-# define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr)
-
-#else
-# define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-    struct name {\
-        NDNBOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
-        typedef typename ndnboost::type_of::decode_type<_typeof_fraction_iter<ndnboost::mpl::size_t<0> > >::type type;\
-    };
-
-# define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-    struct name {\
-        NDNBOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
-        typedef ndnboost::type_of::decode_type<_typeof_fraction_iter<ndnboost::mpl::size_t<0> > >::type type;\
-    };
-#endif
-
-#endif//NDNBOOST_TYPEOF_COMPLIANT_TYPEOF_IMPL_HPP_INCLUDED
diff --git a/include/ndnboost/typeof/unsupported.hpp b/include/ndnboost/typeof/unsupported.hpp
deleted file mode 100644
index 11b2a82..0000000
--- a/include/ndnboost/typeof/unsupported.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2010 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#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 NDNBOOST_TYPEOF(expr) ndnboost::type_of::typeof_emulation_is_unsupported_on_this_compiler
-#define NDNBOOST_TYPEOF_TPL NDNBOOST_TYPEOF
-
-#define NDNBOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-struct name {\
-    typedef NDNBOOST_TYPEOF_TPL(expr) type;\
-};
-
-#define NDNBOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-struct name {\
-    typedef NDNBOOST_TYPEOF(expr) type;\
-};
-
-
-#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
deleted file mode 100644
index dfb1dfd..0000000
--- a/include/ndnboost/typeof/vector.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Copyright (C) 2006 Tobias Schwinger
-//
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef NDNBOOST_TYPEOF_VECTOR_HPP_INCLUDED
-
-#include <ndnboost/mpl/int.hpp>
-#include <ndnboost/preprocessor/iteration/self.hpp>
-
-#ifndef NDNBOOST_TYPEOF_LIMIT_SIZE
-#   define NDNBOOST_TYPEOF_LIMIT_SIZE 50
-#endif
-
-//
-// To recreate the preprocessed versions of this file preprocess and run
-//
-//   $(NDNBOOST_ROOT)/libs/typeof/tools/preprocess.pl
-//
-
-#if defined(NDNBOOST_TYPEOF_PP_INCLUDE_EXTERNAL)
-
-#   undef NDNBOOST_TYPEOF_PP_INCLUDE_EXTERNAL
-
-#elif !defined(NDNBOOST_TYPEOF_PREPROCESSING_MODE) && !NDNBOOST_PP_IS_SELFISH
-
-#   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  NDNBOOST_TYPEOF_PP_START_SIZE 51
-#     include NDNBOOST_PP_INCLUDE_SELF()
-#   elif NDNBOOST_TYPEOF_LIMIT_SIZE < 150
-#     include <ndnboost/typeof/vector100.hpp>
-#     define  NDNBOOST_TYPEOF_PP_START_SIZE 101
-#     include NDNBOOST_PP_INCLUDE_SELF()
-#   elif NDNBOOST_TYPEOF_LIMIT_SIZE < 200
-#     include <ndnboost/typeof/vector150.hpp>
-#     define  NDNBOOST_TYPEOF_PP_START_SIZE 151
-#     include NDNBOOST_PP_INCLUDE_SELF()
-#   elif NDNBOOST_TYPEOF_LIMIT_SIZE <= 250
-#     include <ndnboost/typeof/vector200.hpp>
-#     define  NDNBOOST_TYPEOF_PP_START_SIZE 201
-#     include NDNBOOST_PP_INCLUDE_SELF()
-#   else
-#     error "NDNBOOST_TYPEOF_LIMIT_SIZE too high"
-#   endif
-
-#else// defined(NDNBOOST_TYPEOF_PREPROCESSING_MODE) || NDNBOOST_PP_IS_SELFISH
-
-#   ifndef NDNBOOST_TYPEOF_PP_NEXT_SIZE
-#     define NDNBOOST_TYPEOF_PP_NEXT_SIZE NDNBOOST_TYPEOF_LIMIT_SIZE
-#   endif
-#   ifndef NDNBOOST_TYPEOF_PP_START_SIZE
-#     define NDNBOOST_TYPEOF_PP_START_SIZE 0
-#   endif
-
-#   if NDNBOOST_TYPEOF_PP_START_SIZE <= NDNBOOST_TYPEOF_LIMIT_SIZE
-
-#     include <ndnboost/preprocessor/enum_params.hpp>
-#     include <ndnboost/preprocessor/repeat.hpp>
-#     include <ndnboost/preprocessor/repeat_from_to.hpp>
-#     include <ndnboost/preprocessor/cat.hpp>
-#     include <ndnboost/preprocessor/inc.hpp>
-#     include <ndnboost/preprocessor/dec.hpp>
-#     include <ndnboost/preprocessor/comma_if.hpp>
-#     include <ndnboost/preprocessor/iteration/local.hpp>
-#     include <ndnboost/preprocessor/control/expr_iif.hpp>
-#     include <ndnboost/preprocessor/logical/not.hpp>
-
-// iterator
-
-#     define NDNBOOST_TYPEOF_spec_iter(n)\
-        template<class V>\
-        struct v_iter<V, mpl::int_<n> >\
-        {\
-            typedef typename V::item ## n type;\
-            typedef v_iter<V, mpl::int_<n + 1> > next;\
-        };
-
-namespace ndnboost { namespace type_of {
-
-    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 NDNBOOST_TYPEOF_spec_iter
-
-// vector
-
-#     define NDNBOOST_TYPEOF_typedef_item(z, n, _)\
-        typedef P ## n item ## n;
-
-#     define NDNBOOST_TYPEOF_typedef_fake_item(z, n, _)\
-        typedef mpl::int_<1> item ## n;
-
-#     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<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  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 NDNBOOST_TYPEOF_typedef_item
-#     undef NDNBOOST_TYPEOF_typedef_fake_item
-#     undef NDNBOOST_TYPEOF_define_vector
-
-// push_back
-
-#     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 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   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 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 NDNBOOST_TYPEOF_spec_push_back
-
-#   endif//NDNBOOST_TYPEOF_PP_START_SIZE<=NDNBOOST_TYPEOF_LIMIT_SIZE
-#   undef  NDNBOOST_TYPEOF_PP_START_SIZE
-#   undef  NDNBOOST_TYPEOF_PP_NEXT_SIZE
-
-#endif//NDNBOOST_TYPEOF_PREPROCESSING_MODE || NDNBOOST_PP_IS_SELFISH
-
-#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
deleted file mode 100644
index 2216cd9..0000000
--- a/include/ndnboost/typeof/vector100.hpp
+++ /dev/null
@@ -1,321 +0,0 @@
-
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-// Preprocessed code, do not edit manually !
-
-
-namespace ndnboost { namespace type_of {
-    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; };
-        template<class V> struct v_iter<V, mpl::int_<3> > { typedef typename V::item3 type; typedef v_iter<V, mpl::int_<3 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<4> > { typedef typename V::item4 type; typedef v_iter<V, mpl::int_<4 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<5> > { typedef typename V::item5 type; typedef v_iter<V, mpl::int_<5 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<6> > { typedef typename V::item6 type; typedef v_iter<V, mpl::int_<6 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<7> > { typedef typename V::item7 type; typedef v_iter<V, mpl::int_<7 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<8> > { typedef typename V::item8 type; typedef v_iter<V, mpl::int_<8 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<9> > { typedef typename V::item9 type; typedef v_iter<V, mpl::int_<9 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<10> > { typedef typename V::item10 type; typedef v_iter<V, mpl::int_<10 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<11> > { typedef typename V::item11 type; typedef v_iter<V, mpl::int_<11 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<12> > { typedef typename V::item12 type; typedef v_iter<V, mpl::int_<12 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<13> > { typedef typename V::item13 type; typedef v_iter<V, mpl::int_<13 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<14> > { typedef typename V::item14 type; typedef v_iter<V, mpl::int_<14 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<15> > { typedef typename V::item15 type; typedef v_iter<V, mpl::int_<15 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<16> > { typedef typename V::item16 type; typedef v_iter<V, mpl::int_<16 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<17> > { typedef typename V::item17 type; typedef v_iter<V, mpl::int_<17 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<18> > { typedef typename V::item18 type; typedef v_iter<V, mpl::int_<18 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<19> > { typedef typename V::item19 type; typedef v_iter<V, mpl::int_<19 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<20> > { typedef typename V::item20 type; typedef v_iter<V, mpl::int_<20 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<21> > { typedef typename V::item21 type; typedef v_iter<V, mpl::int_<21 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<22> > { typedef typename V::item22 type; typedef v_iter<V, mpl::int_<22 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<23> > { typedef typename V::item23 type; typedef v_iter<V, mpl::int_<23 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<24> > { typedef typename V::item24 type; typedef v_iter<V, mpl::int_<24 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<25> > { typedef typename V::item25 type; typedef v_iter<V, mpl::int_<25 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<26> > { typedef typename V::item26 type; typedef v_iter<V, mpl::int_<26 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<27> > { typedef typename V::item27 type; typedef v_iter<V, mpl::int_<27 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<28> > { typedef typename V::item28 type; typedef v_iter<V, mpl::int_<28 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<29> > { typedef typename V::item29 type; typedef v_iter<V, mpl::int_<29 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<30> > { typedef typename V::item30 type; typedef v_iter<V, mpl::int_<30 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<31> > { typedef typename V::item31 type; typedef v_iter<V, mpl::int_<31 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<32> > { typedef typename V::item32 type; typedef v_iter<V, mpl::int_<32 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<33> > { typedef typename V::item33 type; typedef v_iter<V, mpl::int_<33 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<34> > { typedef typename V::item34 type; typedef v_iter<V, mpl::int_<34 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<35> > { typedef typename V::item35 type; typedef v_iter<V, mpl::int_<35 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<36> > { typedef typename V::item36 type; typedef v_iter<V, mpl::int_<36 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<37> > { typedef typename V::item37 type; typedef v_iter<V, mpl::int_<37 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<38> > { typedef typename V::item38 type; typedef v_iter<V, mpl::int_<38 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<39> > { typedef typename V::item39 type; typedef v_iter<V, mpl::int_<39 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<40> > { typedef typename V::item40 type; typedef v_iter<V, mpl::int_<40 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<41> > { typedef typename V::item41 type; typedef v_iter<V, mpl::int_<41 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<42> > { typedef typename V::item42 type; typedef v_iter<V, mpl::int_<42 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<43> > { typedef typename V::item43 type; typedef v_iter<V, mpl::int_<43 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<44> > { typedef typename V::item44 type; typedef v_iter<V, mpl::int_<44 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<45> > { typedef typename V::item45 type; typedef v_iter<V, mpl::int_<45 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<46> > { typedef typename V::item46 type; typedef v_iter<V, mpl::int_<46 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<47> > { typedef typename V::item47 type; typedef v_iter<V, mpl::int_<47 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<48> > { typedef typename V::item48 type; typedef v_iter<V, mpl::int_<48 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<49> > { typedef typename V::item49 type; typedef v_iter<V, mpl::int_<49 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<50> > { typedef typename V::item50 type; typedef v_iter<V, mpl::int_<50 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<51> > { typedef typename V::item51 type; typedef v_iter<V, mpl::int_<51 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<52> > { typedef typename V::item52 type; typedef v_iter<V, mpl::int_<52 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<53> > { typedef typename V::item53 type; typedef v_iter<V, mpl::int_<53 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<54> > { typedef typename V::item54 type; typedef v_iter<V, mpl::int_<54 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<55> > { typedef typename V::item55 type; typedef v_iter<V, mpl::int_<55 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<56> > { typedef typename V::item56 type; typedef v_iter<V, mpl::int_<56 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<57> > { typedef typename V::item57 type; typedef v_iter<V, mpl::int_<57 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<58> > { typedef typename V::item58 type; typedef v_iter<V, mpl::int_<58 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<59> > { typedef typename V::item59 type; typedef v_iter<V, mpl::int_<59 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<60> > { typedef typename V::item60 type; typedef v_iter<V, mpl::int_<60 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<61> > { typedef typename V::item61 type; typedef v_iter<V, mpl::int_<61 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<62> > { typedef typename V::item62 type; typedef v_iter<V, mpl::int_<62 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<63> > { typedef typename V::item63 type; typedef v_iter<V, mpl::int_<63 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<64> > { typedef typename V::item64 type; typedef v_iter<V, mpl::int_<64 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<65> > { typedef typename V::item65 type; typedef v_iter<V, mpl::int_<65 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<66> > { typedef typename V::item66 type; typedef v_iter<V, mpl::int_<66 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<67> > { typedef typename V::item67 type; typedef v_iter<V, mpl::int_<67 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<68> > { typedef typename V::item68 type; typedef v_iter<V, mpl::int_<68 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<69> > { typedef typename V::item69 type; typedef v_iter<V, mpl::int_<69 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<70> > { typedef typename V::item70 type; typedef v_iter<V, mpl::int_<70 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<71> > { typedef typename V::item71 type; typedef v_iter<V, mpl::int_<71 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<72> > { typedef typename V::item72 type; typedef v_iter<V, mpl::int_<72 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<73> > { typedef typename V::item73 type; typedef v_iter<V, mpl::int_<73 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<74> > { typedef typename V::item74 type; typedef v_iter<V, mpl::int_<74 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<75> > { typedef typename V::item75 type; typedef v_iter<V, mpl::int_<75 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<76> > { typedef typename V::item76 type; typedef v_iter<V, mpl::int_<76 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<77> > { typedef typename V::item77 type; typedef v_iter<V, mpl::int_<77 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<78> > { typedef typename V::item78 type; typedef v_iter<V, mpl::int_<78 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<79> > { typedef typename V::item79 type; typedef v_iter<V, mpl::int_<79 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<80> > { typedef typename V::item80 type; typedef v_iter<V, mpl::int_<80 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<81> > { typedef typename V::item81 type; typedef v_iter<V, mpl::int_<81 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<82> > { typedef typename V::item82 type; typedef v_iter<V, mpl::int_<82 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<83> > { typedef typename V::item83 type; typedef v_iter<V, mpl::int_<83 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<84> > { typedef typename V::item84 type; typedef v_iter<V, mpl::int_<84 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<85> > { typedef typename V::item85 type; typedef v_iter<V, mpl::int_<85 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<86> > { typedef typename V::item86 type; typedef v_iter<V, mpl::int_<86 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<87> > { typedef typename V::item87 type; typedef v_iter<V, mpl::int_<87 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<88> > { typedef typename V::item88 type; typedef v_iter<V, mpl::int_<88 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<89> > { typedef typename V::item89 type; typedef v_iter<V, mpl::int_<89 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<90> > { typedef typename V::item90 type; typedef v_iter<V, mpl::int_<90 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<91> > { typedef typename V::item91 type; typedef v_iter<V, mpl::int_<91 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<92> > { typedef typename V::item92 type; typedef v_iter<V, mpl::int_<92 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<93> > { typedef typename V::item93 type; typedef v_iter<V, mpl::int_<93 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<94> > { typedef typename V::item94 type; typedef v_iter<V, mpl::int_<94 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<95> > { typedef typename V::item95 type; typedef v_iter<V, mpl::int_<95 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<96> > { typedef typename V::item96 type; typedef v_iter<V, mpl::int_<96 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<97> > { typedef typename V::item97 type; typedef v_iter<V, mpl::int_<97 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<98> > { typedef typename V::item98 type; typedef v_iter<V, mpl::int_<98 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<99> > { typedef typename V::item99 type; typedef v_iter<V, mpl::int_<99 + 1> > next; };
-}}
-namespace ndnboost { namespace type_of {
-        template< class T = void> struct vector0 { typedef v_iter<vector0<>, ndnboost::mpl::int_<0> > begin; typedef mpl::int_<1> item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 > struct vector1 { typedef v_iter<vector1< P0>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 > struct vector2 { typedef v_iter<vector2< P0 , P1>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 > struct vector3 { typedef v_iter<vector3< P0 , P1 , P2>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 > struct vector4 { typedef v_iter<vector4< P0 , P1 , P2 , P3>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 > struct vector5 { typedef v_iter<vector5< P0 , P1 , P2 , P3 , P4>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 > struct vector6 { typedef v_iter<vector6< P0 , P1 , P2 , P3 , P4 , P5>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > struct vector7 { typedef v_iter<vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > struct vector8 { typedef v_iter<vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > struct vector9 { typedef v_iter<vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 > struct vector10 { typedef v_iter<vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 > struct vector11 { typedef v_iter<vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 > struct vector12 { typedef v_iter<vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 > struct vector13 { typedef v_iter<vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 > struct vector14 { typedef v_iter<vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 > struct vector15 { typedef v_iter<vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 > struct vector16 { typedef v_iter<vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 > struct vector17 { typedef v_iter<vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 > struct vector18 { typedef v_iter<vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 > struct vector19 { typedef v_iter<vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 > struct vector20 { typedef v_iter<vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 > struct vector21 { typedef v_iter<vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 > struct vector22 { typedef v_iter<vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 > struct vector23 { typedef v_iter<vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 > struct vector24 { typedef v_iter<vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 > struct vector25 { typedef v_iter<vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 > struct vector26 { typedef v_iter<vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 > struct vector27 { typedef v_iter<vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 > struct vector28 { typedef v_iter<vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 > struct vector29 { typedef v_iter<vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 > struct vector30 { typedef v_iter<vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 > struct vector31 { typedef v_iter<vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 > struct vector32 { typedef v_iter<vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 > struct vector33 { typedef v_iter<vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 > struct vector34 { typedef v_iter<vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 > struct vector35 { typedef v_iter<vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 > struct vector36 { typedef v_iter<vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 > struct vector37 { typedef v_iter<vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 > struct vector38 { typedef v_iter<vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 > struct vector39 { typedef v_iter<vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 > struct vector40 { typedef v_iter<vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 > struct vector41 { typedef v_iter<vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 > struct vector42 { typedef v_iter<vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 > struct vector43 { typedef v_iter<vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 > struct vector44 { typedef v_iter<vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 > struct vector45 { typedef v_iter<vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 > struct vector46 { typedef v_iter<vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 > struct vector47 { typedef v_iter<vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 > struct vector48 { typedef v_iter<vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 > struct vector49 { typedef v_iter<vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 > struct vector50 { typedef v_iter<vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 > struct vector51 { typedef v_iter<vector51< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 > struct vector52 { typedef v_iter<vector52< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 > struct vector53 { typedef v_iter<vector53< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 > struct vector54 { typedef v_iter<vector54< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 > struct vector55 { typedef v_iter<vector55< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 > struct vector56 { typedef v_iter<vector56< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 > struct vector57 { typedef v_iter<vector57< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 > struct vector58 { typedef v_iter<vector58< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 > struct vector59 { typedef v_iter<vector59< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 > struct vector60 { typedef v_iter<vector60< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 > struct vector61 { typedef v_iter<vector61< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 > struct vector62 { typedef v_iter<vector62< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 > struct vector63 { typedef v_iter<vector63< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 > struct vector64 { typedef v_iter<vector64< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 > struct vector65 { typedef v_iter<vector65< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 > struct vector66 { typedef v_iter<vector66< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 > struct vector67 { typedef v_iter<vector67< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 > struct vector68 { typedef v_iter<vector68< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 > struct vector69 { typedef v_iter<vector69< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 > struct vector70 { typedef v_iter<vector70< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 > struct vector71 { typedef v_iter<vector71< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 > struct vector72 { typedef v_iter<vector72< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 > struct vector73 { typedef v_iter<vector73< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 > struct vector74 { typedef v_iter<vector74< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 > struct vector75 { typedef v_iter<vector75< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 > struct vector76 { typedef v_iter<vector76< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 > struct vector77 { typedef v_iter<vector77< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 > struct vector78 { typedef v_iter<vector78< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 > struct vector79 { typedef v_iter<vector79< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 > struct vector80 { typedef v_iter<vector80< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 > struct vector81 { typedef v_iter<vector81< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 > struct vector82 { typedef v_iter<vector82< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 > struct vector83 { typedef v_iter<vector83< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 > struct vector84 { typedef v_iter<vector84< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 > struct vector85 { typedef v_iter<vector85< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 > struct vector86 { typedef v_iter<vector86< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 > struct vector87 { typedef v_iter<vector87< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 > struct vector88 { typedef v_iter<vector88< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 > struct vector89 { typedef v_iter<vector89< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 > struct vector90 { typedef v_iter<vector90< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 > struct vector91 { typedef v_iter<vector91< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 > struct vector92 { typedef v_iter<vector92< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 > struct vector93 { typedef v_iter<vector93< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 > struct vector94 { typedef v_iter<vector94< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 > struct vector95 { typedef v_iter<vector95< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 > struct vector96 { typedef v_iter<vector96< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 > struct vector97 { typedef v_iter<vector97< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 > struct vector98 { typedef v_iter<vector98< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 > struct vector99 { typedef v_iter<vector99< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 > struct vector100 { typedef v_iter<vector100< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; };
-}}
-namespace ndnboost { namespace type_of {
-    template<class V, class T> struct push_back {
-        typedef V type;
-    };
-        template< class T> struct push_back<ndnboost::type_of::vector0<>, T> { typedef ndnboost::type_of::vector1< T > type; };
-        template< class P0 , class T> struct push_back<ndnboost::type_of::vector1< P0>, T> { typedef ndnboost::type_of::vector2< P0 , T > type; };
-        template< class P0 , class P1 , class T> struct push_back<ndnboost::type_of::vector2< P0 , P1>, T> { typedef ndnboost::type_of::vector3< P0 , P1 , T > type; };
-        template< class P0 , class P1 , class P2 , class T> struct push_back<ndnboost::type_of::vector3< P0 , P1 , P2>, T> { typedef ndnboost::type_of::vector4< P0 , P1 , P2 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class T> struct push_back<ndnboost::type_of::vector4< P0 , P1 , P2 , P3>, T> { typedef ndnboost::type_of::vector5< P0 , P1 , P2 , P3 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class T> struct push_back<ndnboost::type_of::vector5< P0 , P1 , P2 , P3 , P4>, T> { typedef ndnboost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class T> struct push_back<ndnboost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , P5>, T> { typedef ndnboost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class T> struct push_back<ndnboost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, T> { typedef ndnboost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class T> struct push_back<ndnboost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, T> { typedef ndnboost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class T> struct push_back<ndnboost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, T> { typedef ndnboost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class T> struct push_back<ndnboost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, T> { typedef ndnboost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class T> struct push_back<ndnboost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, T> { typedef ndnboost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class T> struct push_back<ndnboost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, T> { typedef ndnboost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class T> struct push_back<ndnboost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, T> { typedef ndnboost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class T> struct push_back<ndnboost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, T> { typedef ndnboost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class T> struct push_back<ndnboost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, T> { typedef ndnboost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class T> struct push_back<ndnboost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, T> { typedef ndnboost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class T> struct push_back<ndnboost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, T> { typedef ndnboost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class T> struct push_back<ndnboost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, T> { typedef ndnboost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class T> struct push_back<ndnboost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, T> { typedef ndnboost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class T> struct push_back<ndnboost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, T> { typedef ndnboost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class T> struct push_back<ndnboost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, T> { typedef ndnboost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class T> struct push_back<ndnboost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, T> { typedef ndnboost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class T> struct push_back<ndnboost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, T> { typedef ndnboost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class T> struct push_back<ndnboost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, T> { typedef ndnboost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class T> struct push_back<ndnboost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, T> { typedef ndnboost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class T> struct push_back<ndnboost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25>, T> { typedef ndnboost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class T> struct push_back<ndnboost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26>, T> { typedef ndnboost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class T> struct push_back<ndnboost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27>, T> { typedef ndnboost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class T> struct push_back<ndnboost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28>, T> { typedef ndnboost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class T> struct push_back<ndnboost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29>, T> { typedef ndnboost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class T> struct push_back<ndnboost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30>, T> { typedef ndnboost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class T> struct push_back<ndnboost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31>, T> { typedef ndnboost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class T> struct push_back<ndnboost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32>, T> { typedef ndnboost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class T> struct push_back<ndnboost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33>, T> { typedef ndnboost::type_of::vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class T> struct push_back<ndnboost::type_of::vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34>, T> { typedef ndnboost::type_of::vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class T> struct push_back<ndnboost::type_of::vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35>, T> { typedef ndnboost::type_of::vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class T> struct push_back<ndnboost::type_of::vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36>, T> { typedef ndnboost::type_of::vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class T> struct push_back<ndnboost::type_of::vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37>, T> { typedef ndnboost::type_of::vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class T> struct push_back<ndnboost::type_of::vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38>, T> { typedef ndnboost::type_of::vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class T> struct push_back<ndnboost::type_of::vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39>, T> { typedef ndnboost::type_of::vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class T> struct push_back<ndnboost::type_of::vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40>, T> { typedef ndnboost::type_of::vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class T> struct push_back<ndnboost::type_of::vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41>, T> { typedef ndnboost::type_of::vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class T> struct push_back<ndnboost::type_of::vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42>, T> { typedef ndnboost::type_of::vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class T> struct push_back<ndnboost::type_of::vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43>, T> { typedef ndnboost::type_of::vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class T> struct push_back<ndnboost::type_of::vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44>, T> { typedef ndnboost::type_of::vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class T> struct push_back<ndnboost::type_of::vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45>, T> { typedef ndnboost::type_of::vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class T> struct push_back<ndnboost::type_of::vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46>, T> { typedef ndnboost::type_of::vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class T> struct push_back<ndnboost::type_of::vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47>, T> { typedef ndnboost::type_of::vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class T> struct push_back<ndnboost::type_of::vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48>, T> { typedef ndnboost::type_of::vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class T> struct push_back<ndnboost::type_of::vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49>, T> { typedef ndnboost::type_of::vector51< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class T> struct push_back<ndnboost::type_of::vector51< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50>, T> { typedef ndnboost::type_of::vector52< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class T> struct push_back<ndnboost::type_of::vector52< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51>, T> { typedef ndnboost::type_of::vector53< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class T> struct push_back<ndnboost::type_of::vector53< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52>, T> { typedef ndnboost::type_of::vector54< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class T> struct push_back<ndnboost::type_of::vector54< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53>, T> { typedef ndnboost::type_of::vector55< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class T> struct push_back<ndnboost::type_of::vector55< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54>, T> { typedef ndnboost::type_of::vector56< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class T> struct push_back<ndnboost::type_of::vector56< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55>, T> { typedef ndnboost::type_of::vector57< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class T> struct push_back<ndnboost::type_of::vector57< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56>, T> { typedef ndnboost::type_of::vector58< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class T> struct push_back<ndnboost::type_of::vector58< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57>, T> { typedef ndnboost::type_of::vector59< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class T> struct push_back<ndnboost::type_of::vector59< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58>, T> { typedef ndnboost::type_of::vector60< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class T> struct push_back<ndnboost::type_of::vector60< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59>, T> { typedef ndnboost::type_of::vector61< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class T> struct push_back<ndnboost::type_of::vector61< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60>, T> { typedef ndnboost::type_of::vector62< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class T> struct push_back<ndnboost::type_of::vector62< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61>, T> { typedef ndnboost::type_of::vector63< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class T> struct push_back<ndnboost::type_of::vector63< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62>, T> { typedef ndnboost::type_of::vector64< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class T> struct push_back<ndnboost::type_of::vector64< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63>, T> { typedef ndnboost::type_of::vector65< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class T> struct push_back<ndnboost::type_of::vector65< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64>, T> { typedef ndnboost::type_of::vector66< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class T> struct push_back<ndnboost::type_of::vector66< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65>, T> { typedef ndnboost::type_of::vector67< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class T> struct push_back<ndnboost::type_of::vector67< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66>, T> { typedef ndnboost::type_of::vector68< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class T> struct push_back<ndnboost::type_of::vector68< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67>, T> { typedef ndnboost::type_of::vector69< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class T> struct push_back<ndnboost::type_of::vector69< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68>, T> { typedef ndnboost::type_of::vector70< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class T> struct push_back<ndnboost::type_of::vector70< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69>, T> { typedef ndnboost::type_of::vector71< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class T> struct push_back<ndnboost::type_of::vector71< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70>, T> { typedef ndnboost::type_of::vector72< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class T> struct push_back<ndnboost::type_of::vector72< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71>, T> { typedef ndnboost::type_of::vector73< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class T> struct push_back<ndnboost::type_of::vector73< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72>, T> { typedef ndnboost::type_of::vector74< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class T> struct push_back<ndnboost::type_of::vector74< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73>, T> { typedef ndnboost::type_of::vector75< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class T> struct push_back<ndnboost::type_of::vector75< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74>, T> { typedef ndnboost::type_of::vector76< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class T> struct push_back<ndnboost::type_of::vector76< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75>, T> { typedef ndnboost::type_of::vector77< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class T> struct push_back<ndnboost::type_of::vector77< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76>, T> { typedef ndnboost::type_of::vector78< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class T> struct push_back<ndnboost::type_of::vector78< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77>, T> { typedef ndnboost::type_of::vector79< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class T> struct push_back<ndnboost::type_of::vector79< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78>, T> { typedef ndnboost::type_of::vector80< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class T> struct push_back<ndnboost::type_of::vector80< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79>, T> { typedef ndnboost::type_of::vector81< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class T> struct push_back<ndnboost::type_of::vector81< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80>, T> { typedef ndnboost::type_of::vector82< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class T> struct push_back<ndnboost::type_of::vector82< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81>, T> { typedef ndnboost::type_of::vector83< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class T> struct push_back<ndnboost::type_of::vector83< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82>, T> { typedef ndnboost::type_of::vector84< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class T> struct push_back<ndnboost::type_of::vector84< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83>, T> { typedef ndnboost::type_of::vector85< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class T> struct push_back<ndnboost::type_of::vector85< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84>, T> { typedef ndnboost::type_of::vector86< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class T> struct push_back<ndnboost::type_of::vector86< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85>, T> { typedef ndnboost::type_of::vector87< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class T> struct push_back<ndnboost::type_of::vector87< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86>, T> { typedef ndnboost::type_of::vector88< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class T> struct push_back<ndnboost::type_of::vector88< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87>, T> { typedef ndnboost::type_of::vector89< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class T> struct push_back<ndnboost::type_of::vector89< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88>, T> { typedef ndnboost::type_of::vector90< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class T> struct push_back<ndnboost::type_of::vector90< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89>, T> { typedef ndnboost::type_of::vector91< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class T> struct push_back<ndnboost::type_of::vector91< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90>, T> { typedef ndnboost::type_of::vector92< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class T> struct push_back<ndnboost::type_of::vector92< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91>, T> { typedef ndnboost::type_of::vector93< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class T> struct push_back<ndnboost::type_of::vector93< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92>, T> { typedef ndnboost::type_of::vector94< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class T> struct push_back<ndnboost::type_of::vector94< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93>, T> { typedef ndnboost::type_of::vector95< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class T> struct push_back<ndnboost::type_of::vector95< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94>, T> { typedef ndnboost::type_of::vector96< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class T> struct push_back<ndnboost::type_of::vector96< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95>, T> { typedef ndnboost::type_of::vector97< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class T> struct push_back<ndnboost::type_of::vector97< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96>, T> { typedef ndnboost::type_of::vector98< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class T> struct push_back<ndnboost::type_of::vector98< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97>, T> { typedef ndnboost::type_of::vector99< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class T> struct push_back<ndnboost::type_of::vector99< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98>, T> { typedef ndnboost::type_of::vector100< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , T > type; };
-}}
diff --git a/include/ndnboost/typeof/vector150.hpp b/include/ndnboost/typeof/vector150.hpp
deleted file mode 100644
index 882e846..0000000
--- a/include/ndnboost/typeof/vector150.hpp
+++ /dev/null
@@ -1,471 +0,0 @@
-
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-// Preprocessed code, do not edit manually !
-
-
-namespace ndnboost { namespace type_of {
-    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; };
-        template<class V> struct v_iter<V, mpl::int_<3> > { typedef typename V::item3 type; typedef v_iter<V, mpl::int_<3 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<4> > { typedef typename V::item4 type; typedef v_iter<V, mpl::int_<4 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<5> > { typedef typename V::item5 type; typedef v_iter<V, mpl::int_<5 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<6> > { typedef typename V::item6 type; typedef v_iter<V, mpl::int_<6 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<7> > { typedef typename V::item7 type; typedef v_iter<V, mpl::int_<7 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<8> > { typedef typename V::item8 type; typedef v_iter<V, mpl::int_<8 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<9> > { typedef typename V::item9 type; typedef v_iter<V, mpl::int_<9 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<10> > { typedef typename V::item10 type; typedef v_iter<V, mpl::int_<10 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<11> > { typedef typename V::item11 type; typedef v_iter<V, mpl::int_<11 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<12> > { typedef typename V::item12 type; typedef v_iter<V, mpl::int_<12 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<13> > { typedef typename V::item13 type; typedef v_iter<V, mpl::int_<13 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<14> > { typedef typename V::item14 type; typedef v_iter<V, mpl::int_<14 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<15> > { typedef typename V::item15 type; typedef v_iter<V, mpl::int_<15 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<16> > { typedef typename V::item16 type; typedef v_iter<V, mpl::int_<16 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<17> > { typedef typename V::item17 type; typedef v_iter<V, mpl::int_<17 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<18> > { typedef typename V::item18 type; typedef v_iter<V, mpl::int_<18 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<19> > { typedef typename V::item19 type; typedef v_iter<V, mpl::int_<19 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<20> > { typedef typename V::item20 type; typedef v_iter<V, mpl::int_<20 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<21> > { typedef typename V::item21 type; typedef v_iter<V, mpl::int_<21 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<22> > { typedef typename V::item22 type; typedef v_iter<V, mpl::int_<22 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<23> > { typedef typename V::item23 type; typedef v_iter<V, mpl::int_<23 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<24> > { typedef typename V::item24 type; typedef v_iter<V, mpl::int_<24 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<25> > { typedef typename V::item25 type; typedef v_iter<V, mpl::int_<25 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<26> > { typedef typename V::item26 type; typedef v_iter<V, mpl::int_<26 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<27> > { typedef typename V::item27 type; typedef v_iter<V, mpl::int_<27 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<28> > { typedef typename V::item28 type; typedef v_iter<V, mpl::int_<28 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<29> > { typedef typename V::item29 type; typedef v_iter<V, mpl::int_<29 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<30> > { typedef typename V::item30 type; typedef v_iter<V, mpl::int_<30 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<31> > { typedef typename V::item31 type; typedef v_iter<V, mpl::int_<31 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<32> > { typedef typename V::item32 type; typedef v_iter<V, mpl::int_<32 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<33> > { typedef typename V::item33 type; typedef v_iter<V, mpl::int_<33 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<34> > { typedef typename V::item34 type; typedef v_iter<V, mpl::int_<34 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<35> > { typedef typename V::item35 type; typedef v_iter<V, mpl::int_<35 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<36> > { typedef typename V::item36 type; typedef v_iter<V, mpl::int_<36 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<37> > { typedef typename V::item37 type; typedef v_iter<V, mpl::int_<37 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<38> > { typedef typename V::item38 type; typedef v_iter<V, mpl::int_<38 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<39> > { typedef typename V::item39 type; typedef v_iter<V, mpl::int_<39 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<40> > { typedef typename V::item40 type; typedef v_iter<V, mpl::int_<40 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<41> > { typedef typename V::item41 type; typedef v_iter<V, mpl::int_<41 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<42> > { typedef typename V::item42 type; typedef v_iter<V, mpl::int_<42 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<43> > { typedef typename V::item43 type; typedef v_iter<V, mpl::int_<43 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<44> > { typedef typename V::item44 type; typedef v_iter<V, mpl::int_<44 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<45> > { typedef typename V::item45 type; typedef v_iter<V, mpl::int_<45 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<46> > { typedef typename V::item46 type; typedef v_iter<V, mpl::int_<46 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<47> > { typedef typename V::item47 type; typedef v_iter<V, mpl::int_<47 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<48> > { typedef typename V::item48 type; typedef v_iter<V, mpl::int_<48 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<49> > { typedef typename V::item49 type; typedef v_iter<V, mpl::int_<49 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<50> > { typedef typename V::item50 type; typedef v_iter<V, mpl::int_<50 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<51> > { typedef typename V::item51 type; typedef v_iter<V, mpl::int_<51 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<52> > { typedef typename V::item52 type; typedef v_iter<V, mpl::int_<52 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<53> > { typedef typename V::item53 type; typedef v_iter<V, mpl::int_<53 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<54> > { typedef typename V::item54 type; typedef v_iter<V, mpl::int_<54 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<55> > { typedef typename V::item55 type; typedef v_iter<V, mpl::int_<55 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<56> > { typedef typename V::item56 type; typedef v_iter<V, mpl::int_<56 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<57> > { typedef typename V::item57 type; typedef v_iter<V, mpl::int_<57 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<58> > { typedef typename V::item58 type; typedef v_iter<V, mpl::int_<58 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<59> > { typedef typename V::item59 type; typedef v_iter<V, mpl::int_<59 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<60> > { typedef typename V::item60 type; typedef v_iter<V, mpl::int_<60 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<61> > { typedef typename V::item61 type; typedef v_iter<V, mpl::int_<61 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<62> > { typedef typename V::item62 type; typedef v_iter<V, mpl::int_<62 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<63> > { typedef typename V::item63 type; typedef v_iter<V, mpl::int_<63 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<64> > { typedef typename V::item64 type; typedef v_iter<V, mpl::int_<64 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<65> > { typedef typename V::item65 type; typedef v_iter<V, mpl::int_<65 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<66> > { typedef typename V::item66 type; typedef v_iter<V, mpl::int_<66 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<67> > { typedef typename V::item67 type; typedef v_iter<V, mpl::int_<67 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<68> > { typedef typename V::item68 type; typedef v_iter<V, mpl::int_<68 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<69> > { typedef typename V::item69 type; typedef v_iter<V, mpl::int_<69 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<70> > { typedef typename V::item70 type; typedef v_iter<V, mpl::int_<70 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<71> > { typedef typename V::item71 type; typedef v_iter<V, mpl::int_<71 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<72> > { typedef typename V::item72 type; typedef v_iter<V, mpl::int_<72 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<73> > { typedef typename V::item73 type; typedef v_iter<V, mpl::int_<73 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<74> > { typedef typename V::item74 type; typedef v_iter<V, mpl::int_<74 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<75> > { typedef typename V::item75 type; typedef v_iter<V, mpl::int_<75 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<76> > { typedef typename V::item76 type; typedef v_iter<V, mpl::int_<76 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<77> > { typedef typename V::item77 type; typedef v_iter<V, mpl::int_<77 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<78> > { typedef typename V::item78 type; typedef v_iter<V, mpl::int_<78 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<79> > { typedef typename V::item79 type; typedef v_iter<V, mpl::int_<79 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<80> > { typedef typename V::item80 type; typedef v_iter<V, mpl::int_<80 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<81> > { typedef typename V::item81 type; typedef v_iter<V, mpl::int_<81 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<82> > { typedef typename V::item82 type; typedef v_iter<V, mpl::int_<82 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<83> > { typedef typename V::item83 type; typedef v_iter<V, mpl::int_<83 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<84> > { typedef typename V::item84 type; typedef v_iter<V, mpl::int_<84 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<85> > { typedef typename V::item85 type; typedef v_iter<V, mpl::int_<85 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<86> > { typedef typename V::item86 type; typedef v_iter<V, mpl::int_<86 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<87> > { typedef typename V::item87 type; typedef v_iter<V, mpl::int_<87 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<88> > { typedef typename V::item88 type; typedef v_iter<V, mpl::int_<88 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<89> > { typedef typename V::item89 type; typedef v_iter<V, mpl::int_<89 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<90> > { typedef typename V::item90 type; typedef v_iter<V, mpl::int_<90 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<91> > { typedef typename V::item91 type; typedef v_iter<V, mpl::int_<91 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<92> > { typedef typename V::item92 type; typedef v_iter<V, mpl::int_<92 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<93> > { typedef typename V::item93 type; typedef v_iter<V, mpl::int_<93 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<94> > { typedef typename V::item94 type; typedef v_iter<V, mpl::int_<94 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<95> > { typedef typename V::item95 type; typedef v_iter<V, mpl::int_<95 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<96> > { typedef typename V::item96 type; typedef v_iter<V, mpl::int_<96 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<97> > { typedef typename V::item97 type; typedef v_iter<V, mpl::int_<97 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<98> > { typedef typename V::item98 type; typedef v_iter<V, mpl::int_<98 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<99> > { typedef typename V::item99 type; typedef v_iter<V, mpl::int_<99 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<100> > { typedef typename V::item100 type; typedef v_iter<V, mpl::int_<100 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<101> > { typedef typename V::item101 type; typedef v_iter<V, mpl::int_<101 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<102> > { typedef typename V::item102 type; typedef v_iter<V, mpl::int_<102 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<103> > { typedef typename V::item103 type; typedef v_iter<V, mpl::int_<103 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<104> > { typedef typename V::item104 type; typedef v_iter<V, mpl::int_<104 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<105> > { typedef typename V::item105 type; typedef v_iter<V, mpl::int_<105 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<106> > { typedef typename V::item106 type; typedef v_iter<V, mpl::int_<106 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<107> > { typedef typename V::item107 type; typedef v_iter<V, mpl::int_<107 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<108> > { typedef typename V::item108 type; typedef v_iter<V, mpl::int_<108 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<109> > { typedef typename V::item109 type; typedef v_iter<V, mpl::int_<109 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<110> > { typedef typename V::item110 type; typedef v_iter<V, mpl::int_<110 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<111> > { typedef typename V::item111 type; typedef v_iter<V, mpl::int_<111 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<112> > { typedef typename V::item112 type; typedef v_iter<V, mpl::int_<112 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<113> > { typedef typename V::item113 type; typedef v_iter<V, mpl::int_<113 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<114> > { typedef typename V::item114 type; typedef v_iter<V, mpl::int_<114 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<115> > { typedef typename V::item115 type; typedef v_iter<V, mpl::int_<115 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<116> > { typedef typename V::item116 type; typedef v_iter<V, mpl::int_<116 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<117> > { typedef typename V::item117 type; typedef v_iter<V, mpl::int_<117 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<118> > { typedef typename V::item118 type; typedef v_iter<V, mpl::int_<118 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<119> > { typedef typename V::item119 type; typedef v_iter<V, mpl::int_<119 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<120> > { typedef typename V::item120 type; typedef v_iter<V, mpl::int_<120 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<121> > { typedef typename V::item121 type; typedef v_iter<V, mpl::int_<121 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<122> > { typedef typename V::item122 type; typedef v_iter<V, mpl::int_<122 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<123> > { typedef typename V::item123 type; typedef v_iter<V, mpl::int_<123 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<124> > { typedef typename V::item124 type; typedef v_iter<V, mpl::int_<124 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<125> > { typedef typename V::item125 type; typedef v_iter<V, mpl::int_<125 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<126> > { typedef typename V::item126 type; typedef v_iter<V, mpl::int_<126 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<127> > { typedef typename V::item127 type; typedef v_iter<V, mpl::int_<127 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<128> > { typedef typename V::item128 type; typedef v_iter<V, mpl::int_<128 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<129> > { typedef typename V::item129 type; typedef v_iter<V, mpl::int_<129 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<130> > { typedef typename V::item130 type; typedef v_iter<V, mpl::int_<130 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<131> > { typedef typename V::item131 type; typedef v_iter<V, mpl::int_<131 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<132> > { typedef typename V::item132 type; typedef v_iter<V, mpl::int_<132 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<133> > { typedef typename V::item133 type; typedef v_iter<V, mpl::int_<133 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<134> > { typedef typename V::item134 type; typedef v_iter<V, mpl::int_<134 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<135> > { typedef typename V::item135 type; typedef v_iter<V, mpl::int_<135 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<136> > { typedef typename V::item136 type; typedef v_iter<V, mpl::int_<136 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<137> > { typedef typename V::item137 type; typedef v_iter<V, mpl::int_<137 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<138> > { typedef typename V::item138 type; typedef v_iter<V, mpl::int_<138 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<139> > { typedef typename V::item139 type; typedef v_iter<V, mpl::int_<139 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<140> > { typedef typename V::item140 type; typedef v_iter<V, mpl::int_<140 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<141> > { typedef typename V::item141 type; typedef v_iter<V, mpl::int_<141 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<142> > { typedef typename V::item142 type; typedef v_iter<V, mpl::int_<142 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<143> > { typedef typename V::item143 type; typedef v_iter<V, mpl::int_<143 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<144> > { typedef typename V::item144 type; typedef v_iter<V, mpl::int_<144 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<145> > { typedef typename V::item145 type; typedef v_iter<V, mpl::int_<145 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<146> > { typedef typename V::item146 type; typedef v_iter<V, mpl::int_<146 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<147> > { typedef typename V::item147 type; typedef v_iter<V, mpl::int_<147 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<148> > { typedef typename V::item148 type; typedef v_iter<V, mpl::int_<148 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<149> > { typedef typename V::item149 type; typedef v_iter<V, mpl::int_<149 + 1> > next; };
-}}
-namespace ndnboost { namespace type_of {
-        template< class T = void> struct vector0 { typedef v_iter<vector0<>, ndnboost::mpl::int_<0> > begin; typedef mpl::int_<1> item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 > struct vector1 { typedef v_iter<vector1< P0>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 > struct vector2 { typedef v_iter<vector2< P0 , P1>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 > struct vector3 { typedef v_iter<vector3< P0 , P1 , P2>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 > struct vector4 { typedef v_iter<vector4< P0 , P1 , P2 , P3>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 > struct vector5 { typedef v_iter<vector5< P0 , P1 , P2 , P3 , P4>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 > struct vector6 { typedef v_iter<vector6< P0 , P1 , P2 , P3 , P4 , P5>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > struct vector7 { typedef v_iter<vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > struct vector8 { typedef v_iter<vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > struct vector9 { typedef v_iter<vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 > struct vector10 { typedef v_iter<vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 > struct vector11 { typedef v_iter<vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 > struct vector12 { typedef v_iter<vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 > struct vector13 { typedef v_iter<vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 > struct vector14 { typedef v_iter<vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 > struct vector15 { typedef v_iter<vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 > struct vector16 { typedef v_iter<vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 > struct vector17 { typedef v_iter<vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 > struct vector18 { typedef v_iter<vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 > struct vector19 { typedef v_iter<vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 > struct vector20 { typedef v_iter<vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 > struct vector21 { typedef v_iter<vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 > struct vector22 { typedef v_iter<vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 > struct vector23 { typedef v_iter<vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 > struct vector24 { typedef v_iter<vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 > struct vector25 { typedef v_iter<vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 > struct vector26 { typedef v_iter<vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 > struct vector27 { typedef v_iter<vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 > struct vector28 { typedef v_iter<vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 > struct vector29 { typedef v_iter<vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 > struct vector30 { typedef v_iter<vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 > struct vector31 { typedef v_iter<vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 > struct vector32 { typedef v_iter<vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 > struct vector33 { typedef v_iter<vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 > struct vector34 { typedef v_iter<vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 > struct vector35 { typedef v_iter<vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 > struct vector36 { typedef v_iter<vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 > struct vector37 { typedef v_iter<vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 > struct vector38 { typedef v_iter<vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 > struct vector39 { typedef v_iter<vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 > struct vector40 { typedef v_iter<vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 > struct vector41 { typedef v_iter<vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 > struct vector42 { typedef v_iter<vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 > struct vector43 { typedef v_iter<vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 > struct vector44 { typedef v_iter<vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 > struct vector45 { typedef v_iter<vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 > struct vector46 { typedef v_iter<vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 > struct vector47 { typedef v_iter<vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 > struct vector48 { typedef v_iter<vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 > struct vector49 { typedef v_iter<vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 > struct vector50 { typedef v_iter<vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 > struct vector51 { typedef v_iter<vector51< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 > struct vector52 { typedef v_iter<vector52< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 > struct vector53 { typedef v_iter<vector53< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 > struct vector54 { typedef v_iter<vector54< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 > struct vector55 { typedef v_iter<vector55< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 > struct vector56 { typedef v_iter<vector56< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 > struct vector57 { typedef v_iter<vector57< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 > struct vector58 { typedef v_iter<vector58< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 > struct vector59 { typedef v_iter<vector59< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 > struct vector60 { typedef v_iter<vector60< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 > struct vector61 { typedef v_iter<vector61< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 > struct vector62 { typedef v_iter<vector62< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 > struct vector63 { typedef v_iter<vector63< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 > struct vector64 { typedef v_iter<vector64< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 > struct vector65 { typedef v_iter<vector65< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 > struct vector66 { typedef v_iter<vector66< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 > struct vector67 { typedef v_iter<vector67< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 > struct vector68 { typedef v_iter<vector68< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 > struct vector69 { typedef v_iter<vector69< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 > struct vector70 { typedef v_iter<vector70< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 > struct vector71 { typedef v_iter<vector71< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 > struct vector72 { typedef v_iter<vector72< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 > struct vector73 { typedef v_iter<vector73< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 > struct vector74 { typedef v_iter<vector74< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 > struct vector75 { typedef v_iter<vector75< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 > struct vector76 { typedef v_iter<vector76< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 > struct vector77 { typedef v_iter<vector77< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 > struct vector78 { typedef v_iter<vector78< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 > struct vector79 { typedef v_iter<vector79< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 > struct vector80 { typedef v_iter<vector80< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 > struct vector81 { typedef v_iter<vector81< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 > struct vector82 { typedef v_iter<vector82< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 > struct vector83 { typedef v_iter<vector83< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 > struct vector84 { typedef v_iter<vector84< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 > struct vector85 { typedef v_iter<vector85< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 > struct vector86 { typedef v_iter<vector86< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 > struct vector87 { typedef v_iter<vector87< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 > struct vector88 { typedef v_iter<vector88< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 > struct vector89 { typedef v_iter<vector89< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 > struct vector90 { typedef v_iter<vector90< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 > struct vector91 { typedef v_iter<vector91< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 > struct vector92 { typedef v_iter<vector92< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 > struct vector93 { typedef v_iter<vector93< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 > struct vector94 { typedef v_iter<vector94< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 > struct vector95 { typedef v_iter<vector95< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 > struct vector96 { typedef v_iter<vector96< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 > struct vector97 { typedef v_iter<vector97< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 > struct vector98 { typedef v_iter<vector98< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 > struct vector99 { typedef v_iter<vector99< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 > struct vector100 { typedef v_iter<vector100< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 > struct vector101 { typedef v_iter<vector101< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 > struct vector102 { typedef v_iter<vector102< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 > struct vector103 { typedef v_iter<vector103< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 > struct vector104 { typedef v_iter<vector104< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 > struct vector105 { typedef v_iter<vector105< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 > struct vector106 { typedef v_iter<vector106< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 > struct vector107 { typedef v_iter<vector107< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 > struct vector108 { typedef v_iter<vector108< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 > struct vector109 { typedef v_iter<vector109< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 > struct vector110 { typedef v_iter<vector110< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 > struct vector111 { typedef v_iter<vector111< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 > struct vector112 { typedef v_iter<vector112< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 > struct vector113 { typedef v_iter<vector113< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 > struct vector114 { typedef v_iter<vector114< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 > struct vector115 { typedef v_iter<vector115< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 > struct vector116 { typedef v_iter<vector116< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 > struct vector117 { typedef v_iter<vector117< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 > struct vector118 { typedef v_iter<vector118< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 > struct vector119 { typedef v_iter<vector119< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 > struct vector120 { typedef v_iter<vector120< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 > struct vector121 { typedef v_iter<vector121< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 > struct vector122 { typedef v_iter<vector122< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 > struct vector123 { typedef v_iter<vector123< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 > struct vector124 { typedef v_iter<vector124< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 > struct vector125 { typedef v_iter<vector125< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 > struct vector126 { typedef v_iter<vector126< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 > struct vector127 { typedef v_iter<vector127< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 > struct vector128 { typedef v_iter<vector128< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 > struct vector129 { typedef v_iter<vector129< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 > struct vector130 { typedef v_iter<vector130< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 > struct vector131 { typedef v_iter<vector131< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 > struct vector132 { typedef v_iter<vector132< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 > struct vector133 { typedef v_iter<vector133< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 > struct vector134 { typedef v_iter<vector134< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 > struct vector135 { typedef v_iter<vector135< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 > struct vector136 { typedef v_iter<vector136< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 > struct vector137 { typedef v_iter<vector137< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 > struct vector138 { typedef v_iter<vector138< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 > struct vector139 { typedef v_iter<vector139< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 > struct vector140 { typedef v_iter<vector140< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 > struct vector141 { typedef v_iter<vector141< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 > struct vector142 { typedef v_iter<vector142< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 > struct vector143 { typedef v_iter<vector143< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 > struct vector144 { typedef v_iter<vector144< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 > struct vector145 { typedef v_iter<vector145< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 > struct vector146 { typedef v_iter<vector146< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 > struct vector147 { typedef v_iter<vector147< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 > struct vector148 { typedef v_iter<vector148< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 > struct vector149 { typedef v_iter<vector149< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 > struct vector150 { typedef v_iter<vector150< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; };
-}}
-namespace ndnboost { namespace type_of {
-    template<class V, class T> struct push_back {
-        typedef V type;
-    };
-        template< class T> struct push_back<ndnboost::type_of::vector0<>, T> { typedef ndnboost::type_of::vector1< T > type; };
-        template< class P0 , class T> struct push_back<ndnboost::type_of::vector1< P0>, T> { typedef ndnboost::type_of::vector2< P0 , T > type; };
-        template< class P0 , class P1 , class T> struct push_back<ndnboost::type_of::vector2< P0 , P1>, T> { typedef ndnboost::type_of::vector3< P0 , P1 , T > type; };
-        template< class P0 , class P1 , class P2 , class T> struct push_back<ndnboost::type_of::vector3< P0 , P1 , P2>, T> { typedef ndnboost::type_of::vector4< P0 , P1 , P2 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class T> struct push_back<ndnboost::type_of::vector4< P0 , P1 , P2 , P3>, T> { typedef ndnboost::type_of::vector5< P0 , P1 , P2 , P3 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class T> struct push_back<ndnboost::type_of::vector5< P0 , P1 , P2 , P3 , P4>, T> { typedef ndnboost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class T> struct push_back<ndnboost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , P5>, T> { typedef ndnboost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class T> struct push_back<ndnboost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, T> { typedef ndnboost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class T> struct push_back<ndnboost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, T> { typedef ndnboost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class T> struct push_back<ndnboost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, T> { typedef ndnboost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class T> struct push_back<ndnboost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, T> { typedef ndnboost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class T> struct push_back<ndnboost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, T> { typedef ndnboost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class T> struct push_back<ndnboost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, T> { typedef ndnboost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class T> struct push_back<ndnboost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, T> { typedef ndnboost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class T> struct push_back<ndnboost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, T> { typedef ndnboost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class T> struct push_back<ndnboost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, T> { typedef ndnboost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class T> struct push_back<ndnboost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, T> { typedef ndnboost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class T> struct push_back<ndnboost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, T> { typedef ndnboost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class T> struct push_back<ndnboost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, T> { typedef ndnboost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class T> struct push_back<ndnboost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, T> { typedef ndnboost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class T> struct push_back<ndnboost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, T> { typedef ndnboost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class T> struct push_back<ndnboost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, T> { typedef ndnboost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class T> struct push_back<ndnboost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, T> { typedef ndnboost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class T> struct push_back<ndnboost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, T> { typedef ndnboost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class T> struct push_back<ndnboost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, T> { typedef ndnboost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class T> struct push_back<ndnboost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, T> { typedef ndnboost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class T> struct push_back<ndnboost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25>, T> { typedef ndnboost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class T> struct push_back<ndnboost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26>, T> { typedef ndnboost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class T> struct push_back<ndnboost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27>, T> { typedef ndnboost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class T> struct push_back<ndnboost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28>, T> { typedef ndnboost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class T> struct push_back<ndnboost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29>, T> { typedef ndnboost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class T> struct push_back<ndnboost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30>, T> { typedef ndnboost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class T> struct push_back<ndnboost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31>, T> { typedef ndnboost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class T> struct push_back<ndnboost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32>, T> { typedef ndnboost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class T> struct push_back<ndnboost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33>, T> { typedef ndnboost::type_of::vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class T> struct push_back<ndnboost::type_of::vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34>, T> { typedef ndnboost::type_of::vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class T> struct push_back<ndnboost::type_of::vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35>, T> { typedef ndnboost::type_of::vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class T> struct push_back<ndnboost::type_of::vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36>, T> { typedef ndnboost::type_of::vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class T> struct push_back<ndnboost::type_of::vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37>, T> { typedef ndnboost::type_of::vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class T> struct push_back<ndnboost::type_of::vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38>, T> { typedef ndnboost::type_of::vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class T> struct push_back<ndnboost::type_of::vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39>, T> { typedef ndnboost::type_of::vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class T> struct push_back<ndnboost::type_of::vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40>, T> { typedef ndnboost::type_of::vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class T> struct push_back<ndnboost::type_of::vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41>, T> { typedef ndnboost::type_of::vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class T> struct push_back<ndnboost::type_of::vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42>, T> { typedef ndnboost::type_of::vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class T> struct push_back<ndnboost::type_of::vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43>, T> { typedef ndnboost::type_of::vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class T> struct push_back<ndnboost::type_of::vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44>, T> { typedef ndnboost::type_of::vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class T> struct push_back<ndnboost::type_of::vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45>, T> { typedef ndnboost::type_of::vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class T> struct push_back<ndnboost::type_of::vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46>, T> { typedef ndnboost::type_of::vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class T> struct push_back<ndnboost::type_of::vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47>, T> { typedef ndnboost::type_of::vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class T> struct push_back<ndnboost::type_of::vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48>, T> { typedef ndnboost::type_of::vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class T> struct push_back<ndnboost::type_of::vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49>, T> { typedef ndnboost::type_of::vector51< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class T> struct push_back<ndnboost::type_of::vector51< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50>, T> { typedef ndnboost::type_of::vector52< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class T> struct push_back<ndnboost::type_of::vector52< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51>, T> { typedef ndnboost::type_of::vector53< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class T> struct push_back<ndnboost::type_of::vector53< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52>, T> { typedef ndnboost::type_of::vector54< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class T> struct push_back<ndnboost::type_of::vector54< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53>, T> { typedef ndnboost::type_of::vector55< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class T> struct push_back<ndnboost::type_of::vector55< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54>, T> { typedef ndnboost::type_of::vector56< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class T> struct push_back<ndnboost::type_of::vector56< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55>, T> { typedef ndnboost::type_of::vector57< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class T> struct push_back<ndnboost::type_of::vector57< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56>, T> { typedef ndnboost::type_of::vector58< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class T> struct push_back<ndnboost::type_of::vector58< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57>, T> { typedef ndnboost::type_of::vector59< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class T> struct push_back<ndnboost::type_of::vector59< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58>, T> { typedef ndnboost::type_of::vector60< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class T> struct push_back<ndnboost::type_of::vector60< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59>, T> { typedef ndnboost::type_of::vector61< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class T> struct push_back<ndnboost::type_of::vector61< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60>, T> { typedef ndnboost::type_of::vector62< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class T> struct push_back<ndnboost::type_of::vector62< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61>, T> { typedef ndnboost::type_of::vector63< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class T> struct push_back<ndnboost::type_of::vector63< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62>, T> { typedef ndnboost::type_of::vector64< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class T> struct push_back<ndnboost::type_of::vector64< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63>, T> { typedef ndnboost::type_of::vector65< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class T> struct push_back<ndnboost::type_of::vector65< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64>, T> { typedef ndnboost::type_of::vector66< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class T> struct push_back<ndnboost::type_of::vector66< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65>, T> { typedef ndnboost::type_of::vector67< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class T> struct push_back<ndnboost::type_of::vector67< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66>, T> { typedef ndnboost::type_of::vector68< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class T> struct push_back<ndnboost::type_of::vector68< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67>, T> { typedef ndnboost::type_of::vector69< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class T> struct push_back<ndnboost::type_of::vector69< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68>, T> { typedef ndnboost::type_of::vector70< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class T> struct push_back<ndnboost::type_of::vector70< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69>, T> { typedef ndnboost::type_of::vector71< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class T> struct push_back<ndnboost::type_of::vector71< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70>, T> { typedef ndnboost::type_of::vector72< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class T> struct push_back<ndnboost::type_of::vector72< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71>, T> { typedef ndnboost::type_of::vector73< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class T> struct push_back<ndnboost::type_of::vector73< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72>, T> { typedef ndnboost::type_of::vector74< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class T> struct push_back<ndnboost::type_of::vector74< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73>, T> { typedef ndnboost::type_of::vector75< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class T> struct push_back<ndnboost::type_of::vector75< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74>, T> { typedef ndnboost::type_of::vector76< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class T> struct push_back<ndnboost::type_of::vector76< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75>, T> { typedef ndnboost::type_of::vector77< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class T> struct push_back<ndnboost::type_of::vector77< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76>, T> { typedef ndnboost::type_of::vector78< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class T> struct push_back<ndnboost::type_of::vector78< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77>, T> { typedef ndnboost::type_of::vector79< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class T> struct push_back<ndnboost::type_of::vector79< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78>, T> { typedef ndnboost::type_of::vector80< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class T> struct push_back<ndnboost::type_of::vector80< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79>, T> { typedef ndnboost::type_of::vector81< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class T> struct push_back<ndnboost::type_of::vector81< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80>, T> { typedef ndnboost::type_of::vector82< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class T> struct push_back<ndnboost::type_of::vector82< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81>, T> { typedef ndnboost::type_of::vector83< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class T> struct push_back<ndnboost::type_of::vector83< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82>, T> { typedef ndnboost::type_of::vector84< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class T> struct push_back<ndnboost::type_of::vector84< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83>, T> { typedef ndnboost::type_of::vector85< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class T> struct push_back<ndnboost::type_of::vector85< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84>, T> { typedef ndnboost::type_of::vector86< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class T> struct push_back<ndnboost::type_of::vector86< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85>, T> { typedef ndnboost::type_of::vector87< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class T> struct push_back<ndnboost::type_of::vector87< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86>, T> { typedef ndnboost::type_of::vector88< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class T> struct push_back<ndnboost::type_of::vector88< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87>, T> { typedef ndnboost::type_of::vector89< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class T> struct push_back<ndnboost::type_of::vector89< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88>, T> { typedef ndnboost::type_of::vector90< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class T> struct push_back<ndnboost::type_of::vector90< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89>, T> { typedef ndnboost::type_of::vector91< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class T> struct push_back<ndnboost::type_of::vector91< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90>, T> { typedef ndnboost::type_of::vector92< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class T> struct push_back<ndnboost::type_of::vector92< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91>, T> { typedef ndnboost::type_of::vector93< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class T> struct push_back<ndnboost::type_of::vector93< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92>, T> { typedef ndnboost::type_of::vector94< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class T> struct push_back<ndnboost::type_of::vector94< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93>, T> { typedef ndnboost::type_of::vector95< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class T> struct push_back<ndnboost::type_of::vector95< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94>, T> { typedef ndnboost::type_of::vector96< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class T> struct push_back<ndnboost::type_of::vector96< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95>, T> { typedef ndnboost::type_of::vector97< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class T> struct push_back<ndnboost::type_of::vector97< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96>, T> { typedef ndnboost::type_of::vector98< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class T> struct push_back<ndnboost::type_of::vector98< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97>, T> { typedef ndnboost::type_of::vector99< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class T> struct push_back<ndnboost::type_of::vector99< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98>, T> { typedef ndnboost::type_of::vector100< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class T> struct push_back<ndnboost::type_of::vector100< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99>, T> { typedef ndnboost::type_of::vector101< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class T> struct push_back<ndnboost::type_of::vector101< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100>, T> { typedef ndnboost::type_of::vector102< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class T> struct push_back<ndnboost::type_of::vector102< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101>, T> { typedef ndnboost::type_of::vector103< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class T> struct push_back<ndnboost::type_of::vector103< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102>, T> { typedef ndnboost::type_of::vector104< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class T> struct push_back<ndnboost::type_of::vector104< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103>, T> { typedef ndnboost::type_of::vector105< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class T> struct push_back<ndnboost::type_of::vector105< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104>, T> { typedef ndnboost::type_of::vector106< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class T> struct push_back<ndnboost::type_of::vector106< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105>, T> { typedef ndnboost::type_of::vector107< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class T> struct push_back<ndnboost::type_of::vector107< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106>, T> { typedef ndnboost::type_of::vector108< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class T> struct push_back<ndnboost::type_of::vector108< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107>, T> { typedef ndnboost::type_of::vector109< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class T> struct push_back<ndnboost::type_of::vector109< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108>, T> { typedef ndnboost::type_of::vector110< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class T> struct push_back<ndnboost::type_of::vector110< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109>, T> { typedef ndnboost::type_of::vector111< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class T> struct push_back<ndnboost::type_of::vector111< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110>, T> { typedef ndnboost::type_of::vector112< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class T> struct push_back<ndnboost::type_of::vector112< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111>, T> { typedef ndnboost::type_of::vector113< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class T> struct push_back<ndnboost::type_of::vector113< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112>, T> { typedef ndnboost::type_of::vector114< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class T> struct push_back<ndnboost::type_of::vector114< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113>, T> { typedef ndnboost::type_of::vector115< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class T> struct push_back<ndnboost::type_of::vector115< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114>, T> { typedef ndnboost::type_of::vector116< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class T> struct push_back<ndnboost::type_of::vector116< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115>, T> { typedef ndnboost::type_of::vector117< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class T> struct push_back<ndnboost::type_of::vector117< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116>, T> { typedef ndnboost::type_of::vector118< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class T> struct push_back<ndnboost::type_of::vector118< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117>, T> { typedef ndnboost::type_of::vector119< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class T> struct push_back<ndnboost::type_of::vector119< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118>, T> { typedef ndnboost::type_of::vector120< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class T> struct push_back<ndnboost::type_of::vector120< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119>, T> { typedef ndnboost::type_of::vector121< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class T> struct push_back<ndnboost::type_of::vector121< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120>, T> { typedef ndnboost::type_of::vector122< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class T> struct push_back<ndnboost::type_of::vector122< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121>, T> { typedef ndnboost::type_of::vector123< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class T> struct push_back<ndnboost::type_of::vector123< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122>, T> { typedef ndnboost::type_of::vector124< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class T> struct push_back<ndnboost::type_of::vector124< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123>, T> { typedef ndnboost::type_of::vector125< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class T> struct push_back<ndnboost::type_of::vector125< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124>, T> { typedef ndnboost::type_of::vector126< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class T> struct push_back<ndnboost::type_of::vector126< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125>, T> { typedef ndnboost::type_of::vector127< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class T> struct push_back<ndnboost::type_of::vector127< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126>, T> { typedef ndnboost::type_of::vector128< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class T> struct push_back<ndnboost::type_of::vector128< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127>, T> { typedef ndnboost::type_of::vector129< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class T> struct push_back<ndnboost::type_of::vector129< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128>, T> { typedef ndnboost::type_of::vector130< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class T> struct push_back<ndnboost::type_of::vector130< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129>, T> { typedef ndnboost::type_of::vector131< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class T> struct push_back<ndnboost::type_of::vector131< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130>, T> { typedef ndnboost::type_of::vector132< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class T> struct push_back<ndnboost::type_of::vector132< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131>, T> { typedef ndnboost::type_of::vector133< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class T> struct push_back<ndnboost::type_of::vector133< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132>, T> { typedef ndnboost::type_of::vector134< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class T> struct push_back<ndnboost::type_of::vector134< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133>, T> { typedef ndnboost::type_of::vector135< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class T> struct push_back<ndnboost::type_of::vector135< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134>, T> { typedef ndnboost::type_of::vector136< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class T> struct push_back<ndnboost::type_of::vector136< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135>, T> { typedef ndnboost::type_of::vector137< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class T> struct push_back<ndnboost::type_of::vector137< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136>, T> { typedef ndnboost::type_of::vector138< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class T> struct push_back<ndnboost::type_of::vector138< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137>, T> { typedef ndnboost::type_of::vector139< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class T> struct push_back<ndnboost::type_of::vector139< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138>, T> { typedef ndnboost::type_of::vector140< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class T> struct push_back<ndnboost::type_of::vector140< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139>, T> { typedef ndnboost::type_of::vector141< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class T> struct push_back<ndnboost::type_of::vector141< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140>, T> { typedef ndnboost::type_of::vector142< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class T> struct push_back<ndnboost::type_of::vector142< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141>, T> { typedef ndnboost::type_of::vector143< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class T> struct push_back<ndnboost::type_of::vector143< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142>, T> { typedef ndnboost::type_of::vector144< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class T> struct push_back<ndnboost::type_of::vector144< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143>, T> { typedef ndnboost::type_of::vector145< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class T> struct push_back<ndnboost::type_of::vector145< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144>, T> { typedef ndnboost::type_of::vector146< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class T> struct push_back<ndnboost::type_of::vector146< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145>, T> { typedef ndnboost::type_of::vector147< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class T> struct push_back<ndnboost::type_of::vector147< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146>, T> { typedef ndnboost::type_of::vector148< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class T> struct push_back<ndnboost::type_of::vector148< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147>, T> { typedef ndnboost::type_of::vector149< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class T> struct push_back<ndnboost::type_of::vector149< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148>, T> { typedef ndnboost::type_of::vector150< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , T > type; };
-}}
diff --git a/include/ndnboost/typeof/vector200.hpp b/include/ndnboost/typeof/vector200.hpp
deleted file mode 100644
index 40a8d0c..0000000
--- a/include/ndnboost/typeof/vector200.hpp
+++ /dev/null
@@ -1,621 +0,0 @@
-
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-// Preprocessed code, do not edit manually !
-
-
-namespace ndnboost { namespace type_of {
-    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; };
-        template<class V> struct v_iter<V, mpl::int_<3> > { typedef typename V::item3 type; typedef v_iter<V, mpl::int_<3 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<4> > { typedef typename V::item4 type; typedef v_iter<V, mpl::int_<4 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<5> > { typedef typename V::item5 type; typedef v_iter<V, mpl::int_<5 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<6> > { typedef typename V::item6 type; typedef v_iter<V, mpl::int_<6 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<7> > { typedef typename V::item7 type; typedef v_iter<V, mpl::int_<7 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<8> > { typedef typename V::item8 type; typedef v_iter<V, mpl::int_<8 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<9> > { typedef typename V::item9 type; typedef v_iter<V, mpl::int_<9 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<10> > { typedef typename V::item10 type; typedef v_iter<V, mpl::int_<10 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<11> > { typedef typename V::item11 type; typedef v_iter<V, mpl::int_<11 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<12> > { typedef typename V::item12 type; typedef v_iter<V, mpl::int_<12 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<13> > { typedef typename V::item13 type; typedef v_iter<V, mpl::int_<13 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<14> > { typedef typename V::item14 type; typedef v_iter<V, mpl::int_<14 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<15> > { typedef typename V::item15 type; typedef v_iter<V, mpl::int_<15 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<16> > { typedef typename V::item16 type; typedef v_iter<V, mpl::int_<16 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<17> > { typedef typename V::item17 type; typedef v_iter<V, mpl::int_<17 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<18> > { typedef typename V::item18 type; typedef v_iter<V, mpl::int_<18 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<19> > { typedef typename V::item19 type; typedef v_iter<V, mpl::int_<19 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<20> > { typedef typename V::item20 type; typedef v_iter<V, mpl::int_<20 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<21> > { typedef typename V::item21 type; typedef v_iter<V, mpl::int_<21 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<22> > { typedef typename V::item22 type; typedef v_iter<V, mpl::int_<22 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<23> > { typedef typename V::item23 type; typedef v_iter<V, mpl::int_<23 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<24> > { typedef typename V::item24 type; typedef v_iter<V, mpl::int_<24 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<25> > { typedef typename V::item25 type; typedef v_iter<V, mpl::int_<25 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<26> > { typedef typename V::item26 type; typedef v_iter<V, mpl::int_<26 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<27> > { typedef typename V::item27 type; typedef v_iter<V, mpl::int_<27 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<28> > { typedef typename V::item28 type; typedef v_iter<V, mpl::int_<28 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<29> > { typedef typename V::item29 type; typedef v_iter<V, mpl::int_<29 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<30> > { typedef typename V::item30 type; typedef v_iter<V, mpl::int_<30 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<31> > { typedef typename V::item31 type; typedef v_iter<V, mpl::int_<31 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<32> > { typedef typename V::item32 type; typedef v_iter<V, mpl::int_<32 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<33> > { typedef typename V::item33 type; typedef v_iter<V, mpl::int_<33 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<34> > { typedef typename V::item34 type; typedef v_iter<V, mpl::int_<34 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<35> > { typedef typename V::item35 type; typedef v_iter<V, mpl::int_<35 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<36> > { typedef typename V::item36 type; typedef v_iter<V, mpl::int_<36 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<37> > { typedef typename V::item37 type; typedef v_iter<V, mpl::int_<37 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<38> > { typedef typename V::item38 type; typedef v_iter<V, mpl::int_<38 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<39> > { typedef typename V::item39 type; typedef v_iter<V, mpl::int_<39 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<40> > { typedef typename V::item40 type; typedef v_iter<V, mpl::int_<40 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<41> > { typedef typename V::item41 type; typedef v_iter<V, mpl::int_<41 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<42> > { typedef typename V::item42 type; typedef v_iter<V, mpl::int_<42 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<43> > { typedef typename V::item43 type; typedef v_iter<V, mpl::int_<43 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<44> > { typedef typename V::item44 type; typedef v_iter<V, mpl::int_<44 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<45> > { typedef typename V::item45 type; typedef v_iter<V, mpl::int_<45 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<46> > { typedef typename V::item46 type; typedef v_iter<V, mpl::int_<46 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<47> > { typedef typename V::item47 type; typedef v_iter<V, mpl::int_<47 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<48> > { typedef typename V::item48 type; typedef v_iter<V, mpl::int_<48 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<49> > { typedef typename V::item49 type; typedef v_iter<V, mpl::int_<49 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<50> > { typedef typename V::item50 type; typedef v_iter<V, mpl::int_<50 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<51> > { typedef typename V::item51 type; typedef v_iter<V, mpl::int_<51 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<52> > { typedef typename V::item52 type; typedef v_iter<V, mpl::int_<52 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<53> > { typedef typename V::item53 type; typedef v_iter<V, mpl::int_<53 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<54> > { typedef typename V::item54 type; typedef v_iter<V, mpl::int_<54 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<55> > { typedef typename V::item55 type; typedef v_iter<V, mpl::int_<55 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<56> > { typedef typename V::item56 type; typedef v_iter<V, mpl::int_<56 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<57> > { typedef typename V::item57 type; typedef v_iter<V, mpl::int_<57 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<58> > { typedef typename V::item58 type; typedef v_iter<V, mpl::int_<58 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<59> > { typedef typename V::item59 type; typedef v_iter<V, mpl::int_<59 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<60> > { typedef typename V::item60 type; typedef v_iter<V, mpl::int_<60 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<61> > { typedef typename V::item61 type; typedef v_iter<V, mpl::int_<61 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<62> > { typedef typename V::item62 type; typedef v_iter<V, mpl::int_<62 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<63> > { typedef typename V::item63 type; typedef v_iter<V, mpl::int_<63 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<64> > { typedef typename V::item64 type; typedef v_iter<V, mpl::int_<64 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<65> > { typedef typename V::item65 type; typedef v_iter<V, mpl::int_<65 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<66> > { typedef typename V::item66 type; typedef v_iter<V, mpl::int_<66 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<67> > { typedef typename V::item67 type; typedef v_iter<V, mpl::int_<67 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<68> > { typedef typename V::item68 type; typedef v_iter<V, mpl::int_<68 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<69> > { typedef typename V::item69 type; typedef v_iter<V, mpl::int_<69 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<70> > { typedef typename V::item70 type; typedef v_iter<V, mpl::int_<70 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<71> > { typedef typename V::item71 type; typedef v_iter<V, mpl::int_<71 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<72> > { typedef typename V::item72 type; typedef v_iter<V, mpl::int_<72 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<73> > { typedef typename V::item73 type; typedef v_iter<V, mpl::int_<73 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<74> > { typedef typename V::item74 type; typedef v_iter<V, mpl::int_<74 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<75> > { typedef typename V::item75 type; typedef v_iter<V, mpl::int_<75 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<76> > { typedef typename V::item76 type; typedef v_iter<V, mpl::int_<76 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<77> > { typedef typename V::item77 type; typedef v_iter<V, mpl::int_<77 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<78> > { typedef typename V::item78 type; typedef v_iter<V, mpl::int_<78 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<79> > { typedef typename V::item79 type; typedef v_iter<V, mpl::int_<79 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<80> > { typedef typename V::item80 type; typedef v_iter<V, mpl::int_<80 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<81> > { typedef typename V::item81 type; typedef v_iter<V, mpl::int_<81 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<82> > { typedef typename V::item82 type; typedef v_iter<V, mpl::int_<82 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<83> > { typedef typename V::item83 type; typedef v_iter<V, mpl::int_<83 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<84> > { typedef typename V::item84 type; typedef v_iter<V, mpl::int_<84 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<85> > { typedef typename V::item85 type; typedef v_iter<V, mpl::int_<85 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<86> > { typedef typename V::item86 type; typedef v_iter<V, mpl::int_<86 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<87> > { typedef typename V::item87 type; typedef v_iter<V, mpl::int_<87 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<88> > { typedef typename V::item88 type; typedef v_iter<V, mpl::int_<88 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<89> > { typedef typename V::item89 type; typedef v_iter<V, mpl::int_<89 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<90> > { typedef typename V::item90 type; typedef v_iter<V, mpl::int_<90 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<91> > { typedef typename V::item91 type; typedef v_iter<V, mpl::int_<91 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<92> > { typedef typename V::item92 type; typedef v_iter<V, mpl::int_<92 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<93> > { typedef typename V::item93 type; typedef v_iter<V, mpl::int_<93 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<94> > { typedef typename V::item94 type; typedef v_iter<V, mpl::int_<94 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<95> > { typedef typename V::item95 type; typedef v_iter<V, mpl::int_<95 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<96> > { typedef typename V::item96 type; typedef v_iter<V, mpl::int_<96 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<97> > { typedef typename V::item97 type; typedef v_iter<V, mpl::int_<97 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<98> > { typedef typename V::item98 type; typedef v_iter<V, mpl::int_<98 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<99> > { typedef typename V::item99 type; typedef v_iter<V, mpl::int_<99 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<100> > { typedef typename V::item100 type; typedef v_iter<V, mpl::int_<100 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<101> > { typedef typename V::item101 type; typedef v_iter<V, mpl::int_<101 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<102> > { typedef typename V::item102 type; typedef v_iter<V, mpl::int_<102 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<103> > { typedef typename V::item103 type; typedef v_iter<V, mpl::int_<103 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<104> > { typedef typename V::item104 type; typedef v_iter<V, mpl::int_<104 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<105> > { typedef typename V::item105 type; typedef v_iter<V, mpl::int_<105 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<106> > { typedef typename V::item106 type; typedef v_iter<V, mpl::int_<106 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<107> > { typedef typename V::item107 type; typedef v_iter<V, mpl::int_<107 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<108> > { typedef typename V::item108 type; typedef v_iter<V, mpl::int_<108 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<109> > { typedef typename V::item109 type; typedef v_iter<V, mpl::int_<109 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<110> > { typedef typename V::item110 type; typedef v_iter<V, mpl::int_<110 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<111> > { typedef typename V::item111 type; typedef v_iter<V, mpl::int_<111 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<112> > { typedef typename V::item112 type; typedef v_iter<V, mpl::int_<112 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<113> > { typedef typename V::item113 type; typedef v_iter<V, mpl::int_<113 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<114> > { typedef typename V::item114 type; typedef v_iter<V, mpl::int_<114 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<115> > { typedef typename V::item115 type; typedef v_iter<V, mpl::int_<115 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<116> > { typedef typename V::item116 type; typedef v_iter<V, mpl::int_<116 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<117> > { typedef typename V::item117 type; typedef v_iter<V, mpl::int_<117 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<118> > { typedef typename V::item118 type; typedef v_iter<V, mpl::int_<118 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<119> > { typedef typename V::item119 type; typedef v_iter<V, mpl::int_<119 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<120> > { typedef typename V::item120 type; typedef v_iter<V, mpl::int_<120 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<121> > { typedef typename V::item121 type; typedef v_iter<V, mpl::int_<121 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<122> > { typedef typename V::item122 type; typedef v_iter<V, mpl::int_<122 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<123> > { typedef typename V::item123 type; typedef v_iter<V, mpl::int_<123 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<124> > { typedef typename V::item124 type; typedef v_iter<V, mpl::int_<124 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<125> > { typedef typename V::item125 type; typedef v_iter<V, mpl::int_<125 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<126> > { typedef typename V::item126 type; typedef v_iter<V, mpl::int_<126 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<127> > { typedef typename V::item127 type; typedef v_iter<V, mpl::int_<127 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<128> > { typedef typename V::item128 type; typedef v_iter<V, mpl::int_<128 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<129> > { typedef typename V::item129 type; typedef v_iter<V, mpl::int_<129 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<130> > { typedef typename V::item130 type; typedef v_iter<V, mpl::int_<130 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<131> > { typedef typename V::item131 type; typedef v_iter<V, mpl::int_<131 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<132> > { typedef typename V::item132 type; typedef v_iter<V, mpl::int_<132 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<133> > { typedef typename V::item133 type; typedef v_iter<V, mpl::int_<133 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<134> > { typedef typename V::item134 type; typedef v_iter<V, mpl::int_<134 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<135> > { typedef typename V::item135 type; typedef v_iter<V, mpl::int_<135 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<136> > { typedef typename V::item136 type; typedef v_iter<V, mpl::int_<136 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<137> > { typedef typename V::item137 type; typedef v_iter<V, mpl::int_<137 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<138> > { typedef typename V::item138 type; typedef v_iter<V, mpl::int_<138 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<139> > { typedef typename V::item139 type; typedef v_iter<V, mpl::int_<139 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<140> > { typedef typename V::item140 type; typedef v_iter<V, mpl::int_<140 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<141> > { typedef typename V::item141 type; typedef v_iter<V, mpl::int_<141 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<142> > { typedef typename V::item142 type; typedef v_iter<V, mpl::int_<142 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<143> > { typedef typename V::item143 type; typedef v_iter<V, mpl::int_<143 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<144> > { typedef typename V::item144 type; typedef v_iter<V, mpl::int_<144 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<145> > { typedef typename V::item145 type; typedef v_iter<V, mpl::int_<145 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<146> > { typedef typename V::item146 type; typedef v_iter<V, mpl::int_<146 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<147> > { typedef typename V::item147 type; typedef v_iter<V, mpl::int_<147 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<148> > { typedef typename V::item148 type; typedef v_iter<V, mpl::int_<148 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<149> > { typedef typename V::item149 type; typedef v_iter<V, mpl::int_<149 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<150> > { typedef typename V::item150 type; typedef v_iter<V, mpl::int_<150 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<151> > { typedef typename V::item151 type; typedef v_iter<V, mpl::int_<151 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<152> > { typedef typename V::item152 type; typedef v_iter<V, mpl::int_<152 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<153> > { typedef typename V::item153 type; typedef v_iter<V, mpl::int_<153 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<154> > { typedef typename V::item154 type; typedef v_iter<V, mpl::int_<154 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<155> > { typedef typename V::item155 type; typedef v_iter<V, mpl::int_<155 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<156> > { typedef typename V::item156 type; typedef v_iter<V, mpl::int_<156 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<157> > { typedef typename V::item157 type; typedef v_iter<V, mpl::int_<157 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<158> > { typedef typename V::item158 type; typedef v_iter<V, mpl::int_<158 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<159> > { typedef typename V::item159 type; typedef v_iter<V, mpl::int_<159 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<160> > { typedef typename V::item160 type; typedef v_iter<V, mpl::int_<160 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<161> > { typedef typename V::item161 type; typedef v_iter<V, mpl::int_<161 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<162> > { typedef typename V::item162 type; typedef v_iter<V, mpl::int_<162 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<163> > { typedef typename V::item163 type; typedef v_iter<V, mpl::int_<163 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<164> > { typedef typename V::item164 type; typedef v_iter<V, mpl::int_<164 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<165> > { typedef typename V::item165 type; typedef v_iter<V, mpl::int_<165 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<166> > { typedef typename V::item166 type; typedef v_iter<V, mpl::int_<166 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<167> > { typedef typename V::item167 type; typedef v_iter<V, mpl::int_<167 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<168> > { typedef typename V::item168 type; typedef v_iter<V, mpl::int_<168 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<169> > { typedef typename V::item169 type; typedef v_iter<V, mpl::int_<169 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<170> > { typedef typename V::item170 type; typedef v_iter<V, mpl::int_<170 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<171> > { typedef typename V::item171 type; typedef v_iter<V, mpl::int_<171 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<172> > { typedef typename V::item172 type; typedef v_iter<V, mpl::int_<172 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<173> > { typedef typename V::item173 type; typedef v_iter<V, mpl::int_<173 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<174> > { typedef typename V::item174 type; typedef v_iter<V, mpl::int_<174 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<175> > { typedef typename V::item175 type; typedef v_iter<V, mpl::int_<175 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<176> > { typedef typename V::item176 type; typedef v_iter<V, mpl::int_<176 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<177> > { typedef typename V::item177 type; typedef v_iter<V, mpl::int_<177 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<178> > { typedef typename V::item178 type; typedef v_iter<V, mpl::int_<178 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<179> > { typedef typename V::item179 type; typedef v_iter<V, mpl::int_<179 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<180> > { typedef typename V::item180 type; typedef v_iter<V, mpl::int_<180 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<181> > { typedef typename V::item181 type; typedef v_iter<V, mpl::int_<181 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<182> > { typedef typename V::item182 type; typedef v_iter<V, mpl::int_<182 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<183> > { typedef typename V::item183 type; typedef v_iter<V, mpl::int_<183 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<184> > { typedef typename V::item184 type; typedef v_iter<V, mpl::int_<184 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<185> > { typedef typename V::item185 type; typedef v_iter<V, mpl::int_<185 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<186> > { typedef typename V::item186 type; typedef v_iter<V, mpl::int_<186 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<187> > { typedef typename V::item187 type; typedef v_iter<V, mpl::int_<187 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<188> > { typedef typename V::item188 type; typedef v_iter<V, mpl::int_<188 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<189> > { typedef typename V::item189 type; typedef v_iter<V, mpl::int_<189 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<190> > { typedef typename V::item190 type; typedef v_iter<V, mpl::int_<190 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<191> > { typedef typename V::item191 type; typedef v_iter<V, mpl::int_<191 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<192> > { typedef typename V::item192 type; typedef v_iter<V, mpl::int_<192 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<193> > { typedef typename V::item193 type; typedef v_iter<V, mpl::int_<193 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<194> > { typedef typename V::item194 type; typedef v_iter<V, mpl::int_<194 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<195> > { typedef typename V::item195 type; typedef v_iter<V, mpl::int_<195 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<196> > { typedef typename V::item196 type; typedef v_iter<V, mpl::int_<196 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<197> > { typedef typename V::item197 type; typedef v_iter<V, mpl::int_<197 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<198> > { typedef typename V::item198 type; typedef v_iter<V, mpl::int_<198 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<199> > { typedef typename V::item199 type; typedef v_iter<V, mpl::int_<199 + 1> > next; };
-}}
-namespace ndnboost { namespace type_of {
-        template< class T = void> struct vector0 { typedef v_iter<vector0<>, ndnboost::mpl::int_<0> > begin; typedef mpl::int_<1> item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 > struct vector1 { typedef v_iter<vector1< P0>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 > struct vector2 { typedef v_iter<vector2< P0 , P1>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 > struct vector3 { typedef v_iter<vector3< P0 , P1 , P2>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 > struct vector4 { typedef v_iter<vector4< P0 , P1 , P2 , P3>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 > struct vector5 { typedef v_iter<vector5< P0 , P1 , P2 , P3 , P4>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 > struct vector6 { typedef v_iter<vector6< P0 , P1 , P2 , P3 , P4 , P5>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > struct vector7 { typedef v_iter<vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > struct vector8 { typedef v_iter<vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > struct vector9 { typedef v_iter<vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 > struct vector10 { typedef v_iter<vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 > struct vector11 { typedef v_iter<vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 > struct vector12 { typedef v_iter<vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 > struct vector13 { typedef v_iter<vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 > struct vector14 { typedef v_iter<vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 > struct vector15 { typedef v_iter<vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 > struct vector16 { typedef v_iter<vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 > struct vector17 { typedef v_iter<vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 > struct vector18 { typedef v_iter<vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 > struct vector19 { typedef v_iter<vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 > struct vector20 { typedef v_iter<vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 > struct vector21 { typedef v_iter<vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 > struct vector22 { typedef v_iter<vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 > struct vector23 { typedef v_iter<vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 > struct vector24 { typedef v_iter<vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 > struct vector25 { typedef v_iter<vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 > struct vector26 { typedef v_iter<vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 > struct vector27 { typedef v_iter<vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 > struct vector28 { typedef v_iter<vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 > struct vector29 { typedef v_iter<vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 > struct vector30 { typedef v_iter<vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 > struct vector31 { typedef v_iter<vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 > struct vector32 { typedef v_iter<vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 > struct vector33 { typedef v_iter<vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 > struct vector34 { typedef v_iter<vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 > struct vector35 { typedef v_iter<vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 > struct vector36 { typedef v_iter<vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 > struct vector37 { typedef v_iter<vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 > struct vector38 { typedef v_iter<vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 > struct vector39 { typedef v_iter<vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 > struct vector40 { typedef v_iter<vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 > struct vector41 { typedef v_iter<vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 > struct vector42 { typedef v_iter<vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 > struct vector43 { typedef v_iter<vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 > struct vector44 { typedef v_iter<vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 > struct vector45 { typedef v_iter<vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 > struct vector46 { typedef v_iter<vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 > struct vector47 { typedef v_iter<vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 > struct vector48 { typedef v_iter<vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 > struct vector49 { typedef v_iter<vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 > struct vector50 { typedef v_iter<vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 > struct vector51 { typedef v_iter<vector51< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 > struct vector52 { typedef v_iter<vector52< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 > struct vector53 { typedef v_iter<vector53< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 > struct vector54 { typedef v_iter<vector54< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 > struct vector55 { typedef v_iter<vector55< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 > struct vector56 { typedef v_iter<vector56< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 > struct vector57 { typedef v_iter<vector57< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 > struct vector58 { typedef v_iter<vector58< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 > struct vector59 { typedef v_iter<vector59< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 > struct vector60 { typedef v_iter<vector60< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 > struct vector61 { typedef v_iter<vector61< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 > struct vector62 { typedef v_iter<vector62< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 > struct vector63 { typedef v_iter<vector63< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 > struct vector64 { typedef v_iter<vector64< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 > struct vector65 { typedef v_iter<vector65< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 > struct vector66 { typedef v_iter<vector66< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 > struct vector67 { typedef v_iter<vector67< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 > struct vector68 { typedef v_iter<vector68< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 > struct vector69 { typedef v_iter<vector69< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 > struct vector70 { typedef v_iter<vector70< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 > struct vector71 { typedef v_iter<vector71< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 > struct vector72 { typedef v_iter<vector72< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 > struct vector73 { typedef v_iter<vector73< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 > struct vector74 { typedef v_iter<vector74< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 > struct vector75 { typedef v_iter<vector75< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 > struct vector76 { typedef v_iter<vector76< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 > struct vector77 { typedef v_iter<vector77< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 > struct vector78 { typedef v_iter<vector78< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 > struct vector79 { typedef v_iter<vector79< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 > struct vector80 { typedef v_iter<vector80< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 > struct vector81 { typedef v_iter<vector81< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 > struct vector82 { typedef v_iter<vector82< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 > struct vector83 { typedef v_iter<vector83< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 > struct vector84 { typedef v_iter<vector84< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 > struct vector85 { typedef v_iter<vector85< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 > struct vector86 { typedef v_iter<vector86< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 > struct vector87 { typedef v_iter<vector87< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 > struct vector88 { typedef v_iter<vector88< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 > struct vector89 { typedef v_iter<vector89< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 > struct vector90 { typedef v_iter<vector90< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 > struct vector91 { typedef v_iter<vector91< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 > struct vector92 { typedef v_iter<vector92< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 > struct vector93 { typedef v_iter<vector93< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 > struct vector94 { typedef v_iter<vector94< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 > struct vector95 { typedef v_iter<vector95< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 > struct vector96 { typedef v_iter<vector96< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 > struct vector97 { typedef v_iter<vector97< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 > struct vector98 { typedef v_iter<vector98< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 > struct vector99 { typedef v_iter<vector99< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef mpl::int_<1> item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 > struct vector100 { typedef v_iter<vector100< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef mpl::int_<1> item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 > struct vector101 { typedef v_iter<vector101< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef mpl::int_<1> item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 > struct vector102 { typedef v_iter<vector102< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef mpl::int_<1> item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 > struct vector103 { typedef v_iter<vector103< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef mpl::int_<1> item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 > struct vector104 { typedef v_iter<vector104< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef mpl::int_<1> item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 > struct vector105 { typedef v_iter<vector105< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef mpl::int_<1> item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 > struct vector106 { typedef v_iter<vector106< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef mpl::int_<1> item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 > struct vector107 { typedef v_iter<vector107< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef mpl::int_<1> item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 > struct vector108 { typedef v_iter<vector108< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef mpl::int_<1> item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 > struct vector109 { typedef v_iter<vector109< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef mpl::int_<1> item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 > struct vector110 { typedef v_iter<vector110< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef mpl::int_<1> item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 > struct vector111 { typedef v_iter<vector111< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef mpl::int_<1> item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 > struct vector112 { typedef v_iter<vector112< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef mpl::int_<1> item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 > struct vector113 { typedef v_iter<vector113< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef mpl::int_<1> item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 > struct vector114 { typedef v_iter<vector114< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef mpl::int_<1> item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 > struct vector115 { typedef v_iter<vector115< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef mpl::int_<1> item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 > struct vector116 { typedef v_iter<vector116< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef mpl::int_<1> item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 > struct vector117 { typedef v_iter<vector117< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef mpl::int_<1> item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 > struct vector118 { typedef v_iter<vector118< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef mpl::int_<1> item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 > struct vector119 { typedef v_iter<vector119< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef mpl::int_<1> item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 > struct vector120 { typedef v_iter<vector120< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef mpl::int_<1> item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 > struct vector121 { typedef v_iter<vector121< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef mpl::int_<1> item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 > struct vector122 { typedef v_iter<vector122< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef mpl::int_<1> item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 > struct vector123 { typedef v_iter<vector123< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef mpl::int_<1> item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 > struct vector124 { typedef v_iter<vector124< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef mpl::int_<1> item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 > struct vector125 { typedef v_iter<vector125< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef mpl::int_<1> item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 > struct vector126 { typedef v_iter<vector126< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef mpl::int_<1> item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 > struct vector127 { typedef v_iter<vector127< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef mpl::int_<1> item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 > struct vector128 { typedef v_iter<vector128< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef mpl::int_<1> item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 > struct vector129 { typedef v_iter<vector129< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef mpl::int_<1> item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 > struct vector130 { typedef v_iter<vector130< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef mpl::int_<1> item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 > struct vector131 { typedef v_iter<vector131< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef mpl::int_<1> item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 > struct vector132 { typedef v_iter<vector132< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef mpl::int_<1> item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 > struct vector133 { typedef v_iter<vector133< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef mpl::int_<1> item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 > struct vector134 { typedef v_iter<vector134< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef mpl::int_<1> item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 > struct vector135 { typedef v_iter<vector135< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef mpl::int_<1> item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 > struct vector136 { typedef v_iter<vector136< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef mpl::int_<1> item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 > struct vector137 { typedef v_iter<vector137< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef mpl::int_<1> item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 > struct vector138 { typedef v_iter<vector138< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef mpl::int_<1> item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 > struct vector139 { typedef v_iter<vector139< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef mpl::int_<1> item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 > struct vector140 { typedef v_iter<vector140< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef mpl::int_<1> item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 > struct vector141 { typedef v_iter<vector141< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef mpl::int_<1> item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 > struct vector142 { typedef v_iter<vector142< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef mpl::int_<1> item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 > struct vector143 { typedef v_iter<vector143< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef mpl::int_<1> item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 > struct vector144 { typedef v_iter<vector144< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef mpl::int_<1> item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 > struct vector145 { typedef v_iter<vector145< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef mpl::int_<1> item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 > struct vector146 { typedef v_iter<vector146< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef mpl::int_<1> item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 > struct vector147 { typedef v_iter<vector147< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef mpl::int_<1> item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 > struct vector148 { typedef v_iter<vector148< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef mpl::int_<1> item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 > struct vector149 { typedef v_iter<vector149< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef mpl::int_<1> item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 > struct vector150 { typedef v_iter<vector150< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef mpl::int_<1> item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 > struct vector151 { typedef v_iter<vector151< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef mpl::int_<1> item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 > struct vector152 { typedef v_iter<vector152< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef mpl::int_<1> item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 > struct vector153 { typedef v_iter<vector153< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef mpl::int_<1> item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 > struct vector154 { typedef v_iter<vector154< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef mpl::int_<1> item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 > struct vector155 { typedef v_iter<vector155< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef mpl::int_<1> item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 > struct vector156 { typedef v_iter<vector156< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef mpl::int_<1> item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 > struct vector157 { typedef v_iter<vector157< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef mpl::int_<1> item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 > struct vector158 { typedef v_iter<vector158< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef mpl::int_<1> item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 > struct vector159 { typedef v_iter<vector159< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef mpl::int_<1> item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 > struct vector160 { typedef v_iter<vector160< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef mpl::int_<1> item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 > struct vector161 { typedef v_iter<vector161< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef mpl::int_<1> item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 > struct vector162 { typedef v_iter<vector162< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef mpl::int_<1> item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 > struct vector163 { typedef v_iter<vector163< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef mpl::int_<1> item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 > struct vector164 { typedef v_iter<vector164< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef mpl::int_<1> item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 > struct vector165 { typedef v_iter<vector165< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef mpl::int_<1> item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 > struct vector166 { typedef v_iter<vector166< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef mpl::int_<1> item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 > struct vector167 { typedef v_iter<vector167< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef mpl::int_<1> item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 > struct vector168 { typedef v_iter<vector168< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef mpl::int_<1> item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 > struct vector169 { typedef v_iter<vector169< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef mpl::int_<1> item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 > struct vector170 { typedef v_iter<vector170< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef mpl::int_<1> item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 > struct vector171 { typedef v_iter<vector171< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef mpl::int_<1> item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 > struct vector172 { typedef v_iter<vector172< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef mpl::int_<1> item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 > struct vector173 { typedef v_iter<vector173< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef mpl::int_<1> item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 > struct vector174 { typedef v_iter<vector174< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef mpl::int_<1> item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 > struct vector175 { typedef v_iter<vector175< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef mpl::int_<1> item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 > struct vector176 { typedef v_iter<vector176< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef mpl::int_<1> item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 > struct vector177 { typedef v_iter<vector177< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef mpl::int_<1> item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 > struct vector178 { typedef v_iter<vector178< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef mpl::int_<1> item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 > struct vector179 { typedef v_iter<vector179< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef mpl::int_<1> item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 > struct vector180 { typedef v_iter<vector180< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef mpl::int_<1> item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 > struct vector181 { typedef v_iter<vector181< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef mpl::int_<1> item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 > struct vector182 { typedef v_iter<vector182< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef mpl::int_<1> item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 > struct vector183 { typedef v_iter<vector183< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef mpl::int_<1> item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 > struct vector184 { typedef v_iter<vector184< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef mpl::int_<1> item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 > struct vector185 { typedef v_iter<vector185< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef mpl::int_<1> item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 > struct vector186 { typedef v_iter<vector186< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef mpl::int_<1> item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 > struct vector187 { typedef v_iter<vector187< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef mpl::int_<1> item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 > struct vector188 { typedef v_iter<vector188< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef mpl::int_<1> item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 > struct vector189 { typedef v_iter<vector189< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef mpl::int_<1> item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 > struct vector190 { typedef v_iter<vector190< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef mpl::int_<1> item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 > struct vector191 { typedef v_iter<vector191< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef mpl::int_<1> item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 > struct vector192 { typedef v_iter<vector192< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef P191 item191; typedef mpl::int_<1> item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 > struct vector193 { typedef v_iter<vector193< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef P191 item191; typedef P192 item192; typedef mpl::int_<1> item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 > struct vector194 { typedef v_iter<vector194< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef P191 item191; typedef P192 item192; typedef P193 item193; typedef mpl::int_<1> item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 > struct vector195 { typedef v_iter<vector195< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef P191 item191; typedef P192 item192; typedef P193 item193; typedef P194 item194; typedef mpl::int_<1> item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class P195 > struct vector196 { typedef v_iter<vector196< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef P191 item191; typedef P192 item192; typedef P193 item193; typedef P194 item194; typedef P195 item195; typedef mpl::int_<1> item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class P195 , class P196 > struct vector197 { typedef v_iter<vector197< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef P191 item191; typedef P192 item192; typedef P193 item193; typedef P194 item194; typedef P195 item195; typedef P196 item196; typedef mpl::int_<1> item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class P195 , class P196 , class P197 > struct vector198 { typedef v_iter<vector198< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196 , P197>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef P191 item191; typedef P192 item192; typedef P193 item193; typedef P194 item194; typedef P195 item195; typedef P196 item196; typedef P197 item197; typedef mpl::int_<1> item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class P195 , class P196 , class P197 , class P198 > struct vector199 { typedef v_iter<vector199< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196 , P197 , P198>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef P191 item191; typedef P192 item192; typedef P193 item193; typedef P194 item194; typedef P195 item195; typedef P196 item196; typedef P197 item197; typedef P198 item198; typedef mpl::int_<1> item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class P195 , class P196 , class P197 , class P198 , class P199 > struct vector200 { typedef v_iter<vector200< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196 , P197 , P198 , P199>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef P50 item50; typedef P51 item51; typedef P52 item52; typedef P53 item53; typedef P54 item54; typedef P55 item55; typedef P56 item56; typedef P57 item57; typedef P58 item58; typedef P59 item59; typedef P60 item60; typedef P61 item61; typedef P62 item62; typedef P63 item63; typedef P64 item64; typedef P65 item65; typedef P66 item66; typedef P67 item67; typedef P68 item68; typedef P69 item69; typedef P70 item70; typedef P71 item71; typedef P72 item72; typedef P73 item73; typedef P74 item74; typedef P75 item75; typedef P76 item76; typedef P77 item77; typedef P78 item78; typedef P79 item79; typedef P80 item80; typedef P81 item81; typedef P82 item82; typedef P83 item83; typedef P84 item84; typedef P85 item85; typedef P86 item86; typedef P87 item87; typedef P88 item88; typedef P89 item89; typedef P90 item90; typedef P91 item91; typedef P92 item92; typedef P93 item93; typedef P94 item94; typedef P95 item95; typedef P96 item96; typedef P97 item97; typedef P98 item98; typedef P99 item99; typedef P100 item100; typedef P101 item101; typedef P102 item102; typedef P103 item103; typedef P104 item104; typedef P105 item105; typedef P106 item106; typedef P107 item107; typedef P108 item108; typedef P109 item109; typedef P110 item110; typedef P111 item111; typedef P112 item112; typedef P113 item113; typedef P114 item114; typedef P115 item115; typedef P116 item116; typedef P117 item117; typedef P118 item118; typedef P119 item119; typedef P120 item120; typedef P121 item121; typedef P122 item122; typedef P123 item123; typedef P124 item124; typedef P125 item125; typedef P126 item126; typedef P127 item127; typedef P128 item128; typedef P129 item129; typedef P130 item130; typedef P131 item131; typedef P132 item132; typedef P133 item133; typedef P134 item134; typedef P135 item135; typedef P136 item136; typedef P137 item137; typedef P138 item138; typedef P139 item139; typedef P140 item140; typedef P141 item141; typedef P142 item142; typedef P143 item143; typedef P144 item144; typedef P145 item145; typedef P146 item146; typedef P147 item147; typedef P148 item148; typedef P149 item149; typedef P150 item150; typedef P151 item151; typedef P152 item152; typedef P153 item153; typedef P154 item154; typedef P155 item155; typedef P156 item156; typedef P157 item157; typedef P158 item158; typedef P159 item159; typedef P160 item160; typedef P161 item161; typedef P162 item162; typedef P163 item163; typedef P164 item164; typedef P165 item165; typedef P166 item166; typedef P167 item167; typedef P168 item168; typedef P169 item169; typedef P170 item170; typedef P171 item171; typedef P172 item172; typedef P173 item173; typedef P174 item174; typedef P175 item175; typedef P176 item176; typedef P177 item177; typedef P178 item178; typedef P179 item179; typedef P180 item180; typedef P181 item181; typedef P182 item182; typedef P183 item183; typedef P184 item184; typedef P185 item185; typedef P186 item186; typedef P187 item187; typedef P188 item188; typedef P189 item189; typedef P190 item190; typedef P191 item191; typedef P192 item192; typedef P193 item193; typedef P194 item194; typedef P195 item195; typedef P196 item196; typedef P197 item197; typedef P198 item198; typedef P199 item199; typedef mpl::int_<1> item200; typedef mpl::int_<1> item201; typedef mpl::int_<1> item202; typedef mpl::int_<1> item203; typedef mpl::int_<1> item204; typedef mpl::int_<1> item205; typedef mpl::int_<1> item206; typedef mpl::int_<1> item207; typedef mpl::int_<1> item208; typedef mpl::int_<1> item209; typedef mpl::int_<1> item210; typedef mpl::int_<1> item211; typedef mpl::int_<1> item212; typedef mpl::int_<1> item213; typedef mpl::int_<1> item214; typedef mpl::int_<1> item215; typedef mpl::int_<1> item216; typedef mpl::int_<1> item217; typedef mpl::int_<1> item218; typedef mpl::int_<1> item219; typedef mpl::int_<1> item220; typedef mpl::int_<1> item221; typedef mpl::int_<1> item222; typedef mpl::int_<1> item223; typedef mpl::int_<1> item224; typedef mpl::int_<1> item225; typedef mpl::int_<1> item226; typedef mpl::int_<1> item227; typedef mpl::int_<1> item228; typedef mpl::int_<1> item229; typedef mpl::int_<1> item230; typedef mpl::int_<1> item231; typedef mpl::int_<1> item232; typedef mpl::int_<1> item233; typedef mpl::int_<1> item234; typedef mpl::int_<1> item235; typedef mpl::int_<1> item236; typedef mpl::int_<1> item237; typedef mpl::int_<1> item238; typedef mpl::int_<1> item239; typedef mpl::int_<1> item240; typedef mpl::int_<1> item241; typedef mpl::int_<1> item242; typedef mpl::int_<1> item243; typedef mpl::int_<1> item244; typedef mpl::int_<1> item245; typedef mpl::int_<1> item246; typedef mpl::int_<1> item247; typedef mpl::int_<1> item248; typedef mpl::int_<1> item249; };
-}}
-namespace ndnboost { namespace type_of {
-    template<class V, class T> struct push_back {
-        typedef V type;
-    };
-        template< class T> struct push_back<ndnboost::type_of::vector0<>, T> { typedef ndnboost::type_of::vector1< T > type; };
-        template< class P0 , class T> struct push_back<ndnboost::type_of::vector1< P0>, T> { typedef ndnboost::type_of::vector2< P0 , T > type; };
-        template< class P0 , class P1 , class T> struct push_back<ndnboost::type_of::vector2< P0 , P1>, T> { typedef ndnboost::type_of::vector3< P0 , P1 , T > type; };
-        template< class P0 , class P1 , class P2 , class T> struct push_back<ndnboost::type_of::vector3< P0 , P1 , P2>, T> { typedef ndnboost::type_of::vector4< P0 , P1 , P2 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class T> struct push_back<ndnboost::type_of::vector4< P0 , P1 , P2 , P3>, T> { typedef ndnboost::type_of::vector5< P0 , P1 , P2 , P3 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class T> struct push_back<ndnboost::type_of::vector5< P0 , P1 , P2 , P3 , P4>, T> { typedef ndnboost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class T> struct push_back<ndnboost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , P5>, T> { typedef ndnboost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class T> struct push_back<ndnboost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, T> { typedef ndnboost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class T> struct push_back<ndnboost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, T> { typedef ndnboost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class T> struct push_back<ndnboost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, T> { typedef ndnboost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class T> struct push_back<ndnboost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, T> { typedef ndnboost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class T> struct push_back<ndnboost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, T> { typedef ndnboost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class T> struct push_back<ndnboost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, T> { typedef ndnboost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class T> struct push_back<ndnboost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, T> { typedef ndnboost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class T> struct push_back<ndnboost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, T> { typedef ndnboost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class T> struct push_back<ndnboost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, T> { typedef ndnboost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class T> struct push_back<ndnboost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, T> { typedef ndnboost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class T> struct push_back<ndnboost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, T> { typedef ndnboost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class T> struct push_back<ndnboost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, T> { typedef ndnboost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class T> struct push_back<ndnboost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, T> { typedef ndnboost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class T> struct push_back<ndnboost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, T> { typedef ndnboost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class T> struct push_back<ndnboost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, T> { typedef ndnboost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class T> struct push_back<ndnboost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, T> { typedef ndnboost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class T> struct push_back<ndnboost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, T> { typedef ndnboost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class T> struct push_back<ndnboost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, T> { typedef ndnboost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class T> struct push_back<ndnboost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, T> { typedef ndnboost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class T> struct push_back<ndnboost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25>, T> { typedef ndnboost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class T> struct push_back<ndnboost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26>, T> { typedef ndnboost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class T> struct push_back<ndnboost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27>, T> { typedef ndnboost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class T> struct push_back<ndnboost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28>, T> { typedef ndnboost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class T> struct push_back<ndnboost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29>, T> { typedef ndnboost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class T> struct push_back<ndnboost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30>, T> { typedef ndnboost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class T> struct push_back<ndnboost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31>, T> { typedef ndnboost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class T> struct push_back<ndnboost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32>, T> { typedef ndnboost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class T> struct push_back<ndnboost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33>, T> { typedef ndnboost::type_of::vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class T> struct push_back<ndnboost::type_of::vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34>, T> { typedef ndnboost::type_of::vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class T> struct push_back<ndnboost::type_of::vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35>, T> { typedef ndnboost::type_of::vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class T> struct push_back<ndnboost::type_of::vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36>, T> { typedef ndnboost::type_of::vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class T> struct push_back<ndnboost::type_of::vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37>, T> { typedef ndnboost::type_of::vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class T> struct push_back<ndnboost::type_of::vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38>, T> { typedef ndnboost::type_of::vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class T> struct push_back<ndnboost::type_of::vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39>, T> { typedef ndnboost::type_of::vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class T> struct push_back<ndnboost::type_of::vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40>, T> { typedef ndnboost::type_of::vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class T> struct push_back<ndnboost::type_of::vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41>, T> { typedef ndnboost::type_of::vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class T> struct push_back<ndnboost::type_of::vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42>, T> { typedef ndnboost::type_of::vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class T> struct push_back<ndnboost::type_of::vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43>, T> { typedef ndnboost::type_of::vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class T> struct push_back<ndnboost::type_of::vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44>, T> { typedef ndnboost::type_of::vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class T> struct push_back<ndnboost::type_of::vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45>, T> { typedef ndnboost::type_of::vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class T> struct push_back<ndnboost::type_of::vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46>, T> { typedef ndnboost::type_of::vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class T> struct push_back<ndnboost::type_of::vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47>, T> { typedef ndnboost::type_of::vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class T> struct push_back<ndnboost::type_of::vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48>, T> { typedef ndnboost::type_of::vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class T> struct push_back<ndnboost::type_of::vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49>, T> { typedef ndnboost::type_of::vector51< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class T> struct push_back<ndnboost::type_of::vector51< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50>, T> { typedef ndnboost::type_of::vector52< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class T> struct push_back<ndnboost::type_of::vector52< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51>, T> { typedef ndnboost::type_of::vector53< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class T> struct push_back<ndnboost::type_of::vector53< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52>, T> { typedef ndnboost::type_of::vector54< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class T> struct push_back<ndnboost::type_of::vector54< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53>, T> { typedef ndnboost::type_of::vector55< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class T> struct push_back<ndnboost::type_of::vector55< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54>, T> { typedef ndnboost::type_of::vector56< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class T> struct push_back<ndnboost::type_of::vector56< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55>, T> { typedef ndnboost::type_of::vector57< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class T> struct push_back<ndnboost::type_of::vector57< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56>, T> { typedef ndnboost::type_of::vector58< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class T> struct push_back<ndnboost::type_of::vector58< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57>, T> { typedef ndnboost::type_of::vector59< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class T> struct push_back<ndnboost::type_of::vector59< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58>, T> { typedef ndnboost::type_of::vector60< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class T> struct push_back<ndnboost::type_of::vector60< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59>, T> { typedef ndnboost::type_of::vector61< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class T> struct push_back<ndnboost::type_of::vector61< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60>, T> { typedef ndnboost::type_of::vector62< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class T> struct push_back<ndnboost::type_of::vector62< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61>, T> { typedef ndnboost::type_of::vector63< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class T> struct push_back<ndnboost::type_of::vector63< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62>, T> { typedef ndnboost::type_of::vector64< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class T> struct push_back<ndnboost::type_of::vector64< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63>, T> { typedef ndnboost::type_of::vector65< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class T> struct push_back<ndnboost::type_of::vector65< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64>, T> { typedef ndnboost::type_of::vector66< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class T> struct push_back<ndnboost::type_of::vector66< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65>, T> { typedef ndnboost::type_of::vector67< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class T> struct push_back<ndnboost::type_of::vector67< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66>, T> { typedef ndnboost::type_of::vector68< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class T> struct push_back<ndnboost::type_of::vector68< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67>, T> { typedef ndnboost::type_of::vector69< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class T> struct push_back<ndnboost::type_of::vector69< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68>, T> { typedef ndnboost::type_of::vector70< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class T> struct push_back<ndnboost::type_of::vector70< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69>, T> { typedef ndnboost::type_of::vector71< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class T> struct push_back<ndnboost::type_of::vector71< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70>, T> { typedef ndnboost::type_of::vector72< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class T> struct push_back<ndnboost::type_of::vector72< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71>, T> { typedef ndnboost::type_of::vector73< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class T> struct push_back<ndnboost::type_of::vector73< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72>, T> { typedef ndnboost::type_of::vector74< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class T> struct push_back<ndnboost::type_of::vector74< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73>, T> { typedef ndnboost::type_of::vector75< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class T> struct push_back<ndnboost::type_of::vector75< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74>, T> { typedef ndnboost::type_of::vector76< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class T> struct push_back<ndnboost::type_of::vector76< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75>, T> { typedef ndnboost::type_of::vector77< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class T> struct push_back<ndnboost::type_of::vector77< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76>, T> { typedef ndnboost::type_of::vector78< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class T> struct push_back<ndnboost::type_of::vector78< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77>, T> { typedef ndnboost::type_of::vector79< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class T> struct push_back<ndnboost::type_of::vector79< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78>, T> { typedef ndnboost::type_of::vector80< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class T> struct push_back<ndnboost::type_of::vector80< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79>, T> { typedef ndnboost::type_of::vector81< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class T> struct push_back<ndnboost::type_of::vector81< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80>, T> { typedef ndnboost::type_of::vector82< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class T> struct push_back<ndnboost::type_of::vector82< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81>, T> { typedef ndnboost::type_of::vector83< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class T> struct push_back<ndnboost::type_of::vector83< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82>, T> { typedef ndnboost::type_of::vector84< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class T> struct push_back<ndnboost::type_of::vector84< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83>, T> { typedef ndnboost::type_of::vector85< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class T> struct push_back<ndnboost::type_of::vector85< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84>, T> { typedef ndnboost::type_of::vector86< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class T> struct push_back<ndnboost::type_of::vector86< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85>, T> { typedef ndnboost::type_of::vector87< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class T> struct push_back<ndnboost::type_of::vector87< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86>, T> { typedef ndnboost::type_of::vector88< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class T> struct push_back<ndnboost::type_of::vector88< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87>, T> { typedef ndnboost::type_of::vector89< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class T> struct push_back<ndnboost::type_of::vector89< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88>, T> { typedef ndnboost::type_of::vector90< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class T> struct push_back<ndnboost::type_of::vector90< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89>, T> { typedef ndnboost::type_of::vector91< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class T> struct push_back<ndnboost::type_of::vector91< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90>, T> { typedef ndnboost::type_of::vector92< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class T> struct push_back<ndnboost::type_of::vector92< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91>, T> { typedef ndnboost::type_of::vector93< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class T> struct push_back<ndnboost::type_of::vector93< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92>, T> { typedef ndnboost::type_of::vector94< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class T> struct push_back<ndnboost::type_of::vector94< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93>, T> { typedef ndnboost::type_of::vector95< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class T> struct push_back<ndnboost::type_of::vector95< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94>, T> { typedef ndnboost::type_of::vector96< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class T> struct push_back<ndnboost::type_of::vector96< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95>, T> { typedef ndnboost::type_of::vector97< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class T> struct push_back<ndnboost::type_of::vector97< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96>, T> { typedef ndnboost::type_of::vector98< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class T> struct push_back<ndnboost::type_of::vector98< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97>, T> { typedef ndnboost::type_of::vector99< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class T> struct push_back<ndnboost::type_of::vector99< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98>, T> { typedef ndnboost::type_of::vector100< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class T> struct push_back<ndnboost::type_of::vector100< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99>, T> { typedef ndnboost::type_of::vector101< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class T> struct push_back<ndnboost::type_of::vector101< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100>, T> { typedef ndnboost::type_of::vector102< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class T> struct push_back<ndnboost::type_of::vector102< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101>, T> { typedef ndnboost::type_of::vector103< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class T> struct push_back<ndnboost::type_of::vector103< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102>, T> { typedef ndnboost::type_of::vector104< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class T> struct push_back<ndnboost::type_of::vector104< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103>, T> { typedef ndnboost::type_of::vector105< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class T> struct push_back<ndnboost::type_of::vector105< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104>, T> { typedef ndnboost::type_of::vector106< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class T> struct push_back<ndnboost::type_of::vector106< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105>, T> { typedef ndnboost::type_of::vector107< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class T> struct push_back<ndnboost::type_of::vector107< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106>, T> { typedef ndnboost::type_of::vector108< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class T> struct push_back<ndnboost::type_of::vector108< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107>, T> { typedef ndnboost::type_of::vector109< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class T> struct push_back<ndnboost::type_of::vector109< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108>, T> { typedef ndnboost::type_of::vector110< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class T> struct push_back<ndnboost::type_of::vector110< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109>, T> { typedef ndnboost::type_of::vector111< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class T> struct push_back<ndnboost::type_of::vector111< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110>, T> { typedef ndnboost::type_of::vector112< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class T> struct push_back<ndnboost::type_of::vector112< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111>, T> { typedef ndnboost::type_of::vector113< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class T> struct push_back<ndnboost::type_of::vector113< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112>, T> { typedef ndnboost::type_of::vector114< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class T> struct push_back<ndnboost::type_of::vector114< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113>, T> { typedef ndnboost::type_of::vector115< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class T> struct push_back<ndnboost::type_of::vector115< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114>, T> { typedef ndnboost::type_of::vector116< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class T> struct push_back<ndnboost::type_of::vector116< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115>, T> { typedef ndnboost::type_of::vector117< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class T> struct push_back<ndnboost::type_of::vector117< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116>, T> { typedef ndnboost::type_of::vector118< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class T> struct push_back<ndnboost::type_of::vector118< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117>, T> { typedef ndnboost::type_of::vector119< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class T> struct push_back<ndnboost::type_of::vector119< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118>, T> { typedef ndnboost::type_of::vector120< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class T> struct push_back<ndnboost::type_of::vector120< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119>, T> { typedef ndnboost::type_of::vector121< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class T> struct push_back<ndnboost::type_of::vector121< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120>, T> { typedef ndnboost::type_of::vector122< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class T> struct push_back<ndnboost::type_of::vector122< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121>, T> { typedef ndnboost::type_of::vector123< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class T> struct push_back<ndnboost::type_of::vector123< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122>, T> { typedef ndnboost::type_of::vector124< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class T> struct push_back<ndnboost::type_of::vector124< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123>, T> { typedef ndnboost::type_of::vector125< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class T> struct push_back<ndnboost::type_of::vector125< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124>, T> { typedef ndnboost::type_of::vector126< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class T> struct push_back<ndnboost::type_of::vector126< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125>, T> { typedef ndnboost::type_of::vector127< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class T> struct push_back<ndnboost::type_of::vector127< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126>, T> { typedef ndnboost::type_of::vector128< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class T> struct push_back<ndnboost::type_of::vector128< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127>, T> { typedef ndnboost::type_of::vector129< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class T> struct push_back<ndnboost::type_of::vector129< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128>, T> { typedef ndnboost::type_of::vector130< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class T> struct push_back<ndnboost::type_of::vector130< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129>, T> { typedef ndnboost::type_of::vector131< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class T> struct push_back<ndnboost::type_of::vector131< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130>, T> { typedef ndnboost::type_of::vector132< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class T> struct push_back<ndnboost::type_of::vector132< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131>, T> { typedef ndnboost::type_of::vector133< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class T> struct push_back<ndnboost::type_of::vector133< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132>, T> { typedef ndnboost::type_of::vector134< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class T> struct push_back<ndnboost::type_of::vector134< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133>, T> { typedef ndnboost::type_of::vector135< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class T> struct push_back<ndnboost::type_of::vector135< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134>, T> { typedef ndnboost::type_of::vector136< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class T> struct push_back<ndnboost::type_of::vector136< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135>, T> { typedef ndnboost::type_of::vector137< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class T> struct push_back<ndnboost::type_of::vector137< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136>, T> { typedef ndnboost::type_of::vector138< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class T> struct push_back<ndnboost::type_of::vector138< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137>, T> { typedef ndnboost::type_of::vector139< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class T> struct push_back<ndnboost::type_of::vector139< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138>, T> { typedef ndnboost::type_of::vector140< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class T> struct push_back<ndnboost::type_of::vector140< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139>, T> { typedef ndnboost::type_of::vector141< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class T> struct push_back<ndnboost::type_of::vector141< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140>, T> { typedef ndnboost::type_of::vector142< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class T> struct push_back<ndnboost::type_of::vector142< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141>, T> { typedef ndnboost::type_of::vector143< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class T> struct push_back<ndnboost::type_of::vector143< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142>, T> { typedef ndnboost::type_of::vector144< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class T> struct push_back<ndnboost::type_of::vector144< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143>, T> { typedef ndnboost::type_of::vector145< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class T> struct push_back<ndnboost::type_of::vector145< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144>, T> { typedef ndnboost::type_of::vector146< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class T> struct push_back<ndnboost::type_of::vector146< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145>, T> { typedef ndnboost::type_of::vector147< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class T> struct push_back<ndnboost::type_of::vector147< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146>, T> { typedef ndnboost::type_of::vector148< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class T> struct push_back<ndnboost::type_of::vector148< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147>, T> { typedef ndnboost::type_of::vector149< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class T> struct push_back<ndnboost::type_of::vector149< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148>, T> { typedef ndnboost::type_of::vector150< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class T> struct push_back<ndnboost::type_of::vector150< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149>, T> { typedef ndnboost::type_of::vector151< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class T> struct push_back<ndnboost::type_of::vector151< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150>, T> { typedef ndnboost::type_of::vector152< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class T> struct push_back<ndnboost::type_of::vector152< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151>, T> { typedef ndnboost::type_of::vector153< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class T> struct push_back<ndnboost::type_of::vector153< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152>, T> { typedef ndnboost::type_of::vector154< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class T> struct push_back<ndnboost::type_of::vector154< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153>, T> { typedef ndnboost::type_of::vector155< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class T> struct push_back<ndnboost::type_of::vector155< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154>, T> { typedef ndnboost::type_of::vector156< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class T> struct push_back<ndnboost::type_of::vector156< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155>, T> { typedef ndnboost::type_of::vector157< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class T> struct push_back<ndnboost::type_of::vector157< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156>, T> { typedef ndnboost::type_of::vector158< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class T> struct push_back<ndnboost::type_of::vector158< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157>, T> { typedef ndnboost::type_of::vector159< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class T> struct push_back<ndnboost::type_of::vector159< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158>, T> { typedef ndnboost::type_of::vector160< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class T> struct push_back<ndnboost::type_of::vector160< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159>, T> { typedef ndnboost::type_of::vector161< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class T> struct push_back<ndnboost::type_of::vector161< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160>, T> { typedef ndnboost::type_of::vector162< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class T> struct push_back<ndnboost::type_of::vector162< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161>, T> { typedef ndnboost::type_of::vector163< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class T> struct push_back<ndnboost::type_of::vector163< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162>, T> { typedef ndnboost::type_of::vector164< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class T> struct push_back<ndnboost::type_of::vector164< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163>, T> { typedef ndnboost::type_of::vector165< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class T> struct push_back<ndnboost::type_of::vector165< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164>, T> { typedef ndnboost::type_of::vector166< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class T> struct push_back<ndnboost::type_of::vector166< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165>, T> { typedef ndnboost::type_of::vector167< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class T> struct push_back<ndnboost::type_of::vector167< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166>, T> { typedef ndnboost::type_of::vector168< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class T> struct push_back<ndnboost::type_of::vector168< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167>, T> { typedef ndnboost::type_of::vector169< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class T> struct push_back<ndnboost::type_of::vector169< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168>, T> { typedef ndnboost::type_of::vector170< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class T> struct push_back<ndnboost::type_of::vector170< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169>, T> { typedef ndnboost::type_of::vector171< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class T> struct push_back<ndnboost::type_of::vector171< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170>, T> { typedef ndnboost::type_of::vector172< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class T> struct push_back<ndnboost::type_of::vector172< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171>, T> { typedef ndnboost::type_of::vector173< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class T> struct push_back<ndnboost::type_of::vector173< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172>, T> { typedef ndnboost::type_of::vector174< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class T> struct push_back<ndnboost::type_of::vector174< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173>, T> { typedef ndnboost::type_of::vector175< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class T> struct push_back<ndnboost::type_of::vector175< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174>, T> { typedef ndnboost::type_of::vector176< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class T> struct push_back<ndnboost::type_of::vector176< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175>, T> { typedef ndnboost::type_of::vector177< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class T> struct push_back<ndnboost::type_of::vector177< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176>, T> { typedef ndnboost::type_of::vector178< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class T> struct push_back<ndnboost::type_of::vector178< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177>, T> { typedef ndnboost::type_of::vector179< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class T> struct push_back<ndnboost::type_of::vector179< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178>, T> { typedef ndnboost::type_of::vector180< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class T> struct push_back<ndnboost::type_of::vector180< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179>, T> { typedef ndnboost::type_of::vector181< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class T> struct push_back<ndnboost::type_of::vector181< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180>, T> { typedef ndnboost::type_of::vector182< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class T> struct push_back<ndnboost::type_of::vector182< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181>, T> { typedef ndnboost::type_of::vector183< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class T> struct push_back<ndnboost::type_of::vector183< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182>, T> { typedef ndnboost::type_of::vector184< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class T> struct push_back<ndnboost::type_of::vector184< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183>, T> { typedef ndnboost::type_of::vector185< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class T> struct push_back<ndnboost::type_of::vector185< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184>, T> { typedef ndnboost::type_of::vector186< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class T> struct push_back<ndnboost::type_of::vector186< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185>, T> { typedef ndnboost::type_of::vector187< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class T> struct push_back<ndnboost::type_of::vector187< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186>, T> { typedef ndnboost::type_of::vector188< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class T> struct push_back<ndnboost::type_of::vector188< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187>, T> { typedef ndnboost::type_of::vector189< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class T> struct push_back<ndnboost::type_of::vector189< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188>, T> { typedef ndnboost::type_of::vector190< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class T> struct push_back<ndnboost::type_of::vector190< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189>, T> { typedef ndnboost::type_of::vector191< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class T> struct push_back<ndnboost::type_of::vector191< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190>, T> { typedef ndnboost::type_of::vector192< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class T> struct push_back<ndnboost::type_of::vector192< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191>, T> { typedef ndnboost::type_of::vector193< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class T> struct push_back<ndnboost::type_of::vector193< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192>, T> { typedef ndnboost::type_of::vector194< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class T> struct push_back<ndnboost::type_of::vector194< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193>, T> { typedef ndnboost::type_of::vector195< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class T> struct push_back<ndnboost::type_of::vector195< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194>, T> { typedef ndnboost::type_of::vector196< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class P195 , class T> struct push_back<ndnboost::type_of::vector196< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195>, T> { typedef ndnboost::type_of::vector197< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class P195 , class P196 , class T> struct push_back<ndnboost::type_of::vector197< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196>, T> { typedef ndnboost::type_of::vector198< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class P195 , class P196 , class P197 , class T> struct push_back<ndnboost::type_of::vector198< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196 , P197>, T> { typedef ndnboost::type_of::vector199< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196 , P197 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 , class P50 , class P51 , class P52 , class P53 , class P54 , class P55 , class P56 , class P57 , class P58 , class P59 , class P60 , class P61 , class P62 , class P63 , class P64 , class P65 , class P66 , class P67 , class P68 , class P69 , class P70 , class P71 , class P72 , class P73 , class P74 , class P75 , class P76 , class P77 , class P78 , class P79 , class P80 , class P81 , class P82 , class P83 , class P84 , class P85 , class P86 , class P87 , class P88 , class P89 , class P90 , class P91 , class P92 , class P93 , class P94 , class P95 , class P96 , class P97 , class P98 , class P99 , class P100 , class P101 , class P102 , class P103 , class P104 , class P105 , class P106 , class P107 , class P108 , class P109 , class P110 , class P111 , class P112 , class P113 , class P114 , class P115 , class P116 , class P117 , class P118 , class P119 , class P120 , class P121 , class P122 , class P123 , class P124 , class P125 , class P126 , class P127 , class P128 , class P129 , class P130 , class P131 , class P132 , class P133 , class P134 , class P135 , class P136 , class P137 , class P138 , class P139 , class P140 , class P141 , class P142 , class P143 , class P144 , class P145 , class P146 , class P147 , class P148 , class P149 , class P150 , class P151 , class P152 , class P153 , class P154 , class P155 , class P156 , class P157 , class P158 , class P159 , class P160 , class P161 , class P162 , class P163 , class P164 , class P165 , class P166 , class P167 , class P168 , class P169 , class P170 , class P171 , class P172 , class P173 , class P174 , class P175 , class P176 , class P177 , class P178 , class P179 , class P180 , class P181 , class P182 , class P183 , class P184 , class P185 , class P186 , class P187 , class P188 , class P189 , class P190 , class P191 , class P192 , class P193 , class P194 , class P195 , class P196 , class P197 , class P198 , class T> struct push_back<ndnboost::type_of::vector199< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196 , P197 , P198>, T> { typedef ndnboost::type_of::vector200< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49 , P50 , P51 , P52 , P53 , P54 , P55 , P56 , P57 , P58 , P59 , P60 , P61 , P62 , P63 , P64 , P65 , P66 , P67 , P68 , P69 , P70 , P71 , P72 , P73 , P74 , P75 , P76 , P77 , P78 , P79 , P80 , P81 , P82 , P83 , P84 , P85 , P86 , P87 , P88 , P89 , P90 , P91 , P92 , P93 , P94 , P95 , P96 , P97 , P98 , P99 , P100 , P101 , P102 , P103 , P104 , P105 , P106 , P107 , P108 , P109 , P110 , P111 , P112 , P113 , P114 , P115 , P116 , P117 , P118 , P119 , P120 , P121 , P122 , P123 , P124 , P125 , P126 , P127 , P128 , P129 , P130 , P131 , P132 , P133 , P134 , P135 , P136 , P137 , P138 , P139 , P140 , P141 , P142 , P143 , P144 , P145 , P146 , P147 , P148 , P149 , P150 , P151 , P152 , P153 , P154 , P155 , P156 , P157 , P158 , P159 , P160 , P161 , P162 , P163 , P164 , P165 , P166 , P167 , P168 , P169 , P170 , P171 , P172 , P173 , P174 , P175 , P176 , P177 , P178 , P179 , P180 , P181 , P182 , P183 , P184 , P185 , P186 , P187 , P188 , P189 , P190 , P191 , P192 , P193 , P194 , P195 , P196 , P197 , P198 , T > type; };
-}}
diff --git a/include/ndnboost/typeof/vector50.hpp b/include/ndnboost/typeof/vector50.hpp
deleted file mode 100644
index a041ce7..0000000
--- a/include/ndnboost/typeof/vector50.hpp
+++ /dev/null
@@ -1,171 +0,0 @@
-
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-// Preprocessed code, do not edit manually !
-
-
-namespace ndnboost { namespace type_of {
-    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; };
-        template<class V> struct v_iter<V, mpl::int_<3> > { typedef typename V::item3 type; typedef v_iter<V, mpl::int_<3 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<4> > { typedef typename V::item4 type; typedef v_iter<V, mpl::int_<4 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<5> > { typedef typename V::item5 type; typedef v_iter<V, mpl::int_<5 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<6> > { typedef typename V::item6 type; typedef v_iter<V, mpl::int_<6 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<7> > { typedef typename V::item7 type; typedef v_iter<V, mpl::int_<7 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<8> > { typedef typename V::item8 type; typedef v_iter<V, mpl::int_<8 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<9> > { typedef typename V::item9 type; typedef v_iter<V, mpl::int_<9 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<10> > { typedef typename V::item10 type; typedef v_iter<V, mpl::int_<10 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<11> > { typedef typename V::item11 type; typedef v_iter<V, mpl::int_<11 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<12> > { typedef typename V::item12 type; typedef v_iter<V, mpl::int_<12 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<13> > { typedef typename V::item13 type; typedef v_iter<V, mpl::int_<13 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<14> > { typedef typename V::item14 type; typedef v_iter<V, mpl::int_<14 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<15> > { typedef typename V::item15 type; typedef v_iter<V, mpl::int_<15 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<16> > { typedef typename V::item16 type; typedef v_iter<V, mpl::int_<16 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<17> > { typedef typename V::item17 type; typedef v_iter<V, mpl::int_<17 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<18> > { typedef typename V::item18 type; typedef v_iter<V, mpl::int_<18 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<19> > { typedef typename V::item19 type; typedef v_iter<V, mpl::int_<19 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<20> > { typedef typename V::item20 type; typedef v_iter<V, mpl::int_<20 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<21> > { typedef typename V::item21 type; typedef v_iter<V, mpl::int_<21 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<22> > { typedef typename V::item22 type; typedef v_iter<V, mpl::int_<22 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<23> > { typedef typename V::item23 type; typedef v_iter<V, mpl::int_<23 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<24> > { typedef typename V::item24 type; typedef v_iter<V, mpl::int_<24 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<25> > { typedef typename V::item25 type; typedef v_iter<V, mpl::int_<25 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<26> > { typedef typename V::item26 type; typedef v_iter<V, mpl::int_<26 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<27> > { typedef typename V::item27 type; typedef v_iter<V, mpl::int_<27 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<28> > { typedef typename V::item28 type; typedef v_iter<V, mpl::int_<28 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<29> > { typedef typename V::item29 type; typedef v_iter<V, mpl::int_<29 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<30> > { typedef typename V::item30 type; typedef v_iter<V, mpl::int_<30 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<31> > { typedef typename V::item31 type; typedef v_iter<V, mpl::int_<31 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<32> > { typedef typename V::item32 type; typedef v_iter<V, mpl::int_<32 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<33> > { typedef typename V::item33 type; typedef v_iter<V, mpl::int_<33 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<34> > { typedef typename V::item34 type; typedef v_iter<V, mpl::int_<34 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<35> > { typedef typename V::item35 type; typedef v_iter<V, mpl::int_<35 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<36> > { typedef typename V::item36 type; typedef v_iter<V, mpl::int_<36 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<37> > { typedef typename V::item37 type; typedef v_iter<V, mpl::int_<37 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<38> > { typedef typename V::item38 type; typedef v_iter<V, mpl::int_<38 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<39> > { typedef typename V::item39 type; typedef v_iter<V, mpl::int_<39 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<40> > { typedef typename V::item40 type; typedef v_iter<V, mpl::int_<40 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<41> > { typedef typename V::item41 type; typedef v_iter<V, mpl::int_<41 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<42> > { typedef typename V::item42 type; typedef v_iter<V, mpl::int_<42 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<43> > { typedef typename V::item43 type; typedef v_iter<V, mpl::int_<43 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<44> > { typedef typename V::item44 type; typedef v_iter<V, mpl::int_<44 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<45> > { typedef typename V::item45 type; typedef v_iter<V, mpl::int_<45 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<46> > { typedef typename V::item46 type; typedef v_iter<V, mpl::int_<46 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<47> > { typedef typename V::item47 type; typedef v_iter<V, mpl::int_<47 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<48> > { typedef typename V::item48 type; typedef v_iter<V, mpl::int_<48 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<49> > { typedef typename V::item49 type; typedef v_iter<V, mpl::int_<49 + 1> > next; };
-}}
-namespace ndnboost { namespace type_of {
-        template< class T = void> struct vector0 { typedef v_iter<vector0<>, ndnboost::mpl::int_<0> > begin; typedef mpl::int_<1> item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 > struct vector1 { typedef v_iter<vector1< P0>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 > struct vector2 { typedef v_iter<vector2< P0 , P1>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 > struct vector3 { typedef v_iter<vector3< P0 , P1 , P2>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 > struct vector4 { typedef v_iter<vector4< P0 , P1 , P2 , P3>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 > struct vector5 { typedef v_iter<vector5< P0 , P1 , P2 , P3 , P4>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 > struct vector6 { typedef v_iter<vector6< P0 , P1 , P2 , P3 , P4 , P5>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > struct vector7 { typedef v_iter<vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > struct vector8 { typedef v_iter<vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > struct vector9 { typedef v_iter<vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 > struct vector10 { typedef v_iter<vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 > struct vector11 { typedef v_iter<vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 > struct vector12 { typedef v_iter<vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 > struct vector13 { typedef v_iter<vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef mpl::int_<1> item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 > struct vector14 { typedef v_iter<vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef mpl::int_<1> item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 > struct vector15 { typedef v_iter<vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef mpl::int_<1> item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 > struct vector16 { typedef v_iter<vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef mpl::int_<1> item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 > struct vector17 { typedef v_iter<vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef mpl::int_<1> item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 > struct vector18 { typedef v_iter<vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef mpl::int_<1> item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 > struct vector19 { typedef v_iter<vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef mpl::int_<1> item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 > struct vector20 { typedef v_iter<vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef mpl::int_<1> item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 > struct vector21 { typedef v_iter<vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef mpl::int_<1> item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 > struct vector22 { typedef v_iter<vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef mpl::int_<1> item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 > struct vector23 { typedef v_iter<vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef mpl::int_<1> item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 > struct vector24 { typedef v_iter<vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef mpl::int_<1> item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 > struct vector25 { typedef v_iter<vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef mpl::int_<1> item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 > struct vector26 { typedef v_iter<vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef mpl::int_<1> item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 > struct vector27 { typedef v_iter<vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef mpl::int_<1> item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 > struct vector28 { typedef v_iter<vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef mpl::int_<1> item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 > struct vector29 { typedef v_iter<vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef mpl::int_<1> item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 > struct vector30 { typedef v_iter<vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef mpl::int_<1> item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 > struct vector31 { typedef v_iter<vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef mpl::int_<1> item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 > struct vector32 { typedef v_iter<vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef mpl::int_<1> item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 > struct vector33 { typedef v_iter<vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef mpl::int_<1> item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 > struct vector34 { typedef v_iter<vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef mpl::int_<1> item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 > struct vector35 { typedef v_iter<vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef mpl::int_<1> item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 > struct vector36 { typedef v_iter<vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef mpl::int_<1> item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 > struct vector37 { typedef v_iter<vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef mpl::int_<1> item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 > struct vector38 { typedef v_iter<vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef mpl::int_<1> item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 > struct vector39 { typedef v_iter<vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef mpl::int_<1> item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 > struct vector40 { typedef v_iter<vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef mpl::int_<1> item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 > struct vector41 { typedef v_iter<vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef mpl::int_<1> item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 > struct vector42 { typedef v_iter<vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef mpl::int_<1> item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 > struct vector43 { typedef v_iter<vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef mpl::int_<1> item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 > struct vector44 { typedef v_iter<vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef mpl::int_<1> item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 > struct vector45 { typedef v_iter<vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef mpl::int_<1> item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 > struct vector46 { typedef v_iter<vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef mpl::int_<1> item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 > struct vector47 { typedef v_iter<vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef mpl::int_<1> item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 > struct vector48 { typedef v_iter<vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef mpl::int_<1> item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 > struct vector49 { typedef v_iter<vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef mpl::int_<1> item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class P49 > struct vector50 { typedef v_iter<vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , P49>, ndnboost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef P11 item11; typedef P12 item12; typedef P13 item13; typedef P14 item14; typedef P15 item15; typedef P16 item16; typedef P17 item17; typedef P18 item18; typedef P19 item19; typedef P20 item20; typedef P21 item21; typedef P22 item22; typedef P23 item23; typedef P24 item24; typedef P25 item25; typedef P26 item26; typedef P27 item27; typedef P28 item28; typedef P29 item29; typedef P30 item30; typedef P31 item31; typedef P32 item32; typedef P33 item33; typedef P34 item34; typedef P35 item35; typedef P36 item36; typedef P37 item37; typedef P38 item38; typedef P39 item39; typedef P40 item40; typedef P41 item41; typedef P42 item42; typedef P43 item43; typedef P44 item44; typedef P45 item45; typedef P46 item46; typedef P47 item47; typedef P48 item48; typedef P49 item49; typedef mpl::int_<1> item50; typedef mpl::int_<1> item51; typedef mpl::int_<1> item52; typedef mpl::int_<1> item53; typedef mpl::int_<1> item54; typedef mpl::int_<1> item55; typedef mpl::int_<1> item56; typedef mpl::int_<1> item57; typedef mpl::int_<1> item58; typedef mpl::int_<1> item59; typedef mpl::int_<1> item60; typedef mpl::int_<1> item61; typedef mpl::int_<1> item62; typedef mpl::int_<1> item63; typedef mpl::int_<1> item64; typedef mpl::int_<1> item65; typedef mpl::int_<1> item66; typedef mpl::int_<1> item67; typedef mpl::int_<1> item68; typedef mpl::int_<1> item69; typedef mpl::int_<1> item70; typedef mpl::int_<1> item71; typedef mpl::int_<1> item72; typedef mpl::int_<1> item73; typedef mpl::int_<1> item74; typedef mpl::int_<1> item75; typedef mpl::int_<1> item76; typedef mpl::int_<1> item77; typedef mpl::int_<1> item78; typedef mpl::int_<1> item79; typedef mpl::int_<1> item80; typedef mpl::int_<1> item81; typedef mpl::int_<1> item82; typedef mpl::int_<1> item83; typedef mpl::int_<1> item84; typedef mpl::int_<1> item85; typedef mpl::int_<1> item86; typedef mpl::int_<1> item87; typedef mpl::int_<1> item88; typedef mpl::int_<1> item89; typedef mpl::int_<1> item90; typedef mpl::int_<1> item91; typedef mpl::int_<1> item92; typedef mpl::int_<1> item93; typedef mpl::int_<1> item94; typedef mpl::int_<1> item95; typedef mpl::int_<1> item96; typedef mpl::int_<1> item97; typedef mpl::int_<1> item98; typedef mpl::int_<1> item99; };
-}}
-namespace ndnboost { namespace type_of {
-    template<class V, class T> struct push_back {
-        typedef V type;
-    };
-        template< class T> struct push_back<ndnboost::type_of::vector0<>, T> { typedef ndnboost::type_of::vector1< T > type; };
-        template< class P0 , class T> struct push_back<ndnboost::type_of::vector1< P0>, T> { typedef ndnboost::type_of::vector2< P0 , T > type; };
-        template< class P0 , class P1 , class T> struct push_back<ndnboost::type_of::vector2< P0 , P1>, T> { typedef ndnboost::type_of::vector3< P0 , P1 , T > type; };
-        template< class P0 , class P1 , class P2 , class T> struct push_back<ndnboost::type_of::vector3< P0 , P1 , P2>, T> { typedef ndnboost::type_of::vector4< P0 , P1 , P2 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class T> struct push_back<ndnboost::type_of::vector4< P0 , P1 , P2 , P3>, T> { typedef ndnboost::type_of::vector5< P0 , P1 , P2 , P3 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class T> struct push_back<ndnboost::type_of::vector5< P0 , P1 , P2 , P3 , P4>, T> { typedef ndnboost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class T> struct push_back<ndnboost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , P5>, T> { typedef ndnboost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class T> struct push_back<ndnboost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, T> { typedef ndnboost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class T> struct push_back<ndnboost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, T> { typedef ndnboost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class T> struct push_back<ndnboost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, T> { typedef ndnboost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class T> struct push_back<ndnboost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, T> { typedef ndnboost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class T> struct push_back<ndnboost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, T> { typedef ndnboost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class T> struct push_back<ndnboost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, T> { typedef ndnboost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class T> struct push_back<ndnboost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, T> { typedef ndnboost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class T> struct push_back<ndnboost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, T> { typedef ndnboost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class T> struct push_back<ndnboost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, T> { typedef ndnboost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class T> struct push_back<ndnboost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, T> { typedef ndnboost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class T> struct push_back<ndnboost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, T> { typedef ndnboost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class T> struct push_back<ndnboost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, T> { typedef ndnboost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class T> struct push_back<ndnboost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, T> { typedef ndnboost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class T> struct push_back<ndnboost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, T> { typedef ndnboost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class T> struct push_back<ndnboost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, T> { typedef ndnboost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class T> struct push_back<ndnboost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, T> { typedef ndnboost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class T> struct push_back<ndnboost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, T> { typedef ndnboost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class T> struct push_back<ndnboost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, T> { typedef ndnboost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class T> struct push_back<ndnboost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, T> { typedef ndnboost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class T> struct push_back<ndnboost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25>, T> { typedef ndnboost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class T> struct push_back<ndnboost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26>, T> { typedef ndnboost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class T> struct push_back<ndnboost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27>, T> { typedef ndnboost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class T> struct push_back<ndnboost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28>, T> { typedef ndnboost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class T> struct push_back<ndnboost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29>, T> { typedef ndnboost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class T> struct push_back<ndnboost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30>, T> { typedef ndnboost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class T> struct push_back<ndnboost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31>, T> { typedef ndnboost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class T> struct push_back<ndnboost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32>, T> { typedef ndnboost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class T> struct push_back<ndnboost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33>, T> { typedef ndnboost::type_of::vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class T> struct push_back<ndnboost::type_of::vector35< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34>, T> { typedef ndnboost::type_of::vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class T> struct push_back<ndnboost::type_of::vector36< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35>, T> { typedef ndnboost::type_of::vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class T> struct push_back<ndnboost::type_of::vector37< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36>, T> { typedef ndnboost::type_of::vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class T> struct push_back<ndnboost::type_of::vector38< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37>, T> { typedef ndnboost::type_of::vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class T> struct push_back<ndnboost::type_of::vector39< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38>, T> { typedef ndnboost::type_of::vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class T> struct push_back<ndnboost::type_of::vector40< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39>, T> { typedef ndnboost::type_of::vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class T> struct push_back<ndnboost::type_of::vector41< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40>, T> { typedef ndnboost::type_of::vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class T> struct push_back<ndnboost::type_of::vector42< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41>, T> { typedef ndnboost::type_of::vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class T> struct push_back<ndnboost::type_of::vector43< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42>, T> { typedef ndnboost::type_of::vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class T> struct push_back<ndnboost::type_of::vector44< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43>, T> { typedef ndnboost::type_of::vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class T> struct push_back<ndnboost::type_of::vector45< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44>, T> { typedef ndnboost::type_of::vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class T> struct push_back<ndnboost::type_of::vector46< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45>, T> { typedef ndnboost::type_of::vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class T> struct push_back<ndnboost::type_of::vector47< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46>, T> { typedef ndnboost::type_of::vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class T> struct push_back<ndnboost::type_of::vector48< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47>, T> { typedef ndnboost::type_of::vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , class P40 , class P41 , class P42 , class P43 , class P44 , class P45 , class P46 , class P47 , class P48 , class T> struct push_back<ndnboost::type_of::vector49< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48>, T> { typedef ndnboost::type_of::vector50< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24 , P25 , P26 , P27 , P28 , P29 , P30 , P31 , P32 , P33 , P34 , P35 , P36 , P37 , P38 , P39 , P40 , P41 , P42 , P43 , P44 , P45 , P46 , P47 , P48 , T > type; };
-}}
diff --git a/include/ndnboost/units/detail/utility.hpp b/include/ndnboost/units/detail/utility.hpp
deleted file mode 100644
index 4eeebc1..0000000
--- a/include/ndnboost/units/detail/utility.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// Boost.Units - A C++ library for zero-overhead dimensional analysis and 
-// unit/quantity manipulation and conversion
-//
-// Copyright (C) 2003-2008 Matthias Christian Schabel
-// Copyright (C) 2008 Steven Watanabe
-//
-// 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 NDNBOOST_UNITS_UTILITY_HPP
-#define NDNBOOST_UNITS_UTILITY_HPP
-
-#include <cstdlib>
-#include <typeinfo>
-#include <string>
-
-#if defined(__GLIBCXX__) || defined(__GLIBCPP__)
-#define NDNBOOST_UNITS_USE_DEMANGLING
-#include <cxxabi.h>
-#endif // __GNUC__
-
-#ifdef NDNBOOST_UNITS_USE_DEMANGLING
-
-#include <ndnboost/algorithm/string/replace.hpp>
-
-namespace ndnboost {
-
-namespace units {
-
-namespace detail {
-
-inline
-std::string
-demangle(const char* name)
-{
-    // need to demangle C++ symbols
-    char*       realname;
-    std::size_t len; 
-    int         stat;
-     
-    realname = abi::__cxa_demangle(name,NULL,&len,&stat);
-    
-    if (realname != NULL)
-    {
-        std::string   out(realname);
-        
-        std::free(realname);
-        
-        ndnboost::replace_all(out,"ndnboost::units::","");
-        
-        return out;
-    }
-    
-    return std::string("demangle :: error - unable to demangle specified symbol");
-}
-
-} // namespace detail
-
-template<class L>
-std::string simplify_typename(const L& /*source*/)
-{
-    const std::string   demangled = detail::demangle(typeid(L).name());
-
-    return demangled;
-}
-
-} // namespace units
-
-} // namespace ndnboost
-
-#else // NDNBOOST_UNITS_USE_DEMANGLING
-
-namespace ndnboost {
-
-namespace units {
-
-namespace detail {
-
-inline
-std::string
-demangle(const char* name)
-{
-    return name;
-}
-
-} // namespace detail
-
-template<class L>
-std::string simplify_typename(const L& /*source*/)
-{
-    return std::string(typeid(L).name());
-}
-
-} // namespace units
-
-} // namespace ndnboost
-
-// To get system-specific predefined macros:
-// gcc -arch ppc -dM -E - < /dev/null | sort 
-
-#endif // NDNBOOST_UNITS_USE_DEMANGLING
-
-#endif // NDNBOOST_UNITS_UTILITY_HPP
diff --git a/include/ndnboost/unordered/detail/allocate.hpp b/include/ndnboost/unordered/detail/allocate.hpp
deleted file mode 100644
index 4d6a8ed..0000000
--- a/include/ndnboost/unordered/detail/allocate.hpp
+++ /dev/null
@@ -1,1120 +0,0 @@
-
-// Copyright 2005-2011 Daniel James.
-// Copyright 2009 Pablo Halpern.
-// 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)
-
-//  See http://www.boost.org/libs/unordered for documentation
-
-#ifndef NDNBOOST_UNORDERED_ALLOCATE_HPP
-#define NDNBOOST_UNORDERED_ALLOCATE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/unordered/detail/fwd.hpp>
-#include <ndnboost/move/move.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/inc.hpp>
-#include <ndnboost/preprocessor/dec.hpp>
-#include <ndnboost/preprocessor/repetition/enum.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
-#include <ndnboost/preprocessor/repetition/repeat_from_to.hpp>
-#include <ndnboost/type_traits/is_class.hpp>
-#include <ndnboost/type_traits/add_lvalue_reference.hpp>
-#include <ndnboost/tuple/tuple.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/utility/addressof.hpp>
-#include <ndnboost/detail/select_type.hpp>
-#include <ndnboost/assert.hpp>
-#include <utility>
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
-#include <tuple>
-#endif
-
-#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
-                              // constructed with an initializer of the form ()
-                              // will be default-initialized.
-#endif
-
-#define NDNBOOST_UNORDERED_EMPLACE_LIMIT 10
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Bits and pieces for implementing traits
-
-    template <typename T> typename ndnboost::add_lvalue_reference<T>::type make();
-    struct choice9 { typedef char (&type)[9]; };
-    struct choice8 : choice9 { typedef char (&type)[8]; };
-    struct choice7 : choice8 { typedef char (&type)[7]; };
-    struct choice6 : choice7 { typedef char (&type)[6]; };
-    struct choice5 : choice6 { typedef char (&type)[5]; };
-    struct choice4 : choice5 { typedef char (&type)[4]; };
-    struct choice3 : choice4 { typedef char (&type)[3]; };
-    struct choice2 : choice3 { typedef char (&type)[2]; };
-    struct choice1 : choice2 { typedef char (&type)[1]; };
-    choice1 choose();
-
-    typedef choice1::type yes_type;
-    typedef choice2::type no_type;
-
-    struct private_type
-    {
-       private_type const &operator,(int) const;
-    };
-
-    template <typename T>
-    no_type is_private_type(T const&);
-    yes_type is_private_type(private_type const&);
-
-    struct convert_from_anything {
-        template <typename T>
-        convert_from_anything(T const&);
-    };
-
-    ////////////////////////////////////////////////////////////////////////////
-    // emplace_args
-    //
-    // Either forwarding variadic arguments, or storing the arguments in
-    // emplace_args##n
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-
-#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 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 NDNBOOST_UNORDERED_EMPLACE_TEMPLATE typename Args
-#define NDNBOOST_UNORDERED_EMPLACE_ARGS Args const& args
-#define NDNBOOST_UNORDERED_EMPLACE_FORWARD args
-
-#define NDNBOOST_UNORDERED_FWD_PARAM(z, n, a) \
-    NDNBOOST_FWD_REF(NDNBOOST_PP_CAT(A, n)) NDNBOOST_PP_CAT(a, n)
-
-#define NDNBOOST_UNORDERED_CALL_FORWARD(z, i, a) \
-    ndnboost::forward<NDNBOOST_PP_CAT(A,i)>(NDNBOOST_PP_CAT(a,i))
-
-#define NDNBOOST_UNORDERED_EARGS(z, n, _)                                      \
-    template <NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                     \
-    struct NDNBOOST_PP_CAT(emplace_args, n)                                    \
-    {                                                                       \
-        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 <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(                                                  \
-        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, 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 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(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
-
-#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 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 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 NDNBOOST_UNORDERED_EARGS_INIT(z, n, _)                                 \
-    NDNBOOST_PP_CAT(a, n)(NDNBOOST_PP_CAT(b, n))
-
-#endif
-
-NDNBOOST_PP_REPEAT_FROM_TO(1, NDNBOOST_UNORDERED_EMPLACE_LIMIT, NDNBOOST_UNORDERED_EARGS,
-    _)
-
-#undef NDNBOOST_UNORDERED_DEFINE_EMPLACE_ARGS
-#undef NDNBOOST_UNORDERED_EARGS_MEMBER
-#undef NDNBOOST_UNORDERED_EARGS_INIT
-
-#endif
-
-}}}
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// Pick which version of allocator_traits to use
-//
-// 0 = Own partial implementation
-// 1 = std::allocator_traits
-// 2 = ndnboost::container::allocator_traits
-
-#if !defined(NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS)
-#   if defined(__GXX_EXPERIMENTAL_CXX0X__) && \
-            (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
-#       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 NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS 2
-#       endif
-#   endif
-#endif
-
-#if !defined(NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS)
-#   define NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS 0
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// Some utilities for implementing allocator_traits, but useful elsewhere so
-// they're always defined.
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS)
-#  include <type_traits>
-#endif
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Integral_constrant, true_type, false_type
-    //
-    // Uses the standard versions if available.
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TYPE_TRAITS)
-
-    using std::integral_constant;
-    using std::true_type;
-    using std::false_type;
-
-#else
-
-    template <typename T, T Value>
-    struct integral_constant { enum { value = Value }; };
-
-    typedef ndnboost::unordered::detail::integral_constant<bool, true> true_type;
-    typedef ndnboost::unordered::detail::integral_constant<bool, false> false_type;
-
-#endif
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Explicitly call a destructor
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(push)
-#pragma warning(disable:4100) // unreferenced formal parameter
-#endif
-
-    template <class T>
-    inline void destroy(T* x) {
-        x->~T();
-    }
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(pop)
-#endif
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Expression test mechanism
-    //
-    // When SFINAE expressions are available, define
-    // 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(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 NDNBOOST_UNORDERED_CHECK_EXPRESSION(count, result, expression)      \
-        template <typename U>                                               \
-        static typename ndnboost::unordered::detail::expr_test<                \
-            NDNBOOST_PP_CAT(choice, result),                                   \
-            sizeof(ndnboost::unordered::detail::for_expr_test((                \
-                (expression),                                               \
-            0)))>::type test(                                               \
-            NDNBOOST_PP_CAT(choice, count))
-
-#   define NDNBOOST_UNORDERED_DEFAULT_EXPRESSION(count, result)                \
-        template <typename U>                                               \
-        static NDNBOOST_PP_CAT(choice, result)::type test(                     \
-            NDNBOOST_PP_CAT(choice, count))
-
-#   define NDNBOOST_UNORDERED_HAS_FUNCTION(name, thing, args, _)               \
-    struct NDNBOOST_PP_CAT(has_, name)                                         \
-    {                                                                       \
-        NDNBOOST_UNORDERED_CHECK_EXPRESSION(1, 1,                              \
-            ndnboost::unordered::detail::make< thing >().name args);           \
-        NDNBOOST_UNORDERED_DEFAULT_EXPRESSION(2, 2);                           \
-                                                                            \
-        enum { value = sizeof(test<T>(choose())) == sizeof(choice1::type) };\
-    }
-
-#else
-
-    template <typename T> struct identity { typedef T type; };
-
-#   define NDNBOOST_UNORDERED_CHECK_MEMBER(count, result, name, member)        \
-                                                                            \
-    typedef typename ndnboost::unordered::detail::identity<member>::type       \
-        NDNBOOST_PP_CAT(check, count);                                         \
-                                                                            \
-    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                                      \
-        NDNBOOST_PP_CAT(test, count)<&U::name>::type                           \
-        test(NDNBOOST_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 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 {};                   \
-                                                                            \
-            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()))                                \
-            };                                                              \
-        };                                                                  \
-                                                                            \
-        enum { value = impl::value };                                       \
-    }
-
-#endif
-
-}}}
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// Allocator traits
-//
-// First our implementation, then later light wrappers around the alternatives
-
-#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(NDNBOOST_NO_SFINAE_EXPR)
-#       include <ndnboost/type_traits/is_same.hpp>
-#   endif
-
-#   if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES) && \
-        !defined(NDNBOOST_NO_SFINAE_EXPR)
-#       define NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 1
-#   else
-#       define NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 0
-#   endif
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    // TODO: Does this match std::allocator_traits<Alloc>::rebind_alloc<T>?
-    template <typename Alloc, typename T>
-    struct rebind_wrap
-    {
-        typedef typename Alloc::NDNBOOST_NESTED_TEMPLATE rebind<T>::other type;
-    };
-
-#   if defined(NDNBOOST_MSVC) && NDNBOOST_MSVC <= 1400
-
-#       define NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(tname)                    \
-    template <typename Tp, typename Default>                                \
-    struct default_type_ ## tname {                                         \
-                                                                            \
-        template <typename X>                                               \
-        static choice1::type test(choice1, typename X::tname* = 0);         \
-                                                                            \
-        template <typename X>                                               \
-        static choice2::type test(choice2, void* = 0);                      \
-                                                                            \
-        struct DefaultWrap { typedef Default tname; };                      \
-                                                                            \
-        enum { value = (1 == sizeof(test<Tp>(choose()))) };                 \
-                                                                            \
-        typedef typename ndnboost::detail::if_true<value>::                    \
-            NDNBOOST_NESTED_TEMPLATE then<Tp, DefaultWrap>                     \
-            ::type::tname type;                                             \
-    }
-
-#   else
-
-    template <typename T, typename T2>
-    struct sfinae : T2 {};
-
-#       define NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT(tname)                    \
-    template <typename Tp, typename Default>                                \
-    struct default_type_ ## tname {                                         \
-                                                                            \
-        template <typename X>                                               \
-        static typename ndnboost::unordered::detail::sfinae<                   \
-                typename X::tname, choice1>::type                           \
-            test(choice1);                                                  \
-                                                                            \
-        template <typename X>                                               \
-        static choice2::type test(choice2);                                 \
-                                                                            \
-        struct DefaultWrap { typedef Default tname; };                      \
-                                                                            \
-        enum { value = (1 == sizeof(test<Tp>(choose()))) };                 \
-                                                                            \
-        typedef typename ndnboost::detail::if_true<value>::                    \
-            NDNBOOST_NESTED_TEMPLATE then<Tp, DefaultWrap>                     \
-            ::type::tname type;                                             \
-    }
-
-#   endif
-
-#   define NDNBOOST_UNORDERED_DEFAULT_TYPE(T,tname, arg)                   \
-    typename default_type_ ## tname<T, arg>::type
-
-    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(NDNBOOST_NO_SFINAE_EXPR)
-
-    template <typename T>
-    NDNBOOST_UNORDERED_HAS_FUNCTION(
-        select_on_container_copy_construction, U const, (), 0
-    );
-
-    template <typename T>
-    NDNBOOST_UNORDERED_HAS_FUNCTION(
-        max_size, U const, (), 0
-    );
-
-#       if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-
-    template <typename T, typename ValueType, typename... Args>
-    NDNBOOST_UNORDERED_HAS_FUNCTION(
-    construct, U, (
-        ndnboost::unordered::detail::make<ValueType*>(),
-        ndnboost::unordered::detail::make<Args const>()...), 2
-    );
-
-#       else
-
-    template <typename T, typename ValueType>
-    NDNBOOST_UNORDERED_HAS_FUNCTION(
-    construct, U, (
-        ndnboost::unordered::detail::make<ValueType*>(),
-        ndnboost::unordered::detail::make<ValueType const>()), 2
-    );
-
-#       endif
-
-    template <typename T, typename ValueType>
-    NDNBOOST_UNORDERED_HAS_FUNCTION(
-        destroy, U, (ndnboost::unordered::detail::make<ValueType*>()), 1
-    );
-
-#   else
-
-    template <typename T>
-    NDNBOOST_UNORDERED_HAS_MEMBER(select_on_container_copy_construction);
-
-    template <typename T>
-    NDNBOOST_UNORDERED_HAS_MEMBER(max_size);
-
-    template <typename T, typename ValueType>
-    NDNBOOST_UNORDERED_HAS_MEMBER(construct);
-
-    template <typename T, typename ValueType>
-    NDNBOOST_UNORDERED_HAS_MEMBER(destroy);
-
-#   endif
-
-    template <typename Alloc>
-    inline Alloc call_select_on_container_copy_construction(const Alloc& rhs,
-        typename ndnboost::enable_if_c<
-            ndnboost::unordered::detail::
-            has_select_on_container_copy_construction<Alloc>::value, void*
-        >::type = 0)
-    {
-        return rhs.select_on_container_copy_construction();
-    }
-
-    template <typename Alloc>
-    inline Alloc call_select_on_container_copy_construction(const Alloc& rhs,
-        typename ndnboost::disable_if_c<
-            ndnboost::unordered::detail::
-            has_select_on_container_copy_construction<Alloc>::value, void*
-        >::type = 0)
-    {
-        return rhs;
-    }
-
-    template <typename SizeType, typename Alloc>
-    inline SizeType call_max_size(const Alloc& a,
-        typename ndnboost::enable_if_c<
-            ndnboost::unordered::detail::has_max_size<Alloc>::value, void*
-        >::type = 0)
-    {
-        return a.max_size();
-    }
-
-    template <typename SizeType, typename Alloc>
-    inline SizeType call_max_size(const Alloc&, typename ndnboost::disable_if_c<
-            ndnboost::unordered::detail::has_max_size<Alloc>::value, void*
-        >::type = 0)
-    {
-        return (std::numeric_limits<SizeType>::max)();
-    }
-
-    template <typename Alloc>
-    struct allocator_traits
-    {
-        typedef Alloc allocator_type;
-        typedef typename Alloc::value_type 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 NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, const_pointer,
-            typename pointer_to_other<const value_type>::type)
-            const_pointer;
-
-        //typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, void_pointer,
-        //    typename pointer_to_other<void>::type)
-        //    void_pointer;
-        //
-        //typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, const_void_pointer,
-        //    typename pointer_to_other<const void>::type)
-        //    const_void_pointer;
-
-        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, difference_type,
-            std::ptrdiff_t) difference_type;
-
-        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(Alloc, size_type, std::size_t)
-            size_type;
-
-        // TODO: rebind_alloc and rebind_traits
-
-        static pointer allocate(Alloc& a, size_type n)
-            { return a.allocate(n); }
-
-        // I never use this, so I'll just comment it out for now.
-        //
-        //static pointer allocate(Alloc& a, size_type n,
-        //        const_void_pointer hint)
-        //    { return DEFAULT_FUNC(allocate, pointer)(a, n, hint); }
-
-        static void deallocate(Alloc& a, pointer p, size_type n)
-            { a.deallocate(p, n); }
-
-    public:
-
-#   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, NDNBOOST_FWD_REF(Args)... x)
-        {
-            a.construct(p, ndnboost::forward<Args>(x)...);
-        }
-
-        template <typename T, typename... Args>
-        static typename ndnboost::disable_if_c<
-                ndnboost::unordered::detail::has_construct<Alloc, T, Args...>
-                ::value>::type
-            construct(Alloc&, T* p, NDNBOOST_FWD_REF(Args)... x)
-        {
-            new ((void*) p) T(ndnboost::forward<Args>(x)...);
-        }
-
-        template <typename T>
-        static typename ndnboost::enable_if_c<
-                ndnboost::unordered::detail::has_destroy<Alloc, T>::value>::type
-            destroy(Alloc& a, T* p)
-        {
-            a.destroy(p);
-        }
-
-        template <typename T>
-        static typename ndnboost::disable_if_c<
-                ndnboost::unordered::detail::has_destroy<Alloc, T>::value>::type
-            destroy(Alloc&, T* p)
-        {
-            ndnboost::unordered::detail::destroy(p);
-        }
-
-#   elif !defined(NDNBOOST_NO_SFINAE_EXPR)
-
-        template <typename T>
-        static typename ndnboost::enable_if_c<
-                ndnboost::unordered::detail::has_construct<Alloc, T>::value>::type
-            construct(Alloc& a, T* p, T const& x)
-        {
-            a.construct(p, x);
-        }
-
-        template <typename T>
-        static typename ndnboost::disable_if_c<
-                ndnboost::unordered::detail::has_construct<Alloc, T>::value>::type
-            construct(Alloc&, T* p, T const& x)
-        {
-            new ((void*) p) T(x);
-        }
-
-        template <typename T>
-        static typename ndnboost::enable_if_c<
-                ndnboost::unordered::detail::has_destroy<Alloc, T>::value>::type
-            destroy(Alloc& a, T* p)
-        {
-            a.destroy(p);
-        }
-
-        template <typename T>
-        static typename ndnboost::disable_if_c<
-                ndnboost::unordered::detail::has_destroy<Alloc, T>::value>::type
-            destroy(Alloc&, T* p)
-        {
-            ndnboost::unordered::detail::destroy(p);
-        }
-
-#   else
-
-        // If we don't have SFINAE expressions, only call construct for the
-        // copy constructor for the allocator's value_type - as that's
-        // the only construct method that old fashioned allocators support.
-
-        template <typename T>
-        static void construct(Alloc& a, T* p, T const& x,
-            typename ndnboost::enable_if_c<
-                    ndnboost::unordered::detail::has_construct<Alloc, T>::value &&
-                    ndnboost::is_same<T, value_type>::value,
-                    void*>::type = 0)
-        {
-            a.construct(p, x);
-        }
-
-        template <typename T>
-        static void construct(Alloc&, T* p, T const& x,
-            typename ndnboost::disable_if_c<
-                ndnboost::unordered::detail::has_construct<Alloc, T>::value &&
-                ndnboost::is_same<T, value_type>::value,
-                void*>::type = 0)
-        {
-            new ((void*) p) T(x);
-        }
-
-        template <typename T>
-        static void destroy(Alloc& a, T* p,
-            typename ndnboost::enable_if_c<
-                ndnboost::unordered::detail::has_destroy<Alloc, T>::value &&
-                ndnboost::is_same<T, value_type>::value,
-                void*>::type = 0)
-        {
-            a.destroy(p);
-        }
-
-        template <typename T>
-        static void destroy(Alloc&, T* p,
-            typename ndnboost::disable_if_c<
-                ndnboost::unordered::detail::has_destroy<Alloc, T>::value &&
-                ndnboost::is_same<T, value_type>::value,
-                void*>::type = 0)
-        {
-            ndnboost::unordered::detail::destroy(p);
-        }
-
-#   endif
-
-        static size_type max_size(const Alloc& a)
-        {
-            return ndnboost::unordered::detail::call_max_size<size_type>(a);
-        }
-
-        // Allocator propagation on construction
-
-        static Alloc select_on_container_copy_construction(Alloc const& rhs)
-        {
-            return ndnboost::unordered::detail::
-                call_select_on_container_copy_construction(rhs);
-        }
-
-        // Allocator propagation on assignment and swap.
-        // Return true if lhs is modified.
-        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(
-            Alloc, propagate_on_container_copy_assignment, false_type)
-            propagate_on_container_copy_assignment;
-        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(
-            Alloc,propagate_on_container_move_assignment, false_type)
-            propagate_on_container_move_assignment;
-        typedef NDNBOOST_UNORDERED_DEFAULT_TYPE(
-            Alloc,propagate_on_container_swap,false_type)
-            propagate_on_container_swap;
-    };
-}}}
-
-#   undef NDNBOOST_UNORDERED_DEFAULT_TYPE_TMPLT
-#   undef NDNBOOST_UNORDERED_DEFAULT_TYPE
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// std::allocator_traits
-
-#elif NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 1
-
-#   include <memory>
-
-#   define NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 1
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    template <typename Alloc>
-    struct allocator_traits : std::allocator_traits<Alloc> {};
-
-    template <typename Alloc, typename T>
-    struct rebind_wrap
-    {
-        typedef typename std::allocator_traits<Alloc>::
-            template rebind_alloc<T> type;
-    };
-}}}
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// ndnboost::container::allocator_traits
-
-#elif NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS == 2
-
-#   include <ndnboost/container/allocator_traits.hpp>
-
-#   define NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT 0
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    template <typename Alloc>
-    struct allocator_traits :
-        ndnboost::container::allocator_traits<Alloc> {};
-
-    template <typename Alloc, typename T>
-    struct rebind_wrap :
-        ndnboost::container::allocator_traits<Alloc>::
-            template portable_rebind_alloc<T>
-    {};
-
-}}}
-
-#else
-
-#error "Invalid NDNBOOST_UNORDERED_USE_ALLOCATOR_TRAITS value."
-
-#endif
-
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    ////////////////////////////////////////////////////////////////////////////
-    // call_construct
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-
-#   if NDNBOOST_UNORDERED_DETAIL_FULL_CONSTRUCT
-
-    template <typename Alloc, typename T, typename... Args>
-    inline void call_construct(Alloc& alloc, T* address,
-        NDNBOOST_FWD_REF(Args)... args)
-    {
-        ndnboost::unordered::detail::allocator_traits<Alloc>::construct(alloc,
-            address, ndnboost::forward<Args>(args)...);
-    }
-
-    template <typename Alloc, typename T>
-    inline void destroy_value_impl(Alloc& alloc, T* x) {
-        ndnboost::unordered::detail::allocator_traits<Alloc>::destroy(alloc, x);
-    }
-
-
-#   else
-
-    template <typename Alloc, typename T, typename... Args>
-    inline void call_construct(Alloc&, T* address,
-        NDNBOOST_FWD_REF(Args)... args)
-    {
-        new((void*) address) T(ndnboost::forward<Args>(args)...);
-    }
-
-    template <typename Alloc, typename T>
-    inline void destroy_value_impl(Alloc&, T* x) {
-        ndnboost::unordered::detail::destroy(x);
-    }
-
-
-#   endif
-
-#else
-
-    template <typename Alloc, typename T>
-    inline void destroy_value_impl(Alloc&, T* x) {
-        ndnboost::unordered::detail::destroy(x);
-    }
-
-#endif
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Construct from tuple
-    //
-    // Used for piecewise construction.
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-
-#   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);               \
-    }                                                                       \
-                                                                            \
-    NDNBOOST_PP_REPEAT_FROM_TO(1, n,                                           \
-        NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL, namespace_)
-
-#   define NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL(z, n, namespace_)      \
-    template<typename Alloc, typename T,                                    \
-        NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                           \
-    void construct_from_tuple(Alloc& alloc, T* ptr,                         \
-            namespace_ tuple<NDNBOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)     \
-    {                                                                       \
-        ndnboost::unordered::detail::call_construct(alloc, ptr,                \
-            NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_GET_TUPLE_ARG, namespace_) \
-        );                                                                  \
-    }
-
-#   define NDNBOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_)                  \
-    namespace_ get<n>(x)
-
-#elif !defined(__SUNPRO_CC)
-
-#   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();                                              \
-    }                                                                       \
-                                                                            \
-    NDNBOOST_PP_REPEAT_FROM_TO(1, n,                                           \
-        NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL, namespace_)
-
-#   define NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL(z, n, namespace_)      \
-    template<typename Alloc, typename T,                                    \
-        NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                           \
-    void construct_from_tuple(Alloc&, T* ptr,                               \
-            namespace_ tuple<NDNBOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)     \
-    {                                                                       \
-        new ((void*) ptr) T(                                                \
-            NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_GET_TUPLE_ARG, namespace_) \
-        );                                                                  \
-    }
-
-#   define NDNBOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_)                  \
-    namespace_ get<n>(x)
-
-#else
-
-    template <int N> struct length {};
-
-#   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,            \
-            namespace_ tuple<>)                                             \
-    {                                                                       \
-        new ((void*) ptr) T();                                              \
-    }                                                                       \
-                                                                            \
-    NDNBOOST_PP_REPEAT_FROM_TO(1, n,                                           \
-        NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL, namespace_)
-
-#   define NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL(z, n, namespace_)      \
-    template<typename Alloc, typename T,                                    \
-        NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)>                           \
-    void construct_from_tuple_impl(                                         \
-            ndnboost::unordered::detail::length<n>, Alloc&, T* ptr,            \
-            namespace_ tuple<NDNBOOST_PP_ENUM_PARAMS_Z(z, n, A)> const& x)     \
-    {                                                                       \
-        new ((void*) ptr) T(                                                \
-            NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_GET_TUPLE_ARG, namespace_) \
-        );                                                                  \
-    }
-
-#   define NDNBOOST_UNORDERED_GET_TUPLE_ARG(z, n, namespace_)                  \
-    namespace_ get<n>(x)
-
-#endif
-
-NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, ndnboost::)
-
-#if !defined(__SUNPRO_CC) && !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
-   NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE(10, std::)
-#endif
-
-#undef NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE
-#undef NDNBOOST_UNORDERED_CONSTRUCT_FROM_TUPLE_IMPL
-#undef NDNBOOST_UNORDERED_GET_TUPLE_ARG
-
-#if defined(__SUNPRO_CC)
-
-    template <typename Alloc, typename T, typename Tuple>
-    void construct_from_tuple(Alloc& alloc, T* ptr, Tuple const& x)
-    {
-        construct_from_tuple_impl(
-            ndnboost::unordered::detail::length<
-                ndnboost::tuples::length<Tuple>::value>(),
-            alloc, ptr, x);
-    }
-
-#endif
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Trait to check for piecewise construction.
-
-    template <typename A0>
-    struct use_piecewise {
-        static choice1::type test(choice1,
-            ndnboost::unordered::piecewise_construct_t);
-
-        static choice2::type test(choice2, ...);
-
-        enum { value = sizeof(choice1::type) ==
-            sizeof(test(choose(), ndnboost::unordered::detail::make<A0>())) };
-    };
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Construct from variadic parameters
-
-    // For the standard pair constructor.
-
-    template <typename Alloc, typename T, typename... Args>
-    inline void construct_value_impl(Alloc& alloc, T* address,
-        NDNBOOST_FWD_REF(Args)... args)
-    {
-        ndnboost::unordered::detail::call_construct(alloc,
-            address, ndnboost::forward<Args>(args)...);
-    }
-
-    // Special case for piece_construct
-    //
-    // TODO: When possible, it might be better to use std::pair's
-    // constructor for std::piece_construct with std::tuple.
-
-    template <typename Alloc, typename A, typename B,
-        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,
-            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));
-        ndnboost::unordered::detail::construct_from_tuple(alloc,
-            ndnboost::addressof(address->second), ndnboost::forward<A2>(a2));
-    }
-
-#else // NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
-
-////////////////////////////////////////////////////////////////////////////////
-// Construct from emplace_args
-
-    // Explicitly write out first three overloads for the sake of sane
-    // error messages.
-
-    template <typename Alloc, typename T, typename A0>
-    inline void construct_value_impl(Alloc&, T* address,
-            emplace_args1<A0> const& args)
-    {
-        new((void*) address) T(ndnboost::forward<A0>(args.a0));
-    }
-
-    template <typename Alloc, typename T, typename A0, typename A1>
-    inline void construct_value_impl(Alloc&, T* address,
-            emplace_args2<A0, A1> const& args)
-    {
-        new((void*) address) T(
-            ndnboost::forward<A0>(args.a0),
-            ndnboost::forward<A1>(args.a1)
-        );
-    }
-
-    template <typename Alloc, typename T, typename A0, typename A1, typename A2>
-    inline void construct_value_impl(Alloc&, T* address,
-            emplace_args3<A0, A1, A2> const& args)
-    {
-        new((void*) address) T(
-            ndnboost::forward<A0>(args.a0),
-            ndnboost::forward<A1>(args.a1),
-            ndnboost::forward<A2>(args.a2)
-        );
-    }
-
-    // Use a macro for the rest.
-
-#define NDNBOOST_UNORDERED_CONSTRUCT_IMPL(z, num_params, _)                    \
-    template <                                                              \
-        typename Alloc, typename T,                                         \
-        NDNBOOST_PP_ENUM_PARAMS_Z(z, num_params, typename A)                   \
-    >                                                                       \
-    inline void construct_value_impl(Alloc&, T* address,                    \
-        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(                                             \
-            NDNBOOST_PP_ENUM_##z(num_params, NDNBOOST_UNORDERED_CALL_FORWARD,     \
-                args.a));                                                   \
-    }
-
-    NDNBOOST_PP_REPEAT_FROM_TO(4, NDNBOOST_UNORDERED_EMPLACE_LIMIT,
-        NDNBOOST_UNORDERED_CONSTRUCT_IMPL, _)
-
-#undef NDNBOOST_UNORDERED_CONSTRUCT_IMPL
-
-    // Construct with piece_construct
-
-    template <typename Alloc, typename A, typename B,
-        typename A0, typename A1, typename A2>
-    inline void construct_value_impl(Alloc& alloc, std::pair<A, B>* address,
-            ndnboost::unordered::detail::emplace_args3<A0, A1, A2> const& args,
-            typename enable_if<use_piecewise<A0>, void*>::type = 0)
-    {
-        ndnboost::unordered::detail::construct_from_tuple(alloc,
-            ndnboost::addressof(address->first), args.a1);
-        ndnboost::unordered::detail::construct_from_tuple(alloc,
-            ndnboost::addressof(address->second), args.a2);
-    }
-
-#endif // NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
-
-}}}
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// Some helper functions for allocating & constructing
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    ////////////////////////////////////////////////////////////////////////////
-    //
-    // array_constructor
-    //
-    // Allocate and construct an array in an exception safe manner, and
-    // clean up if an exception is thrown before the container takes charge
-    // of it.
-
-    template <typename Allocator>
-    struct array_constructor
-    {
-        typedef ndnboost::unordered::detail::allocator_traits<Allocator> traits;
-        typedef typename traits::pointer pointer;
-
-        Allocator& alloc_;
-        pointer ptr_;
-        pointer constructed_;
-        std::size_t length_;
-
-        array_constructor(Allocator& a)
-            : alloc_(a), ptr_(), constructed_(), length_(0)
-        {
-            constructed_ = pointer();
-            ptr_ = pointer();
-        }
-
-        ~array_constructor() {
-            if (ptr_) {
-                for(pointer p = ptr_; p != constructed_; ++p)
-                    traits::destroy(alloc_, ndnboost::addressof(*p));
-
-                traits::deallocate(alloc_, ptr_, length_);
-            }
-        }
-
-        template <typename V>
-        void construct(V const& v, std::size_t l)
-        {
-            NDNBOOST_ASSERT(!ptr_);
-            length_ = l;
-            ptr_ = traits::allocate(alloc_, length_);
-            pointer end = ptr_ + static_cast<std::ptrdiff_t>(length_);
-            for(constructed_ = ptr_; constructed_ != end; ++constructed_)
-                traits::construct(alloc_, ndnboost::addressof(*constructed_), v);
-        }
-
-        pointer get() const
-        {
-            return ptr_;
-        }
-
-        pointer release()
-        {
-            pointer p(ptr_);
-            ptr_ = pointer();
-            return p;
-        }
-
-    private:
-
-        array_constructor(array_constructor const&);
-        array_constructor& operator=(array_constructor const&);
-    };
-}}}
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/include/ndnboost/unordered/detail/buckets.hpp b/include/ndnboost/unordered/detail/buckets.hpp
deleted file mode 100644
index 322df49..0000000
--- a/include/ndnboost/unordered/detail/buckets.hpp
+++ /dev/null
@@ -1,876 +0,0 @@
-
-// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
-// Copyright (C) 2005-2011 Daniel James
-// 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 NDNBOOST_UNORDERED_DETAIL_MANAGER_HPP_INCLUDED
-#define NDNBOOST_UNORDERED_DETAIL_MANAGER_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/unordered/detail/util.hpp>
-#include <ndnboost/unordered/detail/allocate.hpp>
-#include <ndnboost/type_traits/aligned_storage.hpp>
-#include <ndnboost/type_traits/alignment_of.hpp>
-#include <ndnboost/type_traits/is_nothrow_move_constructible.hpp>
-#include <ndnboost/type_traits/is_nothrow_move_assignable.hpp>
-#include <ndnboost/swap.hpp>
-#include <ndnboost/assert.hpp>
-#include <ndnboost/limits.hpp>
-#include <ndnboost/iterator.hpp>
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    template <typename Types> struct table;
-    template <typename NodePointer> struct bucket;
-    struct ptr_bucket;
-    template <typename Types> struct table_impl;
-    template <typename Types> struct grouped_table_impl;
-
-}}}
-
-namespace ndnboost { namespace unordered { namespace iterator_detail {
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Iterators
-    //
-    // all no throw
-
-    template <typename Node> struct iterator;
-    template <typename Node, typename ConstNodePointer> struct c_iterator;
-    template <typename Node, typename Policy> struct l_iterator;
-    template <typename Node, typename ConstNodePointer, typename Policy>
-        struct cl_iterator;
-
-    // Local Iterators
-    //
-    // all no throw
-
-    template <typename Node, typename Policy>
-    struct l_iterator
-        : public ndnboost::iterator<
-            std::forward_iterator_tag,
-            typename Node::value_type,
-            std::ptrdiff_t,
-            typename Node::node_pointer,
-            typename Node::value_type&>
-    {
-#if !defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)
-        template <typename Node2, typename ConstNodePointer, typename Policy2>
-        friend struct ndnboost::unordered::iterator_detail::cl_iterator;
-    private:
-#endif
-        typedef typename Node::node_pointer node_pointer;
-        typedef ndnboost::unordered::iterator_detail::iterator<Node> iterator;
-        node_pointer ptr_;
-        std::size_t bucket_;
-        std::size_t bucket_count_;
-
-    public:
-
-        typedef typename Node::value_type value_type;
-
-        l_iterator() : ptr_() {}
-
-        l_iterator(iterator x, std::size_t b, std::size_t c)
-            : ptr_(x.node_), bucket_(b), bucket_count_(c) {}
-
-        value_type& operator*() const {
-            return ptr_->value();
-        }
-
-        value_type* operator->() const {
-            return ptr_->value_ptr();
-        }
-
-        l_iterator& operator++() {
-            ptr_ = static_cast<node_pointer>(ptr_->next_);
-            if (ptr_ && Policy::to_bucket(bucket_count_, ptr_->hash_)
-                    != bucket_)
-                ptr_ = node_pointer();
-            return *this;
-        }
-
-        l_iterator operator++(int) {
-            l_iterator tmp(*this);
-            ++(*this);
-            return tmp;
-        }
-
-        bool operator==(l_iterator x) const {
-            return ptr_ == x.ptr_;
-        }
-
-        bool operator!=(l_iterator x) const {
-            return ptr_ != x.ptr_;
-        }
-    };
-
-    template <typename Node, typename ConstNodePointer, typename Policy>
-    struct cl_iterator
-        : public ndnboost::iterator<
-            std::forward_iterator_tag,
-            typename Node::value_type,
-            std::ptrdiff_t,
-            ConstNodePointer,
-            typename Node::value_type const&>
-    {
-        friend struct ndnboost::unordered::iterator_detail::l_iterator
-            <Node, Policy>;
-    private:
-
-        typedef typename Node::node_pointer node_pointer;
-        typedef ndnboost::unordered::iterator_detail::iterator<Node> iterator;
-        node_pointer ptr_;
-        std::size_t bucket_;
-        std::size_t bucket_count_;
-
-    public:
-
-        typedef typename Node::value_type value_type;
-
-        cl_iterator() : ptr_() {}
-
-        cl_iterator(iterator x, std::size_t b, std::size_t c) :
-            ptr_(x.node_), bucket_(b), bucket_count_(c) {}
-
-        cl_iterator(ndnboost::unordered::iterator_detail::l_iterator<
-                Node, Policy> const& x) :
-            ptr_(x.ptr_), bucket_(x.bucket_), bucket_count_(x.bucket_count_)
-        {}
-
-        value_type const& operator*() const {
-            return ptr_->value();
-        }
-
-        value_type const* operator->() const {
-            return ptr_->value_ptr();
-        }
-
-        cl_iterator& operator++() {
-            ptr_ = static_cast<node_pointer>(ptr_->next_);
-            if (ptr_ && Policy::to_bucket(bucket_count_, ptr_->hash_)
-                    != bucket_)
-                ptr_ = node_pointer();
-            return *this;
-        }
-
-        cl_iterator operator++(int) {
-            cl_iterator tmp(*this);
-            ++(*this);
-            return tmp;
-        }
-
-        friend bool operator==(cl_iterator const& x, cl_iterator const& y) {
-            return x.ptr_ == y.ptr_;
-        }
-
-        friend bool operator!=(cl_iterator const& x, cl_iterator const& y) {
-            return x.ptr_ != y.ptr_;
-        }
-    };
-
-    template <typename Node>
-    struct iterator
-        : public ndnboost::iterator<
-            std::forward_iterator_tag,
-            typename Node::value_type,
-            std::ptrdiff_t,
-            typename Node::node_pointer,
-            typename Node::value_type&>
-    {
-#if !defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)
-        template <typename, typename>
-        friend struct ndnboost::unordered::iterator_detail::c_iterator;
-        template <typename, typename>
-        friend struct ndnboost::unordered::iterator_detail::l_iterator;
-        template <typename, typename, typename>
-        friend struct ndnboost::unordered::iterator_detail::cl_iterator;
-        template <typename>
-        friend struct ndnboost::unordered::detail::table;
-        template <typename>
-        friend struct ndnboost::unordered::detail::table_impl;
-        template <typename>
-        friend struct ndnboost::unordered::detail::grouped_table_impl;
-    private:
-#endif
-        typedef typename Node::node_pointer node_pointer;
-        node_pointer node_;
-
-    public:
-
-        typedef typename Node::value_type value_type;
-
-        iterator() : node_() {}
-
-        explicit iterator(typename Node::link_pointer x) :
-            node_(static_cast<node_pointer>(x)) {}
-
-        value_type& operator*() const {
-            return node_->value();
-        }
-
-        value_type* operator->() const {
-            return &node_->value();
-        }
-
-        iterator& operator++() {
-            node_ = static_cast<node_pointer>(node_->next_);
-            return *this;
-        }
-
-        iterator operator++(int) {
-            iterator tmp(node_);
-            node_ = static_cast<node_pointer>(node_->next_);
-            return tmp;
-        }
-
-        bool operator==(iterator const& x) const {
-            return node_ == x.node_;
-        }
-
-        bool operator!=(iterator const& x) const {
-            return node_ != x.node_;
-        }
-    };
-
-    template <typename Node, typename ConstNodePointer>
-    struct c_iterator
-        : public ndnboost::iterator<
-            std::forward_iterator_tag,
-            typename Node::value_type,
-            std::ptrdiff_t,
-            ConstNodePointer,
-            typename Node::value_type const&>
-    {
-        friend struct ndnboost::unordered::iterator_detail::iterator<Node>;
-
-#if !defined(NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS)
-        template <typename>
-        friend struct ndnboost::unordered::detail::table;
-        template <typename>
-        friend struct ndnboost::unordered::detail::table_impl;
-        template <typename>
-        friend struct ndnboost::unordered::detail::grouped_table_impl;
-
-    private:
-#endif
-        typedef typename Node::node_pointer node_pointer;
-        typedef ndnboost::unordered::iterator_detail::iterator<Node> iterator;
-        node_pointer node_;
-
-    public:
-
-        typedef typename Node::value_type value_type;
-
-        c_iterator() : node_() {}
-
-        explicit c_iterator(typename Node::link_pointer x) :
-            node_(static_cast<node_pointer>(x)) {}
-
-        c_iterator(iterator const& x) : node_(x.node_) {}
-
-        value_type const& operator*() const {
-            return node_->value();
-        }
-
-        value_type const* operator->() const {
-            return &node_->value();
-        }
-
-        c_iterator& operator++() {
-            node_ = static_cast<node_pointer>(node_->next_);
-            return *this;
-        }
-
-        c_iterator operator++(int) {
-            c_iterator tmp(node_);
-            node_ = static_cast<node_pointer>(node_->next_);
-            return tmp;
-        }
-
-        friend bool operator==(c_iterator const& x, c_iterator const& y) {
-            return x.node_ == y.node_;
-        }
-
-        friend bool operator!=(c_iterator const& x, c_iterator const& y) {
-            return x.node_ != y.node_;
-        }
-    };
-}}}
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    ///////////////////////////////////////////////////////////////////
-    //
-    // Node construction
-
-    template <typename NodeAlloc>
-    struct node_constructor
-    {
-    private:
-
-        typedef NodeAlloc node_allocator;
-        typedef ndnboost::unordered::detail::allocator_traits<NodeAlloc>
-            node_allocator_traits;
-        typedef typename node_allocator_traits::value_type node;
-        typedef typename node_allocator_traits::pointer node_pointer;
-        typedef typename node::value_type value_type;
-
-    protected:
-
-        node_allocator& alloc_;
-        node_pointer node_;
-        bool node_constructed_;
-        bool value_constructed_;
-
-    public:
-
-        node_constructor(node_allocator& n) :
-            alloc_(n),
-            node_(),
-            node_constructed_(false),
-            value_constructed_(false)
-        {
-        }
-
-        ~node_constructor();
-
-        void construct();
-
-        template <NDNBOOST_UNORDERED_EMPLACE_TEMPLATE>
-        void construct_with_value(NDNBOOST_UNORDERED_EMPLACE_ARGS)
-        {
-            construct();
-            ndnboost::unordered::detail::construct_value_impl(
-                alloc_, node_->value_ptr(), NDNBOOST_UNORDERED_EMPLACE_FORWARD);
-            value_constructed_ = true;
-        }
-
-        template <typename A0>
-        void construct_with_value2(NDNBOOST_FWD_REF(A0) a0)
-        {
-            construct();
-            ndnboost::unordered::detail::construct_value_impl(
-                alloc_, node_->value_ptr(),
-                NDNBOOST_UNORDERED_EMPLACE_ARGS1(ndnboost::forward<A0>(a0)));
-            value_constructed_ = true;
-        }
-
-        value_type const& value() const {
-            NDNBOOST_ASSERT(node_ && node_constructed_ && value_constructed_);
-            return node_->value();
-        }
-
-        // no throw
-        node_pointer release()
-        {
-            NDNBOOST_ASSERT(node_ && node_constructed_);
-            node_pointer p = node_;
-            node_ = node_pointer();
-            return p;
-        }
-
-    private:
-        node_constructor(node_constructor const&);
-        node_constructor& operator=(node_constructor const&);
-    };
-
-    template <typename Alloc>
-    node_constructor<Alloc>::~node_constructor()
-    {
-        if (node_) {
-            if (value_constructed_) {
-                ndnboost::unordered::detail::destroy_value_impl(alloc_,
-                    node_->value_ptr());
-            }
-
-            if (node_constructed_) {
-                node_allocator_traits::destroy(alloc_,
-                    ndnboost::addressof(*node_));
-            }
-
-            node_allocator_traits::deallocate(alloc_, node_, 1);
-        }
-    }
-
-    template <typename Alloc>
-    void node_constructor<Alloc>::construct()
-    {
-        if(!node_) {
-            node_constructed_ = false;
-            value_constructed_ = false;
-
-            node_ = node_allocator_traits::allocate(alloc_, 1);
-
-            node_allocator_traits::construct(alloc_,
-                ndnboost::addressof(*node_), node());
-            node_->init(node_);
-            node_constructed_ = true;
-        }
-        else {
-            NDNBOOST_ASSERT(node_constructed_);
-
-            if (value_constructed_)
-            {
-                ndnboost::unordered::detail::destroy_value_impl(alloc_,
-                    node_->value_ptr());
-                value_constructed_ = false;
-            }
-        }
-    }
-
-    ///////////////////////////////////////////////////////////////////
-    //
-    // Node Holder
-    //
-    // Temporary store for nodes. Deletes any that aren't used.
-
-    template <typename NodeAlloc>
-    struct node_holder : private node_constructor<NodeAlloc>
-    {
-    private:
-        typedef node_constructor<NodeAlloc> base;
-
-        typedef NodeAlloc node_allocator;
-        typedef ndnboost::unordered::detail::allocator_traits<NodeAlloc>
-            node_allocator_traits;
-        typedef typename node_allocator_traits::value_type node;
-        typedef typename node_allocator_traits::pointer node_pointer;
-        typedef typename node::value_type value_type;
-        typedef typename node::link_pointer link_pointer;
-        typedef ndnboost::unordered::iterator_detail::iterator<node> iterator;
-
-        node_pointer nodes_;
-
-    public:
-
-        template <typename Table>
-        explicit node_holder(Table& b) :
-            base(b.node_alloc()),
-            nodes_()
-        {
-            if (b.size_) {
-                typename Table::link_pointer prev = b.get_previous_start();
-                nodes_ = static_cast<node_pointer>(prev->next_);
-                prev->next_ = link_pointer();
-                b.size_ = 0;
-            }
-        }
-
-        ~node_holder();
-
-        void node_for_assignment()
-        {
-            if (!this->node_ && nodes_) {
-                this->node_ = nodes_;
-                nodes_ = static_cast<node_pointer>(nodes_->next_);
-                this->node_->init(this->node_);
-                this->node_->next_ = link_pointer();
-
-                this->node_constructed_ = true;
-                this->value_constructed_ = true;
-            }
-        }
-
-        template <typename T>
-        inline void assign_impl(T const& v) {
-            if (this->node_ && this->value_constructed_) {
-                this->node_->value() = v;
-            }
-            else {
-                this->construct_with_value2(v);
-            }
-        }
-
-        template <typename T1, typename T2>
-        inline void assign_impl(std::pair<T1 const, T2> const& v) {
-            this->construct_with_value2(v);
-        }
-
-        template <typename T>
-        inline void move_assign_impl(T& v) {
-            if (this->node_ && this->value_constructed_) {
-                this->node_->value() = ndnboost::move(v);
-            }
-            else {
-                this->construct_with_value2(ndnboost::move(v));
-            }
-        }
-
-        template <typename T1, typename T2>
-        inline void move_assign_impl(std::pair<T1 const, T2>& v) {
-            this->construct_with_value2(ndnboost::move(v));
-        }
-
-        node_pointer copy_of(value_type const& v)
-        {
-            node_for_assignment();
-            assign_impl(v);
-            return base::release();
-        }
-
-        node_pointer move_copy_of(value_type& v)
-        {
-            node_for_assignment();
-            move_assign_impl(v);
-            return base::release();
-        }
-
-        iterator begin() const
-        {
-            return iterator(nodes_);
-        }
-    };
-
-    template <typename Alloc>
-    node_holder<Alloc>::~node_holder()
-    {
-        while (nodes_) {
-            node_pointer p = nodes_;
-            nodes_ = static_cast<node_pointer>(p->next_);
-
-            ndnboost::unordered::detail::destroy_value_impl(this->alloc_,
-                p->value_ptr());
-            node_allocator_traits::destroy(this->alloc_, ndnboost::addressof(*p));
-            node_allocator_traits::deallocate(this->alloc_, p, 1);
-        }
-    }
-
-    ///////////////////////////////////////////////////////////////////
-    //
-    // Bucket
-
-    template <typename NodePointer>
-    struct bucket
-    {
-        typedef NodePointer link_pointer;
-        link_pointer next_;
-
-        bucket() : next_() {}
-
-        link_pointer first_from_start()
-        {
-            return next_;
-        }
-
-        enum { extra_node = true };
-    };
-
-    struct ptr_bucket
-    {
-        typedef ptr_bucket* link_pointer;
-        link_pointer next_;
-
-        ptr_bucket() : next_(0) {}
-
-        link_pointer first_from_start()
-        {
-            return this;
-        }
-
-        enum { extra_node = false };
-    };
-
-    ///////////////////////////////////////////////////////////////////
-    //
-    // Hash Policy
-
-    template <typename SizeT>
-    struct prime_policy
-    {
-        template <typename Hash, typename T>
-        static inline SizeT apply_hash(Hash const& hf, T const& x) {
-            return hf(x);
-        }
-
-        static inline SizeT to_bucket(SizeT bucket_count, SizeT hash) {
-            return hash % bucket_count;
-        }
-
-        static inline SizeT new_bucket_count(SizeT min) {
-            return ndnboost::unordered::detail::next_prime(min);
-        }
-
-        static inline SizeT prev_bucket_count(SizeT max) {
-            return ndnboost::unordered::detail::prev_prime(max);
-        }
-    };
-
-    template <typename SizeT>
-    struct mix64_policy
-    {
-        template <typename Hash, typename T>
-        static inline SizeT apply_hash(Hash const& hf, T const& x) {
-            SizeT key = hf(x);
-            key = (~key) + (key << 21); // key = (key << 21) - key - 1;
-            key = key ^ (key >> 24);
-            key = (key + (key << 3)) + (key << 8); // key * 265
-            key = key ^ (key >> 14);
-            key = (key + (key << 2)) + (key << 4); // key * 21
-            key = key ^ (key >> 28);
-            key = key + (key << 31);
-            return key;
-        }
-
-        static inline SizeT to_bucket(SizeT bucket_count, SizeT hash) {
-            return hash & (bucket_count - 1);
-        }
-
-        static inline SizeT new_bucket_count(SizeT min) {
-            if (min <= 4) return 4;
-            --min;
-            min |= min >> 1;
-            min |= min >> 2;
-            min |= min >> 4;
-            min |= min >> 8;
-            min |= min >> 16;
-            min |= min >> 32;
-            return min + 1;
-        }
-
-        static inline SizeT prev_bucket_count(SizeT max) {
-            max |= max >> 1;
-            max |= max >> 2;
-            max |= max >> 4;
-            max |= max >> 8;
-            max |= max >> 16;
-            max |= max >> 32;
-            return (max >> 1) + 1;
-        }
-    };
-
-    template <int digits, int radix>
-    struct pick_policy_impl {
-        typedef prime_policy<std::size_t> type;
-    };
-
-    template <>
-    struct pick_policy_impl<64, 2> {
-        typedef mix64_policy<std::size_t> type;
-    };
-
-    struct pick_policy :
-        pick_policy_impl<
-            std::numeric_limits<std::size_t>::digits,
-            std::numeric_limits<std::size_t>::radix> {};
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Functions
-
-    // Assigning and swapping the equality and hash function objects
-    // needs strong exception safety. To implement that normally we'd
-    // require one of them to be known to not throw and the other to
-    // guarantee strong exception safety. Unfortunately they both only
-    // have basic exception safety. So to acheive strong exception
-    // safety we have storage space for two copies, and assign the new
-    // copies to the unused space. Then switch to using that to use
-    // them. This is implemented in 'set_hash_functions' which
-    // atomically assigns the new function objects in a strongly
-    // exception safe manner.
-
-    template <class H, class P, bool NoThrowMoveAssign>
-    class set_hash_functions;
-
-    template <class H, class P>
-    class functions
-    {
-    public:
-        static const bool nothrow_move_assignable =
-                ndnboost::is_nothrow_move_assignable<H>::value &&
-                ndnboost::is_nothrow_move_assignable<P>::value;
-        static const bool nothrow_move_constructible =
-                ndnboost::is_nothrow_move_constructible<H>::value &&
-                ndnboost::is_nothrow_move_constructible<P>::value;
-
-    private:
-        friend class ndnboost::unordered::detail::set_hash_functions<H, P,
-               nothrow_move_assignable>;
-        functions& operator=(functions const&);
-
-        typedef compressed<H, P> function_pair;
-
-        typedef typename ndnboost::aligned_storage<
-            sizeof(function_pair),
-            ndnboost::alignment_of<function_pair>::value>::type aligned_function;
-
-        bool current_; // The currently active functions.
-        aligned_function funcs_[2];
-
-        function_pair const& current() const {
-            return *static_cast<function_pair const*>(
-                static_cast<void const*>(&funcs_[current_]));
-        }
-
-        function_pair& current() {
-            return *static_cast<function_pair*>(
-                static_cast<void*>(&funcs_[current_]));
-        }
-
-        void construct(bool which, H const& hf, P const& eq)
-        {
-            new((void*) &funcs_[which]) function_pair(hf, eq);
-        }
-
-        void construct(bool which, function_pair const& f)
-        {
-            new((void*) &funcs_[which]) function_pair(f);
-        }
-        
-        void construct(bool which, function_pair& f,
-                ndnboost::unordered::detail::move_tag m)
-        {
-            new((void*) &funcs_[which]) function_pair(f, m);
-        }
-
-        void destroy(bool which)
-        {
-            ndnboost::unordered::detail::destroy((function_pair*)(&funcs_[which]));
-        }
-        
-    public:
-
-        typedef ndnboost::unordered::detail::set_hash_functions<H, P,
-                nothrow_move_assignable> set_hash_functions;
-
-        functions(H const& hf, P const& eq)
-            : current_(false)
-        {
-            construct(current_, hf, eq);
-        }
-
-        functions(functions const& bf)
-            : current_(false)
-        {
-            construct(current_, bf.current());
-        }
-
-        functions(functions& bf, ndnboost::unordered::detail::move_tag m)
-            : current_(false)
-        {
-            if (nothrow_move_constructible) {
-                construct(current_, bf.current(), m);
-            }
-            else {
-                construct(current_, bf.current());
-            }
-        }
-
-        ~functions() {
-            this->destroy(current_);
-        }
-
-        H const& hash_function() const {
-            return current().first();
-        }
-
-        P const& key_eq() const {
-            return current().second();
-        }
-    };
-
-    template <class H, class P>
-    class set_hash_functions<H, P, false>
-    {
-        set_hash_functions(set_hash_functions const&);
-        set_hash_functions& operator=(set_hash_functions const&);
-
-        typedef functions<H, P> functions_type;
-    
-        functions_type& functions_;
-        bool tmp_functions_;
-
-    public:
-
-        set_hash_functions(functions_type& f, H const& h, P const& p)
-          : functions_(f),
-            tmp_functions_(!f.current_)
-        {
-            f.construct(tmp_functions_, h, p);
-        }
-
-        set_hash_functions(functions_type& f, functions_type const& other)
-          : functions_(f),
-            tmp_functions_(!f.current_)
-        {
-            f.construct(tmp_functions_, other.current());
-        }
-
-        ~set_hash_functions()
-        {
-            functions_.destroy(tmp_functions_);
-        }
-
-        void commit()
-        {
-            functions_.current_ = tmp_functions_;
-            tmp_functions_ = !tmp_functions_;
-        }
-    };
-
-    template <class H, class P>
-    class set_hash_functions<H, P, true>
-    {
-        set_hash_functions(set_hash_functions const&);
-        set_hash_functions& operator=(set_hash_functions const&);
-
-        typedef functions<H, P> functions_type;
-
-        functions_type& functions_;
-        H hash_;
-        P pred_;
-    
-    public:
-
-        set_hash_functions(functions_type& f, H const& h, P const& p) :
-            functions_(f),
-            hash_(h),
-            pred_(p) {}
-
-        set_hash_functions(functions_type& f, functions_type const& other) :
-            functions_(f),
-            hash_(other.hash_function()),
-            pred_(other.key_eq()) {}
-
-        void commit()
-        {
-            functions_.current().first() = ndnboost::move(hash_);
-            functions_.current().second() = ndnboost::move(pred_);
-        }
-    };
-    
-    ////////////////////////////////////////////////////////////////////////////
-    // rvalue parameters when type can't be a NDNBOOST_RV_REF(T) parameter
-    // e.g. for int
-
-#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;
-    };
-
-    template <typename T>
-    struct rv_ref_impl {
-        typedef NDNBOOST_RV_REF(T) type;
-    };
-
-    template <typename T>
-    struct rv_ref :
-        ndnboost::detail::if_true<
-            ndnboost::is_class<T>::value
-        >::NDNBOOST_NESTED_TEMPLATE then <
-            ndnboost::unordered::detail::rv_ref_impl<T>,
-            please_ignore_this_overload
-        >::type
-    {};
-
-#   define NDNBOOST_UNORDERED_RV_REF(T) \
-        typename ndnboost::unordered::detail::rv_ref<T>::type
-#endif
-}}}
-
-#endif
diff --git a/include/ndnboost/unordered/detail/equivalent.hpp b/include/ndnboost/unordered/detail/equivalent.hpp
deleted file mode 100644
index 8b62d59..0000000
--- a/include/ndnboost/unordered/detail/equivalent.hpp
+++ /dev/null
@@ -1,680 +0,0 @@
-
-// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
-// Copyright (C) 2005-2011 Daniel James
-// 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 NDNBOOST_UNORDERED_DETAIL_EQUIVALENT_HPP_INCLUDED
-#define NDNBOOST_UNORDERED_DETAIL_EQUIVALENT_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/unordered/detail/table.hpp>
-#include <ndnboost/unordered/detail/extract_key.hpp>
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    template <typename A, typename T> struct grouped_node;
-    template <typename T> struct grouped_ptr_node;
-    template <typename Types> struct grouped_table_impl;
-
-    template <typename A, typename T>
-    struct grouped_node :
-        ndnboost::unordered::detail::value_base<T>
-    {
-        typedef typename ::ndnboost::unordered::detail::rebind_wrap<
-            A, grouped_node<A, T> >::type allocator;
-        typedef typename ::ndnboost::unordered::detail::
-            allocator_traits<allocator>::pointer node_pointer;
-        typedef node_pointer link_pointer;
-
-        link_pointer next_;
-        node_pointer group_prev_;
-        std::size_t hash_;
-
-        grouped_node() :
-            next_(),
-            group_prev_(),
-            hash_(0)
-        {}
-
-        void init(node_pointer self)
-        {
-            group_prev_ = self;
-        }
-
-    private:
-        grouped_node& operator=(grouped_node const&);
-    };
-
-    template <typename T>
-    struct grouped_ptr_node :
-        ndnboost::unordered::detail::value_base<T>,
-        ndnboost::unordered::detail::ptr_bucket
-    {
-        typedef ndnboost::unordered::detail::ptr_bucket bucket_base;
-        typedef grouped_ptr_node<T>* node_pointer;
-        typedef ptr_bucket* link_pointer;
-
-        node_pointer group_prev_;
-        std::size_t hash_;
-
-        grouped_ptr_node() :
-            bucket_base(),
-            group_prev_(0),
-            hash_(0)
-        {}
-
-        void init(node_pointer self)
-        {
-            group_prev_ = self;
-        }
-
-    private:
-        grouped_ptr_node& operator=(grouped_ptr_node const&);
-    };
-
-    // If the allocator uses raw pointers use grouped_ptr_node
-    // Otherwise use grouped_node.
-
-    template <typename A, typename T, typename NodePtr, typename BucketPtr>
-    struct pick_grouped_node2
-    {
-        typedef ndnboost::unordered::detail::grouped_node<A, T> node;
-
-        typedef typename ndnboost::unordered::detail::allocator_traits<
-            typename ndnboost::unordered::detail::rebind_wrap<A, node>::type
-        >::pointer node_pointer;
-
-        typedef ndnboost::unordered::detail::bucket<node_pointer> bucket;
-        typedef node_pointer link_pointer;
-    };
-
-    template <typename A, typename T>
-    struct pick_grouped_node2<A, T,
-        ndnboost::unordered::detail::grouped_ptr_node<T>*,
-        ndnboost::unordered::detail::ptr_bucket*>
-    {
-        typedef ndnboost::unordered::detail::grouped_ptr_node<T> node;
-        typedef ndnboost::unordered::detail::ptr_bucket bucket;
-        typedef bucket* link_pointer;
-    };
-
-    template <typename A, typename T>
-    struct pick_grouped_node
-    {
-        typedef ndnboost::unordered::detail::allocator_traits<
-            typename ndnboost::unordered::detail::rebind_wrap<A,
-                ndnboost::unordered::detail::grouped_ptr_node<T> >::type
-        > tentative_node_traits;
-
-        typedef ndnboost::unordered::detail::allocator_traits<
-            typename ndnboost::unordered::detail::rebind_wrap<A,
-                ndnboost::unordered::detail::ptr_bucket >::type
-        > tentative_bucket_traits;
-
-        typedef pick_grouped_node2<A, T,
-            typename tentative_node_traits::pointer,
-            typename tentative_bucket_traits::pointer> pick;
-
-        typedef typename pick::node node;
-        typedef typename pick::bucket bucket;
-        typedef typename pick::link_pointer link_pointer;
-    };
-
-    template <typename A, typename T, typename H, typename P>
-    struct multiset
-    {
-        typedef ndnboost::unordered::detail::multiset<A, T, H, P> types;
-
-        typedef A allocator;
-        typedef T value_type;
-        typedef H hasher;
-        typedef P key_equal;
-        typedef T key_type;
-
-        typedef ndnboost::unordered::detail::allocator_traits<allocator> traits;
-        typedef ndnboost::unordered::detail::pick_grouped_node<allocator,
-            value_type> pick;
-        typedef typename pick::node node;
-        typedef typename pick::bucket bucket;
-        typedef typename pick::link_pointer link_pointer;
-
-        typedef ndnboost::unordered::detail::grouped_table_impl<types> table;
-        typedef ndnboost::unordered::detail::set_extractor<value_type> extractor;
-
-        typedef ndnboost::unordered::detail::pick_policy::type policy;
-    };
-
-    template <typename A, typename K, typename M, typename H, typename P>
-    struct multimap
-    {
-        typedef ndnboost::unordered::detail::multimap<A, K, M, H, P> types;
-
-        typedef A allocator;
-        typedef std::pair<K const, M> value_type;
-        typedef H hasher;
-        typedef P key_equal;
-        typedef K key_type;
-
-        typedef ndnboost::unordered::detail::allocator_traits<allocator> traits;
-        typedef ndnboost::unordered::detail::pick_grouped_node<allocator,
-                value_type> pick;
-        typedef typename pick::node node;
-        typedef typename pick::bucket bucket;
-        typedef typename pick::link_pointer link_pointer;
-
-        typedef ndnboost::unordered::detail::grouped_table_impl<types> table;
-        typedef ndnboost::unordered::detail::map_extractor<key_type, value_type>
-            extractor;
-
-        typedef ndnboost::unordered::detail::pick_policy::type policy;
-    };
-
-    template <typename Types>
-    struct grouped_table_impl : ndnboost::unordered::detail::table<Types>
-    {
-        typedef ndnboost::unordered::detail::table<Types> table;
-        typedef typename table::value_type value_type;
-        typedef typename table::bucket bucket;
-        typedef typename table::policy policy;
-        typedef typename table::node_pointer node_pointer;
-        typedef typename table::node_allocator node_allocator;
-        typedef typename table::node_allocator_traits node_allocator_traits;
-        typedef typename table::bucket_pointer bucket_pointer;
-        typedef typename table::link_pointer link_pointer;
-        typedef typename table::hasher hasher;
-        typedef typename table::key_equal key_equal;
-        typedef typename table::key_type key_type;
-        typedef typename table::node_constructor node_constructor;
-        typedef typename table::extractor extractor;
-        typedef typename table::iterator iterator;
-        typedef typename table::c_iterator c_iterator;
-
-        // Constructors
-
-        grouped_table_impl(std::size_t n,
-                hasher const& hf,
-                key_equal const& eq,
-                node_allocator const& a)
-          : table(n, hf, eq, a)
-        {}
-
-        grouped_table_impl(grouped_table_impl const& x)
-          : table(x, node_allocator_traits::
-                select_on_container_copy_construction(x.node_alloc()))
-        {
-            this->init(x);
-        }
-
-        grouped_table_impl(grouped_table_impl const& x,
-                node_allocator const& a)
-          : table(x, a)
-        {
-            this->init(x);
-        }
-
-        grouped_table_impl(grouped_table_impl& x,
-                ndnboost::unordered::detail::move_tag m)
-          : table(x, m)
-        {}
-
-        grouped_table_impl(grouped_table_impl& x,
-                node_allocator const& a,
-                ndnboost::unordered::detail::move_tag m)
-          : table(x, a, m)
-        {
-            this->move_init(x);
-        }
-
-        // Accessors
-
-        template <class Key, class Pred>
-        iterator find_node_impl(
-                std::size_t key_hash,
-                Key const& k,
-                Pred const& eq) const
-        {
-            std::size_t bucket_index = this->hash_to_bucket(key_hash);
-            iterator n = this->begin(bucket_index);
-
-            for (;;)
-            {
-                if (!n.node_) return n;
-
-                std::size_t node_hash = n.node_->hash_;
-                if (key_hash == node_hash)
-                {
-                    if (eq(k, this->get_key(*n)))
-                        return n;
-                }
-                else
-                {
-                    if (this->hash_to_bucket(node_hash) != bucket_index)
-                        return iterator();
-                }
-
-                n = iterator(n.node_->group_prev_->next_);
-            }
-        }
-
-        std::size_t count(key_type const& k) const
-        {
-            iterator n = this->find_node(k);
-            if (!n.node_) return 0;
-
-            std::size_t x = 0;
-            node_pointer it = n.node_;
-            do {
-                it = it->group_prev_;
-                ++x;
-            } while(it != n.node_);
-
-            return x;
-        }
-
-        std::pair<iterator, iterator>
-            equal_range(key_type const& k) const
-        {
-            iterator n = this->find_node(k);
-            return std::make_pair(
-                n, n.node_ ? iterator(n.node_->group_prev_->next_) : n);
-        }
-
-        // Equality
-
-        bool equals(grouped_table_impl const& other) const
-        {
-            if(this->size_ != other.size_) return false;
-    
-            for(iterator n1 = this->begin(); n1.node_;)
-            {
-                iterator n2 = other.find_matching_node(n1);
-                if (!n2.node_) return false;
-                iterator end1(n1.node_->group_prev_->next_);
-                iterator end2(n2.node_->group_prev_->next_);
-                if (!group_equals(n1, end1, n2, end2)) return false;
-                n1 = end1;    
-            }
-    
-            return true;
-        }
-
-        static bool group_equals(iterator n1, iterator end1,
-                iterator n2, iterator end2)
-        {
-            for(;;)
-            {
-                if (*n1 != *n2) break;
-
-                ++n1;
-                ++n2;
-            
-                if (n1 == end1) return n2 == end2;
-                if (n2 == end2) return false;
-            }
-            
-            for(iterator n1a = n1, n2a = n2;;)
-            {
-                ++n1a;
-                ++n2a;
-
-                if (n1a == end1)
-                {
-                    if (n2a == end2) break;
-                    else return false;
-                }
-
-                if (n2a == end2) return false;
-            }
-
-            iterator start = n1;
-            for(;n1 != end1; ++n1)
-            {
-                value_type const& v = *n1;
-                if (find(start, n1, v)) continue;
-                std::size_t matches = count_equal(n2, end2, v);
-                if (!matches) return false;
-                iterator next = n1;
-                ++next;
-                if (matches != 1 + count_equal(next, end1, v)) return false;
-            }
-            
-            return true;
-        }
-
-        static bool find(iterator n, iterator end, value_type const& v)
-        {
-            for(;n != end; ++n)
-                if (*n == v)
-                    return true;
-            return false;
-        }
-
-        static std::size_t count_equal(iterator n, iterator end,
-            value_type const& v)
-        {
-            std::size_t count = 0;
-            for(;n != end; ++n)
-                if (*n == v) ++count;
-            return count;
-        }
-
-        // Emplace/Insert
-
-        static inline void add_after_node(
-                node_pointer n,
-                node_pointer pos)
-        {
-            n->next_ = pos->group_prev_->next_;
-            n->group_prev_ = pos->group_prev_;
-            pos->group_prev_->next_ = n;
-            pos->group_prev_ = n;
-        }
-
-        inline iterator add_node(
-                node_constructor& a,
-                std::size_t key_hash,
-                iterator pos)
-        {
-            node_pointer n = a.release();
-            n->hash_ = key_hash;
-            if (pos.node_) {
-                this->add_after_node(n, pos.node_);
-                if (n->next_) {
-                    std::size_t next_bucket = this->hash_to_bucket(
-                        static_cast<node_pointer>(n->next_)->hash_);
-                    if (next_bucket != this->hash_to_bucket(key_hash)) {
-                        this->get_bucket(next_bucket)->next_ = n;
-                    }
-                }
-            }
-            else {
-                bucket_pointer b = this->get_bucket(
-                    this->hash_to_bucket(key_hash));
-
-                if (!b->next_)
-                {
-                    link_pointer start_node = this->get_previous_start();
-                    
-                    if (start_node->next_) {
-                        this->get_bucket(this->hash_to_bucket(
-                            static_cast<node_pointer>(start_node->next_)->hash_
-                        ))->next_ = n;
-                    }
-    
-                    b->next_ = start_node;
-                    n->next_ = start_node->next_;
-                    start_node->next_ = n;
-                }
-                else
-                {
-                    n->next_ = b->next_->next_;
-                    b->next_->next_ = n;
-                }
-            }
-            ++this->size_;
-            return iterator(n);
-        }
-
-        iterator emplace_impl(node_constructor& a)
-        {
-            key_type const& k = this->get_key(a.value());
-            std::size_t key_hash = this->hash(k);
-            iterator position = this->find_node(key_hash, k);
-
-            // reserve has basic exception safety if the hash function
-            // throws, strong otherwise.
-            this->reserve_for_insert(this->size_ + 1);
-            return this->add_node(a, key_hash, position);
-        }
-
-        void emplace_impl_no_rehash(node_constructor& a)
-        {
-            key_type const& k = this->get_key(a.value());
-            std::size_t key_hash = this->hash(k);
-            this->add_node(a, key_hash, this->find_node(key_hash, k));
-        }
-
-#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&)
-        {
-            NDNBOOST_ASSERT(false);
-            return iterator();
-        }
-#   else
-        iterator emplace(
-                ndnboost::unordered::detail::please_ignore_this_overload const&)
-        {
-            NDNBOOST_ASSERT(false);
-            return iterator();
-        }
-#   endif
-#endif
-
-        template <NDNBOOST_UNORDERED_EMPLACE_TEMPLATE>
-        iterator emplace(NDNBOOST_UNORDERED_EMPLACE_ARGS)
-        {
-            node_constructor a(this->node_alloc());
-            a.construct_with_value(NDNBOOST_UNORDERED_EMPLACE_FORWARD);
-
-            return iterator(emplace_impl(a));
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Insert range methods
-
-        // if hash function throws, or inserting > 1 element, basic exception
-        // safety. Strong otherwise
-        template <class I>
-        typename ndnboost::unordered::detail::enable_if_forward<I, void>::type
-            insert_range(I i, I j)
-        {
-            if(i == j) return;
-
-            std::size_t distance = ndnboost::unordered::detail::distance(i, j);
-            if(distance == 1) {
-                node_constructor a(this->node_alloc());
-                a.construct_with_value2(*i);
-                emplace_impl(a);
-            }
-            else {
-                // Only require basic exception safety here
-                this->reserve_for_insert(this->size_ + distance);
-
-                node_constructor a(this->node_alloc());
-                for (; i != j; ++i) {
-                    a.construct_with_value2(*i);
-                    emplace_impl_no_rehash(a);
-                }
-            }
-        }
-
-        template <class I>
-        typename ndnboost::unordered::detail::disable_if_forward<I, void>::type
-            insert_range(I i, I j)
-        {
-            node_constructor a(this->node_alloc());
-            for (; i != j; ++i) {
-                a.construct_with_value2(*i);
-                emplace_impl(a);
-            }
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Erase
-        //
-        // no throw
-
-        std::size_t erase_key(key_type const& k)
-        {
-            if(!this->size_) return 0;
-
-            std::size_t key_hash = this->hash(k);
-            std::size_t bucket_index = this->hash_to_bucket(key_hash);
-            link_pointer prev = this->get_previous_start(bucket_index);
-            if (!prev) return 0;
-
-            for (;;)
-            {
-                if (!prev->next_) return 0;
-                std::size_t node_hash =
-                    static_cast<node_pointer>(prev->next_)->hash_;
-                if (this->hash_to_bucket(node_hash) != bucket_index)
-                    return 0;
-                if (node_hash == key_hash &&
-                    this->key_eq()(k, this->get_key(
-                        static_cast<node_pointer>(prev->next_)->value())))
-                    break;
-                prev = static_cast<node_pointer>(prev->next_)->group_prev_;
-            }
-
-            node_pointer first_node = static_cast<node_pointer>(prev->next_);
-            link_pointer end = first_node->group_prev_->next_;
-
-            std::size_t count = this->delete_nodes(prev, end);
-            this->fix_bucket(bucket_index, prev);
-            return count;
-        }
-
-        iterator erase(c_iterator r)
-        {
-            NDNBOOST_ASSERT(r.node_);
-            iterator next(r.node_);
-            ++next;
-            erase_nodes(r.node_, next.node_);
-            return next;
-        }
-
-        iterator erase_range(c_iterator r1, c_iterator r2)
-        {
-            if (r1 == r2) return iterator(r2.node_);
-            erase_nodes(r1.node_, r2.node_);
-            return iterator(r2.node_);
-        }
-
-        link_pointer erase_nodes(node_pointer begin, node_pointer end)
-        {
-            std::size_t bucket_index = this->hash_to_bucket(begin->hash_);
-
-            // Split the groups containing 'begin' and 'end'.
-            // And get the pointer to the node before begin while
-            // we're at it.
-            link_pointer prev = split_groups(begin, end);
-
-            // If we don't have a 'prev' it means that begin is at the
-            // beginning of a block, so search through the blocks in the
-            // same bucket.
-            if (!prev) {
-                prev = this->get_previous_start(bucket_index);
-                while (prev->next_ != begin)
-                    prev = static_cast<node_pointer>(prev->next_)->group_prev_;
-            }
-
-            // Delete the nodes.
-            do {
-                link_pointer group_end =
-                    static_cast<node_pointer>(prev->next_)->group_prev_->next_;
-                this->delete_nodes(prev, group_end);
-                bucket_index = this->fix_bucket(bucket_index, prev);
-            } while(prev->next_ != end);
-
-            return prev;
-        }
-
-        static link_pointer split_groups(node_pointer begin, node_pointer end)
-        {
-            node_pointer prev = begin->group_prev_;
-            if (prev->next_ != begin) prev = node_pointer();
-
-            if (end) {
-                node_pointer first = end;
-                while (first != begin && first->group_prev_->next_ == first) {
-                    first = first->group_prev_;
-                }
-
-                ndnboost::swap(first->group_prev_, end->group_prev_);
-                if (first == begin) return prev;
-            }
-
-            if (prev) {
-                node_pointer first = prev;
-                while (first->group_prev_->next_ == first) {
-                    first = first->group_prev_;
-                }
-                ndnboost::swap(first->group_prev_, begin->group_prev_);
-            }
-
-            return prev;
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // fill_buckets
-
-        template <class NodeCreator>
-        static void fill_buckets(iterator n, table& dst,
-            NodeCreator& creator)
-        {
-            link_pointer prev = dst.get_previous_start();
-
-            while (n.node_) {
-                std::size_t key_hash = n.node_->hash_;
-                iterator group_end(n.node_->group_prev_->next_);
-
-                node_pointer first_node = creator.create(*n);
-                node_pointer end = first_node;
-                first_node->hash_ = key_hash;
-                prev->next_ = first_node;
-                ++dst.size_;
-
-                for (++n; n != group_end; ++n)
-                {
-                    end = creator.create(*n);
-                    end->hash_ = key_hash;
-                    add_after_node(end, first_node);
-                    ++dst.size_;
-                }
-
-                prev = place_in_bucket(dst, prev, end);
-            }
-        }
-
-        // strong otherwise exception safety
-        void rehash_impl(std::size_t num_buckets)
-        {
-            NDNBOOST_ASSERT(this->buckets_);
-
-            this->create_buckets(num_buckets);
-            link_pointer prev = this->get_previous_start();
-            while (prev->next_)
-                prev = place_in_bucket(*this, prev,
-                    static_cast<node_pointer>(prev->next_)->group_prev_);
-        }
-
-        // Iterate through the nodes placing them in the correct buckets.
-        // pre: prev->next_ is not null.
-        static link_pointer place_in_bucket(table& dst,
-                link_pointer prev, node_pointer end)
-        {
-            bucket_pointer b = dst.get_bucket(dst.hash_to_bucket(end->hash_));
-
-            if (!b->next_) {
-                b->next_ = prev;
-                return end;
-            }
-            else {
-                link_pointer next = end->next_;
-                end->next_ = b->next_->next_;
-                b->next_->next_ = prev->next_;
-                prev->next_ = next;
-                return prev;
-            }
-        }
-    };
-}}}
-
-#endif
diff --git a/include/ndnboost/unordered/detail/extract_key.hpp b/include/ndnboost/unordered/detail/extract_key.hpp
deleted file mode 100644
index 37e7aba..0000000
--- a/include/ndnboost/unordered/detail/extract_key.hpp
+++ /dev/null
@@ -1,183 +0,0 @@
-
-// Copyright (C) 2005-2011 Daniel James
-// 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 NDNBOOST_UNORDERED_DETAIL_EXTRACT_KEY_HPP_INCLUDED
-#define NDNBOOST_UNORDERED_DETAIL_EXTRACT_KEY_HPP_INCLUDED
-
-#include <ndnboost/unordered/detail/table.hpp>
-
-namespace ndnboost {
-namespace unordered {
-namespace detail {
-
-    // key extractors
-    //
-    // no throw
-    //
-    // 'extract_key' is called with the emplace parameters to return a
-    // key if available or 'no_key' is one isn't and will need to be
-    // constructed. This could be done by overloading the emplace implementation
-    // for the different cases, but that's a bit tricky on compilers without
-    // variadic templates.
-
-    struct no_key {
-        no_key() {}
-        template <class T> no_key(T const&) {}
-    };
-
-    template <typename Key, typename T>
-    struct is_key {
-        template <typename T2>
-        static choice1::type test(T2 const&);
-        static choice2::type test(Key const&);
-        
-        enum { value = sizeof(test(ndnboost::unordered::detail::make<T>())) ==
-            sizeof(choice2::type) };
-        
-        typedef typename ndnboost::detail::if_true<value>::
-            NDNBOOST_NESTED_TEMPLATE then<Key const&, no_key>::type type;
-    };
-
-    template <class ValueType>
-    struct set_extractor
-    {
-        typedef ValueType value_type;
-        typedef ValueType key_type;
-
-        static key_type const& extract(key_type const& v)
-        {
-            return v;
-        }
-
-        static no_key extract()
-        {
-            return no_key();
-        }
-        
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-        template <class... Args>
-        static no_key extract(Args const&...)
-        {
-            return no_key();
-        }
-#else
-        template <class Arg>
-        static no_key extract(Arg const&)
-        {
-            return no_key();
-        }
-
-        template <class Arg1, class Arg2>
-        static no_key extract(Arg1 const&, Arg2 const&)
-        {
-            return no_key();
-        }
-#endif
-    };
-
-    template <class Key, class ValueType>
-    struct map_extractor
-    {
-        typedef ValueType value_type;
-        typedef typename ndnboost::remove_const<Key>::type key_type;
-
-        static key_type const& extract(value_type const& v)
-        {
-            return v.first;
-        }
-            
-        template <class Second>
-        static key_type const& extract(std::pair<key_type, Second> const& v)
-        {
-            return v.first;
-        }
-
-        template <class Second>
-        static key_type const& extract(
-            std::pair<key_type const, Second> const& v)
-        {
-            return v.first;
-        }
-
-        template <class Arg1>
-        static key_type const& extract(key_type const& k, Arg1 const&)
-        {
-            return k;
-        }
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-        template <class... Args>
-        static no_key extract(Args const&...)
-        {
-            return no_key();
-        }
-#else
-
-        static no_key extract()
-        {
-            return no_key();
-        }
-
-        template <class Arg>
-        static no_key extract(Arg const&)
-        {
-            return no_key();
-        }
-
-        template <class Arg, class Arg1>
-        static no_key extract(Arg const&, Arg1 const&)
-        {
-            return no_key();
-        }
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-
-#define NDNBOOST_UNORDERED_KEY_FROM_TUPLE(namespace_)                          \
-        template <typename T2>                                              \
-        static no_key extract(ndnboost::unordered::piecewise_construct_t,      \
-                namespace_ tuple<> const&, T2 const&)                       \
-        {                                                                   \
-            return no_key();                                                \
-        }                                                                   \
-                                                                            \
-        template <typename T, typename T2>                                  \
-        static typename is_key<key_type, T>::type                           \
-            extract(ndnboost::unordered::piecewise_construct_t,                \
-                namespace_ tuple<T> const& k, T2 const&)                    \
-        {                                                                   \
-            return typename is_key<key_type, T>::type(                      \
-                namespace_ get<0>(k));                                      \
-        }
-
-#else
-
-#define NDNBOOST_UNORDERED_KEY_FROM_TUPLE(namespace_)                          \
-        static no_key extract(ndnboost::unordered::piecewise_construct_t,      \
-                namespace_ tuple<> const&)                                  \
-        {                                                                   \
-            return no_key();                                                \
-        }                                                                   \
-                                                                            \
-        template <typename T>                                               \
-        static typename is_key<key_type, T>::type                           \
-            extract(ndnboost::unordered::piecewise_construct_t,                \
-                namespace_ tuple<T> const& k)                               \
-        {                                                                   \
-            return typename is_key<key_type, T>::type(                      \
-                namespace_ get<0>(k));                                      \
-        }
-
-#endif
-
-NDNBOOST_UNORDERED_KEY_FROM_TUPLE(ndnboost::)
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_TUPLE)
-NDNBOOST_UNORDERED_KEY_FROM_TUPLE(std::)
-#endif
-    };
-}}}
-
-#endif
diff --git a/include/ndnboost/unordered/detail/fwd.hpp b/include/ndnboost/unordered/detail/fwd.hpp
deleted file mode 100644
index c4f4cda..0000000
--- a/include/ndnboost/unordered/detail/fwd.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-// Copyright (C) 2008-2011 Daniel James.
-// 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 NDNBOOST_UNORDERED_FWD_HPP_INCLUDED
-#define NDNBOOST_UNORDERED_FWD_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-
-namespace ndnboost
-{
-namespace unordered
-{
-    struct piecewise_construct_t {};
-    const piecewise_construct_t piecewise_construct = piecewise_construct_t();
-}
-}
-
-#endif
diff --git a/include/ndnboost/unordered/detail/table.hpp b/include/ndnboost/unordered/detail/table.hpp
deleted file mode 100644
index 7641483..0000000
--- a/include/ndnboost/unordered/detail/table.hpp
+++ /dev/null
@@ -1,861 +0,0 @@
-
-// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
-// Copyright (C) 2005-2011 Daniel James
-// 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 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>
-#include <ndnboost/type_traits/aligned_storage.hpp>
-#include <ndnboost/type_traits/alignment_of.hpp>
-#include <cmath>
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(push)
-#pragma warning(disable:4127) // conditional expression is constant
-#endif
-
-#if defined(NDNBOOST_UNORDERED_DEPRECATED_EQUALITY)
-
-#if defined(__EDG__)
-#elif defined(_MSC_VER) || defined(__BORLANDC__) || defined(__DMC__)
-#pragma message("Warning: NDNBOOST_UNORDERED_DEPRECATED_EQUALITY is no longer supported.")
-#elif defined(__GNUC__) || defined(__HP_aCC) || \
-    defined(__SUNPRO_CC) || defined(__IBMCPP__)
-#warning "NDNBOOST_UNORDERED_DEPRECATED_EQUALITY is no longer supported."
-#endif
-
-#endif
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    ////////////////////////////////////////////////////////////////////////////
-    // convert double to std::size_t
-
-    inline std::size_t double_to_size(double f)
-    {
-        return f >= static_cast<double>(
-            (std::numeric_limits<std::size_t>::max)()) ?
-            (std::numeric_limits<std::size_t>::max)() :
-            static_cast<std::size_t>(f);
-    }
-
-    // The space used to store values in a node.
-
-    template <typename ValueType>
-    struct value_base
-    {
-        typedef ValueType value_type;
-
-        typename ndnboost::aligned_storage<
-            sizeof(value_type),
-            ndnboost::alignment_of<value_type>::value>::type data_;
-
-        void* address() {
-            return this;
-        }
-
-        value_type& value() {
-            return *(ValueType*) this;
-        }
-
-        value_type* value_ptr() {
-            return (ValueType*) this;
-        }
-
-    private:
-
-        value_base& operator=(value_base const&);
-    };
-
-    template <typename NodeAlloc>
-    struct copy_nodes
-    {
-        typedef ndnboost::unordered::detail::allocator_traits<NodeAlloc>
-            node_allocator_traits;
-
-        node_constructor<NodeAlloc> constructor;
-
-        explicit copy_nodes(NodeAlloc& a) : constructor(a) {}
-
-        typename node_allocator_traits::pointer create(
-                typename node_allocator_traits::value_type::value_type const& v)
-        {
-            constructor.construct_with_value2(v);
-            return constructor.release();
-        }
-    };
-
-    template <typename NodeAlloc>
-    struct move_nodes
-    {
-        typedef ndnboost::unordered::detail::allocator_traits<NodeAlloc>
-            node_allocator_traits;
-
-        node_constructor<NodeAlloc> constructor;
-
-        explicit move_nodes(NodeAlloc& a) : constructor(a) {}
-
-        typename node_allocator_traits::pointer create(
-                typename node_allocator_traits::value_type::value_type& v)
-        {
-            constructor.construct_with_value2(ndnboost::move(v));
-            return constructor.release();
-        }
-    };
-
-    template <typename Buckets>
-    struct assign_nodes
-    {
-        node_holder<typename Buckets::node_allocator> holder;
-
-        explicit assign_nodes(Buckets& b) : holder(b) {}
-
-        typename Buckets::node_pointer create(
-                typename Buckets::value_type const& v)
-        {
-            return holder.copy_of(v);
-        }
-    };
-
-    template <typename Buckets>
-    struct move_assign_nodes
-    {
-        node_holder<typename Buckets::node_allocator> holder;
-
-        explicit move_assign_nodes(Buckets& b) : holder(b) {}
-
-        typename Buckets::node_pointer create(
-                typename Buckets::value_type& v)
-        {
-            return holder.move_copy_of(v);
-        }
-    };
-
-    template <typename Types>
-    struct table :
-        ndnboost::unordered::detail::functions<
-            typename Types::hasher,
-            typename Types::key_equal>
-    {
-    private:
-        table(table const&);
-        table& operator=(table const&);
-    public:
-        typedef typename Types::node node;
-        typedef typename Types::bucket bucket;
-        typedef typename Types::hasher hasher;
-        typedef typename Types::key_equal key_equal;
-        typedef typename Types::key_type key_type;
-        typedef typename Types::extractor extractor;
-        typedef typename Types::value_type value_type;
-        typedef typename Types::table table_impl;
-        typedef typename Types::link_pointer link_pointer;
-        typedef typename Types::policy policy;
-
-        typedef ndnboost::unordered::detail::functions<
-            typename Types::hasher,
-            typename Types::key_equal> functions;
-        typedef typename functions::set_hash_functions set_hash_functions;
-
-        typedef typename Types::allocator allocator;
-        typedef typename ndnboost::unordered::detail::
-            rebind_wrap<allocator, node>::type node_allocator;
-        typedef typename ndnboost::unordered::detail::
-            rebind_wrap<allocator, bucket>::type bucket_allocator;
-        typedef ndnboost::unordered::detail::allocator_traits<node_allocator>
-            node_allocator_traits;
-        typedef ndnboost::unordered::detail::allocator_traits<bucket_allocator>
-            bucket_allocator_traits;
-        typedef typename node_allocator_traits::pointer
-            node_pointer;
-        typedef typename node_allocator_traits::const_pointer
-            const_node_pointer;
-        typedef typename bucket_allocator_traits::pointer
-            bucket_pointer;
-        typedef ndnboost::unordered::detail::node_constructor<node_allocator>
-            node_constructor;
-
-        typedef ndnboost::unordered::iterator_detail::
-            iterator<node> iterator;
-        typedef ndnboost::unordered::iterator_detail::
-            c_iterator<node, const_node_pointer> c_iterator;
-        typedef ndnboost::unordered::iterator_detail::
-            l_iterator<node, policy> l_iterator;
-        typedef ndnboost::unordered::iterator_detail::
-            cl_iterator<node, const_node_pointer, policy> cl_iterator;
-
-        ////////////////////////////////////////////////////////////////////////
-        // Members
-
-        ndnboost::unordered::detail::compressed<bucket_allocator, node_allocator>
-            allocators_;
-        std::size_t bucket_count_;
-        std::size_t size_;
-        float mlf_;
-        std::size_t max_load_;
-        bucket_pointer buckets_;
-
-        ////////////////////////////////////////////////////////////////////////
-        // Data access
-
-        bucket_allocator const& bucket_alloc() const
-        {
-            return allocators_.first();
-        }
-
-        node_allocator const& node_alloc() const
-        {
-            return allocators_.second();
-        }
-
-        bucket_allocator& bucket_alloc()
-        {
-            return allocators_.first();
-        }
-
-        node_allocator& node_alloc()
-        {
-            return allocators_.second();
-        }
-
-        std::size_t max_bucket_count() const
-        {
-            // -1 to account for the start bucket.
-            return policy::prev_bucket_count(
-                bucket_allocator_traits::max_size(bucket_alloc()) - 1);
-        }
-
-        bucket_pointer get_bucket(std::size_t bucket_index) const
-        {
-            NDNBOOST_ASSERT(buckets_);
-            return buckets_ + static_cast<std::ptrdiff_t>(bucket_index);
-        }
-
-        link_pointer get_previous_start() const
-        {
-            return get_bucket(bucket_count_)->first_from_start();
-        }
-
-        link_pointer get_previous_start(std::size_t bucket_index) const
-        {
-            return get_bucket(bucket_index)->next_;
-        }
-
-        iterator begin() const
-        {
-            return size_ ? iterator(get_previous_start()->next_) : iterator();
-        }
-
-        iterator begin(std::size_t bucket_index) const
-        {
-            if (!size_) return iterator();
-            link_pointer prev = get_previous_start(bucket_index);
-            return prev ? iterator(prev->next_) : iterator();
-        }
-        
-        std::size_t hash_to_bucket(std::size_t hash) const
-        {
-            return policy::to_bucket(bucket_count_, hash);
-        }
-
-        float load_factor() const
-        {
-            NDNBOOST_ASSERT(bucket_count_ != 0);
-            return static_cast<float>(size_)
-                / static_cast<float>(bucket_count_);
-        }
-
-        std::size_t bucket_size(std::size_t index) const
-        {
-            iterator it = begin(index);
-            if (!it.node_) return 0;
-
-            std::size_t count = 0;
-            while(it.node_ && hash_to_bucket(it.node_->hash_) == index)
-            {
-                ++count;
-                ++it;
-            }
-
-            return count;
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Load methods
-
-        std::size_t max_size() const
-        {
-            using namespace std;
-    
-            // size < mlf_ * count
-            return ndnboost::unordered::detail::double_to_size(ceil(
-                    static_cast<double>(mlf_) *
-                    static_cast<double>(max_bucket_count())
-                )) - 1;
-        }
-
-        void recalculate_max_load()
-        {
-            using namespace std;
-    
-            // From 6.3.1/13:
-            // Only resize when size >= mlf_ * count
-            max_load_ = buckets_ ? ndnboost::unordered::detail::double_to_size(ceil(
-                    static_cast<double>(mlf_) *
-                    static_cast<double>(bucket_count_)
-                )) : 0;
-
-        }
-
-        void max_load_factor(float z)
-        {
-            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
-        {
-            NDNBOOST_ASSERT(mlf_ >= minimum_max_load_factor);
-    
-            using namespace std;
-    
-            // From 6.3.1/13:
-            // size < mlf_ * count
-            // => count > size / mlf_
-            //
-            // Or from rehash post-condition:
-            // count > size / mlf_
-
-            return policy::new_bucket_count(
-                ndnboost::unordered::detail::double_to_size(floor(
-                    static_cast<double>(size) /
-                    static_cast<double>(mlf_))) + 1);
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Constructors
-
-        table(std::size_t num_buckets,
-                hasher const& hf,
-                key_equal const& eq,
-                node_allocator const& a) :
-            functions(hf, eq),
-            allocators_(a,a),
-            bucket_count_(policy::new_bucket_count(num_buckets)),
-            size_(0),
-            mlf_(1.0f),
-            max_load_(0),
-            buckets_()
-        {}
-
-        table(table const& x, node_allocator const& a) :
-            functions(x),
-            allocators_(a,a),
-            bucket_count_(x.min_buckets_for_size(x.size_)),
-            size_(0),
-            mlf_(x.mlf_),
-            max_load_(0),
-            buckets_()
-        {}
-
-        table(table& x, ndnboost::unordered::detail::move_tag m) :
-            functions(x, m),
-            allocators_(x.allocators_, m),
-            bucket_count_(x.bucket_count_),
-            size_(x.size_),
-            mlf_(x.mlf_),
-            max_load_(x.max_load_),
-            buckets_(x.buckets_)
-        {
-            x.buckets_ = bucket_pointer();
-            x.size_ = 0;
-            x.max_load_ = 0;
-        }
-
-        table(table& x, node_allocator const& a,
-                ndnboost::unordered::detail::move_tag m) :
-            functions(x, m),
-            allocators_(a, a),
-            bucket_count_(x.bucket_count_),
-            size_(0),
-            mlf_(x.mlf_),
-            max_load_(x.max_load_),
-            buckets_()
-        {}
-
-        ////////////////////////////////////////////////////////////////////////
-        // Initialisation.
-
-        void init(table const& x)
-        {
-            if (x.size_) {
-                create_buckets(bucket_count_);
-                copy_nodes<node_allocator> copy(node_alloc());
-                table_impl::fill_buckets(x.begin(), *this, copy);
-            }
-        }
-
-        void move_init(table& x)
-        {
-            if(node_alloc() == x.node_alloc()) {
-                move_buckets_from(x);
-            }
-            else if(x.size_) {
-                // TODO: Could pick new bucket size?
-                create_buckets(bucket_count_);
-
-                move_nodes<node_allocator> move(node_alloc());
-                node_holder<node_allocator> nodes(x);
-                table_impl::fill_buckets(nodes.begin(), *this, move);
-            }
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Create buckets
-
-        void create_buckets(std::size_t new_count)
-        {
-            ndnboost::unordered::detail::array_constructor<bucket_allocator>
-                constructor(bucket_alloc());
-    
-            // Creates an extra bucket to act as the start node.
-            constructor.construct(bucket(), new_count + 1);
-
-            if (buckets_)
-            {
-                // Copy the nodes to the new buckets, including the dummy
-                // node if there is one.
-                (constructor.get() +
-                    static_cast<std::ptrdiff_t>(new_count))->next_ =
-                        (buckets_ + static_cast<std::ptrdiff_t>(
-                            bucket_count_))->next_;
-                destroy_buckets();
-            }
-            else if (bucket::extra_node)
-            {
-                node_constructor a(node_alloc());
-                a.construct();
-
-                (constructor.get() +
-                    static_cast<std::ptrdiff_t>(new_count))->next_ =
-                        a.release();
-            }
-
-            bucket_count_ = new_count;
-            buckets_ = constructor.release();
-            recalculate_max_load();
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Swap and Move
-
-        void swap_allocators(table& other, false_type)
-        {
-            // According to 23.2.1.8, if propagate_on_container_swap is
-            // false the behaviour is undefined unless the allocators
-            // are equal.
-            NDNBOOST_ASSERT(node_alloc() == other.node_alloc());
-        }
-
-        void swap_allocators(table& other, true_type)
-        {
-            allocators_.swap(other.allocators_);
-        }
-
-        // Only swaps the allocators if propagate_on_container_swap
-        void swap(table& x)
-        {
-            set_hash_functions op1(*this, x);
-            set_hash_functions op2(x, *this);
-
-            // I think swap can throw if Propagate::value,
-            // since the allocators' swap can throw. Not sure though.
-            swap_allocators(x,
-                ndnboost::unordered::detail::integral_constant<bool,
-                    allocator_traits<node_allocator>::
-                    propagate_on_container_swap::value>());
-
-            ndnboost::swap(buckets_, x.buckets_);
-            ndnboost::swap(bucket_count_, x.bucket_count_);
-            ndnboost::swap(size_, x.size_);
-            std::swap(mlf_, x.mlf_);
-            std::swap(max_load_, x.max_load_);
-            op1.commit();
-            op2.commit();
-        }
-
-        void move_buckets_from(table& other)
-        {
-            NDNBOOST_ASSERT(node_alloc() == other.node_alloc());
-            NDNBOOST_ASSERT(!buckets_);
-            buckets_ = other.buckets_;
-            bucket_count_ = other.bucket_count_;
-            size_ = other.size_;
-            other.buckets_ = bucket_pointer();
-            other.size_ = 0;
-            other.max_load_ = 0;
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Delete/destruct
-
-        ~table()
-        {
-            delete_buckets();
-        }
-
-        void delete_node(link_pointer prev)
-        {
-            node_pointer n = static_cast<node_pointer>(prev->next_);
-            prev->next_ = n->next_;
-
-            ndnboost::unordered::detail::destroy_value_impl(node_alloc(),
-                n->value_ptr());
-            node_allocator_traits::destroy(node_alloc(),
-                    ndnboost::addressof(*n));
-            node_allocator_traits::deallocate(node_alloc(), n, 1);
-            --size_;
-        }
-
-        std::size_t delete_nodes(link_pointer prev, link_pointer end)
-        {
-            NDNBOOST_ASSERT(prev->next_ != end);
-
-            std::size_t count = 0;
-
-            do {
-                delete_node(prev);
-                ++count;
-            } while (prev->next_ != end);
-
-            return count;
-        }
-
-        void delete_buckets()
-        {
-            if(buckets_) {
-                if (size_) delete_nodes(get_previous_start(), link_pointer());
-
-                if (bucket::extra_node) {
-                    node_pointer n = static_cast<node_pointer>(
-                            get_bucket(bucket_count_)->next_);
-                    node_allocator_traits::destroy(node_alloc(),
-                            ndnboost::addressof(*n));
-                    node_allocator_traits::deallocate(node_alloc(), n, 1);
-                }
-
-                destroy_buckets();
-                buckets_ = bucket_pointer();
-                max_load_ = 0;
-            }
-
-            NDNBOOST_ASSERT(!size_);
-        }
-
-        void clear()
-        {
-            if (!size_) return;
-
-            delete_nodes(get_previous_start(), link_pointer());
-            clear_buckets();
-
-            NDNBOOST_ASSERT(!size_);
-        }
-
-        void clear_buckets()
-        {
-            bucket_pointer end = get_bucket(bucket_count_);
-            for(bucket_pointer it = buckets_; it != end; ++it)
-            {
-                it->next_ = node_pointer();
-            }
-        }
-
-        void destroy_buckets()
-        {
-            bucket_pointer end = get_bucket(bucket_count_ + 1);
-            for(bucket_pointer it = buckets_; it != end; ++it)
-            {
-                bucket_allocator_traits::destroy(bucket_alloc(),
-                    ndnboost::addressof(*it));
-            }
-
-            bucket_allocator_traits::deallocate(bucket_alloc(),
-                buckets_, bucket_count_ + 1);
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Fix buckets after delete
-        //
-
-        std::size_t fix_bucket(std::size_t bucket_index, link_pointer prev)
-        {
-            link_pointer end = prev->next_;
-            std::size_t bucket_index2 = bucket_index;
-
-            if (end)
-            {
-                bucket_index2 = hash_to_bucket(
-                    static_cast<node_pointer>(end)->hash_);
-
-                // If begin and end are in the same bucket, then
-                // there's nothing to do.
-                if (bucket_index == bucket_index2) return bucket_index2;
-
-                // Update the bucket containing end.
-                get_bucket(bucket_index2)->next_ = prev;
-            }
-
-            // Check if this bucket is now empty.
-            bucket_pointer this_bucket = get_bucket(bucket_index);
-            if (this_bucket->next_ == prev)
-                this_bucket->next_ = link_pointer();
-
-            return bucket_index2;
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Assignment
-
-        void assign(table const& x)
-        {
-            if (this != ndnboost::addressof(x))
-            {
-                assign(x,
-                    ndnboost::unordered::detail::integral_constant<bool,
-                        allocator_traits<node_allocator>::
-                        propagate_on_container_copy_assignment::value>());
-            }
-        }
-
-        void assign(table const& x, false_type)
-        {
-            // Strong exception safety.
-            set_hash_functions new_func_this(*this, x);
-            new_func_this.commit();
-            mlf_ = x.mlf_;
-            recalculate_max_load();
-
-            if (!size_ && !x.size_) return;
-
-            if (x.size_ >= max_load_) {
-                create_buckets(min_buckets_for_size(x.size_));
-            }
-            else {
-                clear_buckets();
-            }
-
-            // assign_nodes takes ownership of the container's elements,
-            // assigning to them if possible, and deleting any that are
-            // left over.
-            assign_nodes<table> assign(*this);
-            table_impl::fill_buckets(x.begin(), *this, assign);
-        }
-
-        void assign(table const& x, true_type)
-        {
-            if (node_alloc() == x.node_alloc()) {
-                allocators_.assign(x.allocators_);
-                assign(x, false_type());
-            }
-            else {
-                set_hash_functions new_func_this(*this, x);
-
-                // Delete everything with current allocators before assigning
-                // the new ones.
-                delete_buckets();
-                allocators_.assign(x.allocators_);
-
-                // Copy over other data, all no throw.
-                new_func_this.commit();
-                mlf_ = x.mlf_;
-                bucket_count_ = min_buckets_for_size(x.size_);
-                max_load_ = 0;
-
-                // Finally copy the elements.
-                if (x.size_) {
-                    create_buckets(bucket_count_);
-                    copy_nodes<node_allocator> copy(node_alloc());
-                    table_impl::fill_buckets(x.begin(), *this, copy);
-                }
-            }
-        }
-
-        void move_assign(table& x)
-        {
-            if (this != ndnboost::addressof(x))
-            {
-                move_assign(x,
-                    ndnboost::unordered::detail::integral_constant<bool,
-                        allocator_traits<node_allocator>::
-                        propagate_on_container_move_assignment::value>());
-            }
-        }
-
-        void move_assign(table& x, true_type)
-        {
-            delete_buckets();
-            allocators_.move_assign(x.allocators_);
-            move_assign_no_alloc(x);
-        }
-
-        void move_assign(table& x, false_type)
-        {
-            if (node_alloc() == x.node_alloc()) {
-                delete_buckets();
-                move_assign_no_alloc(x);
-            }
-            else {
-                set_hash_functions new_func_this(*this, x);
-                new_func_this.commit();
-                mlf_ = x.mlf_;
-                recalculate_max_load();
-
-                if (!size_ && !x.size_) return;
-
-                if (x.size_ >= max_load_) {
-                    create_buckets(min_buckets_for_size(x.size_));
-                }
-                else {
-                    clear_buckets();
-                }
-
-                // move_assign_nodes takes ownership of the container's
-                // elements, assigning to them if possible, and deleting
-                // any that are left over.
-                move_assign_nodes<table> assign(*this);
-                node_holder<node_allocator> nodes(x);
-                table_impl::fill_buckets(nodes.begin(), *this, assign);
-            }
-        }
-        
-        void move_assign_no_alloc(table& x)
-        {
-            set_hash_functions new_func_this(*this, x);
-            // No throw from here.
-            mlf_ = x.mlf_;
-            max_load_ = x.max_load_;
-            move_buckets_from(x);
-            new_func_this.commit();
-        }
-
-        // Accessors
-
-        key_type const& get_key(value_type const& x) const
-        {
-            return extractor::extract(x);
-        }
-
-        std::size_t hash(key_type const& k) const
-        {
-            return policy::apply_hash(this->hash_function(), k);
-        }
-
-        // Find Node
-
-        template <typename Key, typename Hash, typename Pred>
-        iterator generic_find_node(
-                Key const& k,
-                Hash const& hf,
-                Pred const& eq) const
-        {
-            return static_cast<table_impl const*>(this)->
-                find_node_impl(policy::apply_hash(hf, k), k, eq);
-        }
-
-        iterator find_node(
-                std::size_t key_hash,
-                key_type const& k) const
-        {
-            return static_cast<table_impl const*>(this)->
-                find_node_impl(key_hash, k, this->key_eq());
-        }
-
-        iterator find_node(key_type const& k) const
-        {
-            return static_cast<table_impl const*>(this)->
-                find_node_impl(hash(k), k, this->key_eq());
-        }
-
-        iterator find_matching_node(iterator n) const
-        {
-            // TODO: Does this apply to C++11?
-            //
-            // For some stupid reason, I decided to support equality comparison
-            // when different hash functions are used. So I can't use the hash
-            // value from the node here.
-    
-            return find_node(get_key(*n));
-        }
-
-        // Reserve and rehash
-
-        void reserve_for_insert(std::size_t);
-        void rehash(std::size_t);
-        void reserve(std::size_t);
-    };
-
-    ////////////////////////////////////////////////////////////////////////////
-    // Reserve & Rehash
-
-    // basic exception safety
-    template <typename Types>
-    inline void table<Types>::reserve_for_insert(std::size_t size)
-    {
-        if (!buckets_) {
-            create_buckets((std::max)(bucket_count_,
-                min_buckets_for_size(size)));
-        }
-        // According to the standard this should be 'size >= max_load_',
-        // but I think this is better, defect report filed.
-        else if(size > max_load_) {
-            std::size_t num_buckets
-                = min_buckets_for_size((std::max)(size,
-                    size_ + (size_ >> 1)));
-
-            if (num_buckets != bucket_count_)
-                static_cast<table_impl*>(this)->rehash_impl(num_buckets);
-        }
-    }
-
-    // if hash function throws, basic exception safety
-    // strong otherwise.
-
-    template <typename Types>
-    inline void table<Types>::rehash(std::size_t min_buckets)
-    {
-        using namespace std;
-
-        if(!size_) {
-            delete_buckets();
-            bucket_count_ = policy::new_bucket_count(min_buckets);
-        }
-        else {
-            min_buckets = policy::new_bucket_count((std::max)(min_buckets,
-                ndnboost::unordered::detail::double_to_size(floor(
-                    static_cast<double>(size_) /
-                    static_cast<double>(mlf_))) + 1));
-
-            if(min_buckets != bucket_count_)
-                static_cast<table_impl*>(this)->rehash_impl(min_buckets);
-        }
-    }
-
-    template <typename Types>
-    inline void table<Types>::reserve(std::size_t num_elements)
-    {
-        rehash(static_cast<std::size_t>(
-            std::ceil(static_cast<double>(num_elements) / mlf_)));
-    }
-}}}
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/include/ndnboost/unordered/detail/unique.hpp b/include/ndnboost/unordered/detail/unique.hpp
deleted file mode 100644
index d413255..0000000
--- a/include/ndnboost/unordered/detail/unique.hpp
+++ /dev/null
@@ -1,622 +0,0 @@
-
-// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
-// Copyright (C) 2005-2011 Daniel James
-// 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 NDNBOOST_UNORDERED_DETAIL_UNIQUE_HPP_INCLUDED
-#define NDNBOOST_UNORDERED_DETAIL_UNIQUE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/unordered/detail/table.hpp>
-#include <ndnboost/unordered/detail/extract_key.hpp>
-#include <ndnboost/throw_exception.hpp>
-#include <stdexcept>
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    template <typename A, typename T> struct unique_node;
-    template <typename T> struct ptr_node;
-    template <typename Types> struct table_impl;
-
-    template <typename A, typename T>
-    struct unique_node :
-        ndnboost::unordered::detail::value_base<T>
-    {
-        typedef typename ::ndnboost::unordered::detail::rebind_wrap<
-            A, unique_node<A, T> >::type::pointer node_pointer;
-        typedef node_pointer link_pointer;
-
-        link_pointer next_;
-        std::size_t hash_;
-
-        unique_node() :
-            next_(),
-            hash_(0)
-        {}
-
-        void init(node_pointer)
-        {
-        }
-
-    private:
-        unique_node& operator=(unique_node const&);
-    };
-
-    template <typename T>
-    struct ptr_node :
-        ndnboost::unordered::detail::value_base<T>,
-        ndnboost::unordered::detail::ptr_bucket
-    {
-        typedef ndnboost::unordered::detail::ptr_bucket bucket_base;
-        typedef ptr_node<T>* node_pointer;
-        typedef ptr_bucket* link_pointer;
-
-        std::size_t hash_;
-
-        ptr_node() :
-            bucket_base(),
-            hash_(0)
-        {}
-
-        void init(node_pointer)
-        {
-        }
-
-    private:
-        ptr_node& operator=(ptr_node const&);
-    };
-
-    // If the allocator uses raw pointers use ptr_node
-    // Otherwise use node.
-
-    template <typename A, typename T, typename NodePtr, typename BucketPtr>
-    struct pick_node2
-    {
-        typedef ndnboost::unordered::detail::unique_node<A, T> node;
-
-        typedef typename ndnboost::unordered::detail::allocator_traits<
-            typename ndnboost::unordered::detail::rebind_wrap<A, node>::type
-        >::pointer node_pointer;
-
-        typedef ndnboost::unordered::detail::bucket<node_pointer> bucket;
-        typedef node_pointer link_pointer;
-    };
-
-    template <typename A, typename T>
-    struct pick_node2<A, T,
-        ndnboost::unordered::detail::ptr_node<T>*,
-        ndnboost::unordered::detail::ptr_bucket*>
-    {
-        typedef ndnboost::unordered::detail::ptr_node<T> node;
-        typedef ndnboost::unordered::detail::ptr_bucket bucket;
-        typedef bucket* link_pointer;
-    };
-
-    template <typename A, typename T>
-    struct pick_node
-    {
-        typedef ndnboost::unordered::detail::allocator_traits<
-            typename ndnboost::unordered::detail::rebind_wrap<A,
-                ndnboost::unordered::detail::ptr_node<T> >::type
-        > tentative_node_traits;
-
-        typedef ndnboost::unordered::detail::allocator_traits<
-            typename ndnboost::unordered::detail::rebind_wrap<A,
-                ndnboost::unordered::detail::ptr_bucket >::type
-        > tentative_bucket_traits;
-
-        typedef pick_node2<A, T,
-            typename tentative_node_traits::pointer,
-            typename tentative_bucket_traits::pointer> pick;
-
-        typedef typename pick::node node;
-        typedef typename pick::bucket bucket;
-        typedef typename pick::link_pointer link_pointer;
-    };
-
-    template <typename A, typename T, typename H, typename P>
-    struct set
-    {
-        typedef ndnboost::unordered::detail::set<A, T, H, P> types;
-
-        typedef A allocator;
-        typedef T value_type;
-        typedef H hasher;
-        typedef P key_equal;
-        typedef T key_type;
-
-        typedef ndnboost::unordered::detail::allocator_traits<allocator> traits;
-        typedef ndnboost::unordered::detail::pick_node<allocator, value_type> pick;
-        typedef typename pick::node node;
-        typedef typename pick::bucket bucket;
-        typedef typename pick::link_pointer link_pointer;
-
-        typedef ndnboost::unordered::detail::table_impl<types> table;
-        typedef ndnboost::unordered::detail::set_extractor<value_type> extractor;
-
-        typedef ndnboost::unordered::detail::pick_policy::type policy;
-    };
-
-    template <typename A, typename K, typename M, typename H, typename P>
-    struct map
-    {
-        typedef ndnboost::unordered::detail::map<A, K, M, H, P> types;
-
-        typedef A allocator;
-        typedef std::pair<K const, M> value_type;
-        typedef H hasher;
-        typedef P key_equal;
-        typedef K key_type;
-
-        typedef ndnboost::unordered::detail::allocator_traits<allocator>
-            traits;
-        typedef ndnboost::unordered::detail::pick_node<allocator, value_type> pick;
-        typedef typename pick::node node;
-        typedef typename pick::bucket bucket;
-        typedef typename pick::link_pointer link_pointer;
-
-        typedef ndnboost::unordered::detail::table_impl<types> table;
-        typedef ndnboost::unordered::detail::map_extractor<key_type, value_type>
-            extractor;
-
-        typedef ndnboost::unordered::detail::pick_policy::type policy;
-    };
-
-    template <typename Types>
-    struct table_impl : ndnboost::unordered::detail::table<Types>
-    {
-        typedef ndnboost::unordered::detail::table<Types> table;
-        typedef typename table::value_type value_type;
-        typedef typename table::bucket bucket;
-        typedef typename table::policy policy;
-        typedef typename table::node_pointer node_pointer;
-        typedef typename table::node_allocator node_allocator;
-        typedef typename table::node_allocator_traits node_allocator_traits;
-        typedef typename table::bucket_pointer bucket_pointer;
-        typedef typename table::link_pointer link_pointer;
-        typedef typename table::hasher hasher;
-        typedef typename table::key_equal key_equal;
-        typedef typename table::key_type key_type;
-        typedef typename table::node_constructor node_constructor;
-        typedef typename table::extractor extractor;
-        typedef typename table::iterator iterator;
-        typedef typename table::c_iterator c_iterator;
-
-        typedef std::pair<iterator, bool> emplace_return;
-
-        // Constructors
-
-        table_impl(std::size_t n,
-                hasher const& hf,
-                key_equal const& eq,
-                node_allocator const& a)
-          : table(n, hf, eq, a)
-        {}
-
-        table_impl(table_impl const& x)
-          : table(x, node_allocator_traits::
-                select_on_container_copy_construction(x.node_alloc()))
-        {
-            this->init(x);
-        }
-
-        table_impl(table_impl const& x,
-                node_allocator const& a)
-          : table(x, a)
-        {
-            this->init(x);
-        }
-
-        table_impl(table_impl& x,
-                ndnboost::unordered::detail::move_tag m)
-          : table(x, m)
-        {}
-
-        table_impl(table_impl& x,
-                node_allocator const& a,
-                ndnboost::unordered::detail::move_tag m)
-          : table(x, a, m)
-        {
-            this->move_init(x);
-        }
-
-        // Accessors
-
-        template <class Key, class Pred>
-        iterator find_node_impl(
-                std::size_t key_hash,
-                Key const& k,
-                Pred const& eq) const
-        {
-            std::size_t bucket_index = this->hash_to_bucket(key_hash);
-            iterator n = this->begin(bucket_index);
-
-            for (;;)
-            {
-                if (!n.node_) return n;
-
-                std::size_t node_hash = n.node_->hash_;
-                if (key_hash == node_hash)
-                {
-                    if (eq(k, this->get_key(*n)))
-                        return n;
-                }
-                else
-                {
-                    if (this->hash_to_bucket(node_hash) != bucket_index)
-                        return iterator();
-                }
-
-                ++n;
-            }
-        }
-
-        std::size_t count(key_type const& k) const
-        {
-            return this->find_node(k).node_ ? 1 : 0;
-        }
-
-        value_type& at(key_type const& k) const
-        {
-            if (this->size_) {
-                iterator it = this->find_node(k);
-                if (it.node_) return *it;
-            }
-
-            ndnboost::throw_exception(
-                std::out_of_range("Unable to find key in unordered_map."));
-        }
-
-        std::pair<iterator, iterator>
-            equal_range(key_type const& k) const
-        {
-            iterator n = this->find_node(k);
-            iterator n2 = n;
-            if (n2.node_) ++n2;
-            return std::make_pair(n, n2);
-        }
-
-        // equals
-
-        bool equals(table_impl const& other) const
-        {
-            if(this->size_ != other.size_) return false;
-    
-            for(iterator n1 = this->begin(); n1.node_; ++n1)
-            {
-                iterator n2 = other.find_matching_node(n1);
-
-                if (!n2.node_ || *n1 != *n2)
-                    return false;
-            }
-    
-            return true;
-        }
-
-        // Emplace/Insert
-
-        inline iterator add_node(
-                node_constructor& a,
-                std::size_t key_hash)
-        {
-            node_pointer n = a.release();
-            n->hash_ = key_hash;
-    
-            bucket_pointer b = this->get_bucket(this->hash_to_bucket(key_hash));
-
-            if (!b->next_)
-            {
-                link_pointer start_node = this->get_previous_start();
-                
-                if (start_node->next_) {
-                    this->get_bucket(this->hash_to_bucket(
-                        static_cast<node_pointer>(start_node->next_)->hash_)
-                    )->next_ = n;
-                }
-
-                b->next_ = start_node;
-                n->next_ = start_node->next_;
-                start_node->next_ = n;
-            }
-            else
-            {
-                n->next_ = b->next_->next_;
-                b->next_->next_ = n;
-            }
-
-            ++this->size_;
-            return iterator(n);
-        }
-
-        value_type& operator[](key_type const& k)
-        {
-            typedef typename value_type::second_type mapped_type;
-    
-            std::size_t key_hash = this->hash(k);
-            iterator pos = this->find_node(key_hash, k);
-    
-            if (pos.node_) return *pos;
-    
-            // 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(NDNBOOST_UNORDERED_EMPLACE_ARGS3(
-                ndnboost::unordered::piecewise_construct,
-                ndnboost::make_tuple(k),
-                ndnboost::make_tuple()));
-    
-            this->reserve_for_insert(this->size_ + 1);
-            return *add_node(a, key_hash);
-        }
-
-#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&)
-        {
-            NDNBOOST_ASSERT(false);
-            return emplace_return(this->begin(), false);
-        }
-#   else
-        emplace_return emplace(
-                ndnboost::unordered::detail::please_ignore_this_overload const&)
-        {
-            NDNBOOST_ASSERT(false);
-            return emplace_return(this->begin(), false);
-        }
-#   endif
-#endif
-
-        template <NDNBOOST_UNORDERED_EMPLACE_TEMPLATE>
-        emplace_return emplace(NDNBOOST_UNORDERED_EMPLACE_ARGS)
-        {
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-            return emplace_impl(
-                extractor::extract(NDNBOOST_UNORDERED_EMPLACE_FORWARD),
-                NDNBOOST_UNORDERED_EMPLACE_FORWARD);
-#else
-            return emplace_impl(
-                extractor::extract(args.a0, args.a1),
-                NDNBOOST_UNORDERED_EMPLACE_FORWARD);
-#endif
-        }
-
-#if defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-        template <typename A0>
-        emplace_return emplace(
-                ndnboost::unordered::detail::emplace_args1<A0> const& args)
-        {
-            return emplace_impl(extractor::extract(args.a0), args);
-        }
-#endif
-
-        template <NDNBOOST_UNORDERED_EMPLACE_TEMPLATE>
-        emplace_return emplace_impl(key_type const& k,
-            NDNBOOST_UNORDERED_EMPLACE_ARGS)
-        {
-            std::size_t key_hash = this->hash(k);
-            iterator pos = this->find_node(key_hash, k);
-    
-            if (pos.node_) return emplace_return(pos, false);
-    
-            // 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(NDNBOOST_UNORDERED_EMPLACE_FORWARD);
-    
-            // reserve has basic exception safety if the hash function
-            // throws, strong otherwise.
-            this->reserve_for_insert(this->size_ + 1);
-            return emplace_return(this->add_node(a, key_hash), true);
-        }
-
-        emplace_return emplace_impl_with_node(node_constructor& a)
-        {
-            key_type const& k = this->get_key(a.value());
-            std::size_t key_hash = this->hash(k);
-            iterator pos = this->find_node(key_hash, k);
-
-            if (pos.node_) return emplace_return(pos, false);
-
-            // reserve has basic exception safety if the hash function
-            // throws, strong otherwise.
-            this->reserve_for_insert(this->size_ + 1);
-            return emplace_return(this->add_node(a, key_hash), true);
-        }
-
-        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(NDNBOOST_UNORDERED_EMPLACE_FORWARD);
-            return emplace_impl_with_node(a);
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Insert range methods
-        //
-        // if hash function throws, or inserting > 1 element, basic exception
-        // safety strong otherwise
-
-        template <class InputIt>
-        void insert_range(InputIt i, InputIt j)
-        {
-            if(i != j)
-                return insert_range_impl(extractor::extract(*i), i, j);
-        }
-
-        template <class InputIt>
-        void insert_range_impl(key_type const& k, InputIt i, InputIt j)
-        {
-            node_constructor a(this->node_alloc());
-
-            insert_range_impl2(a, k, i, j);
-
-            while(++i != j) {
-                // Note: can't use get_key as '*i' might not be value_type - it
-                // could be a pair with first_types as key_type without const or
-                // a different second_type.
-                //
-                // TODO: Might be worth storing the value_type instead of the
-                // key here. Could be more efficient if '*i' is expensive. Could
-                // be less efficient if copying the full value_type is
-                // expensive.
-                insert_range_impl2(a, extractor::extract(*i), i, j);
-            }
-        }
-
-        template <class InputIt>
-        void insert_range_impl2(node_constructor& a, key_type const& k,
-            InputIt i, InputIt j)
-        {
-            // No side effects in this initial code
-            std::size_t key_hash = this->hash(k);
-            iterator pos = this->find_node(key_hash, k);
-    
-            if (!pos.node_) {
-                a.construct_with_value2(*i);
-                if(this->size_ + 1 > this->max_load_)
-                    this->reserve_for_insert(this->size_ +
-                        ndnboost::unordered::detail::insert_size(i, j));
-    
-                // Nothing after this point can throw.
-                this->add_node(a, key_hash);
-            }
-        }
-
-        template <class InputIt>
-        void insert_range_impl(no_key, InputIt i, InputIt j)
-        {
-            node_constructor a(this->node_alloc());
-
-            do {
-                a.construct_with_value2(*i);
-                emplace_impl_with_node(a);
-            } while(++i != j);
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // Erase
-        //
-        // no throw
-
-        std::size_t erase_key(key_type const& k)
-        {
-            if(!this->size_) return 0;
-
-            std::size_t key_hash = this->hash(k);
-            std::size_t bucket_index = this->hash_to_bucket(key_hash);
-            link_pointer prev = this->get_previous_start(bucket_index);
-            if (!prev) return 0;
-
-            for (;;)
-            {
-                if (!prev->next_) return 0;
-                std::size_t node_hash =
-                    static_cast<node_pointer>(prev->next_)->hash_;
-                if (this->hash_to_bucket(node_hash) != bucket_index)
-                    return 0;
-                if (node_hash == key_hash &&
-                        this->key_eq()(k, this->get_key(
-                        static_cast<node_pointer>(prev->next_)->value())))
-                    break;
-                prev = prev->next_;
-            }
-
-            link_pointer end = static_cast<node_pointer>(prev->next_)->next_;
-
-            std::size_t count = this->delete_nodes(prev, end);
-            this->fix_bucket(bucket_index, prev);
-            return count;
-        }
-
-        iterator erase(c_iterator r)
-        {
-            NDNBOOST_ASSERT(r.node_);
-            iterator next(r.node_);
-            ++next;
-            erase_nodes(r.node_, next.node_);
-            return next;
-        }
-
-        iterator erase_range(c_iterator r1, c_iterator r2)
-        {
-            if (r1 == r2) return iterator(r2.node_);
-            erase_nodes(r1.node_, r2.node_);
-            return iterator(r2.node_);
-        }
-
-        void erase_nodes(node_pointer begin, node_pointer end)
-        {
-            std::size_t bucket_index = this->hash_to_bucket(begin->hash_);
-
-            // Find the node before begin.
-            link_pointer prev = this->get_previous_start(bucket_index);
-            while(prev->next_ != begin) prev = prev->next_;
-
-            // Delete the nodes.
-            do {
-                this->delete_node(prev);
-                bucket_index = this->fix_bucket(bucket_index, prev);
-            } while (prev->next_ != end);
-        }
-
-        ////////////////////////////////////////////////////////////////////////
-        // fill_buckets
-
-        template <class NodeCreator>
-        static void fill_buckets(iterator n, table& dst,
-            NodeCreator& creator)
-        {
-            link_pointer prev = dst.get_previous_start();
-
-            while (n.node_) {
-                node_pointer node = creator.create(*n);
-                node->hash_ = n.node_->hash_;
-                prev->next_ = node;
-                ++dst.size_;
-                ++n;
-
-                prev = place_in_bucket(dst, prev);
-            }
-        }
-
-        // strong otherwise exception safety
-        void rehash_impl(std::size_t num_buckets)
-        {
-            NDNBOOST_ASSERT(this->buckets_);
-
-            this->create_buckets(num_buckets);
-            link_pointer prev = this->get_previous_start();
-            while (prev->next_)
-                prev = place_in_bucket(*this, prev);
-        }
-
-        // Iterate through the nodes placing them in the correct buckets.
-        // pre: prev->next_ is not null.
-        static link_pointer place_in_bucket(table& dst, link_pointer prev)
-        {
-            node_pointer n = static_cast<node_pointer>(prev->next_);
-            bucket_pointer b = dst.get_bucket(dst.hash_to_bucket(n->hash_));
-
-            if (!b->next_) {
-                b->next_ = prev;
-                return n;
-            }
-            else {
-                prev->next_ = n->next_;
-                n->next_ = b->next_->next_;
-                b->next_->next_ = n;
-                return prev;
-            }
-        }
-    };
-}}}
-
-#endif
diff --git a/include/ndnboost/unordered/detail/util.hpp b/include/ndnboost/unordered/detail/util.hpp
deleted file mode 100644
index 0e1db85..0000000
--- a/include/ndnboost/unordered/detail/util.hpp
+++ /dev/null
@@ -1,260 +0,0 @@
-
-// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
-// Copyright (C) 2005-2011 Daniel James
-// 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 NDNBOOST_UNORDERED_DETAIL_UTIL_HPP_INCLUDED
-#define NDNBOOST_UNORDERED_DETAIL_UTIL_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/type_traits/is_convertible.hpp>
-#include <ndnboost/type_traits/is_empty.hpp>
-#include <ndnboost/iterator/iterator_categories.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/detail/select_type.hpp>
-#include <ndnboost/move/move.hpp>
-#include <ndnboost/preprocessor/seq/size.hpp>
-#include <ndnboost/preprocessor/seq/enum.hpp>
-#include <ndnboost/swap.hpp>
-
-namespace ndnboost { namespace unordered { namespace detail {
-
-    static const float minimum_max_load_factor = 1e-3f;
-    static const std::size_t default_bucket_count = 11;
-    struct move_tag {};
-    struct empty_emplace {};
-
-    ////////////////////////////////////////////////////////////////////////////
-    // iterator SFINAE
-
-    template <typename I>
-    struct is_forward :
-        ndnboost::is_convertible<
-            typename ndnboost::iterator_traversal<I>::type,
-            ndnboost::forward_traversal_tag>
-    {};
-
-    template <typename I, typename ReturnType>
-    struct enable_if_forward :
-        ndnboost::enable_if_c<
-            ndnboost::unordered::detail::is_forward<I>::value,
-            ReturnType>
-    {};
-
-    template <typename I, typename ReturnType>
-    struct disable_if_forward :
-        ndnboost::disable_if_c<
-            ndnboost::unordered::detail::is_forward<I>::value,
-            ReturnType>
-    {};
-
-    ////////////////////////////////////////////////////////////////////////////
-    // 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) \
-    (49157ul)(98317ul)(196613ul)(393241ul)(786433ul) \
-    (1572869ul)(3145739ul)(6291469ul)(12582917ul)(25165843ul) \
-    (50331653ul)(100663319ul)(201326611ul)(402653189ul)(805306457ul) \
-    (1610612741ul)(3221225473ul)(4294967291ul)
-
-    template<class T> struct prime_list_template
-    {
-        static std::size_t const value[];
-
-#if !defined(SUNPRO_CC)
-        static std::ptrdiff_t const length;
-#else
-        static std::ptrdiff_t const length
-            = NDNBOOST_PP_SEQ_SIZE(NDNBOOST_UNORDERED_PRIMES);
-#endif
-    };
-
-    template<class T>
-    std::size_t const prime_list_template<T>::value[] = {
-        NDNBOOST_PP_SEQ_ENUM(NDNBOOST_UNORDERED_PRIMES)
-    };
-
-#if !defined(SUNPRO_CC)
-    template<class T>
-    std::ptrdiff_t const prime_list_template<T>::length
-        = NDNBOOST_PP_SEQ_SIZE(NDNBOOST_UNORDERED_PRIMES);
-#endif
-
-#undef NDNBOOST_UNORDERED_PRIMES
-
-    typedef prime_list_template<std::size_t> prime_list;
-
-    // no throw
-    inline std::size_t next_prime(std::size_t num) {
-        std::size_t const* const prime_list_begin = prime_list::value;
-        std::size_t const* const prime_list_end = prime_list_begin +
-            prime_list::length;
-        std::size_t const* bound =
-            std::lower_bound(prime_list_begin, prime_list_end, num);
-        if(bound == prime_list_end)
-            bound--;
-        return *bound;
-    }
-
-    // no throw
-    inline std::size_t prev_prime(std::size_t num) {
-        std::size_t const* const prime_list_begin = prime_list::value;
-        std::size_t const* const prime_list_end = prime_list_begin +
-            prime_list::length;
-        std::size_t const* bound =
-            std::upper_bound(prime_list_begin,prime_list_end, num);
-        if(bound != prime_list_begin)
-            bound--;
-        return *bound;
-    }
-
-    ////////////////////////////////////////////////////////////////////////////
-    // insert_size/initial_size
-
-#if !defined(NDNBOOST_NO_STD_DISTANCE)
-
-    using ::std::distance;
-
-#else
-
-    template <class ForwardIterator>
-    inline std::size_t distance(ForwardIterator i, ForwardIterator j) {
-        std::size_t x;
-        std::distance(i, j, x);
-        return x;
-    }
-
-#endif
-
-    template <class I>
-    inline typename
-        ndnboost::unordered::detail::enable_if_forward<I, std::size_t>::type
-        insert_size(I i, I j)
-    {
-        return std::distance(i, j);
-    }
-
-    template <class I>
-    inline typename
-        ndnboost::unordered::detail::disable_if_forward<I, std::size_t>::type
-        insert_size(I, I)
-    {
-        return 1;
-    }
-
-    template <class I>
-    inline std::size_t initial_size(I i, I j,
-        std::size_t num_buckets =
-            ndnboost::unordered::detail::default_bucket_count)
-    {
-        // TODO: Why +1?
-        return (std::max)(
-            ndnboost::unordered::detail::insert_size(i, j) + 1,
-            num_buckets);
-    }
-
-    ////////////////////////////////////////////////////////////////////////////
-    // compressed
-
-    template <typename T, int Index>
-    struct compressed_base : private T
-    {
-        compressed_base(T const& x) : T(x) {}
-        compressed_base(T& x, move_tag) : T(ndnboost::move(x)) {}
-
-        T& get() { return *this; }
-        T const& get() const { return *this; }
-    };
-    
-    template <typename T, int Index>
-    struct uncompressed_base
-    {
-        uncompressed_base(T const& x) : value_(x) {}
-        uncompressed_base(T& x, move_tag) : value_(ndnboost::move(x)) {}
-
-        T& get() { return value_; }
-        T const& get() const { return value_; }
-    private:
-        T value_;
-    };
-    
-    template <typename T, int Index>
-    struct generate_base
-      : ndnboost::detail::if_true<
-            ndnboost::is_empty<T>::value
-        >:: NDNBOOST_NESTED_TEMPLATE then<
-            ndnboost::unordered::detail::compressed_base<T, Index>,
-            ndnboost::unordered::detail::uncompressed_base<T, Index>
-        >
-    {};
-    
-    template <typename T1, typename T2>
-    struct compressed
-      : private ndnboost::unordered::detail::generate_base<T1, 1>::type,
-        private ndnboost::unordered::detail::generate_base<T2, 2>::type
-    {
-        typedef typename generate_base<T1, 1>::type base1;
-        typedef typename generate_base<T2, 2>::type base2;
-
-        typedef T1 first_type;
-        typedef T2 second_type;
-        
-        first_type& first() {
-            return static_cast<base1*>(this)->get();
-        }
-
-        first_type const& first() const {
-            return static_cast<base1 const*>(this)->get();
-        }
-
-        second_type& second() {
-            return static_cast<base2*>(this)->get();
-        }
-
-        second_type const& second() const {
-            return static_cast<base2 const*>(this)->get();
-        }
-
-        template <typename First, typename Second>
-        compressed(First const& x1, Second const& x2)
-            : base1(x1), base2(x2) {}
-
-        compressed(compressed const& x)
-            : base1(x.first()), base2(x.second()) {}
-
-        compressed(compressed& x, move_tag m)
-            : base1(x.first(), m), base2(x.second(), m) {}
-
-        void assign(compressed const& x)
-        {
-            first() = x.first();
-            second() = x.second();
-        }
-
-        void move_assign(compressed& x)
-        {
-            first() = ndnboost::move(x.first());
-            second() = ndnboost::move(x.second());
-        }
-        
-        void swap(compressed& x)
-        {
-            ndnboost::swap(first(), x.first());
-            ndnboost::swap(second(), x.second());
-        }
-
-    private:
-        // Prevent assignment just to make use of assign or
-        // move_assign explicit.
-        compressed& operator=(compressed const&);
-    };
-}}}
-
-#endif
diff --git a/include/ndnboost/unordered/unordered_set.hpp b/include/ndnboost/unordered/unordered_set.hpp
deleted file mode 100644
index eb32393..0000000
--- a/include/ndnboost/unordered/unordered_set.hpp
+++ /dev/null
@@ -1,1549 +0,0 @@
-
-// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
-// Copyright (C) 2005-2011 Daniel James.
-// 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)
-
-//  See http://www.boost.org/libs/unordered for documentation
-
-#ifndef NDNBOOST_UNORDERED_UNORDERED_SET_HPP_INCLUDED
-#define NDNBOOST_UNORDERED_UNORDERED_SET_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/unordered/unordered_set_fwd.hpp>
-#include <ndnboost/unordered/detail/equivalent.hpp>
-#include <ndnboost/unordered/detail/unique.hpp>
-#include <ndnboost/unordered/detail/util.hpp>
-#include <ndnboost/functional/hash.hpp>
-#include <ndnboost/move/move.hpp>
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
-#include <initializer_list>
-#endif
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(push)
-#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
-#endif
-#endif
-
-namespace ndnboost
-{
-namespace unordered
-{
-    template <class T, class H, class P, class A>
-    class unordered_set
-    {
-#if defined(NDNBOOST_UNORDERED_USE_MOVE)
-        NDNBOOST_COPYABLE_AND_MOVABLE(unordered_set)
-#endif
-    public:
-
-        typedef T key_type;
-        typedef T value_type;
-        typedef H hasher;
-        typedef P key_equal;
-        typedef A allocator_type;
-
-    private:
-
-        typedef ndnboost::unordered::detail::set<A, T, H, P> types;
-        typedef typename types::traits allocator_traits;
-        typedef typename types::table table;
-
-    public:
-
-        typedef typename allocator_traits::pointer pointer;
-        typedef typename allocator_traits::const_pointer const_pointer;
-
-        typedef value_type& reference;
-        typedef value_type const& const_reference;
-
-        typedef std::size_t size_type;
-        typedef std::ptrdiff_t difference_type;
-
-        typedef typename table::cl_iterator const_local_iterator;
-        typedef typename table::cl_iterator local_iterator;
-        typedef typename table::c_iterator const_iterator;
-        typedef typename table::c_iterator iterator;
-
-    private:
-
-        table table_;
-
-    public:
-
-        // constructors
-
-        explicit unordered_set(
-                size_type = ndnboost::unordered::detail::default_bucket_count,
-                const hasher& = hasher(),
-                const key_equal& = key_equal(),
-                const allocator_type& = allocator_type());
-
-        explicit unordered_set(allocator_type const&);
-
-        template <class InputIt>
-        unordered_set(InputIt, InputIt);
-
-        template <class InputIt>
-        unordered_set(
-                InputIt, InputIt,
-                size_type,
-                const hasher& = hasher(),
-                const key_equal& = key_equal());
-
-        template <class InputIt>
-        unordered_set(
-                InputIt, InputIt,
-                size_type,
-                const hasher&,
-                const key_equal&,
-                const allocator_type&);
-
-        // copy/move constructors
-
-        unordered_set(unordered_set const&);
-
-        unordered_set(unordered_set const&, allocator_type const&);
-
-#if defined(NDNBOOST_UNORDERED_USE_MOVE)
-        unordered_set(NDNBOOST_RV_REF(unordered_set) other)
-            : table_(other.table_, ndnboost::unordered::detail::move_tag())
-        {
-        }
-#elif !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
-        unordered_set(unordered_set&& other)
-            : table_(other.table_, ndnboost::unordered::detail::move_tag())
-        {
-        }
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
-        unordered_set(unordered_set&&, allocator_type const&);
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
-        unordered_set(
-                std::initializer_list<value_type>,
-                size_type = ndnboost::unordered::detail::default_bucket_count,
-                const hasher& = hasher(),
-                const key_equal&l = key_equal(),
-                const allocator_type& = allocator_type());
-#endif
-
-        // Destructor
-
-        ~unordered_set();
-
-        // Assign
-
-#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=(NDNBOOST_RV_REF(unordered_set) x)
-        {
-            table_.move_assign(x.table_);
-            return *this;
-        }
-#else
-        unordered_set& operator=(unordered_set const& x)
-        {
-            table_.assign(x.table_);
-            return *this;
-        }
-
-#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
-        unordered_set& operator=(unordered_set&& x)
-        {
-            table_.move_assign(x.table_);
-            return *this;
-        }
-#endif
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
-        unordered_set& operator=(std::initializer_list<value_type>);
-#endif
-
-        allocator_type get_allocator() const NDNBOOST_NOEXCEPT
-        {
-            return table_.node_alloc();
-        }
-
-        // size and capacity
-
-        bool empty() const NDNBOOST_NOEXCEPT
-        {
-            return table_.size_ == 0;
-        }
-
-        size_type size() const NDNBOOST_NOEXCEPT
-        {
-            return table_.size_;
-        }
-
-        size_type max_size() const NDNBOOST_NOEXCEPT;
-
-        // iterators
-
-        iterator begin() NDNBOOST_NOEXCEPT
-        {
-            return table_.begin();
-        }
-
-        const_iterator begin() const NDNBOOST_NOEXCEPT
-        {
-            return table_.begin();
-        }
-
-        iterator end() NDNBOOST_NOEXCEPT
-        {
-            return iterator();
-        }
-
-        const_iterator end() const NDNBOOST_NOEXCEPT
-        {
-            return const_iterator();
-        }
-
-        const_iterator cbegin() const NDNBOOST_NOEXCEPT
-        {
-            return table_.begin();
-        }
-
-        const_iterator cend() const NDNBOOST_NOEXCEPT
-        {
-            return const_iterator();
-        }
-
-        // emplace
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-        template <class... 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, NDNBOOST_FWD_REF(Args)... args)
-        {
-            return table_.emplace(ndnboost::forward<Args>(args)...).first;
-        }
-#else
-
-#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
-        // doesn't have a default constructor.
-
-        std::pair<iterator, bool> emplace(
-                ndnboost::unordered::detail::empty_emplace
-                    = ndnboost::unordered::detail::empty_emplace(),
-                value_type v = value_type())
-        {
-            return this->emplace(ndnboost::move(v));
-        }
-
-        iterator emplace_hint(const_iterator hint,
-                ndnboost::unordered::detail::empty_emplace
-                    = ndnboost::unordered::detail::empty_emplace(),
-                value_type v = value_type()
-            )
-        {
-            return this->emplace_hint(hint, ndnboost::move(v));
-        }
-
-#endif
-
-        template <typename A0>
-        std::pair<iterator, bool> emplace(NDNBOOST_FWD_REF(A0) a0)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0))
-            );
-        }
-
-        template <typename A0>
-        iterator emplace_hint(const_iterator, NDNBOOST_FWD_REF(A0) a0)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0))
-            ).first;
-        }
-
-        template <typename A0, typename A1>
-        std::pair<iterator, bool> emplace(
-            NDNBOOST_FWD_REF(A0) a0,
-            NDNBOOST_FWD_REF(A1) a1)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0),
-                    ndnboost::forward<A1>(a1))
-            );
-        }
-
-        template <typename A0, typename A1>
-        iterator emplace_hint(const_iterator,
-            NDNBOOST_FWD_REF(A0) a0,
-            NDNBOOST_FWD_REF(A1) a1)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0),
-                    ndnboost::forward<A1>(a1))
-            ).first;
-        }
-
-        template <typename A0, typename A1, typename A2>
-        std::pair<iterator, bool> emplace(
-            NDNBOOST_FWD_REF(A0) a0,
-            NDNBOOST_FWD_REF(A1) a1,
-            NDNBOOST_FWD_REF(A2) a2)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0),
-                    ndnboost::forward<A1>(a1),
-                    ndnboost::forward<A2>(a2))
-            );
-        }
-
-        template <typename A0, typename A1, typename A2>
-        iterator emplace_hint(const_iterator,
-            NDNBOOST_FWD_REF(A0) a0,
-            NDNBOOST_FWD_REF(A1) a1,
-            NDNBOOST_FWD_REF(A2) a2)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0),
-                    ndnboost::forward<A1>(a1),
-                    ndnboost::forward<A2>(a2))
-            ).first;
-        }
-
-#define NDNBOOST_UNORDERED_EMPLACE(z, n, _)                                    \
-            template <                                                      \
-                NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
-            >                                                               \
-            std::pair<iterator, bool> emplace(                              \
-                    NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, a)      \
-            )                                                               \
-            {                                                               \
-                return table_.emplace(                                      \
-                    ndnboost::unordered::detail::create_emplace_args(          \
-                        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_CALL_FORWARD,  \
-                            a)                                              \
-                ));                                                         \
-            }                                                               \
-                                                                            \
-            template <                                                      \
-                NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
-            >                                                               \
-            iterator emplace_hint(                                          \
-                    const_iterator,                                         \
-                    NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, a)      \
-            )                                                               \
-            {                                                               \
-                return table_.emplace(                                      \
-                    ndnboost::unordered::detail::create_emplace_args(          \
-                        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_CALL_FORWARD,  \
-                            a)                                              \
-                )).first;                                                   \
-            }
-
-        NDNBOOST_PP_REPEAT_FROM_TO(4, NDNBOOST_UNORDERED_EMPLACE_LIMIT,
-            NDNBOOST_UNORDERED_EMPLACE, _)
-
-#undef NDNBOOST_UNORDERED_EMPLACE
-
-#endif
-
-        std::pair<iterator, bool> insert(value_type const& x)
-        {
-            return this->emplace(x);
-        }
-
-        std::pair<iterator, bool> insert(NDNBOOST_UNORDERED_RV_REF(value_type) x)
-        {
-            return this->emplace(ndnboost::move(x));
-        }
-
-        iterator insert(const_iterator hint, value_type const& x)
-        {
-            return this->emplace_hint(hint, x);
-        }
-
-        iterator insert(const_iterator hint,
-                NDNBOOST_UNORDERED_RV_REF(value_type) x)
-        {
-            return this->emplace_hint(hint, ndnboost::move(x));
-        }
-
-        template <class InputIt> void insert(InputIt, InputIt);
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
-        void insert(std::initializer_list<value_type>);
-#endif
-
-        iterator erase(const_iterator);
-        size_type erase(const key_type&);
-        iterator erase(const_iterator, const_iterator);
-        void quick_erase(const_iterator it) { erase(it); }
-        void erase_return_void(const_iterator it) { erase(it); }
-
-        void clear();
-        void swap(unordered_set&);
-
-        // observers
-
-        hasher hash_function() const;
-        key_equal key_eq() const;
-
-        // lookup
-
-        const_iterator find(const key_type&) const;
-
-        template <class CompatibleKey, class CompatibleHash,
-            class CompatiblePredicate>
-        const_iterator find(
-                CompatibleKey const&,
-                CompatibleHash const&,
-                CompatiblePredicate const&) const;
-
-        size_type count(const key_type&) const;
-
-        std::pair<const_iterator, const_iterator>
-        equal_range(const key_type&) const;
-
-        // bucket interface
-
-        size_type bucket_count() const NDNBOOST_NOEXCEPT
-        {
-            return table_.bucket_count_;
-        }
-
-        size_type max_bucket_count() const NDNBOOST_NOEXCEPT
-        {
-            return table_.max_bucket_count();
-        }
-
-        size_type bucket_size(size_type) const;
-
-        size_type bucket(const key_type& k) const
-        {
-            return table_.hash_to_bucket(table_.hash(k));
-        }
-
-        local_iterator begin(size_type n)
-        {
-            return local_iterator(
-                table_.begin(n), n, table_.bucket_count_);
-        }
-
-        const_local_iterator begin(size_type n) const
-        {
-            return const_local_iterator(
-                table_.begin(n), n, table_.bucket_count_);
-        }
-
-        local_iterator end(size_type)
-        {
-            return local_iterator();
-        }
-
-        const_local_iterator end(size_type) const
-        {
-            return const_local_iterator();
-        }
-
-        const_local_iterator cbegin(size_type n) const
-        {
-            return const_local_iterator(
-                table_.begin(n), n, table_.bucket_count_);
-        }
-
-        const_local_iterator cend(size_type) const
-        {
-            return const_local_iterator();
-        }
-
-        // hash policy
-
-        float max_load_factor() const NDNBOOST_NOEXCEPT
-        {
-            return table_.mlf_;
-        }
-
-        float load_factor() const NDNBOOST_NOEXCEPT;
-        void max_load_factor(float) NDNBOOST_NOEXCEPT;
-        void rehash(size_type);
-        void reserve(size_type);
-
-#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>(
-                unordered_set const&, unordered_set const&);
-#endif
-    }; // class template unordered_set
-
-    template <class T, class H, class P, class A>
-    class unordered_multiset
-    {
-#if defined(NDNBOOST_UNORDERED_USE_MOVE)
-        NDNBOOST_COPYABLE_AND_MOVABLE(unordered_multiset)
-#endif
-    public:
-
-        typedef T key_type;
-        typedef T value_type;
-        typedef H hasher;
-        typedef P key_equal;
-        typedef A allocator_type;
-
-    private:
-
-        typedef ndnboost::unordered::detail::multiset<A, T, H, P> types;
-        typedef typename types::traits allocator_traits;
-        typedef typename types::table table;
-
-    public:
-
-        typedef typename allocator_traits::pointer pointer;
-        typedef typename allocator_traits::const_pointer const_pointer;
-
-        typedef value_type& reference;
-        typedef value_type const& const_reference;
-
-        typedef std::size_t size_type;
-        typedef std::ptrdiff_t difference_type;
-
-        typedef typename table::cl_iterator const_local_iterator;
-        typedef typename table::cl_iterator local_iterator;
-        typedef typename table::c_iterator const_iterator;
-        typedef typename table::c_iterator iterator;
-
-    private:
-
-        table table_;
-
-    public:
-
-        // constructors
-
-        explicit unordered_multiset(
-                size_type = ndnboost::unordered::detail::default_bucket_count,
-                const hasher& = hasher(),
-                const key_equal& = key_equal(),
-                const allocator_type& = allocator_type());
-
-        explicit unordered_multiset(allocator_type const&);
-
-        template <class InputIt>
-        unordered_multiset(InputIt, InputIt);
-
-        template <class InputIt>
-        unordered_multiset(
-                InputIt, InputIt,
-                size_type,
-                const hasher& = hasher(),
-                const key_equal& = key_equal());
-
-        template <class InputIt>
-        unordered_multiset(
-                InputIt, InputIt,
-                size_type,
-                const hasher&,
-                const key_equal&,
-                const allocator_type&);
-
-        // copy/move constructors
-
-        unordered_multiset(unordered_multiset const&);
-
-        unordered_multiset(unordered_multiset const&, allocator_type const&);
-
-#if defined(NDNBOOST_UNORDERED_USE_MOVE)
-        unordered_multiset(NDNBOOST_RV_REF(unordered_multiset) other)
-            : table_(other.table_, ndnboost::unordered::detail::move_tag())
-        {
-        }
-#elif !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
-        unordered_multiset(unordered_multiset&& other)
-            : table_(other.table_, ndnboost::unordered::detail::move_tag())
-        {
-        }
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
-        unordered_multiset(unordered_multiset&&, allocator_type const&);
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
-        unordered_multiset(
-                std::initializer_list<value_type>,
-                size_type = ndnboost::unordered::detail::default_bucket_count,
-                const hasher& = hasher(),
-                const key_equal&l = key_equal(),
-                const allocator_type& = allocator_type());
-#endif
-
-        // Destructor
-
-        ~unordered_multiset();
-
-        // Assign
-
-#if defined(NDNBOOST_UNORDERED_USE_MOVE)
-        unordered_multiset& operator=(
-                NDNBOOST_COPY_ASSIGN_REF(unordered_multiset) x)
-        {
-            table_.assign(x.table_);
-            return *this;
-        }
-
-        unordered_multiset& operator=(NDNBOOST_RV_REF(unordered_multiset) x)
-        {
-            table_.move_assign(x.table_);
-            return *this;
-        }
-#else
-        unordered_multiset& operator=(unordered_multiset const& x)
-        {
-            table_.assign(x.table_);
-            return *this;
-        }
-
-#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
-        unordered_multiset& operator=(unordered_multiset&& x)
-        {
-            table_.move_assign(x.table_);
-            return *this;
-        }
-#endif
-#endif
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
-        unordered_multiset& operator=(std::initializer_list<value_type>);
-#endif
-
-        allocator_type get_allocator() const NDNBOOST_NOEXCEPT
-        {
-            return table_.node_alloc();
-        }
-
-        // size and capacity
-
-        bool empty() const NDNBOOST_NOEXCEPT
-        {
-            return table_.size_ == 0;
-        }
-
-        size_type size() const NDNBOOST_NOEXCEPT
-        {
-            return table_.size_;
-        }
-
-        size_type max_size() const NDNBOOST_NOEXCEPT;
-
-        // iterators
-
-        iterator begin() NDNBOOST_NOEXCEPT
-        {
-            return iterator(table_.begin());
-        }
-
-        const_iterator begin() const NDNBOOST_NOEXCEPT
-        {
-            return const_iterator(table_.begin());
-        }
-
-        iterator end() NDNBOOST_NOEXCEPT
-        {
-            return iterator();
-        }
-
-        const_iterator end() const NDNBOOST_NOEXCEPT
-        {
-            return const_iterator();
-        }
-
-        const_iterator cbegin() const NDNBOOST_NOEXCEPT
-        {
-            return const_iterator(table_.begin());
-        }
-
-        const_iterator cend() const NDNBOOST_NOEXCEPT
-        {
-            return const_iterator();
-        }
-
-        // emplace
-
-#if !defined(NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES)
-        template <class... Args>
-        iterator emplace(NDNBOOST_FWD_REF(Args)... args)
-        {
-            return table_.emplace(ndnboost::forward<Args>(args)...);
-        }
-
-        template <class... Args>
-        iterator emplace_hint(const_iterator, NDNBOOST_FWD_REF(Args)... args)
-        {
-            return table_.emplace(ndnboost::forward<Args>(args)...);
-        }
-#else
-
-#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
-        // doesn't have a default constructor.
-
-        iterator emplace(
-                ndnboost::unordered::detail::empty_emplace
-                    = ndnboost::unordered::detail::empty_emplace(),
-                value_type v = value_type())
-        {
-            return this->emplace(ndnboost::move(v));
-        }
-
-        iterator emplace_hint(const_iterator hint,
-                ndnboost::unordered::detail::empty_emplace
-                    = ndnboost::unordered::detail::empty_emplace(),
-                value_type v = value_type()
-            )
-        {
-            return this->emplace_hint(hint, ndnboost::move(v));
-        }
-
-#endif
-
-        template <typename A0>
-        iterator emplace(NDNBOOST_FWD_REF(A0) a0)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0))
-            );
-        }
-
-        template <typename A0>
-        iterator emplace_hint(const_iterator, NDNBOOST_FWD_REF(A0) a0)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0))
-            );
-        }
-
-        template <typename A0, typename A1>
-        iterator emplace(
-            NDNBOOST_FWD_REF(A0) a0,
-            NDNBOOST_FWD_REF(A1) a1)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0),
-                    ndnboost::forward<A1>(a1))
-            );
-        }
-
-        template <typename A0, typename A1>
-        iterator emplace_hint(const_iterator,
-            NDNBOOST_FWD_REF(A0) a0,
-            NDNBOOST_FWD_REF(A1) a1)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0),
-                    ndnboost::forward<A1>(a1))
-            );
-        }
-
-        template <typename A0, typename A1, typename A2>
-        iterator emplace(
-            NDNBOOST_FWD_REF(A0) a0,
-            NDNBOOST_FWD_REF(A1) a1,
-            NDNBOOST_FWD_REF(A2) a2)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0),
-                    ndnboost::forward<A1>(a1),
-                    ndnboost::forward<A2>(a2))
-            );
-        }
-
-        template <typename A0, typename A1, typename A2>
-        iterator emplace_hint(const_iterator,
-            NDNBOOST_FWD_REF(A0) a0,
-            NDNBOOST_FWD_REF(A1) a1,
-            NDNBOOST_FWD_REF(A2) a2)
-        {
-            return table_.emplace(
-                ndnboost::unordered::detail::create_emplace_args(
-                    ndnboost::forward<A0>(a0),
-                    ndnboost::forward<A1>(a1),
-                    ndnboost::forward<A2>(a2))
-            );
-        }
-
-#define NDNBOOST_UNORDERED_EMPLACE(z, n, _)                                    \
-            template <                                                      \
-                NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
-            >                                                               \
-            iterator emplace(                                               \
-                    NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, a)      \
-            )                                                               \
-            {                                                               \
-                return table_.emplace(                                      \
-                    ndnboost::unordered::detail::create_emplace_args(          \
-                        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_CALL_FORWARD,  \
-                            a)                                              \
-                ));                                                         \
-            }                                                               \
-                                                                            \
-            template <                                                      \
-                NDNBOOST_PP_ENUM_PARAMS_Z(z, n, typename A)                    \
-            >                                                               \
-            iterator emplace_hint(                                          \
-                    const_iterator,                                         \
-                    NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_FWD_PARAM, a)      \
-            )                                                               \
-            {                                                               \
-                return table_.emplace(                                      \
-                    ndnboost::unordered::detail::create_emplace_args(          \
-                        NDNBOOST_PP_ENUM_##z(n, NDNBOOST_UNORDERED_CALL_FORWARD,  \
-                            a)                                              \
-                ));                                                         \
-            }
-
-        NDNBOOST_PP_REPEAT_FROM_TO(4, NDNBOOST_UNORDERED_EMPLACE_LIMIT,
-            NDNBOOST_UNORDERED_EMPLACE, _)
-
-#undef NDNBOOST_UNORDERED_EMPLACE
-
-#endif
-
-        iterator insert(value_type const& x)
-        {
-            return this->emplace(x);
-        }
-
-        iterator insert(NDNBOOST_UNORDERED_RV_REF(value_type) x)
-        {
-            return this->emplace(ndnboost::move(x));
-        }
-
-        iterator insert(const_iterator hint, value_type const& x)
-        {
-            return this->emplace_hint(hint, x);
-        }
-
-        iterator insert(const_iterator hint,
-                NDNBOOST_UNORDERED_RV_REF(value_type) x)
-        {
-            return this->emplace_hint(hint, ndnboost::move(x));
-        }
-
-        template <class InputIt> void insert(InputIt, InputIt);
-
-#if !defined(NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST)
-        void insert(std::initializer_list<value_type>);
-#endif
-
-        iterator erase(const_iterator);
-        size_type erase(const key_type&);
-        iterator erase(const_iterator, const_iterator);
-        void quick_erase(const_iterator it) { erase(it); }
-        void erase_return_void(const_iterator it) { erase(it); }
-
-        void clear();
-        void swap(unordered_multiset&);
-
-        // observers
-
-        hasher hash_function() const;
-        key_equal key_eq() const;
-
-        // lookup
-
-        const_iterator find(const key_type&) const;
-
-        template <class CompatibleKey, class CompatibleHash,
-            class CompatiblePredicate>
-        const_iterator find(
-                CompatibleKey const&,
-                CompatibleHash const&,
-                CompatiblePredicate const&) const;
-
-        size_type count(const key_type&) const;
-
-        std::pair<const_iterator, const_iterator>
-        equal_range(const key_type&) const;
-
-        // bucket interface
-
-        size_type bucket_count() const NDNBOOST_NOEXCEPT
-        {
-            return table_.bucket_count_;
-        }
-
-        size_type max_bucket_count() const NDNBOOST_NOEXCEPT
-        {
-            return table_.max_bucket_count();
-        }
-
-        size_type bucket_size(size_type) const;
-
-        size_type bucket(const key_type& k) const
-        {
-            return table_.hash_to_bucket(table_.hash(k));
-        }
-
-        local_iterator begin(size_type n)
-        {
-            return local_iterator(
-                table_.begin(n), n, table_.bucket_count_);
-        }
-
-        const_local_iterator begin(size_type n) const
-        {
-            return const_local_iterator(
-                table_.begin(n), n, table_.bucket_count_);
-        }
-
-        local_iterator end(size_type)
-        {
-            return local_iterator();
-        }
-
-        const_local_iterator end(size_type) const
-        {
-            return const_local_iterator();
-        }
-
-        const_local_iterator cbegin(size_type n) const
-        {
-            return const_local_iterator(
-                table_.begin(n), n, table_.bucket_count_);
-        }
-
-        const_local_iterator cend(size_type) const
-        {
-            return const_local_iterator();
-        }
-
-        // hash policy
-
-        float max_load_factor() const NDNBOOST_NOEXCEPT
-        {
-            return table_.mlf_;
-        }
-
-        float load_factor() const NDNBOOST_NOEXCEPT;
-        void max_load_factor(float) NDNBOOST_NOEXCEPT;
-        void rehash(size_type);
-        void reserve(size_type);
-
-#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>(
-                unordered_multiset const&, unordered_multiset const&);
-#endif
-    }; // class template unordered_multiset
-
-////////////////////////////////////////////////////////////////////////////////
-
-    template <class T, class H, class P, class A>
-    unordered_set<T,H,P,A>::unordered_set(
-            size_type n, const hasher &hf, const key_equal &eql,
-            const allocator_type &a)
-      : table_(n, hf, eql, a)
-    {
-    }
-
-    template <class T, class H, class P, class A>
-    unordered_set<T,H,P,A>::unordered_set(allocator_type const& a)
-      : table_(ndnboost::unordered::detail::default_bucket_count,
-            hasher(), key_equal(), a)
-    {
-    }
-
-    template <class T, class H, class P, class A>
-    unordered_set<T,H,P,A>::unordered_set(
-            unordered_set const& other, allocator_type const& a)
-      : table_(other.table_, a)
-    {
-    }
-
-    template <class T, class H, class P, class A>
-    template <class InputIt>
-    unordered_set<T,H,P,A>::unordered_set(InputIt f, InputIt l)
-      : table_(ndnboost::unordered::detail::initial_size(f, l),
-        hasher(), key_equal(), allocator_type())
-    {
-        table_.insert_range(f, l);
-    }
-
-    template <class T, class H, class P, class A>
-    template <class InputIt>
-    unordered_set<T,H,P,A>::unordered_set(
-            InputIt f, InputIt l,
-            size_type n,
-            const hasher &hf,
-            const key_equal &eql)
-      : table_(ndnboost::unordered::detail::initial_size(f, l, n),
-            hf, eql, allocator_type())
-    {
-        table_.insert_range(f, l);
-    }
-    
-    template <class T, class H, class P, class A>
-    template <class InputIt>
-    unordered_set<T,H,P,A>::unordered_set(
-            InputIt f, InputIt l,
-            size_type n,
-            const hasher &hf,
-            const key_equal &eql,
-            const allocator_type &a)
-      : table_(ndnboost::unordered::detail::initial_size(f, l, n), hf, eql, a)
-    {
-        table_.insert_range(f, l);
-    }
-    
-    template <class T, class H, class P, class A>
-    unordered_set<T,H,P,A>::~unordered_set() {}
-
-    template <class T, class H, class P, class A>
-    unordered_set<T,H,P,A>::unordered_set(
-            unordered_set const& other)
-      : table_(other.table_)
-    {
-    }
-
-#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
-
-    template <class T, class H, class P, class A>
-    unordered_set<T,H,P,A>::unordered_set(
-            unordered_set&& other, allocator_type const& a)
-      : table_(other.table_, a, ndnboost::unordered::detail::move_tag())
-    {
-    }
-
-#endif
-
-#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(
-            std::initializer_list<value_type> list, size_type n,
-            const hasher &hf, const key_equal &eql, const allocator_type &a)
-      : table_(
-            ndnboost::unordered::detail::initial_size(
-                list.begin(), list.end(), n),
-            hf, eql, a)
-    {
-        table_.insert_range(list.begin(), list.end());
-    }
-
-    template <class T, class H, class P, class A>
-    unordered_set<T,H,P,A>& unordered_set<T,H,P,A>::operator=(
-            std::initializer_list<value_type> list)
-    {
-        table_.clear();
-        table_.insert_range(list.begin(), list.end());
-        return *this;
-    }
-
-#endif
-
-    // size and capacity
-
-    template <class T, class H, class P, class A>
-    std::size_t unordered_set<T,H,P,A>::max_size() const NDNBOOST_NOEXCEPT
-    {
-        return table_.max_size();
-    }
-
-    // modifiers
-
-    template <class T, class H, class P, class A>
-    template <class InputIt>
-    void unordered_set<T,H,P,A>::insert(InputIt first, InputIt last)
-    {
-        table_.insert_range(first, last);
-    }
-
-#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)
-    {
-        table_.insert_range(list.begin(), list.end());
-    }
-#endif
-
-    template <class T, class H, class P, class A>
-    typename unordered_set<T,H,P,A>::iterator
-        unordered_set<T,H,P,A>::erase(const_iterator position)
-    {
-        return table_.erase(position);
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_set<T,H,P,A>::size_type
-        unordered_set<T,H,P,A>::erase(const key_type& k)
-    {
-        return table_.erase_key(k);
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_set<T,H,P,A>::iterator
-        unordered_set<T,H,P,A>::erase(
-            const_iterator first, const_iterator last)
-    {
-        return table_.erase_range(first, last);
-    }
-
-    template <class T, class H, class P, class A>
-    void unordered_set<T,H,P,A>::clear()
-    {
-        table_.clear();
-    }
-
-    template <class T, class H, class P, class A>
-    void unordered_set<T,H,P,A>::swap(unordered_set& other)
-    {
-        table_.swap(other.table_);
-    }
-
-    // observers
-
-    template <class T, class H, class P, class A>
-    typename unordered_set<T,H,P,A>::hasher
-        unordered_set<T,H,P,A>::hash_function() const
-    {
-        return table_.hash_function();
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_set<T,H,P,A>::key_equal
-        unordered_set<T,H,P,A>::key_eq() const
-    {
-        return table_.key_eq();
-    }
-
-    // lookup
-
-    template <class T, class H, class P, class A>
-    typename unordered_set<T,H,P,A>::const_iterator
-        unordered_set<T,H,P,A>::find(const key_type& k) const
-    {
-        return table_.find_node(k);
-    }
-
-    template <class T, class H, class P, class A>
-    template <class CompatibleKey, class CompatibleHash,
-        class CompatiblePredicate>
-    typename unordered_set<T,H,P,A>::const_iterator
-        unordered_set<T,H,P,A>::find(
-            CompatibleKey const& k,
-            CompatibleHash const& hash,
-            CompatiblePredicate const& eq) const
-    {
-        return table_.generic_find_node(k, hash, eq);
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_set<T,H,P,A>::size_type
-        unordered_set<T,H,P,A>::count(const key_type& k) const
-    {
-        return table_.count(k);
-    }
-
-    template <class T, class H, class P, class A>
-    std::pair<
-            typename unordered_set<T,H,P,A>::const_iterator,
-            typename unordered_set<T,H,P,A>::const_iterator>
-        unordered_set<T,H,P,A>::equal_range(const key_type& k) const
-    {
-        return table_.equal_range(k);
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_set<T,H,P,A>::size_type
-        unordered_set<T,H,P,A>::bucket_size(size_type n) const
-    {
-        return table_.bucket_size(n);
-    }
-
-    // hash policy
-
-    template <class T, class H, class P, class A>
-    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) NDNBOOST_NOEXCEPT
-    {
-        table_.max_load_factor(m);
-    }
-
-    template <class T, class H, class P, class A>
-    void unordered_set<T,H,P,A>::rehash(size_type n)
-    {
-        table_.rehash(n);
-    }
-
-    template <class T, class H, class P, class A>
-    void unordered_set<T,H,P,A>::reserve(size_type n)
-    {
-        table_.reserve(n);
-    }
-
-    template <class T, class H, class P, class A>
-    inline bool operator==(
-            unordered_set<T,H,P,A> const& m1,
-            unordered_set<T,H,P,A> const& m2)
-    {
-#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
-        struct dummy { unordered_set<T,H,P,A> x; };
-#endif
-        return m1.table_.equals(m2.table_);
-    }
-
-    template <class T, class H, class P, class A>
-    inline bool operator!=(
-            unordered_set<T,H,P,A> const& m1,
-            unordered_set<T,H,P,A> const& m2)
-    {
-#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
-        struct dummy { unordered_set<T,H,P,A> x; };
-#endif
-        return !m1.table_.equals(m2.table_);
-    }
-
-    template <class T, class H, class P, class A>
-    inline void swap(
-            unordered_set<T,H,P,A> &m1,
-            unordered_set<T,H,P,A> &m2)
-    {
-#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
-        struct dummy { unordered_set<T,H,P,A> x; };
-#endif
-        m1.swap(m2);
-    }
-
-////////////////////////////////////////////////////////////////////////////////
-
-    template <class T, class H, class P, class A>
-    unordered_multiset<T,H,P,A>::unordered_multiset(
-            size_type n, const hasher &hf, const key_equal &eql,
-            const allocator_type &a)
-      : table_(n, hf, eql, a)
-    {
-    }
-
-    template <class T, class H, class P, class A>
-    unordered_multiset<T,H,P,A>::unordered_multiset(allocator_type const& a)
-      : table_(ndnboost::unordered::detail::default_bucket_count,
-            hasher(), key_equal(), a)
-    {
-    }
-
-    template <class T, class H, class P, class A>
-    unordered_multiset<T,H,P,A>::unordered_multiset(
-            unordered_multiset const& other, allocator_type const& a)
-      : table_(other.table_, a)
-    {
-    }
-
-    template <class T, class H, class P, class A>
-    template <class InputIt>
-    unordered_multiset<T,H,P,A>::unordered_multiset(InputIt f, InputIt l)
-      : table_(ndnboost::unordered::detail::initial_size(f, l),
-        hasher(), key_equal(), allocator_type())
-    {
-        table_.insert_range(f, l);
-    }
-
-    template <class T, class H, class P, class A>
-    template <class InputIt>
-    unordered_multiset<T,H,P,A>::unordered_multiset(
-            InputIt f, InputIt l,
-            size_type n,
-            const hasher &hf,
-            const key_equal &eql)
-      : table_(ndnboost::unordered::detail::initial_size(f, l, n),
-            hf, eql, allocator_type())
-    {
-        table_.insert_range(f, l);
-    }
-    
-    template <class T, class H, class P, class A>
-    template <class InputIt>
-    unordered_multiset<T,H,P,A>::unordered_multiset(
-            InputIt f, InputIt l,
-            size_type n,
-            const hasher &hf,
-            const key_equal &eql,
-            const allocator_type &a)
-      : table_(ndnboost::unordered::detail::initial_size(f, l, n), hf, eql, a)
-    {
-        table_.insert_range(f, l);
-    }
-    
-    template <class T, class H, class P, class A>
-    unordered_multiset<T,H,P,A>::~unordered_multiset() {}
-
-    template <class T, class H, class P, class A>
-    unordered_multiset<T,H,P,A>::unordered_multiset(
-            unordered_multiset const& other)
-      : table_(other.table_)
-    {
-    }
-
-#if !defined(NDNBOOST_NO_CXX11_RVALUE_REFERENCES)
-
-    template <class T, class H, class P, class A>
-    unordered_multiset<T,H,P,A>::unordered_multiset(
-            unordered_multiset&& other, allocator_type const& a)
-      : table_(other.table_, a, ndnboost::unordered::detail::move_tag())
-    {
-    }
-
-#endif
-
-#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(
-            std::initializer_list<value_type> list, size_type n,
-            const hasher &hf, const key_equal &eql, const allocator_type &a)
-      : table_(
-            ndnboost::unordered::detail::initial_size(
-                list.begin(), list.end(), n),
-            hf, eql, a)
-    {
-        table_.insert_range(list.begin(), list.end());
-    }
-
-    template <class T, class H, class P, class A>
-    unordered_multiset<T,H,P,A>& unordered_multiset<T,H,P,A>::operator=(
-            std::initializer_list<value_type> list)
-    {
-        table_.clear();
-        table_.insert_range(list.begin(), list.end());
-        return *this;
-    }
-
-#endif
-
-    // size and capacity
-
-    template <class T, class H, class P, class A>
-    std::size_t unordered_multiset<T,H,P,A>::max_size() const NDNBOOST_NOEXCEPT
-    {
-        return table_.max_size();
-    }
-
-    // modifiers
-
-    template <class T, class H, class P, class A>
-    template <class InputIt>
-    void unordered_multiset<T,H,P,A>::insert(InputIt first, InputIt last)
-    {
-        table_.insert_range(first, last);
-    }
-
-#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)
-    {
-        table_.insert_range(list.begin(), list.end());
-    }
-#endif
-
-    template <class T, class H, class P, class A>
-    typename unordered_multiset<T,H,P,A>::iterator
-        unordered_multiset<T,H,P,A>::erase(const_iterator position)
-    {
-        return table_.erase(position);
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_multiset<T,H,P,A>::size_type
-        unordered_multiset<T,H,P,A>::erase(const key_type& k)
-    {
-        return table_.erase_key(k);
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_multiset<T,H,P,A>::iterator
-        unordered_multiset<T,H,P,A>::erase(
-                const_iterator first, const_iterator last)
-    {
-        return table_.erase_range(first, last);
-    }
-
-    template <class T, class H, class P, class A>
-    void unordered_multiset<T,H,P,A>::clear()
-    {
-        table_.clear();
-    }
-
-    template <class T, class H, class P, class A>
-    void unordered_multiset<T,H,P,A>::swap(unordered_multiset& other)
-    {
-        table_.swap(other.table_);
-    }
-
-    // observers
-
-    template <class T, class H, class P, class A>
-    typename unordered_multiset<T,H,P,A>::hasher
-        unordered_multiset<T,H,P,A>::hash_function() const
-    {
-        return table_.hash_function();
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_multiset<T,H,P,A>::key_equal
-        unordered_multiset<T,H,P,A>::key_eq() const
-    {
-        return table_.key_eq();
-    }
-
-    // lookup
-
-    template <class T, class H, class P, class A>
-    typename unordered_multiset<T,H,P,A>::const_iterator
-        unordered_multiset<T,H,P,A>::find(const key_type& k) const
-    {
-        return table_.find_node(k);
-    }
-
-    template <class T, class H, class P, class A>
-    template <class CompatibleKey, class CompatibleHash,
-        class CompatiblePredicate>
-    typename unordered_multiset<T,H,P,A>::const_iterator
-        unordered_multiset<T,H,P,A>::find(
-            CompatibleKey const& k,
-            CompatibleHash const& hash,
-            CompatiblePredicate const& eq) const
-    {
-        return table_.generic_find_node(k, hash, eq);
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_multiset<T,H,P,A>::size_type
-        unordered_multiset<T,H,P,A>::count(const key_type& k) const
-    {
-        return table_.count(k);
-    }
-
-    template <class T, class H, class P, class A>
-    std::pair<
-            typename unordered_multiset<T,H,P,A>::const_iterator,
-            typename unordered_multiset<T,H,P,A>::const_iterator>
-        unordered_multiset<T,H,P,A>::equal_range(const key_type& k) const
-    {
-        return table_.equal_range(k);
-    }
-
-    template <class T, class H, class P, class A>
-    typename unordered_multiset<T,H,P,A>::size_type
-        unordered_multiset<T,H,P,A>::bucket_size(size_type n) const
-    {
-        return table_.bucket_size(n);
-    }
-
-    // hash policy
-
-    template <class T, class H, class P, class A>
-    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) NDNBOOST_NOEXCEPT
-    {
-        table_.max_load_factor(m);
-    }
-
-    template <class T, class H, class P, class A>
-    void unordered_multiset<T,H,P,A>::rehash(size_type n)
-    {
-        table_.rehash(n);
-    }
-
-    template <class T, class H, class P, class A>
-    void unordered_multiset<T,H,P,A>::reserve(size_type n)
-    {
-        table_.reserve(n);
-    }
-
-    template <class T, class H, class P, class A>
-    inline bool operator==(
-            unordered_multiset<T,H,P,A> const& m1,
-            unordered_multiset<T,H,P,A> const& m2)
-    {
-#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
-        struct dummy { unordered_multiset<T,H,P,A> x; };
-#endif
-        return m1.table_.equals(m2.table_);
-    }
-
-    template <class T, class H, class P, class A>
-    inline bool operator!=(
-            unordered_multiset<T,H,P,A> const& m1,
-            unordered_multiset<T,H,P,A> const& m2)
-    {
-#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
-        struct dummy { unordered_multiset<T,H,P,A> x; };
-#endif
-        return !m1.table_.equals(m2.table_);
-    }
-
-    template <class T, class H, class P, class A>
-    inline void swap(
-            unordered_multiset<T,H,P,A> &m1,
-            unordered_multiset<T,H,P,A> &m2)
-    {
-#if NDNBOOST_WORKAROUND(__CODEGEARC__, NDNBOOST_TESTED_AT(0x0613))
-        struct dummy { unordered_multiset<T,H,P,A> x; };
-#endif
-        m1.swap(m2);
-    }
-} // namespace unordered
-} // namespace ndnboost
-
-#if defined(NDNBOOST_MSVC)
-#pragma warning(pop)
-#endif
-
-#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
deleted file mode 100644
index 7e1a653..0000000
--- a/include/ndnboost/unordered/unordered_set_fwd.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-
-// Copyright (C) 2008-2011 Daniel James.
-// 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 NDNBOOST_UNORDERED_SET_FWD_HPP_INCLUDED
-#define NDNBOOST_UNORDERED_SET_FWD_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/config.hpp>
-#include <memory>
-#include <functional>
-#include <ndnboost/functional/hash_fwd.hpp>
-#include <ndnboost/unordered/detail/fwd.hpp>
-
-namespace ndnboost
-{
-    namespace unordered
-    {
-        template <class T,
-            class H = ndnboost::hash<T>,
-            class P = std::equal_to<T>,
-            class A = std::allocator<T> >
-        class unordered_set;
-
-        template <class T, class H, class P, class A>
-        inline bool operator==(unordered_set<T, H, P, A> const&,
-            unordered_set<T, H, P, A> const&);
-        template <class T, class H, class P, class A>
-        inline bool operator!=(unordered_set<T, H, P, A> const&,
-            unordered_set<T, H, P, A> const&);
-        template <class T, class H, class P, class A>
-        inline void swap(unordered_set<T, H, P, A> &m1,
-                unordered_set<T, H, P, A> &m2);
-
-        template <class T,
-            class H = ndnboost::hash<T>,
-            class P = std::equal_to<T>,
-            class A = std::allocator<T> >
-        class unordered_multiset;
-
-        template <class T, class H, class P, class A>
-        inline bool operator==(unordered_multiset<T, H, P, A> const&,
-            unordered_multiset<T, H, P, A> const&);
-        template <class T, class H, class P, class A>
-        inline bool operator!=(unordered_multiset<T, H, P, A> const&,
-            unordered_multiset<T, H, P, A> const&);
-        template <class T, class H, class P, class A>
-        inline void swap(unordered_multiset<T, H, P, A> &m1,
-                unordered_multiset<T, H, P, A> &m2);
-    }
-
-    using ndnboost::unordered::unordered_set;
-    using ndnboost::unordered::unordered_multiset;
-    using ndnboost::unordered::swap;
-    using ndnboost::unordered::operator==;
-    using ndnboost::unordered::operator!=;
-}
-
-#endif
diff --git a/include/ndnboost/unordered_set.hpp b/include/ndnboost/unordered_set.hpp
deleted file mode 100644
index 3ce85ee..0000000
--- a/include/ndnboost/unordered_set.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-
-// Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard.
-// Copyright (C) 2005-2008 Daniel James.
-// 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)
-
-//  See http://www.boost.org/libs/unordered for documentation
-
-#ifndef NDNBOOST_UNORDERED_SET_HPP_INCLUDED
-#define NDNBOOST_UNORDERED_SET_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <ndnboost/unordered/unordered_set.hpp>
-
-#endif // NDNBOOST_UNORDERED_SET_HPP_INCLUDED
diff --git a/include/ndnboost/utility.hpp b/include/ndnboost/utility.hpp
deleted file mode 100644
index 883f0ec..0000000
--- a/include/ndnboost/utility.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-//  Boost utility.hpp header file  -------------------------------------------//
-
-//  Copyright 1999-2003 Aleksey Gurtovoy.  Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0.  (See accompanying file
-//  LICENSE_1_0.txt or a copy at <http://www.boost.org/LICENSE_1_0.txt>.)
-
-//  See <http://www.boost.org/libs/utility/> for the library's home page.
-
-#ifndef NDNBOOST_UTILITY_HPP
-#define NDNBOOST_UTILITY_HPP
-
-#include <ndnboost/utility/addressof.hpp>
-#include <ndnboost/utility/base_from_member.hpp>
-#include <ndnboost/utility/binary.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-#include <ndnboost/utility/identity_type.hpp>
-#include <ndnboost/checked_delete.hpp>
-#include <ndnboost/next_prior.hpp>
-#include <ndnboost/noncopyable.hpp>
-
-#endif  // NDNBOOST_UTILITY_HPP
diff --git a/include/ndnboost/utility/addressof.hpp b/include/ndnboost/utility/addressof.hpp
deleted file mode 100644
index 296fbad..0000000
--- a/include/ndnboost/utility/addressof.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-// Copyright (C) 2002 Brad King (brad.king@kitware.com)
-//                    Douglas Gregor (gregod@cs.rpi.edu)
-//
-// Copyright (C) 2002, 2008 Peter Dimov
-//
-// 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)
-
-// For more information, see http://www.boost.org
-
-#ifndef NDNBOOST_UTILITY_ADDRESSOF_HPP
-# define NDNBOOST_UTILITY_ADDRESSOF_HPP
-
-# include <ndnboost/config.hpp>
-# include <ndnboost/detail/workaround.hpp>
-
-namespace ndnboost
-{
-
-namespace detail
-{
-
-template<class T> struct addr_impl_ref
-{
-    T & v_;
-
-    inline addr_impl_ref( T & v ): v_( v ) {}
-    inline operator T& () const { return v_; }
-
-private:
-    addr_impl_ref & operator=(const addr_impl_ref &);
-};
-
-template<class T> struct addressof_impl
-{
-    static inline T * f( T & v, long )
-    {
-        return reinterpret_cast<T*>(
-            &const_cast<char&>(reinterpret_cast<const volatile char &>(v)));
-    }
-
-    static inline T * f( T * v, int )
-    {
-        return v;
-    }
-};
-
-} // namespace detail
-
-template<class T> T * addressof( T & v )
-{
-#if (defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND( __BORLANDC__, NDNBOOST_TESTED_AT( 0x610 ) ) ) || defined( __SUNPRO_CC )
-
-    return ndnboost::detail::addressof_impl<T>::f( v, 0 );
-
-#else
-
-    return ndnboost::detail::addressof_impl<T>::f( ndnboost::detail::addr_impl_ref<T>( v ), 0 );
-
-#endif
-}
-
-#if defined( __SUNPRO_CC ) && NDNBOOST_WORKAROUND( __SUNPRO_CC, NDNBOOST_TESTED_AT( 0x590 ) )
-
-namespace detail
-{
-
-template<class T> struct addressof_addp
-{
-    typedef T * type;
-};
-
-} // namespace detail
-
-template< class T, std::size_t N >
-typename detail::addressof_addp< T[N] >::type addressof( T (&t)[N] )
-{
-    return &t;
-}
-
-#endif
-
-// Borland doesn't like casting an array reference to a char reference
-// but these overloads work around the problem.
-#if defined( __BORLANDC__ ) && NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x564))
-template<typename T,std::size_t N>
-T (*addressof(T (&t)[N]))[N]
-{
-   return reinterpret_cast<T(*)[N]>(&t);
-}
-
-template<typename T,std::size_t N>
-const T (*addressof(const T (&t)[N]))[N]
-{
-   return reinterpret_cast<const T(*)[N]>(&t);
-}
-#endif
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_UTILITY_ADDRESSOF_HPP
diff --git a/include/ndnboost/utility/base_from_member.hpp b/include/ndnboost/utility/base_from_member.hpp
deleted file mode 100644
index 899bd37..0000000
--- a/include/ndnboost/utility/base_from_member.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//  boost utility/base_from_member.hpp header file  --------------------------//
-
-//  Copyright 2001, 2003, 2004 Daryle Walker.  Use, modification, and
-//  distribution are subject to the Boost Software License, Version 1.0.  (See
-//  accompanying file LICENSE_1_0.txt or a copy at
-//  <http://www.boost.org/LICENSE_1_0.txt>.)
-
-//  See <http://www.boost.org/libs/utility/> for the library's home page.
-
-#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>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/preprocessor/repetition/repeat_from_to.hpp>
-
-
-//  Base-from-member arity configuration macro  ------------------------------//
-
-// The following macro determines how many arguments will be in the largest
-// constructor template of base_from_member.  Constructor templates will be
-// generated from one argument to this maximum.  Code from other files can read
-// this number if they need to always match the exact maximum base_from_member
-// uses.  The maximum constructor length can be changed by overriding the
-// #defined constant.  Make sure to apply the override, if any, for all source
-// files during project compiling for consistency.
-
-// Contributed by Jonathan Turkanis
-
-#ifndef NDNBOOST_BASE_FROM_MEMBER_MAX_ARITY
-#define NDNBOOST_BASE_FROM_MEMBER_MAX_ARITY  10
-#endif
-
-
-//  An iteration of a constructor template for base_from_member  -------------//
-
-// A macro that should expand to:
-//     template < typename T1, ..., typename Tn >
-//     base_from_member( T1 x1, ..., Tn xn )
-//         : member( x1, ..., xn )
-//         {}
-// This macro should only persist within this file.
-
-#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) )                         \
-        {}                                                             \
-    /**/
-
-
-namespace ndnboost
-{
-
-//  Base-from-member class template  -----------------------------------------//
-
-// Helper to initialize a base object so a derived class can use this
-// object in the initialization of another base class.  Used by
-// Dietmar Kuehl from ideas by Ron Klatcho to solve the problem of a
-// base class needing to be initialized by a member.
-
-// Contributed by Daryle Walker
-
-template < typename MemberType, int UniqueID = 0 >
-class base_from_member
-{
-protected:
-    MemberType  member;
-
-    base_from_member()
-        : member()
-        {}
-
-    NDNBOOST_PP_REPEAT_FROM_TO( 1, NDNBOOST_PP_INC(NDNBOOST_BASE_FROM_MEMBER_MAX_ARITY),
-     NDNBOOST_PRIVATE_CTR_DEF, _ )
-
-};  // ndnboost::base_from_member
-
-}  // namespace ndnboost
-
-
-// Undo any private macros
-#undef NDNBOOST_PRIVATE_CTR_DEF
-
-
-#endif  // NDNBOOST_UTILITY_BASE_FROM_MEMBER_HPP
diff --git a/include/ndnboost/utility/binary.hpp b/include/ndnboost/utility/binary.hpp
deleted file mode 100644
index e841afa..0000000
--- a/include/ndnboost/utility/binary.hpp
+++ /dev/null
@@ -1,708 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2005 Matthew Calabrese
-
-    Use, modification and distribution is subject to 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 NDNBOOST_UTILITY_BINARY_HPP
-#define NDNBOOST_UTILITY_BINARY_HPP
-
-/*=============================================================================
-
-    Binary Literal Utility
-    ______________________
-
-
-    The following code works by converting the input bit pattern into a
-    Boost.Preprocessor sequence, then converting groupings of 3 bits each into
-    the corresponding octal digit, and finally concatenating all of the digits
-    together along with a leading zero. This yields a standard octal literal
-    with the desired value as specified in bits.
-
-==============================================================================*/
-
-#include <ndnboost/preprocessor/control/deduce_d.hpp>
-#include <ndnboost/preprocessor/facilities/identity.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/seq/cat.hpp>
-#include <ndnboost/preprocessor/seq/transform.hpp>
-#include <ndnboost/preprocessor/arithmetic/mod.hpp>
-#include <ndnboost/preprocessor/seq/size.hpp>
-#include <ndnboost/preprocessor/facilities/empty.hpp>
-#include <ndnboost/preprocessor/control/while.hpp>
-
-#define NDNBOOST_BINARY( bit_groupings )                                          \
-  NDNBOOST_BINARY_LITERAL_D( NDNBOOST_PP_DEDUCE_D(), bit_groupings ) 
-
-#define NDNBOOST_BINARY_U( bit_groupings )                                        \
-  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, U ) 
-
-#define NDNBOOST_BINARY_L( bit_groupings )                                        \
-  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, L ) 
-
-#define NDNBOOST_BINARY_UL( bit_groupings )                                       \
-  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, UL ) 
-
-#define NDNBOOST_BINARY_LU( bit_groupings )                                       \
-  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LU ) 
-
-#define NDNBOOST_BINARY_LL( bit_groupings )                                       \
-  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LL ) 
-
-#define NDNBOOST_BINARY_ULL( bit_groupings )                                      \
-  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, ULL ) 
-
-#define NDNBOOST_BINARY_LLU( bit_groupings )                                      \
-  NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LLU ) 
-
-#define NDNBOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, suffix )                 \
-  NDNBOOST_SUFFIXED_BINARY_LITERAL_D( NDNBOOST_PP_DEDUCE_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 NDNBOOST_BINARY_LITERAL_D( d, bit_groupings )                             \
-  NDNBOOST_PP_SEQ_CAT                                                             \
-  ( (0) NDNBOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings )  \
-  ) 
-
-#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                                                                      \
-      , NDNBOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings )    \
-      )                                                                        \
-    )                                                                          \
-  ) 
-
-#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 NDNBOOST_DETAIL_BITS_PER_OCTIT 3
-
-#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 NDNBOOST_DETAIL_FIXED_COMPL( bit )                                        \
-  NDNBOOST_PP_CAT( NDNBOOST_DETAIL_FIXED_COMPL_, bit )
-
-#define NDNBOOST_DETAIL_FIXED_COMPL_0 1 
-
-#define NDNBOOST_DETAIL_FIXED_COMPL_1 0 
-
-#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 NDNBOOST_DETAIL_BINARY_LITERAL_PREDICATE( d, state )                      \
-  NDNBOOST_DETAIL_FIXED_COMPL( NDNBOOST_DETAIL_IS_NULLARY_ARGS( state ) ) 
-
-#define NDNBOOST_DETAIL_BINARY_LITERAL_OPERATION( d, state )                      \
-  NDNBOOST_DETAIL_SPLIT_AND_SWAP                                                  \
-  ( NDNBOOST_PP_CAT( NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_, state ) ) 
-
-#define NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION( s, dummy_param, tuple )        \
-  NDNBOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL tuple 
-
-#define NDNBOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL( bit2, bit1, bit0 )               \
-  NDNBOOST_DETAIL_TRIPLE_TO_OCTAL_ ## bit2 ## bit1 ## bit0 
-
-#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 NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1END_BIT  
-
-#define NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1( bit )        \
-  ( ( bit, NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2 
-
-#define NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2( bit )        \
-  bit, NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3 
-
-#define NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3( bit )        \
-  bit ) ) NDNBOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 
-
-#define NDNBOOST_DETAIL_SPLIT_AND_SWAP( params )                                  \
-  NDNBOOST_PP_IDENTITY( NDNBOOST_DETAIL_SPLIT_AND_SWAP_PARAMS )()( params )
-
-#define NDNBOOST_DETAIL_SPLIT_AND_SWAP_PARAMS( first_param, second_param )        \
-  second_param first_param 
-
-#define NDNBOOST_DETAIL_LEFT_OF_COMMA( params )                                   \
-  NDNBOOST_PP_IDENTITY( NDNBOOST_DETAIL_FIRST_MACRO_PARAM )()( params ) 
-
-#define NDNBOOST_DETAIL_FIRST_MACRO_PARAM( first_param, second_param )            \
-  first_param 
-
-/* Begin derived concepts from Chaos by Paul Mensonides */
-
-#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 NDNBOOST_DETAIL_IS_NULLARY_ARGS_C()                                       \
-  1 
-
-#define NDNBOOST_DETAIL_IS_NULLARY_ARGS_R_1                                       \
-  1, NDNBOOST_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 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 NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_0 (0), 
-#define NDNBOOST_DETAIL_BINARY_LITERAL_ELEMENT_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 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 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 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 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 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 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
deleted file mode 100644
index 11f1ddd..0000000
--- a/include/ndnboost/utility/compare_pointees.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to 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)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola@hotmail.com
-//
-#ifndef NDNBOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
-#define NDNBOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
-
-#include<functional>
-
-namespace ndnboost {
-
-// template<class OP> bool equal_pointees(OP const& x, OP const& y);
-// template<class OP> struct equal_pointees_t;
-//
-// Being OP a model of OptionalPointee (either a pointer or an optional):
-//
-// If both x and y have valid pointees, returns the result of (*x == *y)
-// If only one has a valid pointee, returns false.
-// If none have valid pointees, returns true.
-// No-throw
-template<class OptionalPointee>
-inline
-bool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y )
-{
-  return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ;
-}
-
-template<class OptionalPointee>
-struct equal_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>
-{
-  bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const
-    { return equal_pointees(x,y) ; }
-} ;
-
-// template<class OP> bool less_pointees(OP const& x, OP const& y);
-// template<class OP> struct less_pointees_t;
-//
-// Being OP a model of OptionalPointee (either a pointer or an optional):
-//
-// If y has not a valid pointee, returns false.
-// ElseIf x has not a valid pointee, returns true.
-// ElseIf both x and y have valid pointees, returns the result of (*x < *y)
-// No-throw
-template<class OptionalPointee>
-inline
-bool less_pointees ( OptionalPointee const& x, OptionalPointee const& y )
-{
-  return !y ? false : ( !x ? true : (*x) < (*y) ) ;
-}
-
-template<class OptionalPointee>
-struct less_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>
-{
-  bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const
-    { return less_pointees(x,y) ; }
-} ;
-
-} // namespace ndnboost
-
-#endif
-
diff --git a/include/ndnboost/utility/declval.hpp b/include/ndnboost/utility/declval.hpp
deleted file mode 100644
index b9e1a35..0000000
--- a/include/ndnboost/utility/declval.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  common_type.hpp  ---------------------------------------------------------//
-
-//  Copyright 2010 Vicente J. Botet Escriba
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-#ifndef NDNBOOST_TYPE_TRAITS_EXT_DECLVAL__HPP
-#define NDNBOOST_TYPE_TRAITS_EXT_DECLVAL__HPP
-
-#include <ndnboost/config.hpp>
-
-//----------------------------------------------------------------------------//
-
-#include <ndnboost/type_traits/add_rvalue_reference.hpp>
-//#include <ndnboost/type_traits/add_lvalue_reference.hpp>
-
-//----------------------------------------------------------------------------//
-//                                                                            //
-//                           C++03 implementation of                          //
-//                          Written by Vicente J. Botet Escriba               //
-//~ 20.3.4 Function template declval [declval]
-//~ 1 The library provides the function template declval to simplify the definition of expressions which occur as
-//~ unevaluated operands.
-//~ 2 Remarks: If this function is used, the program is ill-formed.
-//~ 3 Remarks: The template parameter T of declval may be an incomplete type.
-//~ [ Example:
-
-//~ template <class To, class From>
-//~ decltype(static_cast<To>(declval<From>())) convert(From&&);
-
-//~ declares a function template convert which only participats in overloading if the type From can be
-//~ explicitly converted to type To. For another example see class template common_type (20.7.6.6). —end
-//~ example ]
-//                                                                            //
-//----------------------------------------------------------------------------//
-
-namespace ndnboost {
-
-//#if !defined(NDNBOOST_NO_RVALUE_REFERENCES)
-    template <typename T>
-    typename add_rvalue_reference<T>::type declval() NDNBOOST_NOEXCEPT; // as unevaluated operand
-//#else
-//    template <typename T>
-//    typename add_lvalue_reference<T>::type declval() NDNBOOST_NOEXCEPT; // as unevaluated operand
-//#endif
-}  // namespace ndnboost
-
-#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
deleted file mode 100644
index 1c4c5ac..0000000
--- a/include/ndnboost/utility/detail/in_place_factory_prefix.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-// Copyright (C) 2007, Tobias Schwinger.
-//
-// Use, modification, and distribution is subject to 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)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola@hotmail.com
-//
-#ifndef NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
-#define NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
-
-#include <new>
-#include <cstddef>
-#include <ndnboost/config.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/punctuation/paren.hpp>
-#include <ndnboost/preprocessor/iteration/iterate.hpp>
-#include <ndnboost/preprocessor/repetition/repeat.hpp>
-#include <ndnboost/preprocessor/repetition/enum.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp>
-
-#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 NDNBOOST_MAX_INPLACE_FACTORY_ARITY 10
-
-#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
deleted file mode 100644
index 2762da1..0000000
--- a/include/ndnboost/utility/detail/in_place_factory_suffix.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-// Copyright (C) 2007, Tobias Schwinger.
-//
-// Use, modification, and distribution is subject to 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)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola@hotmail.com
-//
-#ifndef NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
-#define NDNBOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
-
-#undef NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT
-#undef NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL
-#undef NDNBOOST_MAX_INPLACE_FACTORY_ARITY
-
-#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
deleted file mode 100644
index 96298a4..0000000
--- a/include/ndnboost/utility/detail/result_of_iterate.hpp
+++ /dev/null
@@ -1,208 +0,0 @@
-// Boost result_of library
-
-//  Copyright Douglas Gregor 2004. Use, modification and
-//  distribution is subject to 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)
-
-//  Copyright Daniel Walker, Eric Niebler, Michel Morin 2008-2012.
-//  Use, modification and distribution is subject to 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)
-
-// For more information, see http://www.boost.org/libs/utility
-#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 NDNBOOST_WORKAROUND(__MWERKS__, NDNBOOST_TESTED_AT(0x3002)) && NDNBOOST_PP_ITERATION() == 0
-# define NDNBOOST_RESULT_OF_ARGS void
-#else
-# define NDNBOOST_RESULT_OF_ARGS NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)
-#endif
-
-#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(NDNBOOST_RESULT_OF_ARGS),
-            (ndnboost::detail::has_result_type<F>::value)>
-        , ndnboost::detail::tr1_result_of_impl<
-            F,
-            F(NDNBOOST_RESULT_OF_ARGS),
-            (ndnboost::detail::has_result_type<F>::value)> >::type { };
-#endif
-
-#ifdef NDNBOOST_RESULT_OF_USE_DECLTYPE
-
-// Uses declval following N3225 20.7.7.6 when F is not a pointer.
-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(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T)), false
-          >
-        , detail::cpp0x_result_of_impl<
-              F(NDNBOOST_PP_ENUM_PARAMS(NDNBOOST_PP_ITERATION(),T))
-          >
-      >::type
-{};
-
-namespace detail {
-
-#ifdef NDNBOOST_NO_SFINAE_EXPR
-
-template<typename F>
-struct NDNBOOST_PP_CAT(result_of_callable_fun_2_, NDNBOOST_PP_ITERATION());
-
-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 NDNBOOST_PP_CAT(result_of_callable_fun_, NDNBOOST_PP_ITERATION());
-
-template<typename 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 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 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<NDNBOOST_PP_CAT(result_of_callable_fun_, NDNBOOST_PP_ITERATION())<typename remove_cv<F>::type> >
-    >
-{};
-
-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>()(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 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<
-          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 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>()(
-      NDNBOOST_PP_ENUM_BINARY_PARAMS(NDNBOOST_PP_ITERATION(), ndnboost::declval<T, >() NDNBOOST_PP_INTERCEPT)
-    )
-  ) type;
-};
-
-#else // NDNBOOST_NO_SFINAE_EXPR
-
-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>()(
-                                    NDNBOOST_PP_ENUM_BINARY_PARAMS(NDNBOOST_PP_ITERATION(), ndnboost::declval<T, >() NDNBOOST_PP_INTERCEPT)
-                                )
-                            )>::type> {
-  typedef decltype(
-    ndnboost::declval<F>()(
-      NDNBOOST_PP_ENUM_BINARY_PARAMS(NDNBOOST_PP_ITERATION(), ndnboost::declval<T, >() NDNBOOST_PP_INTERCEPT)
-    )
-  ) type;
-};
-
-#endif // NDNBOOST_NO_SFINAE_EXPR
-
-} // namespace detail
-
-#else // defined(NDNBOOST_RESULT_OF_USE_DECLTYPE)
-
-#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(NDNBOOST_RESULT_OF_USE_DECLTYPE)
-
-#undef NDNBOOST_RESULT_OF_ARGS
-
-#if NDNBOOST_PP_ITERATION() >= 1
-
-namespace detail {
-
-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 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 !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::*)
-                     (NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_PP_ITERATION(),T)),
-                 FArgs, false>
-{
-  typedef R type;
-};
-
-template<typename R, typename FArgs NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (T0::*)
-                     (NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_PP_ITERATION(),T))
-                     const,
-                 FArgs, false>
-{
-  typedef R type;
-};
-
-template<typename R, typename FArgs NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (T0::*)
-                     (NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_PP_ITERATION(),T))
-                     volatile,
-                 FArgs, false>
-{
-  typedef R type;
-};
-
-template<typename R, typename FArgs NDNBOOST_PP_ENUM_TRAILING_PARAMS(NDNBOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (T0::*)
-                     (NDNBOOST_PP_ENUM_SHIFTED_PARAMS(NDNBOOST_PP_ITERATION(),T))
-                     const volatile,
-                 FArgs, false>
-{
-  typedef R type;
-};
-#endif
-
-}
-#endif
diff --git a/include/ndnboost/utility/enable_if.hpp b/include/ndnboost/utility/enable_if.hpp
deleted file mode 100644
index 04128d6..0000000
--- a/include/ndnboost/utility/enable_if.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// Boost enable_if library
-
-// Copyright 2003 (c) The Trustees of Indiana University.
-
-// Use, modification, and distribution is subject to 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)
-
-//    Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
-//             Jeremiah Willcock (jewillco at osl.iu.edu)
-//             Andrew Lumsdaine (lums at osl.iu.edu)
-
-
-#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 NDNBOOST_NO_SFINAE
-
-namespace ndnboost
-{
- 
-  template <bool B, class T = void>
-  struct enable_if_c {
-    typedef T type;
-  };
-
-  template <class T>
-  struct enable_if_c<false, T> {};
-
-  template <class Cond, class T = void> 
-  struct enable_if : public enable_if_c<Cond::value, T> {};
-
-  template <bool B, class T>
-  struct lazy_enable_if_c {
-    typedef typename T::type type;
-  };
-
-  template <class T>
-  struct lazy_enable_if_c<false, T> {};
-
-  template <class Cond, class T> 
-  struct lazy_enable_if : public lazy_enable_if_c<Cond::value, T> {};
-
-
-  template <bool B, class T = void>
-  struct disable_if_c {
-    typedef T type;
-  };
-
-  template <class T>
-  struct disable_if_c<true, T> {};
-
-  template <class Cond, class T = void> 
-  struct disable_if : public disable_if_c<Cond::value, T> {};
-
-  template <bool B, class T>
-  struct lazy_disable_if_c {
-    typedef typename T::type type;
-  };
-
-  template <class T>
-  struct lazy_disable_if_c<true, T> {};
-
-  template <class Cond, class T> 
-  struct lazy_disable_if : public lazy_disable_if_c<Cond::value, T> {};
-
-} // namespace ndnboost
-
-#else
-
-namespace ndnboost {
-
-  namespace detail { typedef void enable_if_default_T; }
-
-  template <typename T>
-  struct enable_if_does_not_work_on_this_compiler;
-
-  template <bool B, class T = detail::enable_if_default_T>
-  struct enable_if_c : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <bool B, class T = detail::enable_if_default_T> 
-  struct disable_if_c : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <bool B, class T = detail::enable_if_default_T> 
-  struct lazy_enable_if_c : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <bool B, class T = detail::enable_if_default_T> 
-  struct lazy_disable_if_c : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <class Cond, class T = detail::enable_if_default_T> 
-  struct enable_if : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <class Cond, class T = detail::enable_if_default_T> 
-  struct disable_if : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <class Cond, class T = detail::enable_if_default_T> 
-  struct lazy_enable_if : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <class Cond, class T = detail::enable_if_default_T> 
-  struct lazy_disable_if : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-} // namespace ndnboost
-
-#endif // NDNBOOST_NO_SFINAE
-
-#endif
diff --git a/include/ndnboost/utility/identity_type.hpp b/include/ndnboost/utility/identity_type.hpp
deleted file mode 100644
index 37eb835..0000000
--- a/include/ndnboost/utility/identity_type.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright (C) 2009-2012 Lorenzo Caminiti
-// Distributed under the Boost Software License, Version 1.0
-// (see accompanying file LICENSE_1_0.txt or a copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-// Home at http://www.boost.org/libs/utility/identity_type
-
-/** @file
-Wrap type expressions with round parenthesis so they can be passed to macros
-even if they contain commas.
-*/
-
-#ifndef NDNBOOST_IDENTITY_TYPE_HPP_
-#define NDNBOOST_IDENTITY_TYPE_HPP_
-
-#include <ndnboost/type_traits/function_traits.hpp>
-
-/**
-@brief This macro allows to wrap the specified type expression within extra
-round parenthesis so the type can be passed as a single macro parameter even if
-it contains commas (not already wrapped within round parenthesis).
-
-@Params
-@Param{parenthesized_type,
-The type expression to be passed as macro parameter wrapped by a single set
-of round parenthesis <c>(...)</c>.
-This type expression can contain an arbitrary number of commas.
-}
-@EndParams
-
-This macro works on any C++03 compiler (it does not use variadic macros).
-
-This macro must be prefixed by <c>typename</c> when used within templates.
-Note that the compiler will not be able to automatically determine function
-template parameters when they are wrapped with this macro (these parameters
-need to be explicitly specified when calling the function template).
-
-On some compilers (like GCC), using this macro on abstract types requires to
-add and remove a reference to the specified 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
-
-#endif // #include guard
-
diff --git a/include/ndnboost/utility/in_place_factory.hpp b/include/ndnboost/utility/in_place_factory.hpp
deleted file mode 100644
index cc077dd..0000000
--- a/include/ndnboost/utility/in_place_factory.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-// Copyright (C) 2007, Tobias Schwinger.
-//
-// Use, modification, and distribution is subject to 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)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola@hotmail.com
-//
-#ifndef NDNBOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
-#ifndef NDNBOOST_PP_IS_ITERATING
-
-#include <ndnboost/utility/detail/in_place_factory_prefix.hpp>
-
-namespace ndnboost {
-
-class in_place_factory_base {} ;
-
-#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 NDNBOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
-#else
-#define N NDNBOOST_PP_ITERATION()
-
-#if N
-template< NDNBOOST_PP_ENUM_PARAMS(N, class A) >
-#endif
-class NDNBOOST_PP_CAT(in_place_factory,N)
-  : 
-  public in_place_factory_base
-{
-public:
-
-  explicit NDNBOOST_PP_CAT(in_place_factory,N)
-      ( NDNBOOST_PP_ENUM_BINARY_PARAMS(N,A,const& a) )
-#if N > 0
-    : NDNBOOST_PP_ENUM(N, NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)
-#endif
-  {}
-
-  template<class T>
-  void* apply(void* address
-      NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
-  {
-    return new(address) T( NDNBOOST_PP_ENUM_PARAMS(N, m_a) );
-  }
-
-  template<class T>
-  void* apply(void* address, std::size_t n
-      NDNBOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
-  {
-    for(char* next = address = this->NDNBOOST_NESTED_TEMPLATE apply<T>(address);
-        !! --n;)
-      this->NDNBOOST_NESTED_TEMPLATE apply<T>(next = next+sizeof(T));
-    return address; 
-  }
-
-  NDNBOOST_PP_REPEAT(N, NDNBOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)
-};
-
-#if N > 0
-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 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()
-{
-  return in_place_factory0();
-}
-#endif
-
-#undef N
-#endif
-#endif
-
diff --git a/include/ndnboost/utility/result_of.hpp b/include/ndnboost/utility/result_of.hpp
deleted file mode 100644
index b98fc8a..0000000
--- a/include/ndnboost/utility/result_of.hpp
+++ /dev/null
@@ -1,194 +0,0 @@
-// Boost result_of library
-
-//  Copyright Douglas Gregor 2004. Use, modification and
-//  distribution is subject to 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)
-
-// For more information, see http://www.boost.org/libs/utility
-#ifndef NDNBOOST_RESULT_OF_HPP
-#define NDNBOOST_RESULT_OF_HPP
-
-#include <ndnboost/config.hpp>
-#include <ndnboost/preprocessor/cat.hpp>
-#include <ndnboost/preprocessor/iteration/iterate.hpp>
-#include <ndnboost/preprocessor/repetition/enum_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_trailing_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_binary_params.hpp>
-#include <ndnboost/preprocessor/repetition/enum_shifted_params.hpp>
-#include <ndnboost/preprocessor/facilities/intercept.hpp>
-#include <ndnboost/detail/workaround.hpp>
-#include <ndnboost/mpl/has_xxx.hpp>
-#include <ndnboost/mpl/if.hpp>
-#include <ndnboost/mpl/eval_if.hpp>
-#include <ndnboost/mpl/bool.hpp>
-#include <ndnboost/mpl/identity.hpp>
-#include <ndnboost/mpl/or.hpp>
-#include <ndnboost/type_traits/is_class.hpp>
-#include <ndnboost/type_traits/is_pointer.hpp>
-#include <ndnboost/type_traits/is_member_function_pointer.hpp>
-#include <ndnboost/type_traits/remove_cv.hpp>
-#include <ndnboost/type_traits/remove_reference.hpp>
-#include <ndnboost/utility/declval.hpp>
-#include <ndnboost/utility/enable_if.hpp>
-
-#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 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 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 NDNBOOST_RESULT_OF_USE_TR1
-#    endif
-#  endif
-#endif
-
-namespace ndnboost {
-
-template<typename F> struct result_of;
-template<typename F> struct tr1_result_of; // a TR1-style implementation of result_of
-
-#if !defined(NDNBOOST_NO_SFINAE) && !defined(NDNBOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-namespace detail {
-
-NDNBOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
-
-template<typename F, typename FArgs, bool HasResultType> struct tr1_result_of_impl;
-
-#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 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
-
-struct result_of_private_type {};
-
-struct result_of_weird_type {
-  friend result_of_private_type operator,(result_of_private_type, result_of_weird_type);
-};
-
-typedef char result_of_yes_type;      // sizeof(result_of_yes_type) == 1
-typedef char (&result_of_no_type)[2]; // sizeof(result_of_no_type)  == 2
-
-template<typename T>
-result_of_no_type result_of_is_private_type(T const &);
-result_of_yes_type result_of_is_private_type(result_of_private_type);
-
-template<typename C>
-struct result_of_callable_class : C {
-    result_of_callable_class();
-    typedef result_of_private_type const &(*pfn_t)(...);
-    operator pfn_t() const volatile;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class {
-  typedef result_of_callable_class<C> type;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class<C const> {
-  typedef result_of_callable_class<C> const type;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class<C volatile> {
-  typedef result_of_callable_class<C> volatile type;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class<C const volatile> {
-  typedef result_of_callable_class<C> const volatile type;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class<C &> {
-  typedef typename result_of_wrap_callable_class<C>::type &type;
-};
-
-template<typename F, bool TestCallability = true> struct cpp0x_result_of_impl;
-
-#else // NDNBOOST_NO_SFINAE_EXPR
-
-template<typename T>
-struct result_of_always_void
-{
-  typedef void type;
-};
-
-template<typename F, typename Enable = void> struct cpp0x_result_of_impl {};
-
-#endif // NDNBOOST_NO_SFINAE_EXPR
-
-template<typename F>
-struct result_of_void_impl
-{
-  typedef void type;
-};
-
-template<typename R>
-struct result_of_void_impl<R (*)(void)>
-{
-  typedef R type;
-};
-
-template<typename R>
-struct result_of_void_impl<R (&)(void)>
-{
-  typedef R type;
-};
-
-// Determine the return type of a function pointer or pointer to member.
-template<typename F, typename FArgs>
-struct result_of_pointer
-  : tr1_result_of_impl<typename remove_cv<F>::type, FArgs, false> { };
-
-template<typename F, typename FArgs>
-struct tr1_result_of_impl<F, FArgs, true>
-{
-  typedef typename F::result_type type;
-};
-
-template<typename FArgs>
-struct is_function_with_no_args : mpl::false_ {};
-
-template<typename F>
-struct is_function_with_no_args<F(void)> : mpl::true_ {};
-
-template<typename F, typename FArgs>
-struct result_of_nested_result : F::template result<FArgs>
-{};
-
-template<typename F, typename FArgs>
-struct tr1_result_of_impl<F, FArgs, false>
-  : mpl::if_<is_function_with_no_args<FArgs>,
-             result_of_void_impl<F>,
-             result_of_nested_result<F, FArgs> >::type
-{};
-
-} // end namespace detail
-
-#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 NDNBOOST_NO_RESULT_OF 1
-#endif
-
-}
-
-#endif // NDNBOOST_RESULT_OF_HPP
diff --git a/include/ndnboost/utility/swap.hpp b/include/ndnboost/utility/swap.hpp
deleted file mode 100644
index 95f80f3..0000000
--- a/include/ndnboost/utility/swap.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (C) 2007, 2008 Steven Watanabe, Joseph Gauterin, Niels Dekker
-//
-// 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)
-// For more information, see http://www.boost.org
-
-
-#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
-// recursion (causing stack overflow) when swapping objects of a primitive
-// type.
-// - swap_impl has a using-directive, rather than a using-declaration,
-// because some compilers (including MSVC 7.1, Borland 5.9.3, and
-// Intel 8.1) don't do argument-dependent lookup when it has a
-// using-declaration instead.
-// - ndnboost::swap has two template arguments, instead of one, to
-// avoid ambiguity when swapping objects of a Boost type that does
-// not have its own ndnboost::swap overload.
-
-#include <algorithm> //for std::swap
-#include <cstddef> //for std::size_t
-
-namespace ndnboost_swap_impl
-{
-  template<class T>
-  void swap_impl(T& left, T& right)
-  {
-    using namespace std;//use std::swap if argument dependent lookup fails
-    swap(left,right);
-  }
-
-  template<class T, std::size_t N>
-  void swap_impl(T (& left)[N], T (& right)[N])
-  {
-    for (std::size_t i = 0; i < N; ++i)
-    {
-      ::ndnboost_swap_impl::swap_impl(left[i], right[i]);
-    }
-  }
-}
-
-namespace ndnboost
-{
-  template<class T1, class T2>
-  void swap(T1& left, T2& right)
-  {
-    ::ndnboost_swap_impl::swap_impl(left, right);
-  }
-}
-
-#endif
diff --git a/include/ndnboost/utility/value_init.hpp b/include/ndnboost/utility/value_init.hpp
deleted file mode 100644
index 8e34ae2..0000000
--- a/include/ndnboost/utility/value_init.hpp
+++ /dev/null
@@ -1,258 +0,0 @@
-// (C) Copyright 2002-2008, Fernando Luis Cacciola Carballal.
-//
-// 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)
-//
-// 21 Ago 2002 (Created) Fernando Cacciola
-// 24 Dec 2007 (Refactored and worked around various compiler bugs) Fernando Cacciola, Niels Dekker
-// 23 May 2008 (Fixed operator= const issue, added initialized_value) Niels Dekker, Fernando Cacciola
-// 21 Ago 2008 (Added swap) Niels Dekker, Fernando Cacciola
-// 20 Feb 2009 (Fixed logical const-ness issues) Niels Dekker, Fernando Cacciola
-// 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 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.
-// The constructor of ndnboost::value_initialized<T> works around these compiler
-// issues, by clearing the bytes of T, before constructing the T object it
-// contains. More details on these issues are at libs/utility/value_init.htm
-
-#include <ndnboost/aligned_storage.hpp>
-#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>
-#include <ndnboost/type_traits/alignment_of.hpp>
-#include <ndnboost/swap.hpp>
-#include <cstring>
-#include <new>
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(push)
-#if _MSC_VER >= 1310
-// It is safe to ignore the following warning from MSVC 7.1 or higher:
-// "warning C4351: new behavior: elements of array will be default initialized"
-#pragma warning(disable: 4351)
-// It is safe to ignore the following MSVC warning, which may pop up when T is 
-// a const type: "warning C4512: assignment operator could not be generated".
-#pragma warning(disable: 4512)
-#endif
-#endif
-
-#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 NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED
-#endif
-
-// Implementation detail: The macro NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND
-// switches the value-initialization workaround either on or off.
-#ifndef NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND
-  #ifdef NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED
-  #define NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND 1
-  #else
-  #define NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND 0
-  #endif
-#endif
-
-namespace ndnboost {
-
-template<class T>
-class initialized
-{
-  private :
-    struct wrapper
-    {
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x592))
-      typename
-#endif 
-      remove_const<T>::type data;
-
-      wrapper()
-      :
-      data()
-      {
-      }
-
-      wrapper(T const & arg)
-      :
-      data(arg)
-      {
-      }
-    };
-
-    mutable
-#if !NDNBOOST_WORKAROUND(__BORLANDC__, NDNBOOST_TESTED_AT(0x592))
-      typename
-#endif 
-      aligned_storage<sizeof(wrapper), alignment_of<wrapper>::value>::type x;
-
-    wrapper * wrapper_address() const
-    {
-      return static_cast<wrapper *>( static_cast<void*>(&x));
-    }
-
-  public :
-
-    initialized()
-    {
-#if NDNBOOST_DETAIL_VALUE_INIT_WORKAROUND
-      std::memset(&x, 0, sizeof(x));
-#endif
-      new (wrapper_address()) wrapper();
-    }
-
-    initialized(initialized const & arg)
-    {
-      new (wrapper_address()) wrapper( static_cast<wrapper const &>(*(arg.wrapper_address())));
-    }
-
-    explicit initialized(T const & arg)
-    {
-      new (wrapper_address()) wrapper(arg);
-    }
-
-    initialized & operator=(initialized const & arg)
-    {
-      // Assignment is only allowed when T is non-const.
-      NDNBOOST_STATIC_ASSERT( ! is_const<T>::value );
-      *wrapper_address() = static_cast<wrapper const &>(*(arg.wrapper_address()));
-      return *this;
-    }
-
-    ~initialized()
-    {
-      wrapper_address()->wrapper::~wrapper();
-    }
-
-    T const & data() const
-    {
-      return wrapper_address()->data;
-    }
-
-    T& data()
-    {
-      return wrapper_address()->data;
-    }
-
-    void swap(initialized & arg)
-    {
-      ::ndnboost::swap( this->data(), arg.data() );
-    }
-
-    operator T const &() const
-    {
-      return wrapper_address()->data;
-    }
-
-    operator T&()
-    {
-      return wrapper_address()->data;
-    }
-
-} ;
-
-template<class T>
-T const& get ( initialized<T> const& x )
-{
-  return x.data() ;
-}
-
-template<class T>
-T& get ( initialized<T>& x )
-{
-  return x.data() ;
-}
-
-template<class T>
-void swap ( initialized<T> & lhs, initialized<T> & rhs )
-{
-  lhs.swap(rhs) ;
-}
-
-template<class T>
-class value_initialized
-{
-  private :
-
-    // initialized<T> does value-initialization by default.
-    initialized<T> m_data;
-
-  public :
-    
-    value_initialized()
-    :
-    m_data()
-    { }
-    
-    T const & data() const
-    {
-      return m_data.data();
-    }
-
-    T& data()
-    {
-      return m_data.data();
-    }
-
-    void swap(value_initialized & arg)
-    {
-      m_data.swap(arg.m_data);
-    }
-
-    operator T const &() const
-    {
-      return m_data;
-    }
-
-    operator T&()
-    {
-      return m_data;
-    }
-} ;
-
-
-template<class T>
-T const& get ( value_initialized<T> const& x )
-{
-  return x.data() ;
-}
-
-template<class T>
-T& get ( value_initialized<T>& x )
-{
-  return x.data() ;
-}
-
-template<class T>
-void swap ( value_initialized<T> & lhs, value_initialized<T> & rhs )
-{
-  lhs.swap(rhs) ;
-}
-
-
-class initialized_value_t
-{
-  public :
-    
-    template <class T> operator T() const
-    {
-      return initialized<T>().data();
-    }
-};
-
-initialized_value_t const initialized_value = {} ;
-
-
-} // namespace ndnboost
-
-#ifdef NDNBOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#endif
diff --git a/include/ndnboost/version.hpp b/include/ndnboost/version.hpp
deleted file mode 100644
index 8f35f13..0000000
--- a/include/ndnboost/version.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-//  Boost version.hpp configuration header file  ------------------------------//
-
-//  (C) Copyright John maddock 1999. 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)
-
-//  See http://www.boost.org/libs/config for documentation
-
-#ifndef NDNBOOST_VERSION_HPP
-#define NDNBOOST_VERSION_HPP
-
-//
-//  Caution, this is the only boost header that is guarenteed
-//  to change with every boost release, including this header
-//  will cause a recompile every time a new boost version is
-//  released.
-//
-//  NDNBOOST_VERSION % 100 is the patch level
-//  NDNBOOST_VERSION / 100 % 1000 is the minor version
-//  NDNBOOST_VERSION / 100000 is the major version
-
-#define NDNBOOST_VERSION 105400
-
-//
-//  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 NDNBOOST_LIB_VERSION "1_54"
-
-#endif
diff --git a/include/ndnboost/visit_each.hpp b/include/ndnboost/visit_each.hpp
deleted file mode 100644
index 64d015e..0000000
--- a/include/ndnboost/visit_each.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// Boost.Signals library
-
-// Copyright Douglas Gregor 2001-2003. Use, modification and
-// distribution is subject to 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)
-
-// For more information, see http://www.boost.org/libs/signals
-
-#ifndef NDNBOOST_VISIT_EACH_HPP
-#define NDNBOOST_VISIT_EACH_HPP
-
-#include <ndnboost/config.hpp>
-
-namespace ndnboost {
-  template<typename Visitor, typename T>
-  inline void visit_each(Visitor& visitor, const T& t, long)
-  {
-    visitor(t);
-  }
-
-  template<typename Visitor, typename T>
-  inline void visit_each(Visitor& visitor, const T& t)
-  {
-    visit_each(visitor, t, 0);
-  }
-}
-
-#endif // NDNBOOST_VISIT_EACH_HPP
diff --git a/include/ndnboost/weak_ptr.hpp b/include/ndnboost/weak_ptr.hpp
deleted file mode 100644
index cd3d77f..0000000
--- a/include/ndnboost/weak_ptr.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef NDNBOOST_WEAK_PTR_HPP_INCLUDED
-#define NDNBOOST_WEAK_PTR_HPP_INCLUDED
-
-//
-//  weak_ptr.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov
-//
-//  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
-//
-//  See http://www.boost.org/libs/smart_ptr/weak_ptr.htm for documentation.
-//
-
-#include <ndnboost/smart_ptr/weak_ptr.hpp>
-
-#endif  // #ifndef NDNBOOST_WEAK_PTR_HPP_INCLUDED